var httphref = location.href;
httphref = httphref.replace("http://", "");
var arrhttphref = httphref.split("/");
httphref = "http://" + arrhttphref[0];

var pathwebcheckavailability = httphref + '/reserve/indexBig.php';
var ckAvailStartTdy = new Date();
var DefNight = 1;
//remove time from Date
ckAvailStartTdy = new Date(ckAvailStartTdy.getFullYear(),  ckAvailStartTdy.getMonth(), ckAvailStartTdy.getDate());
var ckAvailStartDate = new Date(ckAvailStartTdy.getFullYear(),  ckAvailStartTdy.getMonth(), ckAvailStartTdy.getDate());

function getElcheckavailability(tmpname) {
	return document.forms['checkAvail'].elements[tmpname];
}

function changeCountryDestination(tmpAtext) {
	var cForm = document.forms['checkAvail'];
	var a;
	var cElement = cForm.elements['checkHotel[pCountryID]'];
	if(cElement!=null) 
		try {
			a = cElement .options[cElement.selectedIndex].value;
		} catch (e) {}
	else a = getElcheckavailability("pCountry").value;
	
	var b = getElcheckavailability("pDestinationID").value;
	en_disList(true);
	var lang = document.forms['checkAvail'].elements['checkHotel[LanguageCode]'].value;
	var x = pathwebcheckavailability + '?action=country&country='+a+'&deF='+b+'&hasAll='+tmpAtext+'&lang='+lang;
	var IE = (document.all) ? 1: 0;
	if(IE)
	{
		makeRequest(x, donereturn);
	}
	else
	{
		var jScript;
		var jScript = document.createElement('SCRIPT');
		jScript.setAttribute('type','text/javascript');
		jScript.setAttribute('id','jsCoUDestination');
		jScript.setAttribute('src',x);
		document.getElementsByTagName('BODY')[0].appendChild(jScript);		
	}
}

function donereturn(p) {
	try {eval(p.responseText);} catch(e) {}
}

function changepDestination() {
	var a = getElcheckavailability("pDestinationID").value;
	var b = getElcheckavailability("DestinationID").value;
	var obj = getElcheckavailability('checkHotel[pDestinationID]');
	var def = 0;
	if(a==obj.value) def = b;
	en_disList(true);
	var lang = document.forms['checkAvail'].elements['checkHotel[LanguageCode]'].value;
	var x = pathwebcheckavailability + '?action=dest&dest='+obj.value+'&deF='+def+'&lang='+lang;
	var IE = (document.all) ? 1: 0;
	if(IE)
	{
		makeRequest(x, donereturn);
	}
	else
	{
		var jScript;
		var jScript = document.createElement('SCRIPT');
		jScript.setAttribute('type','text/javascript');
		jScript.setAttribute('id','jsChaVDestination');
		jScript.setAttribute('src',x);
		document.getElementsByTagName('BODY')[0].appendChild(jScript);
	}
}

function changelist(aarr, barr, obj, indexSelected) {
	var i;
	obj = getElcheckavailability(obj);
	obj.length = 0;
	for(i=0;i<aarr.length;i++) {
		obj.options[i]=new Option(aarr[i],barr[i]);
	}
	try {obj.options[indexSelected].selected=true;} catch(e) {}
	en_disList(false);
}

function changeDestination() {
	var obj = document.forms['checkAvail'].elements['checkHotel[DestinationID]'];
	en_disList(true);
	var lang = document.forms['checkAvail'].elements['checkHotel[LanguageCode]'].value;
	var x = pathwebcheckavailability + '?action=hotel&hotel='+obj.value+'&lang='+lang;
	var cForm = document.forms['checkAvail'];
	var cElement = cForm.elements['checkHotel[debug]'];
	if(cElement!=null) 
		try {
			x = x + '&debug=' + cElement.value;
		} catch (e) {}
	var IE = (document.all) ? 1: 0;
	if(IE)
	{
		makeRequest(x, donereturn);
	}
	else
	{
		var jScript;
		var jScript = document.createElement('SCRIPT');
		jScript.setAttribute('type','text/javascript');
		jScript.setAttribute('id','jsChDsDestination');
		jScript.setAttribute('src',x);
		document.getElementsByTagName('BODY')[0].appendChild(jScript);
	}
}

function setSubmitButton(flag) {
	var cForm = document.forms['checkAvail'];
	var x;
	if(flag) x = "";
	else x = "none";
	var cElement = cForm.getElementsByTagName('input')
	var i;
	var j = cElement.length;
	var k = null;
	for(i=0;i<j;i++) {
		if(cElement[i].name=="Submit") k = cElement[i];
	}
	if(k!=null) k.style.display = x;
}

function en_disList(flag) {
	var cForm = document.forms['checkAvail'];
	var cElement = cForm.elements['checkHotel[pCountryID]'];
	if(cElement!=null) 
		try {
			cElement.disabled=flag;
		} catch (e) {}
	var cElement = cForm.elements['checkHotel[pDestinationID]'];
	cElement.disabled=flag;
	var cElement = cForm.elements['checkHotel[DestinationID]'];
	cElement.disabled=flag;
	var cElement = cForm.elements['checkHotel[Category]'];
	cElement.disabled=flag;
	var cElement = cForm.elements['checkHotel[HotelCode]'];
	cElement.disabled=flag;
	setSubmitButton(false);
}

function setDefDate() {
	var tmptoday = new Date();
	var sMonth = tmptoday.getMonth() + 1;
	var sYear = tmptoday.getFullYear();
	var a = getElcheckavailability('checkHotel[sYear]');
	var b = getElcheckavailability('checkHotel[eYear]');
	a.length = 0;
	b.length = 0;
	sYearShowold = String(sYear);
	sYearShow = sYearShowold;
	a.options[a.length]=new Option(sYearShow, sYearShow);
	b.options[b.length]=new Option(sYearShow, sYearShow);

	for(i=0;i<=17;i++) {
		if(sYearShow!=sYearShowold)
		{
			sYearShowold = sYearShow;
			a.options[a.length]=new Option(sYearShow, sYearShow);
			b.options[b.length]=new Option(sYearShow, sYearShow);
		}
		sMonth = sMonth + 1;
		if(sMonth>=13) {
			sMonth = 1;
			sYear = sYear + 1;
		}
		sYearShow = String(sYear);
	}
	var a = getElcheckavailability('txtCheck_In');
	a.value = padZero(ckAvailStartDate.getDate()) + '/' + padZero((ckAvailStartDate.getMonth() + 1)) + '/' + ckAvailStartDate.getFullYear();
	showChangeDate('in');

	var b = getElcheckavailability('txtCheck_Out');
	var tmpendday = new Date(ckAvailStartDate.getFullYear(),  ckAvailStartDate.getMonth(), ckAvailStartDate.getDate() + DefNight);
	b.value = padZero(tmpendday.getDate()) + '/' + padZero((tmpendday.getMonth() + 1)) + '/' + tmpendday.getFullYear();
	showChangeDate('out');
}

function showChangeDate(values) {
	if(values=='in') {
		setOptionValue('in', getElcheckavailability('txtCheck_In').value);
		updateCheckAvailAll('sDate');
	}
	if(values=='out') {
		setOptionValue('out', getElcheckavailability('txtCheck_Out').value);
		updateCheckAvailAll('eDate');
	}
}

function setOptionValue(obj, values) {
	if(obj=="in") {
		var a = values.split("/");
		var b = document.forms['checkAvail'].elements['checkHotel[sYear]'];
		setElement(b, a[2]);
		var b = document.forms['checkAvail'].elements['checkHotel[sMonth]'];
		setElement(b, a[1]);
		var b = document.forms['checkAvail'].elements['checkHotel[sDay]'];
		setElement(b, a[0]);
	} else {
		var a = values.split("/");
		var b = document.forms['checkAvail'].elements['checkHotel[eYear]'];
		setElement(b, a[2]);
		var b = document.forms['checkAvail'].elements['checkHotel[eMonth]'];
		setElement(b, a[1]);
		var b = document.forms['checkAvail'].elements['checkHotel[eDay]'];
		setElement(b, a[0]);
	}
}

function setElement(cElement,cValue)
{
	for(var i=0;i<cElement.length;i++)
	{
		if(Number(cElement.options[i].value)==cValue)
		{
			cElement.selectedIndex = i;
			break;
		}
	}
	if(i==cElement.length) {
		if((cElement.name.indexOf("Year")!=-1) || (cElement.name.indexOf("Nights")!=-1)) {
			var oldYear = Number(cElement.options[cElement.length - 1].value) + 1;
			while (oldYear<=cValue)
			{
				cElement.options[cElement.length] = new Option(oldYear, oldYear);
				oldYear = oldYear + 1;
			}
			cElement.selectedIndex = cElement.length - 1;
		}
	}
}

function checkAvailability()
{
	var cForm = document.forms['checkAvail'];
	cForm.submit();
}

function updateCheckAvailAll(column, frommonth)
{
	var cForm = document.forms['checkAvail'];
	var cDate = ckAvailStartTdy;

	updateCheckAvailDo(column,cForm,cDate, frommonth);
	cForm.txtCheck_In.value = cForm.elements['checkHotel[sDay]'].value + '/' + cForm.elements['checkHotel[sMonth]'].value + '/' + cForm.elements['checkHotel[sYear]'].value;
	cForm.txtCheck_Out.value = cForm.elements['checkHotel[eDay]'].value + '/' + cForm.elements['checkHotel[eMonth]'].value + '/' + cForm.elements['checkHotel[eYear]'].value;
}

function updateCheckAvailDo(column,cForm,cDate, frommonth)
{
	var sDate  = getDate(cForm,0);setDate(cForm,sDate,0);	//Get Start Date & Set Correct StartDate
	var eDate  = getDate(cForm,2);setDate(cForm,eDate,1);	//Get EndDate & Set Correct EndDate

//-Change StartDate or Number of Nights------------------------------------------------------------
	if(column=='sDate' || column=='Nights')
	{
		var sDate  = getDate(cForm,0);
		if(sDate.getTime()<cDate.getTime())
		{
			var nextMonthDate;
			if(typeof(frommonth)=="undefined") {
				nextMonthDate = new Date(sDate.getFullYear(),  sDate.getMonth() + 1, sDate.getDate());
				if(nextMonthDate.getTime()<cDate.getTime()) nextMonthDate = cDate;
			} else {
				nextMonthDate = cDate;
			}
			setDate(cForm,nextMonthDate,0);
			sDate  = getDate(cForm,0);
		}
		var eDate  = getDate(cForm,1);
		setDate(cForm,eDate,1);
	}
//-Change EndDate----------------------------------------------------------------------------------
	else if(column=='eDate')
	{
//-Check If selected end date is before first date-------------------------------------------------
		if(eDate.getTime()<cDate.getTime())
		{
			setDate(cForm,cDate,0);				// Set StartDate to first Date
			var sDate  = getDate(cForm,0);		// Get StartDate
			var eDate  = getDate(cForm,1);		// Get EndDate (StartDate + Nights)
			setDate(cForm,eDate,1);				// Set EndDate
		}
//-Check If selected end date is before start date
		else if(eDate.getTime()<=sDate.getTime())
		{
			eDate = sDate;
			eDate.setDate(eDate.getDate()+1);
			setDate(cForm,eDate,1);				// Set EndDate
		}
//-Set Number of nights.
		var sDate  = getDate(cForm,0);			// Get StartDate
		var eDate  = getDate(cForm,2);			// Get EndDate

		var cTime  = eDate.getTime() - sDate.getTime();
		var nDate  = new Date(cTime);
		var cValue = Number(nDate.getDate()) - 1;
		cValue = Math.floor(cTime / (1000 * 60 * 60 * 24));
		var cElement = cForm.elements['checkHotel[Nights]'];
		setElement(cElement,cValue);
	}
}

function getDate(cForm,InOut)
{
	var cElement = cForm.elements['checkHotel[sDay]'];
	var sDay = cElement[cElement.selectedIndex].value;
	var cElement = cForm.elements['checkHotel[sMonth]'];
	var sMonth = cElement[cElement.selectedIndex].value;
	var cElement = cForm.elements['checkHotel[sYear]'];
	var sYear = cElement[cElement.selectedIndex].value;

	var cDate = new Date(sYear,(sMonth-1),sDay);
	if(InOut==1)
	{
		var cElement = cForm.elements['checkHotel[Nights]'];
		var Nights = cElement[cElement.selectedIndex].value;
		cDate.setDate(cDate.getDate()+Number(Nights));
	}
	if(InOut==2)
	{
		var cElement = cForm.elements['checkHotel[eDay]'];
		var eDay = cElement[cElement.selectedIndex].value;
		var cElement = cForm.elements['checkHotel[eMonth]'];
		var eMonth = cElement[cElement.selectedIndex].value;
		var cElement = cForm.elements['checkHotel[eYear]'];
		var eYear = cElement[cElement.selectedIndex].value;

		var cDate = new Date(eYear,(eMonth-1),eDay);

	}
	return(cDate);
}

function setDate(cForm,cDate,InOut)
{
	if(InOut==0)
	{
		var cElement = cForm.elements['checkHotel[sDay]'];
		var cValue = Number(cDate.getDate());setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[sMonth]'];
		var cValue = Number(cDate.getMonth())+1;setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[sYear]'];
		var cValue = Number(cDate.getFullYear());setElement(cElement,cValue);
	}
	else
	{
		var cElement = cForm.elements['checkHotel[eDay]'];
		var cValue = Number(cDate.getDate());setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[eMonth]'];
		var cValue = Number(cDate.getMonth())+1;setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[eYear]'];
		var cValue = Number(cDate.getFullYear());setElement(cElement,cValue);
	}
}

function padZero(num) {
	return (num< 10) ? '0' + num : num ;
}

function makeStartShowCodeRight(flag) {
	try {
		var a;
		a = document.getElementById("StarRowHotelCode");
		var x;
		if(flag) x = "";
		else x = "none";
		if(a==null) a = document.all.StarRowHotelCode;
		if(a==null) a = document.StarRowHotelCode;
		a.style.display = x;
	} catch(e) {}
}

function makeStartShowRight(flag) {
	try {
		var a;
		a = document.getElementById("StarRowHotel");
		var x;
		if(flag) x = "";
		else x = "none";
		if(a==null) a = document.all.StarRowHotel;
		if(a==null) a = document.StarRowHotel;
		a.style.display = x;
	} catch(e) {}
}

function updateCheckAvailStar(obj) {
	try {
		if(obj.selectedIndex<=0) makeStartShowRight(true);
		else makeStartShowRight(false);
	} catch(e) {}
}