/*
 * Functions handling room nights update for web_cal.js
 */

var updateCalendarFieldUpdateCostsTimer = null;
var updateNightsFieldUpdateCostsTimer = null;
//update to_date field when nights field is changed
function updateCalendarField(nights_id, from_date_id, to_date_id)
{
	try
	{
		var nights_obj = document.getElementById(nights_id);
		var from_date_obj = document.getElementById(from_date_id);
		var to_date_obj = document.getElementById(to_date_id);

		if (isDateQ(from_date_obj.value) && isNumeric(nights_obj.value) && (nights_obj.value != "") && (parseInt(nights_obj.value) > 0))
		{
			var from_date_format = parseDate(from_date_obj.value);
			var to_date_format = from_date_format;
			
			to_date_format.setDate(from_date_format.getDate() + parseInt(nights_obj.value));
			to_date_obj.value = dateToString(to_date_format);
			
			if (getE("todate_text") != null)
				getE("todate_text").innerHTML = to_date_obj.value;
			
			//update costs in booking form
			clearTimeout(updateCalendarFieldUpdateCostsTimer);
			updateCalendarFieldUpdateCostsTimer = setTimeout("try{updateCosts()}catch(Exception){}",100);
		}
	}catch(Exception){}
}

//update nights field if from_date field or to_date fields are changed
function updateNightsField(nights_id, from_date_id, to_date_id)
{
	try
	{
		var nights_obj = document.getElementById(nights_id);
		var from_date_obj = document.getElementById(from_date_id);
		var to_date_obj = document.getElementById(to_date_id);
			
		if (getE("fromdate_text") != null)
			getE("fromdate_text").innerHTML = from_date_obj.value;
			
		if (getE("todate_text") != null)
			getE("todate_text").innerHTML = to_date_obj.value;
		
		if (validate_period(from_date_obj.value, to_date_obj.value))
		{
			var from_date_format = parseDate(from_date_obj.value);
			var to_date_format = parseDate(to_date_obj.value);
			
			if (getE("nights_text") != null)
				getE("nights_text").innerHTML = dateDiff("d", from_date_format, to_date_format);
			
			nights_obj.value = dateDiff("d", from_date_format, to_date_format);
			
			//update costs in booking form
			clearTimeout(updateNightsFieldUpdateCostsTimer);
			updateNightsFieldUpdateCostsTimer = setTimeout("try{updateCosts()}catch(Exception){}",100);
		}
		else
		{
			nights_obj.value = 0;
		}
	}catch(Exception){}
}

function forceUpdateNights()
{
	updateNightsField("nights", "fromdate", "todate");
}
