﻿var currentPage=1;
var numPages=3;

var map=null;
var tempMapData=new Array();
var currentAccomodationPage=0;
var isAccomodationSearching=false;
var accomodationSearchDelayID=null;
var py=0;
var scrollTimerID=null;

var accomodationShapeLayer=null;
var eventShapeLayer=null;
var poiShapeLayer=null;
var holidayPlanerShapeLayer=null;

var lastHighlightedPinID=null;
var lastHightlightedImageIndex=null;
var animationSourceControl=null;
var currentOnDemandID=null;
var popupShape=null;
var eventSortType=0;
var eventResultType='c';
var poiSortType=0;
var poiResultType='c';
var selectedRoomType="";
var selectedAccomodationType="";
var selectedMaxPrice = "";
var scaleUpDetailImages = true;


function GetWindowWidth(){var width=0;if(typeof(window.innerWidth)=='number'){width=window.innerWidth;}else if(document.documentElement&&document.documentElement.clientWidth){width=document.documentElement.clientWidth;}else if(document.body&&document.body.clientWidth){width=document.body.clientWidth;}if(!width||width<100){width=100;}return width;}
function GetWindowHeight(){var height=0;if(typeof(window.innerHeight)=='number'){height=window.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){height=document.documentElement.clientHeight;}else if(document.body&&document.body.clientHeight){height=document.body.clientHeight;}if(!height||height<100){height=100;}return height;}


function NextPage(button)
{
	var oldPage=currentPage;
	if (currentPage<numPages)
	{
		currentPage++;
		SetPage(oldPage,currentPage,true);
	}
	
	$("#btnPreviousPage").attr("class","WizardButton");
	$("#btnNextPage").attr("class",(currentPage==numPages  ? "WizardButtonDisabled" : "WizardButton"));
	ChangePageHeader();
}


function PreviousPage(button)
{
	var oldPage=currentPage;
	if (currentPage>1) 
	{
		currentPage--;
		SetPage(oldPage,currentPage,true);
	}
	$("#btnPreviousPage").attr("class",(currentPage==1 ? "WizardButtonDisabled" : "WizardButton"));
	$("#btnNextPage").attr("class","WizardButton");
	ChangePageHeader();
}


function ChangePageHeader()
{
	$("#tablePageHeaderTab1").attr("class",currentPage==1 ? "tablePageHeaderTabsTabSelected" : "tablePageHeaderTabsTab");
	$("#tablePageHeaderTab2").attr("class",currentPage==2 ? "tablePageHeaderTabsTabSelected" : "tablePageHeaderTabsTab");
	$("#tablePageHeaderTab3").attr("class",currentPage==3 ? "tablePageHeaderTabsTabSelected" : "tablePageHeaderTabsTab");
	$("#tablePageHeaderTab11").attr("class",currentPage==1 ? "tablePageHeaderTabsTabMSelected" : (currentPage==2 ? "tablePageHeaderTabsTabM" : "tablePageHeaderTabsTabM2"));
	$("#tablePageHeaderTab21").attr("class",currentPage==2 ? "tablePageHeaderTabsTabMSelected" : (currentPage==3 ? "tablePageHeaderTabsTabM" : "tablePageHeaderTabsTabM2"));
}


function SetPageAbs(newPage)
{

	if ($("#tablePageHeaderTabs").attr("disabled")==true) return;

	SetPage(currentPage,newPage,true);
	currentPage=newPage;
	$("#btnPreviousPage").attr("class",(currentPage==1 ? "WizardButtonDisabled" : "WizardButton"));
	$("#btnNextPage").attr("class","WizardButton");
	
	if(typeof(CustomChangePageHeader)=="function")
		CustomChangePageHeader();
	else
		ChangePageHeader();
}

function SetPage(oldPage,newPage,bAnim)
{
	PageChanging(oldPage,newPage);

	if (bAnim)
	{
		$("#btnPreviousPage").attr("disabled",true);
		$("#btnNextPage").attr("disabled",true);
		$("#divPageContentPage" + oldPage).fadeOut("fast",
			function()
			{
				$("#divPageContentPage" + newPage).fadeIn("fast",
					function()
					{
					$("#btnPreviousPage").attr("disabled",false);
					$("#btnNextPage").attr("disabled",false);
					$("#divPageContentPage" + newPage).css("filter","");
					PageChanged(oldPage,newPage);
					}
					);
			}
			);
	}
	else
	{
	for(i=1;i<=numPages;i++) $("#divPageContentPage" + i).css("display", (i==currentPage ? "" : "none"));
	}

}

// called BEFORE the new page is displayed
function PageChanging(oldPage, newPage)
{
	if (oldPage==3)
		if (AjaxControlToolkit.ValidatorCalloutBehavior._currentCallout!=null)
			AjaxControlToolkit.ValidatorCalloutBehavior._currentCallout.hide();
}


// called AFTER the new page is displayed
function PageChanged(oldPage,newPage)
{
	if (oldPage==1 && newPage==2)
	{
		GetHighestAvailableBookingOption();
		DoFindEvents(0,0);
		DoFindPois(0,0,true);

		DoFindFlights();
	}
	
	if (newPage==3)
	{
		$("#" + txtFirstNameID).focus();
		Page_ClientValidate();
	}
	
	$("#PageFooterMapButton").css("display", newPage==2 ? "inline" : "none");
	
}

function Body_OnLoad()
{
	if (typeof(selectedCities)!="undefined")
	{
		CheckSelectedCities();
	}
		SetPage(0,1,false);
	ReloadHolidayPlaner();
	
	GetAvailableRoomTypes();
	$("#AccomodationDropdownButton").dropdown({menu:"AccomodationDropdownMenu", label:"AccomodationDropdownLabel", dropdownbuttonclicked:AccomodationDropdownButtonClicked, selectionchanged:AccomodationSelectionChanged});
	$("#PriceDropdownButton").dropdown({menu:"PriceDropdownMenu", label:"PriceDropdownLabel", selectionchanged:PriceSelectionChanged});
	
	CustomBody_OnLoad();

	if (typeof(directSearch)!="undefined")
	{
		if (directSearch==true)
			SetPageAbs(2);
	}
}

function RoomDropDownClicked()
{
	ClearAccomodationTimer();
}

function RoomSelectionChanged(value)
{
	selectedRoomType = value;
	DoFindAccomodations(true,0,true);
}


function PriceSelectionChanged(value)
{
	selectedMaxPrice=value;
	DoFindAccomodations(true,0,true);
}


function ShowSubPage(page, subPage)
{
	for(i=1;i<10;i++)
	{
		$("#Page" + page + "SubPage" + i).css("display", (i==subPage ? "" : "none"));
		var o=document.getElementById("Page" + page +"SubPageTab" + i);
		if (o!=null) o.className=(i==subPage ? "verticalTabSelected" : "verticalTab");	
	}
}

function StartDateSelected(o)
{
	// if the selecteddate is in the past,
	// set selecteddate to today
	var today= new Date();
	if (o._selectedDate<today)
	{
		o.set_selectedDate(today);
		o.set_visibleDate(today);
	}

	if (o._selectedDate>=endDate)
	{
		endDate = AddDays(o._selectedDate,1);
		var ext = $find("txtEndDate_CalendarExtender");
		ext.set_selectedDate(endDate);
		ext.set_visibleDate(endDate);
	}

	startDate = o._selectedDate;
	
	var nights=parseInt((endDate-startDate) / (1000 * 60 * 60 * 24));
	$("#"+lblNightsClientID).html(nights);
	$("#" + txtRailStartDateID ).val((startDate.getDate()) + "." + (startDate.getMonth()+1) + "." + (startDate.getFullYear()));
}




function EndDateSelected(o)
{
	if (o._selectedDate<startDate)
	{
		var tomorrow= AddDays(new Date(),1);
		if (o._selectedDate<tomorrow)
		{
			o.set_selectedDate(tomorrow);
			o.set_visibleDate(tomorrow);
		}
		
		startDate = AddDays(o._selectedDate,-1);
		var ext = $find("txtStartDate_CalendarExtender");
		ext.set_selectedDate(startDate);
		ext.set_visibleDate(startDate);
	}
	endDate = o._selectedDate;
	
	var nights=parseInt((endDate-startDate) / (1000 * 60 * 60 * 24));
	$("#"+lblNightsClientID).html(nights);

}


function AccomodationTypeChanged(o)
{
	GetAvailableRoomTypes();
	DoFindAccomodations(true,0,true);
	
}

function GetAvailableRoomTypes()
{	
	$("#RoomDropdownButton").attr("class","RoomDropdownButtonLoading");
	var selCities=GetSelectedCities();
	if (selCities=="") return;
	var s="Cities=" + selCities +
				"&AccomodationTypes=" +  selectedAccomodationType;
	$.post("AvailableRoomTypes.ashx",s,ReceiveAvailableRoomTypes);
}

function ReceiveAvailableRoomTypes(arg)
{
	var ids=arg.split('^');
	

	$("#RoomDropdownMenu").html("");
	var c=1;
	for(var i=0;i<ids.length;i+=2)
	{
		var s="<li xvalue='" + ids[i] + "'  >" + ids[i+1] + "</li>";
		$("#RoomDropdownMenu").append(s);
	}

	$("#RoomDropdownButton").dropdown({menu:"RoomDropdownMenu", label:"RoomDropdownLabel", dropdownbuttonclicked:RoomDropDownClicked, selectionchanged:RoomSelectionChanged});
	$("#RoomDropdownButton").attr("class","RoomDropdownButton");
	

	selectedRoomType="";

}



function ReceiveAvailableRoomTypesOld(arg)
{
	var ids=arg.split('^');
	var cboRoomTypes = document.getElementById("cboRoomType");

	cboRoomTypes.options.length=1;
	var c=1;
	for(var i=0;i<ids.length;i+=2)
	{
		var option = new Option(ids[i+1],ids[i],false);
		option.onmouseover="alert('');";
		cboRoomTypes.options[c]=option;
		c++;
	}
}

function ContainsID(ids, value)
{
	for(var i=0;i<ids.length;i++)
		if (ids[i]==value) return true;
	
	return false;
}

function GetSelectedCities()
{
	cbCities=document.getElementsByName("City");
	var cities="";
	for(var i=0;i<cbCities.length;i++)
	{
		if (cbCities[i].checked)
			cities+=(cities!="" ? "," : "") + cbCities[i].value;
	}
	
	return cities;
}

function ClearAccomodationTimer()
{
	if (accomodationSearchDelayID!=null)
		window.clearTimeout(accomodationSearchDelayID);

}

function AccomodationDropdownButtonClicked()
{

}

function AccomodationSelectionChanged(value)
{
	selectedAccomodationType=value;	
	GetAvailableRoomTypes();
	DoFindAccomodations(true,0,true);
}

function DoFindAccomodations(parametersChanged,page,showAnimation)
{
	if (accomodationSearchDelayID!=null)
		window.clearTimeout(accomodationSearchDelayID);
	accomodationSearchDelayID=window.setTimeout("DoFindAccomodations2(" + parametersChanged + "," + page + "," + showAnimation + ")", 2000);
}


function DoFindAccomodations2(parametersChanged,page,showAnimation)
{
	EnableAccomodationParameterControls(false);

	var featureString="";
	
	featureString = CustomGetFeatures();
	
	var queryString="Typ=acc&ParameterChanged=" +  parametersChanged + 
								"&Cities=" + GetSelectedCities() +
								"&ResultType=" + accomodationResultType +
								"&AccomodationTypes=" + selectedAccomodationType +
								"&RoomTypes=" + selectedRoomType +
								"&MaxPrice=" + selectedMaxPrice +
								"&Bookable=" + $("input[name='rbgBookable']:checked").val() +
								"&StartDate=" + startDate.toLocaleString() + 
								"&EndDate=" + endDate.toLocaleString() +
								"&SortType=" + accomodationSortType +
								"&Adults=" + $("#cboAdults").val() +
								"&Children=" + $("#cboChildren").val() +
								"&AgeChild1=" + $("#cboAgeChild1").val() +
								"&AgeChild2=" + $("#cboAgeChild2").val() +
								"&AgeChild3=" + $("#cboAgeChild3").val() +
								"&AgeChild4=" + $("#cboAgeChild4").val() +
								"&AccomodationName=" + $("#txtAccomodationName").val() + 
								"&Features=" + featureString;
								
	
	if (typeof(page)!="undefined")
	{
		queryString+="&Page=" + page;
		currentAccomodationPage=page;
	}
	else
		if (parametersChanged==false)
			queryString+="&Page=" + currentAccomodationPage;
 
	$.post("Accomodations.ashx",queryString,ReceiveAccomodations);
	
	$("#tableAccomodationSearchOptions").attr("disabled",true);
	
	if (showAnimation==true)
			$("#Page2SubPage1SubPage1").html("<div class='LoadingPanel'><img src='images/ajax-loader.gif'/><br/>" + $("#AccomodationSearchInProgressLabel").val() + "</div>");
}

function ReceiveAccomodations(arg)
{

	var rows=arg.split("^");
	$("#AccomodationPagerContainer").html(rows[0]);
	$("#Page2SubPage1SubPage1").html(rows[2]);
	$("#tableAccomodationSearchOptions").attr("disabled",false);
	if (rows[1]!="NOUPDATE") UpdateMap(rows[1],0);
	EnableAccomodationParameterControls(true);
}

function SetAccomodationResultType(typ)
{
	$("#buttonAccomodationResultTypeCompact").attr("class",typ=='c' ? "ViewCompactButtonSelected" : "ViewCompactButton");
	$("#buttonAccomodationResultTypeStandard").attr("class",typ=='s' ? "ViewStandardButtonSelected" : "ViewStandardButton");
	$("#buttonAccomodationResultTypeDetailed").attr("class",typ=='d' ? "ViewDetailedButtonSelected" : "ViewDetailedButton");
	$("#buttonAccomodationResultTypeMap").attr("class",typ=='m' ? "ViewDetailedButtonSelected" : "ViewDetailedButton");
	accomodationResultType=typ;
	if (typ=='m')
	ShowMap();
	else
	DoFindAccomodations2(false,currentAccomodationPage,false);
}

function SetAccomodationSortType(typ)
{
	accomodationSortType=typ;
	DoFindAccomodations2(false,currentAccomodationPage,false);
}

function SetEventSortType(typ)
{
	eventSortType=typ;
	DoFindEvents(0,0,false);
}

function SetEventResultType(typ)
{
	$("#buttonEventResultTypeCompact").attr("class",typ=='c' ? "ViewCompactButtonSelected" : "ViewCompactButton");
	$("#buttonEventResultTypeStandard").attr("class",typ=='s' ? "ViewStandardButtonSelected" : "ViewStandardButton");
	$("#buttonEventResultTypeDetailed").attr("class",typ=='d' ? "ViewDetailedButtonSelected" : "ViewDetailedButton");

	eventResultType=typ;
	DoFindEvents(0,0,false,false);
}


function SetPoiSortType(typ)
{
	poiSortType=typ;
	DoFindPois(0,0,false);
}

function SetPoiResultType(typ)
{
	$("#buttonPoiResultTypeCompact").attr("class",typ=='c' ? "ViewCompactButtonSelected" : "ViewCompactButton");
	$("#buttonPoiResultTypeStandard").attr("class",typ=='s' ? "ViewStandardButtonSelected" : "ViewStandardButton");
	$("#buttonPoiResultTypeDetailed").attr("class",typ=='d' ? "ViewDetailedButtonSelected" : "ViewDetailedButton");

	poiResultType=typ;
	DoFindPois(0,0);
}


function ShowAccomodationResultTypeMenu(e){$("#AccomodationResultTypeMenu").css("display","block");}
function hidemenu(e){$("#AccomodationResultTypeMenu").css("display","none");}
function PreviousImage(imageID,labelID)
{
	var currentImage;

	var o=$("#" + imageID);
	currentImage=o.attr("currentImageIndex");
	var imageUrls=$("#" + imageID).attr("Images").split(",");
	currentImage--;
	if (currentImage<1) currentImage=imageUrls.length;
	$("#" + imageID).attr("currentImageIndex",currentImage)
	$("#" + imageID).attr("src",imageUrls[currentImage-1])

	$("#" + labelID).html(currentImage + "/" + imageUrls.length);
}

function NextImage(imageID,labelID)
{
	var currentImage;
	var o=$("#" + imageID);
	currentImage=o.attr("currentImageIndex");
	var imageUrls=$("#" + imageID).attr("Images").split(",");

	currentImage++;
	if (currentImage>imageUrls.length) currentImage=1;
	$("#" + imageID).attr("src","");
	$("#" + imageID).attr("currentImageIndex",currentImage);
	$("#" + imageID).attr("src",imageUrls[currentImage-1]);
	$("#" + labelID).html(currentImage + "/" + imageUrls.length);
}

function SelectAllCities(checked)
{
	var cbs=document.getElementsByName("City");

	for(var i=0;i<cbs.length;i++)
		cbs[i].checked=checked;
}


function DoFindEvents(dummy,page,showAnimation, parameterChanged)
{

	if (typeof(parameterChanged)=="undefined")
		parameterChanged=true;
		
	var c=document.getElementsByTagName("input");
	var categories="";
	var categoryString="";
	for(var i=0;i<c.length;i++)
	{
		if (c[i].id.substring(0,4)=="cat_"&&c[i].value==1)
		{
			categories+=c[i].name.substring(4) + ",";
			var o=document.getElementById("catd_" + c[i].id.substring(4));
			categoryString+=o.innerText+ ", ";
		}
	}
	if (categoryString.length>45) categoryString=categoryString.substring(0,45) + "...";
	$("#btnShowCategories").html(categoryString);
	
	categories = GetCategoryIDs("EVCID");
	var s="Typ=evt&Page=" + page +
				"&StartDate=" + startDate.toLocaleDateString() +
				"&EndDate="+ endDate.toLocaleDateString() +
				"&Categories=" + categories +
				"&ObjectType=0" +
				"&SortType=" + eventSortType +
				"&Cities=" + GetSelectedCities() +
				"&ResultType=" + eventResultType +
				"&ParameterChanged=" + parameterChanged;

	$.post("Handler/Events.ashx",s,ReceiveEvents);
	
	//if(showAnimation==true)
	$("#Page2SubPage2SubPage1").html("<img src='images/ajax-loader.gif' style='position:relative;left:280px;top:150px' />");
}

function ReceiveEvents(arg)
{
	var rows=arg.split("^");
	$("#EventPagerContainer").html(rows[0]);
	UpdateMap(rows[1],1);
	$("#Page2SubPage2SubPage1").html(rows[2]);
	//if (rows[1]!="") UpdateMap(rows[1]);
}

function ReloadHolidayPlaner(){$.post("HolidayPlaner.ashx","Action=None",ReceiveHolidayPlaner);}
function AddToHolidayPlaner(id,subItemID, itemType,sourceElement)
{
if (sourceElement!=undefined)
{
	$(sourceElement).attr("disabled",true);
	var path=$(sourceElement).attr("src");
	path=path.replace("BasketIcon.gif","BasketIconDisabled.gif");
	$(sourceElement).attr("src",path);
	animationSourceControl=sourceElement;
	PlayAnimation("AddToHolidayPlanerAnimation");
}
var s="Action=Add&ItemID=" + id + "&SubItemID=" + subItemID + "&ItemType=" + itemType;
$.post("HolidayPlaner.ashx",s,ReceiveHolidayPlaner);



}
function ReceiveHolidayPlaner(arg)
{
var o=arg.split("^");
UpdateMap(o[0],3);
$("#HolidayPlanerPanel").html(o[1]);
}
function DeleteFromHolidayPlaner(id){$.post("HolidayPlaner.ashx","Action=Delete&ItemID=" + id ,ReceiveHolidayPlaner);}
function HolidayPlanerStartScrollDown(){scrollTimerID=window.setInterval("HolidayPlanerScrollDown()",10);}
function HolidayPlanerEndScrollDown(){window.clearTimeout(scrollTimerID);}
function HolidayPlanerScrollDown()
{
	var height=$("#HolidayPlanerInnerPanel").height();
	if (height<358) return;
	if (300+Math.abs(py)<height)
	{
		py-=8;
		$("#HolidayPlanerInnerPanel").css("top",py + "px");
	 }
}


function HolidayPlanerStartScrollUp(){scrollTimerID=window.setInterval("HolidayPlanerScrollUp()",10);}
function HolidayPlanerEndScrollUp(){window.clearTimeout(scrollTimerID);}
function HolidayPlanerScrollUp()
{
	if (py<0)
	{
		py+=8;
	$("#HolidayPlanerInnerPanel").css("top",py + "px");
	}
}


function GetDetails(sourceControl,id,itemType)
{
	$.post("Handler/Details.ashx","ItemID=" + id + "&ItemType=" + itemType, ReceiveDetails);
	animationSourceControl=sourceControl;
	PlayAnimation("OpenDetailPanelAnimation");
	$("#PageFooter").fadeOut("fast");
	$("#PageHeader").attr("disabled","disabled");
	$("#tablePageHeaderTabs").attr("disabled","disabled");
	$("#LanguagePanel").fadeOut("fast");

	// hide the searchoptions/sorting table for ie 6 compatibility	
	$(".tableAccomodationSearchOptions2").css("display","none");
}

function HideDetails()
{
	HideCustomInfoBox();
	$("#PageFooter").fadeIn("fast");
	$("#PageHeader").attr("disabled","");
	$("#tablePageHeaderTabs").attr("disabled","");
	PlayAnimation('CloseDetailPanelAnimation');
	$("#LanguagePanel").fadeIn("fast");
	
	$(".tableAccomodationSearchOptions2").css("display","");
}

function ReceiveDetails(arg)
{
	$("#DetailPanelBody").html(arg);
}

function EnableAccomodationParameterControls(bEnable)
{
	$("#Page1SubPage1").attr("disabled",bEnable ? "" : "-1");
	$("#Page1SubPage2").attr("disabled",bEnable ? "" : "-1");
	$("#Page1SubPage3").attr("disabled",bEnable ? "" : "-1");
	$("#tableAccomodationSearchOptions").attr("disabled",bEnable ? "" : "-1");
	$("#AccomodationDropdownButton").attr("disabled",bEnable ? "" : "-1");
	$("#AccomodationDropdownLabel").attr("disabled",bEnable ? "" : "-1");
	$("#RoomDropdownButton").attr("disabled",bEnable ? "" : "-1");
	$("#RoomDropdownLabel").attr("disabled",bEnable ? "" : "-1");
	$("#PriceDropdownButton").attr("disabled",bEnable ? "" : "-1");
	$("#PriceDropdownLabel").attr("disabled",bEnable ? "" : "-1");
	$("#PageFooterPreviousPageButton").attr("disabled",bEnable ? "" : "-1");
	$("#PageFooterNextPageButton").attr("disabled",bEnable ? "" : "-1");
	$("#txtAccomodationName").attr("disabled",bEnable ? "" : "-1").css("background-color",bEnable ? "white" : "#cccccc");
	
}

function ShowEmailPanel()
{
	$("#txtRecipientEmail").val($("#" + txtEmailClientID).val());
	$("#EmailPanelPage1").css("display","");
	$("#EmailPanelPage2").css("display","none");
	$("#EmailPanelPage3").css("display","none");
	$("#EmailPanel").fadeIn("slow");
}

function SendPlanerPerEmail()
{
	var s="MailAdress=" + $("#txtRecipientEmail").val();
	$.post("SendPlanerPerEmail.ashx",s,ReceiveSendPlanerPerEmail);
	$("#EmailPanelPage1").css("display","none");
	$("#EmailPanelPage2").css("display","");
	$("#EmailPanelPage3").css("display","none");
}

function ReceiveSendPlanerPerEmail()
{
	$("#EmailPanelPage1").css("display","none");
	$("#EmailPanelPage2").css("display","none");
	$("#EmailPanelPage3").css("display","");

	window.setTimeout("$('#EmailPanel').fadeOut('slow');",5000);
}

function ShowMap()
{
	$("#MapContainer").show();
	$("#PageFooter").fadeOut("fast");
	$("#PageHeader").attr("disabled","disabled");
	$("#tablePageHeaderTabs").attr("disabled","disabled");
	
	if (map==null) window.setTimeout("DelayGetMap();",500);
}

function HideMap()
{
	HideCustomInfoBox();
	$('#MapContainer').hide();
	$("#PageFooter").fadeIn("fast");	
	$("#PageHeader").attr("disabled","");
	$("#tablePageHeaderTabs").attr("disabled","");
}



function ToggleShapeLayer(layerID, element)
{
	switch(layerID)
	{
		case 0:if (element.checked) accomodationShapeLayer.Show();else accomodationShapeLayer.Hide();break;
		case 1:if (element.checked) eventShapeLayer.Show();else eventShapeLayer.Hide();break;
		case 2:if (element.checked) poiShapeLayer.Show();else poiShapeLayer.Hide();break;
		case 3:if (element.checked) holidayPlanerShapeLayer.Show();else holidayPlanerShapeLayer.Hide();break;
	}
}



function DelayGetMap()
{

	try 
	{
		// If the browser is Firefox get the version number
		var ffv ="";
		var ffn = "Firefox/"
		var ffp = navigator.userAgent.indexOf(ffn);
		if (ffp != -1)
		{
			isFirefox=true;
			ffv = parseFloat(navigator.userAgent.substring(ffp + ffn.length));
		 }

		if (ffv >= 1.5)
			Msn.Drawing.Graphic.CreateGraphic=function(f,b) { return new Msn.Drawing.SVGGraphic(f,b) }

		map = new VEMap('divMap');
		map.LoadMap(new VELatLong(0,0),2);
		map.SetScaleBarDistanceUnit(VEDistanceUnit.Kilometers);
		
		accomodationShapeLayer=new VEShapeLayer();
		eventShapeLayer=new VEShapeLayer();
		poiShapeLayer=new VEShapeLayer();
		holidayPlanerShapeLayer = new VEShapeLayer();
		
		
		map.AddShapeLayer(accomodationShapeLayer);
		map.AddShapeLayer(eventShapeLayer);
		map.AddShapeLayer(poiShapeLayer);
		map.AddShapeLayer(holidayPlanerShapeLayer);
	
	
		
		map.AttachEvent("onmousedown",Map_OnMouseDown);
		map.AttachEvent("onmouseover",Map_OnMouseOver);
		
		window.setTimeout("DelayGetMap2()",100);
	}
	catch(err)
	{
	alert(err.message);
		if (le < 30)
		{
			le++;
			setTimeout("DelayGetMap()",1000);
		}
		else
		{
		alert("Site is busy.");
		}
	} 
}   


function DelayGetMap2()
{
	if (typeof(CustomAfterMapCreated)=="function")
		CustomAfterMapCreated();
		
	if (tempMapData[0]!=null)		UpdateMap(tempMapData[0],0);
	if (tempMapData[1]!=null)		UpdateMap(tempMapData[1],1);
	if (tempMapData[2]!=null)		UpdateMap(tempMapData[2],2);
	if (tempMapData[3]!=null)		UpdateMap(tempMapData[3],3);
	$("#MapInitPanel").fadeOut("slow");
	$("#MapLegendPanel").show();
}

function UpdateMap(coords, layerID)
{

	if (map==null) 
	{
		tempMapData[layerID]=coords;
		return;
	}
	
	switch(layerID)
	{
		case 0:accomodationShapeLayer.DeleteAllShapes();break;
		case 1:eventShapeLayer.DeleteAllShapes();break;
		case 2:poiShapeLayer.DeleteAllShapes();break;				
		case 3:holidayPlanerShapeLayer.DeleteAllShapes();break;					
	}

	if (coords=="") return;
	var pins= new Array();

	var coords2=coords.split('´');

	for(var i=0;i<coords2.length;i+=5)
	{
		try
		{
			var pin = new VEShape(VEShapeType.Pushpin,new VELatLong(coords2[i+1],coords2[i+2]));
			pin.Id=coords2[i];
			//pin.SetTitle(coords2[i+3]);
			
			switch(layerID)
			{
				case 0:pin.SetCustomIcon("images/nc/icons/68.gif");pin.Id="ACC" + coords2[i];accomodationShapeLayer.AddShape(pin);break;
				case 1:pin.SetCustomIcon("images/nc/icons/38.gif");pin.Id="EVT" + coords2[i];eventShapeLayer.AddShape(pin);break;
				case 2:
				pin.SetCustomIcon("images/nc/icons/"+coords2[i+4]+".gif");
				pin.Id="POI" + coords2[i];
				poiShapeLayer.AddShape(pin);
				break;
				case 3:pin.SetCustomIcon("images/smg/i/-1.gif");pin.Id= coords2[i];holidayPlanerShapeLayer.AddShape(pin);break;
			}

			pins.push(pin);
		}catch(e)
		{alert("Fehler, Daten :" + coords2[i] + ", " + coords2[i+1] + ","  + coords2[i+2] + "   " +  e.message);}
	}

	map.SetMapView(pins);
	tempMapData[layerID]=null;
}

function ShowInMap(id)
{

	ShowMap();
	window.setTimeout("HighlightPushpin('" + id + "',true,true);",1000);

}


function GetShapeById(shapeLayer,id)
{
	if (shapeLayer.Annotations==null) return null;
	var l=shapeLayer.Annotations.length;
	for(var i=0;i<l;i++)
		if (shapeLayer.Annotations[i].Id==id) return shapeLayer.Annotations[i];
	return null;
}

function CenterAndZoomShape(id)
{
	switch(id.substring(0,3))
	{
		case "ACC":shape=GetShapeById(accomodationShapeLayer,id);break;
		case "POI":shape=GetShapeById(poiShapeLayer,id);break;
		case "EVT":shape=GetShapeById(eventShapeLayer,id);break;
	}
	
	var latlongs=shape.GetPoints();
	map.SetMapView(latlongs);
	
}

function HighlightPushpin(id, bHighlight, bSetMapView)
{
	if (bHighlight==true&&lastHighlightedPinID!=null)
		HighlightPushpin(lastHighlightedPinID,false,false);
		
	lastHighlightedPinID=id;
	//lastHighlightedPinImageIndex=imageIndex;
	var shape;
	var prefix=id.substring(0,3);

	switch(prefix)
	{
		case "ACC":shape=GetShapeById(accomodationShapeLayer,id);break;
		case "POI":shape=GetShapeById(poiShapeLayer,id);break;
		case "EVT":shape=GetShapeById(eventShapeLayer,id);break;
	}
	imageIndex=-1;
	if (shape!=null)
	{
		switch(prefix)
		{
			case "ACC":shape.SetCustomIcon(bHighlight==true ? "images/smg/i/68h.gif" : "images/smg/i/68.gif");break;
			case "POI":shape.SetCustomIcon("<img src='images/i/baw/" + imageIndex + ".gif' " + (bHighlight==true ? "style='filter:Invert'" : "") + "/>");;break;
			case "EVT":shape.SetCustomIcon("<img src='images/i/baw/" + imageIndex + ".gif' " + (bHighlight==true ? "style='filter:Invert'" : "") + "/>");;break;
		}
	
		shape.SetZIndex(bHighlight==true ? 5000:1000);
		shape.Redraw(true,true,true,true);
		
		if (bSetMapView==true)
		{
			var latlongs=shape.GetPoints();
			map.SetMapView(latlongs);
		}
	}

}

function GetCategoryIDs(key)
{
	var categories="";
	var $o;
	$("input").each(function()
	{
		$o=$(this);
		 
		if ($o.attr(key)!=undefined)
			if($o.attr("checked")!=undefined)
			categories+=$o.attr(key) + ",";
	});
	
	

	return categories;
}

function DoFindPois(dummy, page,showAnimation)
{

var c=document.getElementsByTagName("input");
	var categories="";
	var categoryString="";
	for(var i=0;i<c.length;i++)
	{
		if (c[i].id.substring(0,4)=="cat_"&&c[i].value==1)
		{
			categories+=c[i].name.substring(4) + ",";
			var o=document.getElementById("catd_" + c[i].id.substring(4));
			categoryString+=o.innerText+ ", ";
		}
	}

	//$("#btnShowPoiCategories").html(categoryString);
	categories = GetCategoryIDs("POCID");
	var s="Page=" + page +
				"&StartDate=" + startDate.toLocaleDateString() +
				"&EndDate="+ endDate.toLocaleDateString() +
				"&Categories=" + categories +
				"&ObjectType=1" +
				"&SortType=" + poiSortType +
				"&Cities=" + GetSelectedCities() +
				"&ResultType=" + poiResultType;

	$.post("Handler/Pois.ashx",s,ReceivePois);
	
	//if (showAnimation==true)
		$("#Page2SubPage3SubPage1").html("<img src='images/ajax-loader.gif' style='position:relative;left:280px;top:150px' />");
}

function ReceivePois(arg)
{

	var rows=arg.split("^");
	$("#PoiPagerContainer").html(rows[0]);
	UpdateMap(rows[1],2);
	$("#Page2SubPage3SubPage1").html(rows[2]);
}



// Move an element directly on top of another element (and optionally
// make it the same size)
function Cover(bottom, top, ignoreSize)
{
	var location;

	if (bottom.style.position!="absolute")
		location=GetAbsolutePosition(bottom);
	else
		location = Sys.UI.DomElement.getLocation(bottom);

    top.style.position = 'absolute';
    top.style.top = location.y + 'px';
    top.style.left = location.x + 'px';
    if (!ignoreSize)
    {
        top.style.height = bottom.offsetHeight + 'px';
        top.style.width = bottom.offsetWidth + 'px';
    }
}
        
function DoFindFlights()
{
	var queryString="StartDate=" + startDate.toLocaleString() + 
									"&EndDate=" + endDate.toLocaleString() +
									"&StartAirport=" + $("#cboStartAirport").val() +
									"&DestinationAirport=" + $("#cboDestinationAirport").val();
								
	$.post("Flights.ashx",queryString,ReceiveFlights);
	$("#Page2SubPage6SubPage1").html("<img src='images/ajax-loader.gif' style='position:relative;left:170px;top:100px' />");

}

function ReceiveFlights(arg)
{
	$("#Page2SubPage6SubPage1").html(arg);
}

function Map_OnMouseDown(e)
{

	try
	{
		var latlong=map.PixelToLatLong(new VEPixel(e.mapX,e.mapY));
		//rlat=latlong.Latitude;
		//rlon=latlong.Longitude;
	}catch(ex)
	{}

	if (e.elementID!=null)
	{
		popupShape=map.GetShapeByID(e.elementID);
		var s="ID=" + popupShape.Id;
		$.post("InfoBoxDetails.ashx",s, ReceiveInfoBoxDetails);
		map.HideInfoBox();
	}
	else
	HideCustomInfoBox();
}
function Map_OnMouseOver(e){}
function ReceiveInfoBoxDetails(arg)
{
	if (arg!="")
	var a=arg.split('´');
		//if (a[0]==currentOnDemandID)
			if (popupShape!=null) ShowCustomInfoBox(popupShape,a[1]);
			
	map.HideInfoBox();
}

function ShowCustomInfoBox(shape,text)
{

// set content
var boxBody=document.getElementById("CustomInfoBoxBody");
boxBody.innerHTML=text;

//calculate if the infobox appears to the left or to the right
o=document.getElementById("divMap");
var width=o.offsetWidth;
var latlong=shape.GetPoints();
var px=map.LatLongToPixel(latlong[0]);
var goLeft=true;
var goUp=true;
if (px.x<(width/2)) goLeft=false;
//(px + ", " + width/2);
//("goleft:"+goLeft);

var box=document.getElementById("CustomInfoBox");
var beak=document.getElementById("CustomInfoBoxBeak");

box.style.display="block";
if (goLeft==true)
{
	box.style.left=px.x-32+map.GetLeft()-box.offsetWidth+"px";
	beak.style.left=px.x+map.GetLeft()-32 + "px";
	beak.className="CustomInfoBoxBeakLeft";
}
else
{
	box.style.left=px.x+32+map.GetLeft()+"px";
	beak.style.left=px.x+map.GetLeft()+16+"px";
	beak.className="CustomInfoBoxBeakRight";
}

// calculate if its vertically centered or top aligned
var y=px.y+map.GetTop()-(box.offsetHeight/2);
if (y+box.offsetHeight>GetWindowHeight())
	y=px.y+map.GetTop()-box.offsetHeight+32;
box.style.top=y+"px";
beak.style.top=px.y+map.GetTop()-16+"px";

// 3d mode
if (map.GetMapMode() == VEMapMode.Mode3D) 
{
var shim=document.getElementById("myCustomShim1");
shim.style.left=box.offsetLeft+"px";
shim.style.top=box.offsetTop+"px";
shim.width=box.offsetWidth+"px";
shim.height=box.offsetHeight+"px";
shim.style.display="";
}
if (map.GetMapMode() != VEMapMode.Mode3D) beak.style.display="block";

}

function HideCustomInfoBox()
{
if (map==null) return;
var o=document.getElementById("CustomInfoBox");
o.style.display="none";

o=document.getElementById("CustomInfoBoxBeak");
o.style.display="none";

if (map.GetMapMode() == VEMapMode.Mode3D) 
{
o=document.getElementById("myCustomShim1");
o.style.display="none";
}
}


function GetAbsolutePosition(element)
{

	var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent)
	{
		var tmp = GetAbsolutePosition(element.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}


function ChangeLanguage(language)
{
	$("#TranslateInProgressPanel").show();	
	$("#DisablePanel").css("width",GetWindowWidth() + "px").css("height",GetWindowHeight() + "px").show();

	$.post("Language.ashx","Language=" + language,ReceiveTranslations);
	GetAvailableRoomTypes();
	

}

function ReceiveTranslations(arg)
{

	var a=arg.split('^');
	
	if (a[0]=="PageTitle")
		document.title=a[1];
		
	for(var i=0;i<a.length;i+=2)
	{
		var o=$("#" + a[i]);
		var nodeName=o.attr("nodeName");
		switch(nodeName)
		{
			case "INPUT":o.val(a[i+1]);break;
			case "IMG":
				o.attr("alt",a[i+1]);
				o.attr("title",a[i+1]);
				break;
			case "DIV":
				o.attr("title",a[i+1]);	
			break;
			
			default:o.html(a[i+1]);break;
		}
			
	}
	
	if (currentPage==2)
	{
		DoFindAccomodations2(false,currentAccomodationPage,false);
		DoFindEvents(0,0);
		DoFindPois(0,0);
	}
		
	$("#DisablePanel").hide();
	$("#TranslateInProgressPanel").hide();
}

function ShowHotelClientPanel()
{
	var e;
	
	if (window.event)
	{
		e=window.event;
		
		if (e.ctrlKey==true)
		{
			window.open("http://www2.dtg.de/ferateladmin/uk/Login.aspx?gmdenrD99777778&user=200037500&kenn=123&target=hc", "Hotelclient", "width=1024,height=768,location=yes,scrollbars=yes,menubar=yes,resizable=yes");
			return;
		}
	}
	
	$("#HotelClientContainer").show();
	$("#HotelClientIframe").attr("src","http://www2.dtg.de/ferateladmin/uk/Login.aspx?gmdenrD99777778&user=200037500&kenn=123&target=hc");
	
}

function HideHotelClientPanel()
{
	$("#HotelClientContainer").hide();
}

function OpenHolidayPlaner()
{
	var contactDataFilled=true;
	if ($("#" + txtFirstNameClientID).val()=="") contactDataFilled=false;
	if ($("#" + txtLastNameClientID).val()=="") contactDataFilled=false;
	if ($("#" + txtStreetClientID).val()=="") contactDataFilled=false;
	if ($("#" + txtCityClientID).val()=="") contactDataFilled=false;
	if ($("#" + txtZipcodeClientID).val()=="") contactDataFilled=false;
	if ($("#" + txtEmailClientID).val()=="") contactDataFilled=false;
	
	
	if (contactDataFilled==false)
	{
		alert("Bitte füllen Sie zuerst das Kontaktformular aus.");
		SetPageAbs(3);
		return;
	}
	
	window.open("PlanerPdf.ashx","Bla","width=1024,height=768,location=yes,scrollbars=yes,menubar=yes,resizable=yes");
}

function HideSendPerEmailPanel()
{
	$("#EmailPanel").fadeOut("slow");
}


function GetHighestAvailableBookingOption()
{
	$.post("HighestAvailableBookingOption.ashx","Cities=" + GetSelectedCities(),ReceiveHighestAvailableBookingOption);
}

function ReceiveHighestAvailableBookingOption(arg)
{
	var highestBookableOption = parseInt(arg);
	var selectedValue = $("input[@name='rbgBookable']:checked").val();
	
	$("#rgbBookable1").attr("disabled", highestBookableOption <1 ? true : false);
	$("#rgbBookable2").attr("disabled", highestBookableOption <2 ? true : false);
	
	if (selectedValue>highestBookableOption)
	{
		$("#rgbBookable" + highestBookableOption).attr("checked",true);
	}
	
	DoFindAccomodations2(true,0,true);
}




function SelectAppointmentTab(el,nTabs)
{
	var tab;
	var o;

	try
	{
		for(var ii=1;ii<nTabs+1;ii++)
		{
			tab =document.getElementById("Tab" + ii);
			o=tab.childNodes[0];
			o=o.childNodes[0];
			o=o.childNodes[0];
			o.className="TabLeftEdge";
			o=tab.childNodes[0];
			o=o.childNodes[0];
			o=o.childNodes[1];
			o.className="TabMain";
			o=tab.childNodes[0];
			o=o.childNodes[0];
			o=o.childNodes[2];
			o.className="TabRightEdge";
			o=document.getElementById("Tab" + ii + "Page");
			o.style.display="none";
		}

		o=el.childNodes[0];
		o=o.childNodes[0];
		o=o.childNodes[0];
		o.className="TabLeftEdgeSelected";
		o=el.childNodes[0];
		o=o.childNodes[0];
		o=o.childNodes[1];
		o.className="TabMainSelected";
		o=el.childNodes[0];
		o=o.childNodes[0];
		o=o.childNodes[2];
		o.className="TabRightEdgeSelected";
		o=document.getElementById(el.id + "Page");
		o.style.display="";
	}
	catch(e)
	{
		alert(e.message);
	}

}


var selectedTab=null;//document.getElementById("<% Response.Write(firstAppointmentID); %>");



function AppointmentSelected(ev)
{

	if (!ev) ev=window.event;
	try
	{
		if (selectedTab!=null)
			selectedTab.className="unselectedAppointmentTab";
		selectedTab=ev.target?ev.target:ev.srcElement;
		selectedTab.className="selectedAppointmentTab";
		var o=document.getElementById("cellPage");
		o.innerHTML="<div style='text-align:center;width:100%;'><br/><br/><br/><br/><br/><img src='images/ajax-loader.gif'/><br/><br/></div>";
		ResizeTabPage();
		GetAppointments(selectedTab.id);
	}
	catch(e)
	{
	}
}

function GetAppointments(id)
{
	$.post("OpeningTimes.ashx","ID=" + id,ReceiveAppointments);
}
function ReceiveAppointments(arg)
{
	var cellPage=document.getElementById("cellPage");
	cellPage.innerHTML=arg;
	ResizeTabPage();
}

function ResizeTabPage()
{
	try
	{
	
		var tablePage=document.getElementById("tablePage");
		var tabControl=document.getElementById(listAppointmentsClientID);

		if (tablePage.offsetHeight<tabControl.offsetHeight)
			tablePage.style.height=tabControl.offsetHeight+16;

		var o2=document.getElementById("divFiller");
		o2.style.height=354-tabControl.offsetHeight+2;
	
	}
	catch(e)
	{
		alert("Resize:" + e.message);
	}
}





var accomodationSortType=8;
var accomodationResultType="s";


function CitySelectionChanged()
{
 
	var enabled=false;
	var checkboxes=new Array(	"#cbBaltrum","#cbLangeoog","#cbNorderney",
														"#cbBorkum","#cbSpiekeroog","#cbJuist",
														"#cbWangerooge","#cbButjadingen","#cbNeuharlingersiel",
														"#cbCuxhaven","#cbNordenNorddeich","#cbVarelDangast",
														"#cbNordholzSpieka","#cbDornumersiel","#cbOtterndorf",
														"#cbEsensBensersiel","#cbWangerland","#cbKrummhoern",
														"#cbWursterLand","#cbBremerhaven","#cbWilhelmshaven","#cbEmden");

	for(var i=0;i<checkboxes.length;i++)
	{
		if ($(checkboxes[i]).attr("checked")==true)
		{
			enabled=true;
			break;
		}
 }
	$("#PageFooterNextPageButton").attr("disabled",!enabled);
}


function CheckSelectedCities()
{
	var cbs=document.getElementsByName("City");
	for(var i=0;i<cbs.length;i++)
	{
		$(cbs[i]).attr("checked",ArrayContains(selectedCities,$(cbs[i]).val()));
	}

}

function ArrayContains(arr,value)
{
	for(var i=0;i<arr.length;i++)
		if (arr[i]==value) return true;
		
	return false;
}

function SelectCities(value,bSelect)
{
	switch(value)
	{
	case 1:
		var cbs=document.getElementsByName("City");
		for(var i=0;i<cbs.length;i++) cbs[i].checked=true;
		break;
		
	case 2:
		$("#cbBaltrum").attr("checked",bSelect);
		$("#cbLangeoog").attr("checked",bSelect);
		$("#cbNorderney").attr("checked",bSelect);
		$("#cbBorkum").attr("checked",bSelect);
		$("#cbSpiekeroog").attr("checked",bSelect);
		$("#cbJuist").attr("checked",bSelect);
		$("#cbWangerooge").attr("checked",bSelect);
		break;
		
	case 3:
		$("#cbButjadingen").attr("checked",bSelect);
		$("#cbNeuharlingersiel").attr("checked",bSelect);
		$("#cbCuxhaven").attr("checked",bSelect);
		$("#cbNordenNorddeich").attr("checked",bSelect);
		$("#cbVarelDangast").attr("checked",bSelect);
		$("#cbNordholzSpieka").attr("checked",bSelect);
		$("#cbDornumersiel").attr("checked",bSelect);
		
		$("#cbOtterndorf").attr("checked",bSelect);
		$("#cbEsensBensersiel").attr("checked",bSelect);
		$("#cbWangerland").attr("checked",bSelect);
		$("#cbKrummhoern").attr("checked",bSelect);
		$("#cbWursterLand").attr("checked",bSelect);
		
	break;
	
	case 4:
		//$("#cbBremerhaven").attr("checked",bSelect);
		$("#cbWilhelmshaven").attr("checked",bSelect);
		$("#cbEmden").attr("checked",bSelect);
		break;
	}
	
	
	CitySelectionChanged();
}




function CustomBody_OnLoad()
{
		//eventShapeLayer.Hide();
		//poiShapeLayer.Hide();
}

function CustomGetFeatures()
{
	return "";
}