var updateTotalValue = 0;

function checkAvailability(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function sm_checkAvailability(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function checkAvailabilitySmart(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function updateCheckAvailAll(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = new Date();

	updateCheckAvailDo(column,cForm,cDate);
}

function sm_updateCheckAvailAll(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = new Date();

	updateCheckAvailDo(column,cForm,cDate);
}

function updateCheckAvailDo(column,cForm,cDate)
{
	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())
		{
			setDate(cForm,cDate,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 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 loadCurrency(CurrencyCode)
{
	var cForm    = document.forms['hotelCurrency'];
	var cElement = cForm.elements['CurrencyCode'];

	var cName = cElement.options[cElement.selectedIndex].value;

	for(i=0;i<Currency.length;i+=2){if(Currency[i]==CurrencyCode){var cHotelRate=Currency[(i+1)];break;}}
	for(i=0;i<Currency.length;i+=2){if(Currency[i]==cName){var cRate=Currency[(i+1)];break;}}

	var cRate = Number(cRate)/Number(cHotelRate);
	return(cRate);
}

function updateRate(checkAvailForm,CurrencyCode)
{
	var cRate = loadCurrency(CurrencyCode);

	var nForm    = document.forms['hotelCurrency'];
	var nElement = nForm.elements['CurrencyCode'];

	var cName = nElement.options[nElement.selectedIndex].text;

	for(i=0;i<Hotel.length;i++)
	{
		var cForm  = document.forms['hotelRate['+i+']'];
		for(j=0;j<Hotel[i].length;j+=5)
		{
			var cSource  = 'Currency_2_'+i+'_'+Hotel[i][j];
			var cElement = cForm.elements[cSource];
			cElement.value = Math.round(Hotel[i][(j+3)]/Number(cRate));
			if(cElement.value==0){cElement.value='';}
			else
			{
				cElement.value = cElement.value + ' ' + cName;
			}
			var cElement = cForm.elements['Currency_3_'+i+'_'+Hotel[i][j]];
			cElement.value = Math.round(Hotel[i][(j+4)]/Number(cRate));
			if(cElement.value==0){cElement.value='';}
			else
			{
				cElement.value = cElement.value + ' ' + cName;
			}
		}
		if(updateTotalValue==1)
		{
			updateTotal(checkAvailForm,i,CurrencyCode,cRate);
		}
	}
}

function updateApproxTotal(checkAvailForm,CurrencyCode)
{
	var cForm    = document.forms[checkAvailForm];
	var cElement = cForm.elements['checkHotel[Accommodation]'];
	var cRate    = loadCurrency(CurrencyCode);

	i = cElement.options[cElement.selectedIndex].value;
	if(i!='--')
	{
		updateTotal(i,CurrencyCode,cRate);
	}
	else
	{
		var cElement = cForm.elements['checkHotel[ApproxTotal]'];
		cElement.value = "";
	}
	updateTotalValue=1;
}

function updateTotal(checkAvailForm,i,CurrencyCode,cRate)
{
	var cForm  = document.forms[checkAvailForm];
	var sDate  = getDate(cForm,0);
	var eDate  = getDate(cForm,1);
	var cValue = 0;

	var cDate = sDate;
	for(;cDate.getTime()<eDate.getTime();)
	{
		for(j=0;j<Hotel[i].length;j+=5)
		{
			if(Number(Hotel[i][(j+1)])<=(cDate.getTime()/1000) && Number(Hotel[i][(j+2)])>=(cDate.getTime()/1000))
			{
				cValue += Number(Hotel[i][(j+3)]);break;
			}
		}
		cDate.setDate(cDate.getDate()+1);
	}

	var cElement = cForm.elements['checkHotel[TotalRooms]'];
	var TotalRooms = cElement[cElement.selectedIndex].value;

	var cElement = cForm.elements['checkHotel[ApproxTotal]'];

	var xValue = Number(Math.round(Number(TotalRooms) * Number(cValue/Number(cRate))));

	if(xValue==0)
	{
		cElement.value = '';
	}
	else
	{
		var nForm    = document.forms['hotelCurrency'];
		var nElement = nForm.elements['CurrencyCode'];

		var cName = nElement.options[nElement.selectedIndex].text;

		cElement.value = xValue + ' ' + cName;
	}
}

function updateCheckAvail(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = getcDate();
	updateCheckAvailDo(column,cForm,cDate);
}

function bookRoom(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function getcDate()
{
	var cDate = new Date();
	var mDate = new Date();
	mDate.setFullYear(mDate.getFullYear()+10);

	for(var i=0;i<Hotel.length;i++)
	{
		if((Number(Hotel[i][1])*1000)<mDate.getTime())
		{
			mDate = new Date((Number(Hotel[i][1])*1000));
		}
	}
	if(mDate.getFullYear()!=(cDate.getFullYear()+10))
	{
		cDate = mDate;
	}
	return(cDate);
}

function setYear()
{
	var sDays  = new Date().getTime() + (3*86400000);
	var sDate  = new Date(sDays);
	var cYear = Number(sDate.getFullYear());
	if(cYear<1900) {
		if(!document.all) cYear = Number(sDate.getYear()) + 1900;
		else cYear = Number(sDate.getYear());
	}
	document.write("<option value =" + cYear + ">" +cYear+"</option>");
	document.write("<option value =" + (cYear+1) + ">" +(cYear+1)+"</option>");	
}

