var exml;

var getRightLangStringInMap = function(v) {
		l = LANG;
		var spc = '~';
		var myRegExp = /~/;
		var matchPos1 = v.search(myRegExp);
		if(matchPos1 == -1) {
			spc = '|';			
		}

		var R = '';
		var part = v.split(spc);
		switch(l) {
			case 'de' : 
				R = part[1];
			break; 
			case 'it' : 
				R = part[0];
			break;
			case 'en' : 
				R = part[3];
			break; 
		}
		if(!R) {
			R = part[0];
		}
		return R;
}

$.fn.accor = function() {
	$(this).each(function() {
			if ($(this).attr('rel') != 'noAct') {
				$(this).find('.accorItem:eq(0)').addClass('accorItemOn');
				$(this).find('.accorItem:gt(0) .accorCont').hide();
			} else {
				$(this).find('.accorItem .accorCont').hide();
			}
			
			$(this).find('.accorLink').click(function() {
				if($(this).parent().hasClass('accorItemOn')) {
					return false;
				}
				$(this).parent().parent().find('.accorCont').slideUp();
				$(this).parent().parent().find('.accorItem').removeClass('accorItemOn');
				$(this).parent().find('.accorCont').slideDown();
				$(this).parent().addClass('accorItemOn');
				return false;
			});		
		
	});
};
$.fn.showHide = function() {
	$(this).each(function() {
		$(this).click(function() {
			$(this).parent().find('div.showHide:eq(0)').slideToggle();
			return false;			
		});
	});
};

$(document).ready(function() {
	/////////////////////////////////////////////////////////////////////
	// 	hideHotelCont
	$('.hideHotelCont').each(function() {
		$(this).find('.hotelC').hide();
		$(this).find('.title').css('cursor','pointer');
		$(this).find('.title').click(function() {
				$(this).parent().find('.hotelC').slideToggle();
				return false;
		});
	});

	/////////////////////////////////////////////////////////////////////
	// tabs
	$('.tabs').each(function() {
		$(this).parent().find('.cont').html('<img src="' + URL_ROOT + 'img/loader.gif" style="position:absolute;margin:5px 0px 0px 5px;display:none;" class="loader"/><div rel="tab0" class="tabCont" style="display:none">'+$(this).parent().find('.cont').html()+'</div>');
		for(var x=1;x<10;x++) {
			$(this).parent().find('.cont').append('<div rel="tab'+x+'" style="display:none" class="tabCont"></div>');
		}
		//$(this).find('li:eq(0)').addClass('on');
		
		if($(this).find('.on').attr('class')) {
			$(this).parent().parent().find('.tabCont:eq(0)').addClass('loaded');
			$(this).parent().parent().find('.tabCont:eq(0)').css('display','block');
			
		}
		$(this).find('a').each(function(i) {
			$(this).attr('rel','tab'+i);
		});
		$(this).find('a').click(function() {
			var Box = $(this).parent().parent().parent();
			var Cont = Box.find('.cont');
			var Loader = Cont.find('.loader');
			var i = $(this).attr('rel');
			if($(this).parent().hasClass('on')) {
				return false;
			}
			
			Box.find('.tabs li').removeClass('on');
			$(this).parent().addClass('on');
			if(!Cont.find('div[rel="'+i+'"]').hasClass('loaded')) {
				Loader.show();
				Cont.find('div[rel="'+i+'"]').load($(this).attr('href'),function() {
					Loader.hide();
					Cont.find('div[rel="'+i+'"]').addClass('loaded');
					Cont.find('div[rel="'+i+'"]').find('.accor').accor();
					TB_init();
					Cont.find('div[rel="'+i+'"]').find('a.showHide').showHide();
					
					if(Cont.find('.loaded').length>1) {
						Cont.find('div[rel^=tab]').slideUp();
					}
					Cont.find('div[rel="'+i+'"]').slideDown();
					if(Cont.find('div[rel="'+i+'"]').find('.hotelMap').attr('class')) {
						var SetMapConf = function(MapOpt) {
							MapBox.jmap('init', {'mapType':'hybrid','mapEnableType' : true,'mapCenter':[MapOpt[1], MapOpt[0]],'mapZoom':16,mapShowjMapsIcon:false});
							var hotelIcon = new GIcon(G_DEFAULT_ICON);
							hotelIcon.image = URL_ROOT+'img/icon-gmaps.png';
					        hotelIcon.shadow = URL_ROOT+'img/icon-gmaps-shadow.png';
					        hotelIcon.iconSize = new GSize(32, 30);
					        hotelIcon.shadowSize = new GSize(32, 30);
					        hotelIcon.iconAnchor = new GPoint(10, 30);
					        //hotelIcon.infoWindowAnchor = new GPoint(9, 2);
							var html = '<h1>'+Cont.parent().parent().find('h2').html()+'</h1>';
							html+= Cont.parent().find('.infos').html();
							html = html.replace(new RegExp("<script(.*)/script>", "g"), "");
							html = '<div style="width:250px;">'+html+'</div>';
							MapBox.jmap('AddMarker', {
													'pointLatLng': [MapOpt[1], MapOpt[0]],
													'pointIcon'  : hotelIcon,
													'pointHTML': html
										});
							
							exml = new EGeoXml("exml", Mapifies.MapObjects.Get(MapBox), showLayer,
									{
										nozoom : true										
									} 
								);
    						exml.parse();
							Cont.find('.actions').fadeIn();
						}
						
						var MapBox = Cont.find('div[rel="'+i+'"]').find('.hotelMap');
						var MapOpt = MapBox.attr('rel').split(':');
						MapOpt[3]  = MapBox.attr('addr');
						Cont.find('.actions').hide();
						Cont.find('.centerHotel').click(function() {
							var Center = new GLatLng(parseFloat(MapOpt[1]),parseFloat(MapOpt[0]));
							Mapifies.MapObjects.Get(MapBox).panTo(Center);
							return false;
						});
						Cont.find('.bigMap').click(function() {
							if (!MapBox.attr('orgHeight')) {
								MapBox.attr('orgHeight', MapBox.height());
							}
							var Center = Mapifies.MapObjects.Get(MapBox).getCenter();
							var newH = 0;
							if(MapBox.height()<=MapBox.attr('orgHeight')) {
								newH = 600;
								$(this).addClass('on');
							} else {
								newH = MapBox.attr('orgHeight');
								$(this).removeClass('on');
							}
							MapBox.animate({
								height : newH
							},function() {
								Mapifies.MapObjects.Get(MapBox).checkResize();
								Mapifies.MapObjects.Get(MapBox).panTo(Center);
							});
							return false;	
						});
						if(!MapOpt[1] || MapOpt[1]=='.0000') {
							var GC = new GClientGeocoder;
							GC.getLatLng(MapOpt[3], function(p) {
								MapOpt[1] = p.lat();
								MapOpt[0] = p.lng();
								SetMapConf(MapOpt);
							});
						} else {
							SetMapConf(MapOpt);
						}
					}
				});
			} else {
				Cont.find('div[rel^=tab]').slideUp();
				Cont.find('div[rel="'+i+'"]').slideDown();
			}
			
			
			return false;
		});
	});
		
	/////////////////////////////////////////////////////////////////////
	// accor
	$('.accor').accor();
	$('a.showHide').showHide();

});




////////////////////////////////////////////////////////////////////////////////////////}
// Fired onLoad
$(document).ready(MY_init);
////////////////////////////////////////////////////////////////////////////////////////}
// INIT
var vars 			= new Array();
var varString		= "";
var Nurl			= "";
var varsN 			= new Object();
	varsN["order"] 	= 1;
	varsN["cat"]	= 1;
		if(window.location.search != "") {
			q = window.location.search
			q = q.replace(/\?/,"");
			var s = q.split("&");
			for (i=0;i<s.length;i++) {
				a = s[i].split("=");
				if(!varsN[a[0]]) {
					vars[a[0]] = a[1];
					varString+=a[0]+"="+a[1]+"&";
				}
			}
			Nurl = URL_FULL+"?"+varString;

		}
function MY_init() {
	if(document.getElementById("departureDate")) {
		resetDates();
	}
	if(jQuery.datePicker) {
		$.datePicker.setDateFormat('dmy','.');

		if(document.getElementById("arrivalDate"))
			$('input#arrivalDate').datePicker();
		if(document.getElementById("departureDate"))
			$('input#departureDate').datePicker();
	}
	if(document.getElementById("BoardTypeSelect"))
		MySetBoardType(document.getElementById("BoardTypeSelect").selectedIndex);

	if($(".persons"))
		registerCalcPersonEvent();
}
////////////////////////////////////////////////////////////////////////////////////////}
// search form
// rooms
function registerCalcPersonEvent() {
	$(".persons").change(function() { CalcPersons(); });
	$(".roomqty").change(function() { CalcPersons(); });
	CalcPersons();
}
function CalcPersons() {
    x = 0;
    totale = 0;

    while(document.getElementById("PersonsinRoom"+x)) {
         totale+=parseInt($("#PersonsinRoom"+x).attr("value"))*parseInt($("#RoomQty"+x).attr("value"));
        x++;
    }
    $("#TotalPersons").html(totale);
}
var LastRoomId 	= 0;
var RoomTpl		= "";
function Room_init() {
	RoomTpl = $("#RoomBox").html();
}
function AddRoom() {
	if (LastRoomId < 3) {
		LastRoomId++;
		if (!RoomTpl) {
			RoomTpl = $("#RoomBox").html();
		}
		var a = "Room" + (LastRoomId);
		var b = "RoomQty" + (LastRoomId);
		var NewTpl = RoomTpl.replace(/Room\d+/g, a);
		NewTpl = NewTpl.replace(/RoomQty\d+/g, b);
		var newChild = document.createElement('div');
		newChild.innerHTML = NewTpl;
		$("#RoomBox2").append(newChild);
		registerCalcPersonEvent();
	}
}
function DelRoom() {
	if(LastRoomId!=0) {
		$("#IRoom"+LastRoomId).remove();
		LastRoomId--;
	}
	registerCalcPersonEvent();
}
$(document).ready(Room_init);
// DATE select
function resetDates() {
	if(INIT_DATE) {
		var D1 = INIT_DATE;
	} else {
		var D1 = new Date();
		D1.setDate(D1.getDate()+1);
	}
	var D = getArrayFromDate(D1);
	setDate("arrivalDate",D);
	setDate("departureDate",Add7Days(D));
}
function checkDates() {
	D1 = getSelectDateArray("arrivalDate");
	D2 = getSelectDateArray("departureDate");
	var N = new Date();
	var D3 = getArrayFromDate(N);
	d1 = D1[2]+D1[1]+D1[0];
	d2 = D2[2]+D2[1]+D2[0];
	if(parseInt(D3[0]) < 10) D3[0] = "0"+String(D3[0]);
	if(parseInt(D3[1]) < 10) D3[1] = "0"+String(D3[1]);
	d3 = String(D3[2])+String(D3[1])+String(D3[0]);
	
/*
	if(d1>d2) {
		alert(wrongDate);
		setDate("departureDate",Add7Days(D1));
	}
	else if(d1<d3) {
		alert(wrongDate);
		resetDates();
	}
*/
//	checkOffer();
}
function cInputDate(i) {
	D = getSelectDateArray(i);
	setDateSelect(i,D);
	if(i=="arrivalDate")
		setDate("departureDate",Add7Days(D));
	checkDates();
}
function cSelectDate(i) {
	var D 	= new Array();
	D[0]	= parseFloat(getSelectValue(getElementByName(i+"Day")));
	D[1]	= parseFloat(getSelectValue(getElementByName(i+"Month")));
	D[2]	= parseFloat(getSelectValue(getElementByName(i+"Year")));
	setDateInput(i,D);
	if(i=="arrivalDate")
		setDate("departureDate",Add7Days(D));
	checkDates();
}
function setDate(i,D) {
	setDateInput(i,D);
	setDateSelect(i,D);
}
function setDateInput(i,D) {
	var M = document.getElementById(i);
	if(!M) return false;
	if(parseInt(D[0]) < 10) D[0] = "0"+String(D[0]);
	if(parseInt(D[1]) < 10) D[1] = "0"+String(D[1]);
	M.value = D[0]+"."+D[1]+"."+D[2];
}
function setDateSelect(i,D) {
	setSelectValue(i+"Day"		,D[0]);
	setSelectValue(i+"Month"	,D[1]);
	setSelectValue(i+"Year"		,D[2]);
}
function cSelectOffer() {
	var index = document.getElementById("SelectOffer").selectedIndex;
	if(index==0) {
		$("#SelectOfferContent").html("");
		return false;
	}
	if(!Offer[index]["info"]) Offer[index]["info"] = " ";
	$("#SelectOfferContent").html($("#SelectOfferContent"+index).html());
}
function checkOffer() {
	/// check arrivalDate
	var D = getArrayFromString(document.getElementById("arrivalDate").value,".");
	var FT = getArrayFromString(document.getElementById("departureDate").value,".");
	var now = new Date();
	var check = new Date();
	check.setFullYear(D[2],(parseInt(D[1],10)-1),D[0]);
	if(check<now) {
		alert(wrongDate2);
		return false;
	}
	/// check departureDate
	var D = getArrayFromString(document.getElementById("departureDate").value,".");
	var check = new Date();
	check.setFullYear(D[2],(parseInt(D[1],10)-1),D[0]);
	if(check<now) {
		alert(wrongDate);
		return false;
	}


	if(!document.getElementById("SelectOffer")) return true;
	var index = document.getElementById("SelectOffer").selectedIndex;
	if(index==0) return true;
	var OF = getUDateFromArray(getArrayFromString(Offer[index]["from"],"/"));
	var OT = getUDateFromArray(getArrayFromString(Offer[index]["to"],"/"));
	var FF = getUDateFromArray(getArrayFromString(document.getElementById("arrivalDate").value,"."));
	var FT = getUDateFromArray(getArrayFromString(document.getElementById("departureDate").value,"."));
	if(
		(FF >= OF && FF <= OT)
		&&
		(FT >= OF && FT <= OT)
	) {
		return true;
	} else {
		alert(wrongOffer);
		document.getElementById("SelectOffer").selectedIndex = 0;
		cSelectOffer();
		return false;
	}
}
////////////////////////////////////////////////////////////////////////////////////////}
// category filter
function selectCat() {
	document.location.href = Nurl+"cat="+getSelectValueById("cat");
}
function getSelectValueById(i) {
	M = document.getElementById(i);
	return getSelectValue(M);
}
function getSelectValue(M) {
	for (var i=0; i<M.options.length; i++) {
		if(M.options[i].selected) {
			return M.options[i].value;
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////
/// Sammelanfrage
function cHotelSumReq(id) {
	var s 	= id.split("_");
	var i 	= s[1];
	if(document.getElementById(id).checked)
		setHotelSumReq("add",i);
	else
		setHotelSumReq("del",i);
}
function setHotelSumReq(a,i) {
	$.ajax({
	   type: "POST",
	   url: URL_ROOT+LANG+"/"+a+"HSR/",
	   data: "id="+i
	 });
}

////////////////////////////////////////////////////////////////////////////////////////
/// HELPERS
function getElementByName(i) {
	var X = document.getElementsByName(i);
	return X[0];
}
function setSelectValue(i,v) {
	M = getElementByName(i);
	if(!M) return false;
	for (var i=0; i<M.options.length; i++) {
		if(M.options[i].value==v) {
			M.options[i].selected = true;
			break;
		}
	}
}
function Add7Days(D) {
	var oneDayInMillisec =  24 * 3600 * 1000;
	var arrivalDate = new Date();
	arrivalDate.setFullYear(D[2],(parseInt(D[1],10)-1),D[0]);
	var departureDate = new Date(arrivalDate.valueOf()+(7*oneDayInMillisec));
	return getArrayFromDate(departureDate);
}
function getArrayFromDate(D1) {
	var D = new Array;
	D[0] = D1.getDate();
	D[1] = D1.getMonth()+1;
	D[2] = D1.getFullYear();
	return D;
}
function getArrayFromString(v,s) {
	var D = new Array;
	D  = v.split(s);
	return D;
}
function getUDateFromArray(a) {
	return parseInt(String(a[2])+String(a[1])+String(a[0]));
}
function getSelectDateArray(i) {
	var M = document.getElementById(i);
	if(!M) return false;
	var D = M.value.split(".");
	return D;
}
////////////////////////////////////////////////////////////////////////////////////////
/// SUM REQ
var ErrorData
	function checkrequired(frm, bAvailabilityList)
	{
		var pass=true;
		var error='';
		var oForm = document.getElementById(frm);
		if (oForm)
		{
			//Wurde ein Form uebergenen
			oRadio1 = document.getElementById("request_typereservation")
			oRadio2 = document.getElementById("request_typeoffer")
			if (!oRadio1 || !oRadio2 || (!oRadio1.checked && !oRadio2.checked))
			{
				error = error + '- '+error1+'\n';
				pass=false;
			}
			//Check Vorname
			if (oForm.name.value == '')
			{
				error = error + '- '+error2+'\n';
				pass=false;
			}
			else
			//Check Nachname
			if (oForm.lastname.value == '')
			{
				error = error + '- '+error3+'\n';
				pass=false;
			}
			//Check Adresse
			if (oForm.address.value == '')
			{
				error = error + '- '+error4+'\n';
				pass=false;
			}
			//Check Postleitzahl
			if (oForm.zip.value == '')
			{
				error = error + '- '+error5+'\n';
				pass=false;
			}
			//Check Stadt
			if (oForm.city.value == '')
			{
				error = error + '- '+error6+'\n';
				pass=false;
			}
			//Check Staat
			if (oForm.country.value == '')
			{
				error = error + '- '+error7+'\n';
				pass=false;
			}
			//Check EMail
			if (oForm.email.value == '')
			{
				error = error + '- '+error8+'\n';
				pass=false;
			}
			else
			{
				EmailAddr = oForm.email.value;
				Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
				if (!Filtro.test(EmailAddr))
				{
					error = error + '- '+error9+'\n';
					pass=false;
				}
			}
			//Muss der Aufenthalt gepr?ft werden (nur bei ausgang von HotelList
			if (oForm.Stay)
			{
				//Check ?bernachtungen
				if (oForm.Stay.value == '' || isNaN(oForm.Stay.value))
				{
					error = error + '- '+error10+'\n';
					pass=false;
				}

            aPersons = window.document.getElementsByName("Persons");
				for (lIndex=0; lIndex<aPersons.length; lIndex++)
				{
					oObj = aPersons[lIndex];
					if (!oObj || oObj.value == '' || isNaN(oObj.value) || oObj.value <=0)
					{
						error = error + '- '+error11+'\n';
						pass=false;
						break;
					}
				}
			}
			//Check PrivacyGesetz
			if (!oForm.privacy_acpt.checked)
			{
				error = error + error12+'\n';
				pass=false;
			}
			//Alle Kontrollen bestanden
			if (pass)
			{
				return true;
			}
			else
			{
				alert(error);
				return false;
			}
			return false;
		}
	}
function MySetBoardType(val) {
	window.status=val;
	switch(val)
	{
		case 0:
		case -1:
			document.getElementById("BoardType").value=2;
			break;
		case 1:
			if(ResortType=="BB")
				document.getElementById("BoardType").value=1;
			else
				document.getElementById("BoardType").value=3;
			break;
		case 2:
			document.getElementById("BoardType").value=4;
			break;
		case 3:
			document.getElementById("BoardType").value=1;
			break;
		case 4:
			document.getElementById("BoardType").value=5;
			break;

	}
}

