var brand = "";  // brandname set by brandspecific js
var media_gallery = {};

 /* init */
jQuery(document).ready(function() {

	topnav.init();
	

	// only execute on specific pages
	if ($(".box-book").length > 0) {
	}

	$(document).bind("touchstart", function(e){
		$(".infoOverlay").remove();
	});
	
	
	bgscale.init();

	formHandler.init();

	// init info overlays
	$(".hotelDetails .makeInfoOverlay").bind("mouseover", function(e) {
		infoOverlay.show($(this), 'hotelpageinfo', $(this).find(".overlaydata").html());
	});

	
	// init gallaries
	$(".mediagallery").each(function() {
		media_gallery[$(this).attr("id")] = $("#"+$(this).attr("id")).media_gallery();
		media_gallery[$(this).attr("id")].init({
			id:$(this).attr("id")
		});
		
	});

	/* syntax text
	doExtend.init();
	*/
/*	
	$("#background").html("");
	$("div.hide").removeClass("hide");
	*/
	
});

var bgscale = {

	init: function() {
		$("#background").data("dheight",$(document).height());
		
		if ($(document).height() > 1201) {
			$("#background").css("height",$(document).height()+30);
		}
		
		$(window).resize(function() {
			var w = $("#background").width();
			if (w < 1280) {
				$("#background img").css({"width":"1280","margin-left":-((1280-w)/2)});
			} else {
				$("#background img").css({"width":"100%","margin-left":"0"});
				$("#background").css("left","0");
			}
			
		});
		$(window).resize();
	}

}


/* top-navigation - dynamic dropdown */
var topnav = {
	init: function() {
//		alert('ontouchstart' in document.documentElement);
		if ($.browser.msie && parseInt($.browser.version) <= 8) {
			$(".box-topnav .subwrap ul").addClass("ie");
		}

		$(".box-topnav .subwrap").each(function() {
			$(this).parent("li").click(function(e) {
				e.stopPropagation(); 

				$(".box-topnav .subwrap").hide();

				if ($(".box-topnav").data("opensub") != this) {
					$(".subwrap", this).show();
					$(".box-topnav").data("opensub",this);
				} else {
					$(".box-topnav").data("opensub","");
				}
			});

		
/*
		$(".box-topnav ul.sub").each(function() {
			$(this).parent("li").click(function(e) {
				e.stopPropagation(); 

				$(".box-topnav ul.sub").hide();
				
				if ($(".box-topnav").data("opensub") != this) {
					$("ul.sub", this).show();
					$(".box-topnav").data("opensub",this);
				} else {
					$(".box-topnav").data("opensub","");
				}
			});
*/	
			/* HOVER CURRENTLY DISABLED
			$(this).parent("li").hover(function() {
				$("ul.sub", this).show();
			}, function() {
				$("ul.sub", this).hide();
			});
			*/

		});
		
/*		
		$('html').click(function() { 
			$(".box-topnav ul.sub").hide();
			$(".box-topnav").data("opensub","");
		});
*/
		$('html').click(function() { 
			$(".box-topnav .subwrap").hide();
			$(".box-topnav").data("opensub","");
		});


	}
}

/* COMMON FUNCTIONALITY */
var common = {


	platformEvent: function(evt) {
		switch (evt) {
			case "onmouseover":
				return ('ontouchstart' in document.documentElement) ? "ontouchstart" : "onmouseover";
				break;

			case "onmouseout":
				return ('ontouchstart' in document.documentElement) ? "ontouchstart" : "onmouseout";
				break;
				
			case "click":
				return ('ontouchstart' in document.documentElement) ? "ontouchstart" : "onclick";
				break;

		}
	},
	

	altSortVal: function(node)  {
	/*
	Alternative sort parameters (usually for tablesorter jquery plugin)
	Will return alternative sort value if located in <span class="altsort"></span> in the same element as the displayed information
	*/

		if ($(".altsort", node).length > 0) {
			return $(".altsort", node).html();
		} else {
			return $(node).html();
		}
	},

	/*
		tab-navigation. initialize various elements: link, dropdown, megadropdown
	*/
	tabnav: function() {

		if ($(".box-tabs2").length > 0) {
			/* mega dropdown */
			$("body").delegate(".megadropdown", "mouseenter", function(e){
				$(this).parent().dequeue();
				$(".megadrop", this).css({"top":$(this).height(),"left":-$(this).position().left}).slideDown('fast'); /* "display":"block" */
				$("a", this).addClass("sel");
			});

			$("body").delegate(".megadropdown", "mouseleave", function(e){
				$(this).parent().dequeue().delay(500).queue(function() {
					$(".megadrop", this).hide();
					$("a", this).removeClass("sel");
				});
			});

			/* dropdown */
			$("body").delegate(".tabdropdown", "mouseenter", function(e){
				$(this).parent().dequeue();
				$(".tabdrop", this).css({"top":$(this).height(),"display":"block"});
				$("a", this).addClass("sel");
			});

			$("body").delegate(".tabdropdown", "mouseleave", function(e){
				$(this).parent().dequeue().delay(500).queue(function() {
					$(".tabdrop", this).hide();
					$("a", this).removeClass("sel");
				});
			});
		}
	},
	
	
	/*
		toggle display of 2 elements and toggler-element
	*/
	toggleDisplay: function(o1, o2, obj, param) {
		if ($(obj).parent(".innernav").data("animating") != "true") {
			$(obj).parent(".innernav").data("animating", "true");

		var h = 0;
		if (param && param.height) {
			h = param.height;
		}
		
			$(o1).fadeTo('fast',0,function() {
				$(obj).closest(".content").animate({
					height:h
				},400, function() {
					$(o1).hide();
					$(o2).fadeTo('fast', 1, function() {
						if ($.browser.msie) {
							this.style.removeAttribute('filter');
						}
					});
				});
			});
			

			$(obj).fadeTo('fast', 0, function() {
				var o = $(obj).parent().find(".link-hidden");
				$(o).fadeTo('slow', 1, function() {
					$(this).removeClass("link-hidden").addClass("link-shown").show();
					$(obj).removeClass("link-shown").addClass("link-hidden").hide();
					if ($.browser.msie) {
						this.style.removeAttribute('filter');
					}
					$(obj).parent(".innernav").data("animating", "false");
				});
				
			});
		}
	}
}



/*
	booking module frontpage
*/
var bookbox = {
	init: function() {
		var ft = $("form[name='booking'] input[name='flighttype']").val();
		
		if (ft != "") {
			bookbox.setTab(ft);
		} else {
			bookbox.setTab("package");
			$("form[name='booking'] input[name='flighttype']").val("package");
			
		}
		bookbox.tabs();
	},
	
	tabs: function() {
		$(".box-book .tab a").each(function() {
			$(this).click(function() {
				bookbox.setTab($(this).attr("class").split(" ")[0]);
			});
		
		});
	},
	
	// which tab to show
	setTab: function(o) {
		$(".box-book .tab").removeClass("sel");
		var sel = "";
		
		if (typeof(o) == "string") {
			$(".box-book .tab ."+o).parent("td").addClass("sel");
			$("form[name='booking'] input[name='flighttype']").val(o);
			sel = o;
		} else {
			$(o).parent("td").addClass("sel");
			sel = $(o).attr("class");
			$("form[name='booking'] input[name='flighttype']").val($(o).attr("class").split(" ")[0]);
		}
		
		bookbox.setElements(sel);
	},
	
	// show/hide form elements according to selected flighttype
	setElements: function(sel) {
		$("#booking_destination").show();
		$("#booking_duration").show();

		if (sel == "flightonly") {
			$("#booking_destination").hide();
			$("#booking_country a").html(sFlightOnlyDefault);
		}
		if (sel == "roundtrip") {
			$("#booking_duration").hide();
		}
		if (sel == "oneway") {
			$("#booking_duration").hide();
			$("#booking_destination").hide();
		}
	}
	
}

/*
var bookboxext = {
	bookboxext: function() {	

	}
}
var doExtend = {
	init: function() {
		$.extend(bookbox, bookboxext);
	}
}
*/






var infoOverlay = {
	
	show: function(obj, cls, str) {

		$(".infoOverlay").remove();
		if ($.browser.msie && parseInt($.browser.version) <= 8) {
			cls += " ie";
		} else {
			cls += " corners";
		}
		
		$("body").append("<div class=\"infoOverlay\"><div class=\"infoOverlayInner "+cls+"\">"+str+"<div class=\"ic ic_infobox-arrow\"><span></span></div></div>");
		var layerW = $(".infoOverlay").outerWidth();
		var layerH = $(".infoOverlay").outerHeight()+7; // adding arrow in bottom

		$(".infoOverlay").css({"top":$(obj).offset().top-layerH, "left":$(obj).offset().left-layerW/2+$(obj).outerWidth()/2});
		$(".infoOverlay .ic_infobox-arrow").css("left",layerW/2-8);
		
		$(obj).mouseleave(function() {
			$(".infoOverlay").remove();
		});

		$(document).bind(common.platformEvent("click"), function(e) {
			$(".infoOverlay").remove();
			$(this).unbind(common.platformEvent["click"]);
		});
		
		//check right margin
		var diff = $(document).width()-($(".infoOverlay").position().left+layerW+20);
		if (diff < 0) {
			$(".infoOverlay").css("left",$(".infoOverlay").position().left+diff);
			$(".infoOverlay .ic_infobox-arrow").css("left",layerW/2-8-diff);
		}
		var diff = $(".infoOverlay").position().left;
		if (diff < 0) {
			$(".infoOverlay").css("left",$(".infoOverlay").position().left-diff+10);
			$(".infoOverlay .ic_infobox-arrow").css("left",layerW/2-8+diff);
		}
		// check left margin (todo)
		
		$(".infoOverlay").css("visibility","visible");

		if ($.browser.msie) {
			$(".infoOverlay").each(function() {
				this.fireEvent('onmove');
			});
		}

	}

}

var imageOverlay = {
	
	/*
		obj 		= element to activate mouse-over/out. jQuery syntax like "#wrap .picture"
		url 		= ref to image
		loader		= html/ text to be displayed while loading image
	*/
	show: function(obj, url, pos, loader) {
		$(".imageOverlay").remove();
		if (!loader){ loader="Loading...";}
		$("body").append("<div class=\"imageOverlay\"><span class=\"loader\">"+loader+"</span><img></div>");
		var layerW = $(".imageOverlay .loader").outerWidth();
		var layerH = $(".imageOverlay .loader").outerHeight();

		$(".imageOverlay").css({"top":$(obj).offset().top-layerH/2, "left":$(obj).offset().left+$(obj).outerWidth()+20});

		$(obj).mouseleave(function() {
			$(".imageOverlay").remove();
		});

		
		$(document).bind(common.platformEvent("click"), function(e) {
			$(".imageOverlay").remove();
			$(this).unbind(common.platformEvent["click"]);
		});

		
		$(".imageOverlay").css("visibility","visible");
		
		$(".imageOverlay img").load(function() {
			$(".imageOverlay .loader").remove();
			$(this).show();
			layerH = $(".imageOverlay").height();
			$(".imageOverlay").css({"top":$(obj).offset().top-layerH/2});
			$(this).css("visibility", "visible");
		});
		
		// assign src after load event to make sure it fires in case of cached images (IE)
		$(".imageOverlay img").attr("src",url);
		
	}

}

/* Last minute */
function showLM(obj, cls) {
	$(".box-offers .content").css("display","none");
	$(".box-offers .content."+cls).css("display","block");
	$(".box-offers .hd").removeClass("sel");
	$(obj).addClass("sel");
}


var clickLayer = function() {

	/*
		ref: element making the call
		obj: element to be shown/hidden
		pos: prefered position related to ref [t=top, l=left, r=right, b=bottom, tm=top middle, lm=left middle etc]
	*/
	
	var counter = 0; 		// unique reference to overlay
	var layerdata = [];		// container for all layers
	var arrowheight = 7;	// height of arrow displayed on border
	var currentlayer = ""	// current open layer
	
	var create = function(data) {

		counter++;
		layerdata["layer"+counter] = data.code;
		return "layer"+counter;

	}
//	ref, layer, pos
	var show = function(data) {

		$("#clickLayer").remove();

		var cls = "";
		if ($.browser.msie && parseInt($.browser.version) <= 8) {
			cls += " ie";
		}

		if (currentlayer != data.ref) {
	
			$("body").append('<div id="clickLayer" style="display:none" class="'+cls+'"><div class="clickLayerInner">'+layerdata[data.layer]+'</div></div>');
			var obj = $("#clickLayer");

			var w = $(obj).outerWidth();
			var h = $(obj).outerHeight();

			loc({"ref":data.ref, "w":w, "h":h, "pos":data.pos, "posref":0, "repos":false});
			
			currentlayer = data.ref;
		} else {
			currentlayer = "";
		}
	}

	// pos
	var reloc = function(data) {
		var w = $("#clickLayer").outerWidth();
		var h = $("#clickLayer").outerHeight();
		loc({"ref":data.ref, "w":w, "h":h, "pos":data.pos, "posref":0, "repos":true});
	}
	
	//ref, w, h, pos
	var loc = function(data) {

		var l = 0;
		var t = 0;
		var pos = data.pos.split("-");
		var spaceok = true;

		switch(pos[data.posref]) {
			case "lm":
				l = $(data.ref).offset().left-data.w-10;
				t = $(data.ref).offset().top+$(data.ref).height()/2-data.h/2;
				break;
			case "tm":
				l = $(data.ref).offset().left+$(data.ref).width()/2-data.w/2;
				t = $(data.ref).offset().top-data.h-arrowheight;
				break;
			case "rm":
				l = $(data.ref).offset().left+$(data.ref).width()+10;
				t = $(data.ref).offset().top+$(data.ref).height()/2-data.h/2;
				break;
			case "bm":
				l = $(data.ref).offset().left+$(data.ref).width()/2-data.w/2;
				t = $(data.ref).offset().top+$(data.ref).height()-$(data.ref).outerHeight();
				break;
		}

		/* no space at top? */
		if (t-$(document).scrollTop() < 0 && data.posref+1 < pos.length) {
			loc({"ref":data.ref, "w":data.w, "h":data.h, "pos":data.pos, "posref":data.posref+1 });
			spaceok = false;
		}

		/* outside right margin? */
		if (l+$("#clickLayer").width() > $("#wrap").offset().left+$("#wrap").outerWidth()) {
			l = $("#wrap").offset().left+$("#wrap").outerWidth()-$("#clickLayer").width();
		}
		
		/* wider than wrapper? */
		if ($("#clickLayer").width() > $("#wrap").outerWidth()) {
			l = $("#wrap").offset().left -($("#clickLayer").width()-$("#wrap").outerWidth())/2;
		}
		
		if (spaceok) {
			if ('ontouchstart' in document.documentElement) { 
				$("#clickLayer").css({"left":l,"top":t}).show();
			} else {
				$("#clickLayer").css({"left":l,"top":t}).fadeIn('fast');
			}
			
			if (!data.repos) {
				addArrow(data.ref, pos[data.posref]);
			}
			
			$("#clickLayer").mouseleave(function() {
//				$("#clickLayer").remove();
			});
			
			$("#clickLayer .close").mousedown(function() {
				$("#clickLayer").remove();
				currentlayer = "";
			});
		}
	}
	
	var addArrow = function(ref, pos) {

		switch(pos) {
			case "tm" :
				$("#clickLayer").append('<div class="clickLayerArrow '+pos+'"></div>');
			//	$("#clickLayer").css("padding-bottom",$(ref).outerHeight()+arrowheight);
				$("#clickLayer .clickLayerArrow").css({
					"left" : $(ref).offset().left-$("#clickLayer").offset().left,
					"bottom": parseInt($("#clickLayer").css("padding-bottom"))-arrowheight
				});
				break; 
			
			case "bm":
				$("#clickLayer").css("top",$(ref).offset().top+$(ref).outerHeight()+arrowheight);
				$("#clickLayer .clickLayerArrow").remove();
				break;
		}
	}
	
	return {
		create:create,
		show:show,
		reloc:reloc
	}
}();

var formHandler = {

	init: function() {
	// find dropdown elements and their data class-name
		$(".dropdown.r2").each(function() {
			var cls = $(this).attr("class").split(" ");
			var obj = this;
			$(cls).each(function(key, value) {
				var val = value;
				if (value.indexOf("dd-") != -1) {
					$(obj).click(function() {
						formHandler.showDropdown(obj, val);
					});
				}
			});
		
		});
	},

	createDropdown: function(arr) {
	
		switch (arr["type"]) {
		
		case "adults":
			formHandler.returnAdults(arr);
			break;
		}
				
	
	},
	
/*	
	returnAdults: function(arr) {
		var out = '<div class="dropdown dd-adults">';
		out+= '<a onclick="formHandler.showDropdown2(this, \'adults\')" href="javascript:;" title="2 Vuxna">2 Vuxna</a>';
		out+= '</div>';
		
	  document.write(out);
	},
*/	
	showDropdown: function (obj, type) {
		$("body #activeDropdown").remove();
		var type = type.split("dd-")[1];
		var out = '<div id="activeDropdown" style="position:absolute; z-index:9999999; display:block; left:'+$(obj).offset().left+'px; top:200px; height:300px; width:'+$(obj).width()+'px;">';
		for (t=0; t<formdata[type].length; t++) {
			out += '<a class="item" title="'+formdata[type][t].text+'" href="javascript:;" style="display: block;">'+formdata[type][t].text+'</a>';
		}
		out += '</div>';

		$("body").append(out);
	}

}


/********************
 * Currency handler *
 ********************/
 
function doCurrency(amount) {
	return currency.replace("###", amount);
}


/* image gallery for hotelpage etc */



(function($){	
	$.fn.media_gallery = function() {

		var oData = "";		// json data
		var selected = 0;	// currently shown image
		
		var defaults = {
			thumbwidth:72,
			thumbheight:41,
			topmargin:4,
			rightmargin:4,
			delay:4000,
			speed:400
		}

		var options = {};
		
		var init = function(opt) {
			options = $.extend(defaults, opt); 
			setVars();
		}
		
		var setVars = function() {
			options.width = $("#"+options.id).width();
			options.height = $("#"+options.id).height();

			oData = $("#"+options.id+" .oData").html();
			var data = $.parseJSON(oData);

			for(t=0; t<data.length; t++) {
				data[t]["ref"] = "pic-"+(t+1);
			}

			oData = data;

			$("#"+options.id).append('<div class="counter"><span class="current">1</span> / <span class="total">'+oData.length+'</span></div>');

			initGallery();
		}
		
		var callback = function(cb) {
			var o = $("#"+options.id+" .elm_pic-"+cb["cur-nr"]);
			showitem($(o).attr("class"), o);

		}

		var initGallery = function() {
			/* init gallery */
			LBi_gallery[options.id] = $("#"+options.id+" div.wrap").LBi_gallery({
				type: "fadebg",
				width:options.width,
				height:options.height,
				delay: options.delay,
				speed: options.speed,
				data: oData,
				id: options.id,
				cb_startAnim: media_gallery[options.id].callback,
				autostart: true
			});

			addThumbs();
		}
		
		
		
		var addThumbs = function() {
			var out = '<div class="nav"><div class="left"><a href="javascript:;" class="prev ic ic_nav-left"><span></span></a></div><div class="items"><ul>';
			$(oData).each(function() {
				out += '<li><a href="javascript:;" onclick="media_gallery[\''+options.id+'\'].user(\''+this.ref+'\', this);" class="elm_'+this.ref+'"><img src="'+this.thumb+'"></a></li>';
			});

			out += '</ul></div><div class="right"><a href="javascript:;" class="next ic ic_nav-right"><span></span></a></div></div>';

			$("#"+options.id).append(out);
			$("#"+options.id+" .nav .items ul li:first a").addClass("sel");

			$("#"+options.id+" .nav .items ul").css("width",$(oData).length*(options.thumbwidth+options.rightmargin));

			if ($(oData).length*(options.thumbwidth+options.rightmargin)-options.rightmargin <= $("#"+options.id+" .items").width()) {
				$(".prev, .next").hide();
			}

			bindElements();

			
		}
		
		var user = function(ref) {

			LBi_gallery[options.id].gotoAndStop(ref);
		}
		
		var showitem = function(ref, o) {

			$("#"+options.id+" .nav .items ul a").removeClass("sel");
			$(o).addClass("sel");
	
			selected = parseInt(ref.split("-")[1]);
			
			$("#"+options.id+" .counter .current").html(selected);

			var itemPos = $("#"+options.id+" .nav ul .elm_pic-"+selected).offset().left;

			if (itemPos < $("#"+options.id+" .nav .items").offset().left) {
				$("#"+options.id+" .nav ul").animate({
					left: -$("#"+options.id+" .nav ul .elm_pic-"+selected).position().left
				}, "fast");
			}

			if (itemPos+options.thumbwidth > $("#"+options.id+" .nav .items").width()+$("#"+options.id+" .nav .items").offset().left) {
				$("#"+options.id+" .nav ul").animate({
					left: '-='+(options.thumbwidth+options.rightmargin)
				}, "fast");
			}

			$("#"+options.id+" .nav .prev").removeClass("off");
			$("#"+options.id+" .nav .next").removeClass("off");
			
			if (selected == 1) {
				$("#"+options.id+" .nav .prev").addClass("off");
			}
			
			if (selected == oData.length) {
				$("#"+options.id+" .nav .next").addClass("off");
			}
			
		}
		
		var bindElements = function() {
			jQuery("#"+options.id+" .nav .next").bind('click', function() {
				media_gallery[options.id].nextpic();
			});

			jQuery("#"+options.id+" .nav .prev").bind('click', function() {
				media_gallery[options.id].prevpic();
			});

		}
		
		
		var nextpic = function() {
			if (selected < oData.length) {
				LBi_gallery[options.id].stopIt();
				$("#"+options.id+" .nav .items ul li:eq("+selected+") a").click();
			}
		}

		var prevpic = function() {
			if (selected > 0) {
				LBi_gallery[options.id].stopIt();
				$("#"+options.id+" .nav .items ul li:eq("+(selected-2)+") a").click();
			}
		}
	
//		init();

		return {
			init:init,
			user:user,
			nextpic:nextpic,
			prevpic:prevpic,
			callback:callback
		};

		}
})(jQuery);









/***** AJAX *****/

var xmlHttp

function addToWishList(obj, pageLinkId)
{ 
obj.style.display = "none";
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
	var url="/templates/ajax/AddToWishList.aspx";
	url=url+"?pageLinkId="+pageLinkId;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=addToWishListStateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


function addToWishListStateChanged() 
{ 
if (xmlHttp.readyState==4)
{ 
        // only if "OK"
        if (xmlHttp.status == 200) {
            // ...processing statements go here...
			hideInfoLayer();

			var str = d.getElementById("wishlistcount").getElementsByTagName("a")[0].innerHTML;
			var count = str.split("(")[1].split(" ")[0];
			var start = str.split("(")[0] + "(";
			var end =  ")"; //str.substr(start.length+count.length, str.length);
			count = parseInt(count)+1;
			d.getElementById("wishlistcount").getElementsByTagName("a")[0].innerHTML = start+count+end;

			showInfoLayer("ajaxok", -1, -1, -1);
        } else {
			showInfoLayer("ajaxerror", -1, -1, -1);
        }
	
}
}


function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}


function showPriceSpecification(transportCode,hotelCode,roomCode,departureDate,weeks,resortAirport,adults,children,childAges,infants,campaignCode,campaignNumber,agentLogin,noAddons, obj) {

	jQuery.get("/Templates/ajax/PriceSpecification.aspx",{transportCode: transportCode,hotelCode: hotelCode,roomCode: roomCode,departureDate: departureDate,weeks: weeks,resortAirport: resortAirport,adults: adults,children: children,childAges: childAges,infants: infants,campaignCode: campaignCode,campaignNumber: campaignNumber,agentLogin: agentLogin,noAddons: noAddons}, function(priceSpecHtml, responseStatus){
		bookstep2.tripOverlayHtml(priceSpecHtml, obj);
    }, "html");
}

//old version for hotelpage
function showPriceSpecificationHotelpage(transportCode,hotelCode,roomCode,departureDate,weeks,resortAirport,adults,children,childAges,infants,campaignCode,campaignNumber,agentLogin,noAddons, btn) {
	showDetails(btn, "Loading...");
	jQuery.get("/Templates/ajax/PriceSpecification.aspx",{transportCode: transportCode,hotelCode: hotelCode,roomCode: roomCode,departureDate: departureDate,weeks: weeks,resortAirport: resortAirport,adults: adults,children: children,childAges: childAges,infants: infants,campaignCode: campaignCode,campaignNumber: campaignNumber,agentLogin: agentLogin,noAddons: noAddons}, function(priceSpecHtml, responseStatus){
			showDetails(btn, priceSpecHtml);
    	}, "html");
}

function showMyBooking(dest, bookingno, password) {
	jQuery.get("/Templates/ajax/MyBooking.aspx",{bookingno: bookingno,password: password}, function (str, responseStatus){ showBookingDetails(str, dest); }, "html");
}




function onConfirmBookingValidate(validatorSpan, eventArgs)
{ 
	//alert("onConfirmBookingValidate");
	if (!userConfirmed) {
		eventArgs.IsValid=false;
		showInfoLayer("pleaseconfirm", -1, -1, -1);
	} else {
		showWaitLayer();
		eventArgs.IsValid=true;
	}
}

function showWaitLayerNow(validatorSpan, eventArgs)
{ 
	eventArgs.IsValid=true;
	showWaitLayer();
}




