//add class to body tag if js is enabled
function checkForJs() {
	if(jQuery) {
	    jQuery("BODY").addClass("jq");
	}
}

//top nav mega dropdown functions & config start
function addMega(){
	$(this).addClass("hovering");
}

function removeMega(){
	$(this).removeClass("hovering");
} 

var megaConfig = {
	interval: 0,
	sensitivity: 4,
	over: addMega,
	timeout: 0,
	out: removeMega
};

function megaNav() {
	$("#header-links UL LI:last").css({"border-right" : "none", "padding-right" : "0px"});
	$("LI.mega").hoverIntent(megaConfig);
	$("DIV.submenu").hover(
		function(){
			$(this).parent("LI").addClass("hover");
		},
		function(){
			$(this).parent("LI").removeClass("hover");
		}
	);
}
//top nav mega dropdown functions & config end

//image rollover
//swap img src from "imagename-off.gif" to "imagename-on.gif" - works for any image folder path
//usage: apply class="rollover" to anchor link
function rollover() {
	$(".rollover").hover(
		function() {
			this.src = this.src.replace("-off","-on");
		},
		function() {
			this.src = this.src.replace("-on","-off");
		}
	);		
}

//clearSearch onfocus
//removes default text from header search box
//usage: every page
function clearInput(elemId) {
	$("INPUT#" + elemId).focus(
		function() {
			$(this).val("");
		}
	);
}

//bookmarker
function bookmarker() {
	$('A.bookmark').jFav();
}

function openWindow(url, scrl, resz, wdth, hgt) {
	window.open(url,'popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=' + scrl + ',resizable=' + resz + ',width=' + wdth + ',height=' + hgt + ',framemargin=0,leftmargin=0,topmargin=0,marginwidth=0,marginheight=0');
}


//Promo Fix
//remove background image from first promo in #promo-bar div
function fixPromos() {
	$(".promo:first").css({"background" : "none"});
}

//Travel Agents Fix
//remove background image from last row travel agents list
function fixBanner() {
    //does not exist in relate template!
	//var offset = $("#banner-five .banner-image IMG").attr("height");
	//alert(offset);
	//$("#content").css({"position" : "relative" , "margin-top" : "-" + offset + "px"});
	//$("#content #left").css({"padding-top" : offset + "px"});
}

//Star Fix
//add padding to top (Overall) star-rating
function fixStars() {
	$(".star-scores P:first").css({"padding-bottom" : "0.7em"});
}

//add a bottom border and padding to a final call-to-action LI
function fixCta() {
	$("UL.cta").find("LI:last").addClass("last");
	$("UL.cta LI:last").css({"border-bottom" : "1px solid #E5E5E5", "padding-bottom" : "8px" });
}

//to colour-code alternate table rows
//parse function the row to color - "odd" or "even"
function fixTables(colorType) {
	if (colorType != "even") {
		colorType = "odd";
	}
	$("TABLE TR:" + colorType).css({"background-color" : "#F2F1F0"});
}

//to be used on inline-bullet lists
function fixBullets(elem) {
	var lastHTML = $(elem + " UL").find("LI:last").html();
	var newHTML = "&nbsp;&bull;";
	$(elem + " UL").find("LI").append(newHTML);
	$(elem + " UL").find("LI:last").html(lastHTML);
}

//HR bars on RHS column
function fixRhsHR() {
	var hrWidth = $("#right div.hr").css("width");
	if (hrWidth == "224px") { //ie6 sizing hack
		hrWidth = 210;
	}
	hrWidth = parseInt(hrWidth) - parseInt(15);
	$("#right div.hr").css({"width" : hrWidth});
}

//button links
function fixCorners() {
	$("A.btn-d-blue").corner("round 3px cc:#FFFFFF");		//dark blue button
	$("A.btn-l-blue").corner("round 3px cc:#FFFFFF");		//light blue button
	$("A.btn-blue").corner("round 3px cc:#FFFFFF");			//blue button
	$("A.btn-grey").corner("round 3px cc:#FFFFFF");			//grey button
	/* DOESNT WORK WITH SUBMIT BUTTONS!!!
	$("INPUT.btn-d-blue").corner("round 3px cc:#FFFFFF");			//dark blue submit button
	$("INPUT.btn-l-blue").corner("round 3px cc:#FFFFFF");			//light blue submit button
	$("INPUT.btn-blue").corner("round 3px cc:#FFFFFF");			//blue submit button
	$("INPUT.btn-grey").corner("round 3px cc:#FFFFFF");			//grey submit button
	*/
}

//add width to cornered buttons
function updateWidth(elem) {
	var widthToUpdate = $(elem).outerWidth();
	widthToUpdate = parseInt(widthToUpdate) - parseInt(20);
//	alert(widthToUpdate);
	$(elem).css({
		"width" : widthToUpdate
	});
}


//opt-in & opt-out of registration fields
function optIns() {
	$(".form-check LABEL INPUT.checkbox").click(function() {
		if ($("INPUT#" + this.id + " [checked]")) {	// If checked
			$("#opt-out-" + this.id).toggle();		//show the hidden div
		}
	});
}

//expanded opt-in & opt-out for manage-details page
function expandOptIns() {
	var chkPost = $("INPUT#postcomms").attr("checked");
	var chkPhone = $("INPUT#phonecomms").attr("checked");
	var chkEmail = $("INPUT#emailcomms").attr("checked");
//	alert("post: " + chkPost + ". phone: " + chkPhone + ". email: " + chkEmail + "");
	if (chkPost == true) {
		$("#opt-out-postcomms").show();
	}
	if (chkPhone == true) {
		$("#opt-out-phonecomms").show();
	}
	if (chkEmail == true) {
		$("#opt-out-emailcomms").show();
	}
}

//to be used when an overlay is required to scroll vertically
function fixOverlayScroll() {
	$("HTML").css({"overflow-y" : "scroll"});
}

//expanding menu
//used in blue boxes
function accordionList() {
	$("UL.expanding LI").hover(
		function(){
			$("LI P.desc").hide();
			$("LI#" + this.id + " P.desc").show();
		},
		function(){
		}
	);
}

//using a jquery slider as a horizontal scrollbar
function handleSliderChange(e, ui) {
  var maxScroll = $("#deckplan").attr("scrollWidth") - $("#deckplan").width();
  $("#deckplan").animate({ scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}

function handleSliderSlide(e, ui) {
  var maxScroll = $("#deckplan").attr("scrollWidth") - $("#deckplan").width();
  $("#deckplan").attr({scrollLeft: ui.value * (maxScroll / 100) });
}

//deckplan overlay- show/hide notes
function deckplanNotes() {
	$("A#show-notes").click(function(){
		$("#notes-to-show").show();
	})
	$("A#hide-notes").click(function(){
		$("#notes-to-show").hide();
	})
}

//expand/contract [show more/show less] text panels
function showMore() {
	$("P A.show-more").toggle(function() {
		$("DIV.show-more-text").hide();
		$("P A.show-more").html("Show more");
		$("DIV#text-" + this.id).show();	
		$("P A#" + this.id).html("Show less");
		$("P A#" + this.id).attr({title: "Show less"});
	}, function() {
		$("DIV#text-" + this.id).hide();		
		$("P A.show-more").html("Show more");
		$("P A#" + this.id).attr({title: "Show more"});
		$("P A#" + this.id).html("Show more");
	});	
}

//eg: elemWidth("#banner-title H1");
function elemWidth(elem) {
	alert($(elem).outerWidth());
}

//banner anim function
function getQuerystringParams() {
	//get querystring values
	var ShipName, DeckName, ConfigName
	ShipName = $.query.get("ShipName");
	DeckName = $.query.get("DeckName");
	ConfigName = $.query.get("ConfigName");
	
//	alert("ship: " + ShipName + " deck: " + DeckName + " config: " + ConfigName);

	$("INPUT#ShipName").val(ShipName);	//populate hidden input with ShipName
//	alert($("INPUT#ShipName").val());
	
//	$("#title H1 SPAN#ShipTitle").append(ShipName);	//populate title with ShipName
	
//	alert("val: " + $("SELECT#DeckName OPTION").val() + " deck: " + DeckName);
	// add selected="selected" attribute to selected <option>
	if ($("SELECT#DeckName OPTION").val() == DeckName) {
//		alert("deck: " + DeckName);
		$("SELECT#DeckName OPTION").attr({"selected":"selected"})
	}	
//	alert(DeckName);
	// == DeckName {
//		$("#DeckName OPTION").append(" selected=\"selected\"");
//	}
	
	
}

/*
//Booking Engine sliders
//usuage: any page with RHS search facility
//price slider
function priceSlider() {
	$("#slider-price").slider({
		range: true,
		values: [10000,30000],
		min: 10000,
		max: 100000,
		step: 10000,
		slide: function(event, ui) {
			$("#slider-price-from").val(ui.values[0]);
			$("#slider-price-to").val(ui.values[1]);
		}
	});
	$("#slider-price-from").val($("#slider-price").slider("values", 0));
	$("#slider-price-to").val($("#slider-price").slider("values", 1));
	$("#slider-price").css({"display" : "inline"});
	$("#slider-price-info").css({"display" : "inline"});
	$("#slider-price-markers").css({"display" : "inline"});
	$("#slider-price-select").css({"display" : "none"});
}
//sleep slider
function sleepSlider() {
	$("#slider-sleeps").slider({
		range: true,
		values: [2,4],
		min: 2,
		max: 8,
		step: 2,
		slide: function(event, ui) {
			$("#slider-sleeps-from").val(ui.values[0]);
			$("#slider-sleeps-to").val(ui.values[1]);
		}
	});
	$("#slider-sleeps-from").val($("#slider-sleeps").slider("values", 0));
	$("#slider-sleeps-to").val($("#slider-sleeps").slider("values", 1));
	$("#slider-sleeps").css({"display" : "inline"});
	$("#slider-sleeps-info").css({"display" : "inline"});
	$("#slider-sleeps-markers").css({"display" : "inline"});
	$("#slider-sleeps-select").css({"display" : "none"});
}

//Booking Engine Calendar
function interactiveCalendar(elementID, brand) {
	$("#" + elementID).datepicker({
		showOn: "both", 
		buttonImage: "images/" + brand +"/calendar.gif",
		buttonImageOnly: true,
		altField: "#" + elementID,
		altFormat: "dd/mm/yy", 
		prevText: "&laquo;&laquo;", 
		nextText: "&raquo;&raquo;"
	});
}

//show banner buttons
//usage: any page with animated banner area
function showBannerButtons() {
	$(".banner-slide-up").css({"display" : "inline"}); 
	$(".banner-slide").css({"display" : "inline"}); 
}

//banner anim function
function bannerDetect() {
	//get querystring value
	var render;
	render = $.query.get("panel-to-show");
	//hide all banners
	$("#banner-gallery").hide();
	$("#banner-video").hide();
	$("#banner-view").hide();
	$("#banner-plan").hide();
	//hide gallery elements
	$("#gallery-thumbs").hide();
	$("#gallery-desc P").hide();
	//show banner spec'd in querystring
	$("#banner-" + render).css({"display" : "block"});
	//additional gallery banner animations
	if (render == "gallery") {
		$("#gallery-desc P#desc-gallery1").show();
		$("#banner-gallery IMG#banner-gallery1").show();
		$("#gallery-thumbs").show("slide", { direction: "down" }, 1500);
		setTimeout('$("#desc-gallery1").show("slide", { direction: "down" }, 1000);', 500); 			
	}
}

//video player
//usage: any banner section containing video
//function params:
//				layerID = id of element to use as video player (usually an anchor tag <a>)
//				brand = brand to be used (css/images etc) for player controls
//				progressColor = progress bar (of 'played' video) color 
//				bufferColor = progress bar background/buffer color
//				buttonColor = player button color
//				buttonOverColor = player button hover color
//examples:
//				flowPlayer("banner-video-movie", "belong", "02A9BE", "81D4DF", "0059A2", "81D4DF");
//				flowPlayer("banner-video-movie", "haven", "02A9BE", "81D4DF", "0059A2", "0059A2");
//				flowPlayer("banner-video-movie", "exclusive", "02A9BE", "81D4DF", "0059A2", "0059A2");
//				flowPlayer("banner-video-movie", "lodge", "02A9BE", "81D4DF", "0059A2", "0059A2");
function flowPlayer(layerID, brand, progressColor, bufferColor, buttonColor, buttonOverColor) {
	flowplayer(layerID, "flowplayer/flowplayer-3.0.7.swf", { 
	    plugins: { 
		   controls: { 
		        // location of the plugin 
		        url: "flowplayer.controls-3.0.4.swf", 
		        // display properties such as size, location and opacity 
				width: 423,
				height: 32,
		        left: 20, 
		        top: 210,  
		        opacity: 0.7,  
		        // controlbar colors
		        backgroundGradient: 'none', 
				autoHide: "always",
		        timeColor: "#FFFFFF", 
				durationColor: "#ffffff",
				bufferGradient: "none",
				sliderColor: "#000000",
				sliderGradient: "none",
				volumeSliderColor: "#000000",
				volumeSliderGradient: "none",
				progressGradient: "none",
				timeBgColor: "#555555",
				//branded content
		        background: "url(images/" + brand + "/flowplayer-gradient.gif) top left repeat-x",
				progressColor: "#" + progressColor +"",
				bufferColor: "#" + bufferColor +"",
				buttonColor: "#" + buttonColor +"",
				buttonOverColor: "#" + buttonOverColor +"",
				//buttons
		        all: false, 
		        play: true, 
				stop: true,
				time: true,
		        scrubber: true, 
		        // tooltips
		        tooltips: { 
		            buttons: true
		        } 
		    } 
	    }  
	});
}

//animated banners for NON-lightbox pages
function pageBanners() { 
	$(".banner-slide-up A").click(function(){
		//hide all banners
		$("#banner-slides").hide();
		$("#banner-photos").hide();
		$("#banner-video").hide();
		$("#banner-view").hide();
		//hide banner elements
		$("#banner-slides IMG").show();
		$("#banner-video-movie").hide();
		$("#banner-video-options").hide();
		//hide link buttons
		$(".banner-slide-up").hide();
		//show selected banner
		$("#banner-" + this.id).show("slide", { direction: "down" }, 1500); 			//show gallery banner
		//additional video animations
		if (this.id == "video") {
			$("#banner-video-loading").attr({"src": "images/preloader.gif"});
			$("#banner-video-loading").show();
			setTimeout('$("#banner-video-loading").hide();', 1600);
			setTimeout('$("#banner-video-options").show();', 1600);
			setTimeout('$("A#banner-video-movie").show();', 1600);
		}
		setTimeout('$(".banner-slide-up").show();', 1500);
	});	
}

//banner slides animation
//usage: any banner with slides enabled
function bannerSlides(slideLayer, slideHeight) {
	$("#"+ slideLayer + "").innerfade({ 
		speed: 5000, 
		timeout: 8000, 
		type: "random_start", 
		containerheight: slideHeight 
	});
}

//animated banners for overlay/lightbox pages
function overlayBanners() {
	$(".banner-slide-up A").click(function(){
		//hide all banners
		$("#banner-gallery").hide();
		$("#banner-video").hide();
		$("#banner-view").hide();
		$("#banner-plan").hide();
		//hide banner elements
		$("#gallery-thumbs").hide();
		$("#gallery-desc P").hide();
		$("#banner-video-movie").hide();
		$("#banner-video-options").hide();
		//hide link buttons
		$(".banner-slide-up").hide();
		//if gallery banner
		if (this.id == "gallery") {
			$("#gallery-desc P#desc-gallery1").show();
			$("#gallery-thumbs A").removeClass("active");
			$("#gallery-thumbs A#gallery1").addClass("active");
			$("#gallery-thumbs").show("slide", { direction: "up" }, 1500);
			$("#banner-gallery IMG").hide();
			$("#banner-gallery IMG#banner-gallery1").show();
			$("#banner-gallery").show("slide", { direction: "down" }, 1500);
			setTimeout('$("#desc-gallery1").show("slide", { direction: "down" }, 1000);', 500); 			
		} else if (this.id == "video") {
			$("#banner-video-loading").attr({"src": "images/preloader.gif"});
			$("#banner-video-loading").show();
			$("#banner-video").show("slide", { direction: "down" }, 1500);
			setTimeout('$("#banner-video-loading").hide();', 1600);
			setTimeout('$("#banner-video-options").show();', 1600);
			setTimeout('$("A#banner-video-movie").show();', 1600);
		} else {
			// else show banner based on link id selected
			$("#banner-" + this.id).show("slide", { direction: "down" }, 1500);
		}
		setTimeout('$(".banner-slide-up").show();', 1500);
	});
}

//overlay thumbnail gallery
//usage: overlay/thickbox pages with thumbnail-driven image gallery
function bannerGallery() { 
	$("#gallery-thumbs A").click(function(){
		$("#gallery-thumbs A").removeClass("active"); 		//remove all highlights
		$(this).addClass("active");							//highlight thumb - active css
		$("#gallery-desc P").hide();									//hide all descs
		$("#desc-" + this.id).show();						//show desc
		$("#banner-gallery IMG").hide();				//hide all banners
		$("IMG#banner-" + this.id).show();				//show banner
	});
}

//overlay specification tabs
//usage: overlay specs details
function propertySpecs() { 
	$("#spec UL LI A").click(function(){
		$("#spec UL LI A").removeClass("active"); 		//remove all highlights
		$(this).addClass("active");								//highlight tab - active css
		$("#show-features").hide();								//hide all divs
		$("#show-finance").hide();								//hide all divs
		$("#show-key-points").hide();							//hide all divs
		$("#info DIV#show-" + this.id).show();				//show div
	});
}

*/

//init of default functions to be run on EVERY page:
$(document).ready(function() {


});


function getFeaturedCruises(pageQuery) {
    $('#featuredCruises').load('/ajaxFeaturedCruises.aspx?' + pageQuery + ' #target', function() {
        sIFR.replace(praxis, { selector: '#right h2', css: '.sIFR-root {color: #5D5853;}', wmode: 'transparent' });
    });
}

function getWishList() {
    $('#wishList').load('/ajaxWishList.aspx #target', function() {
        sIFR.replace(praxis, { selector: '#right h2', css: '.sIFR-root {color: #5D5853;}', wmode: 'transparent' });
    });
}

function getViewedCruises() {
    $('#viewedCruises').load('/ajaxViewedCruises.aspx #target', function() {
        sIFR.replace(praxis, { selector: '#right h2', css: '.sIFR-root {color: #5D5853;}', wmode: 'transparent' });
    });
}