//fix for ie not having trim available
if(typeof String.prototype.trim !== 'function') {   String.prototype.trim = function() {     return this.replace(/^\s+|\s+$/g, '');    } } 

$(document).ready(function(){				
	
	$.prettyLoader();
	
	//on the subnews add a class to define the width
	$(".subCont ul").each(function(){
		$(this).find("li").last().attr("class", "cnCol-2");
	});
	
	$('.infoRow li').children().vAlign();
	if($.browser.version != 7.0){
		$('.styled-select').selectbox({debug: false});
	}
	
	var page = 1;
	$(".pressButtons .prev").click(function(e){
		e.preventDefault();
		if((page + 1) <= pressCount) {
			page++;
			rows.hide().filter(".group-" + page).show();
		}
	});
	
	$(".pressButtons .next").click(function(e){
		e.preventDefault();
		if((page - 1) > 0) {
			page--;
			rows.hide().filter(".group-" + page).show();
		}
	});
	
	var pressCount = 0;
	var rows = $('.downloadsList');
	rows.each(function(i, el){
		var self = $(this);
		
		if(i % 4 == 0) {
			self.addClass("firsrDownload");
			pressCount++;
		}
		if(i % 4 == 1) {
			self.addClass("colorDL")
		}
		if(i % 4 == 3) {
			self.addClass("lastDownload").addClass("colorDL");
		}
		
		self.addClass("group-" + pressCount);
		
	}).not(".group-1").hide();
	
	$('.twitterBox p').tweet({
		username: "skiburke",
        count: 1,
        loading_text: "loading latest tweet"
	});
		
	//event list add class to last standard event
	var veClass = $(".standardEvents .vevent").last().attr("class");
	$(".standardEvents .vevent").last().attr("class", veClass + " lastEventRow");

	//set the total image count
	prImageCount = $(".presImageCount").text().trim();
	//press room image list
	$(".pressImgButtons .next").click(function(e){
		e.preventDefault();
		prCurPage++;
		var offset = prCurPage * prImageLength
		$.ajax({
		  url: "/ajax/?prImgOffset=" + offset + "&prImgLength="+prImageLength,
		  success: function(data){
			$(".presImages").html(data);
		  }
		});
		setButtonStates();
	}); 
	$(".pressImgButtons .prev").click(function(e){
		e.preventDefault();
		prCurPage--;
		var offset = prCurPage * prImageLength
		$.ajax({
		  url: "/ajax/?prImgOffset=" + offset + "&prImgLength="+prImageLength,
		  success: function(data){
			$(".presImages").html(data);
		  }
		});
		setButtonStates();
	});
});
//vars and funcs for the press room image scroller
var prCurPage = 0;
var prImageLength = 10;
var prImageCount = 0;
function setButtonStates(){
	//if there's no more pages to get then hide next button
	if((prCurPage*prImageLength + prImageLength) >= prImageCount) {
		$(".pressImgButtons .next").hide();
	} else {
		$(".pressImgButtons .next").show();
	}
	//if you're on page 1 then hide prev button
	if(prCurPage == 0) {
		$(".pressImgButtons .prev").hide();
	} else {
		$(".pressImgButtons .prev").show();
	}
}


window.onload = function(){
	$('.logosBox img').vAlignSimple();
}

$(function() {
		$( "#datepicker" ).datepicker({
			showOn: "button",
			buttonImage: "/mysite/datepicker/images/calendar.png",
			buttonImageOnly: true,
			onSelect: function() {
				$("#datepicker2").datepicker("option", "minDate", $("#datepicker").val()).val("To");
			}
		});
		$( "#datepicker2" ).datepicker({
			showOn: "button",
			buttonImage: "/mysite/datepicker/images/calendar.png",
			buttonImageOnly: true
		});
});

$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).height() + parseInt($(this).css('paddingTop')) + parseInt($(this).css('paddingBottom'));
	var ph = $(this).parent().parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};

$.fn.vAlignSimple = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};

JQTWEET = {
	
	// Set twitter username, number of tweets & id/class to append tweets
	user: 'skiburke',
	numTweets: 1,
	appendTo: '#tweets',

	// core function of jqtweet
	loadTweets: function() {
		$.ajax({
			url: 'http://api.twitter.com/1/statuses/user_timeline.json/',
			type: 'GET',
			dataType: 'jsonp',
			data: {
				screen_name: JQTWEET.user,
				include_rts: true,
				count: JQTWEET.numTweets,
				include_entities: true
			},
			success: function(data, textStatus, xhr) {

				 var html = '<p><a href="http://twitter.com/skiburke"><span>SkiBurke</span></a> TWEET_TEXT</p>';
		
				 // append tweets into page
				 for (var i = 0; i < data.length; i++) {
					$(JQTWEET.appendTo).append(
						html.replace('TWEET_TEXT', JQTWEET.ify.clean(data[i].text) )
							.replace(/USER/g, data[i].user.screen_name)
							.replace('AGO', JQTWEET.timeAgo(data[i].created_at) )
							.replace(/ID/g, data[i].id_str)
					);
				 }					
			}	

		});
		
	}, 
	
		
	/**
      * relative time calculator FROM TWITTER
      * @param {string} twitter date string returned from Twitter API
      * @return {string} relative time like "2 minutes ago"
      */
    timeAgo: function(dateString) {
		var rightNow = new Date();
		var then = new Date(dateString);
		
		if ($.browser.msie) {
			// IE can't parse these crazy Ruby dates
			then = Date.parse(dateString.replace(/( \+)/, ' UTC$1'));
		}

		var diff = rightNow - then;

		var second = 1000,
		minute = second * 60,
		hour = minute * 60,
		day = hour * 24,
		week = day * 7;

		if (isNaN(diff) || diff < 0) {
			return ""; // return blank string if unknown
		}

		if (diff < second * 2) {
			// within 2 seconds
			return "right now";
		}

		if (diff < minute) {
			return Math.floor(diff / second) + " seconds ago";
		}

		if (diff < minute * 2) {
			return "about 1 minute ago";
		}

		if (diff < hour) {
			return Math.floor(diff / minute) + " minutes ago";
		}

		if (diff < hour * 2) {
			return "about 1 hour ago";
		}

		if (diff < day) {
			return  Math.floor(diff / hour) + " hours ago";
		}

		if (diff > day && diff < day * 2) {
			return "yesterday";
		}

		if (diff < day * 365) {
			return Math.floor(diff / day) + " days ago";
		}

		else {
			return "over a year ago";
		}
	}, // timeAgo()
    
	
    /**
      * The Twitalinkahashifyer!
      * http://www.dustindiaz.com/basement/ify.html
      * Eg:
      * ify.clean('your tweet text');
      */
    ify:  {
      link: function(tweet) {
        return tweet.replace(/\b(((https*\:\/\/)|www\.)[^\"\']+?)(([!?,.\)]+)?(\s|$))/g, function(link, m1, m2, m3, m4) {
          var http = m2.match(/w/) ? 'http://' : '';
          return '<a class="twtr-hyperlink" target="_blank" href="' + http + m1 + '">' + ((m1.length > 25) ? m1.substr(0, 24) + '...' : m1) + '</a>' + m4;
        });
      },

      at: function(tweet) {
        return tweet.replace(/\B[@＠]([a-zA-Z0-9_]{1,20})/g, function(m, username) {
          return '<a target="_blank" class="twtr-atreply" href="http://twitter.com/intent/user?screen_name=' + username + '">@' + username + '</a>';
        });
      },

      list: function(tweet) {
        return tweet.replace(/\B[@＠]([a-zA-Z0-9_]{1,20}\/\w+)/g, function(m, userlist) {
          return '<a target="_blank" class="twtr-atreply" href="http://twitter.com/' + userlist + '">@' + userlist + '</a>';
        });
      },

      hash: function(tweet) {
        return tweet.replace(/(^|\s+)#(\w+)/gi, function(m, before, hash) {
          return before + '<a target="_blank" class="twtr-hashtag" href="http://twitter.com/search?q=%23' + hash + '">#' + hash + '</a>';
        });
      },

      clean: function(tweet) {
        return this.hash(this.at(this.list(this.link(tweet))));
      }
    } // ify

	
};

JQTWEET.loadTweets();

$(document).ready(function(){					
						   
	// Our very special jQuery JSON fucntion call to Flickr, gets details of the most recent 20 images			   
	$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=66532143@N03&lang=en-us&format=json&jsoncallback=?", displayImages);
	
	function displayImages(data) {
		var iStart = Math.floor(Math.random()*(11));
		var iCount = 0;
		var htmlString = "";

		for(var i = 0; i < 4; i++) {
			htmlString += "<div class='gpBox'><a href='" + data.items[i].link + "'><img src='" + (data.items[i].media.m).replace("_m.jpg", "_s.jpg") + "' /></a></div>";
		}
		
		// Pop our HTML in the #images DIV
		$('.gpHold').html(htmlString);

	}
	
	$(".dateformBox .selectRow select").change(function(){
	
		var rows = $(".dateformBox .dateFormRow");
		
		if( $(this).val().indexOf("|") < 0 ) {
			rows.hide();
		} else {
			rows.show();
		}
		
		return false;
	
	});
	
	$(".dateformBox .btnRow input").click(function(){
		
		var selectVal = $(".selectRow select").val();
		
		if(selectVal.indexOf("|") < 0) {
			window.location = selectVal;
		}
		else {
		
			var salesid = "1154410";
			var arrivalDate =  $("#datepicker").val();
			var departureDate =  $("#datepicker2").val();
			var adultcount =  $("#adultcount").val();
			var childcount =  $("#childcount").val();
			var cat = selectVal.split("|");
			var categoryid = cat[1];
			var supercategoryid = cat[0];
			
			var url = "http://www.inntopia.travel/aspnet/09/search.aspx?salesid=" + salesid + "&arrivaldate=" + arrivalDate + "&departuredate=" + departureDate + "&productcategoryid=" + categoryid + "&productsupercategoryid=" + supercategoryid + "&adultcount=" + adultcount + "&childcount=" + childcount + "";
			
			window.location = url;
		
		}
		
		return false;
	});
	
	var weatherwidget = $(".weatherCont > div");
	weatherwidget.find("strong:eq(0)").remove();
	weatherwidget.find("br:eq(0)").remove();
		
});
