var __set_days = function (month, month_value)
{
	// when month is changed
	var day = document.getElementById("day");
	var year = document.getElementById("year");
	var date_o = new Date(year.value, month_value, 0);
	var days = date_o.getDate();
	
	if (day.value <= days)
		day_value = day.value;
	else
		day_value	 = 1;
	
	day.parentNode.removeChild(day);
	
	day = document.createElement("select");	
	day.onchange = function() {
		recalculate(false);
	}
	day.id = "day";
	day.name = "day";
	
	var day_option, txt;
	for (var i = 1; i <= days; i++)
	{
		day_option = document.createElement("option");
		day.appendChild(day_option);
		day_option.value = i;
		
		if (i == day_value) day_option.selected = true;
		
		txt = document.createTextNode(i);
		day_option.appendChild(txt);
	}
	month.parentNode.insertBefore(day, month);
}

var recalculate = function (warning, month_value)
{
	var month = document.getElementById("month");
	if (month_value) {
		__set_days(month, month_value);
	}
	if (arguments.length < 1) act = false;
	var day = document.getElementById("day");
	var year = document.getElementById("year");
	var nights = document.getElementById("nights");
	var checkout = document.getElementById("checkout");

	// current date
	var date_current = new Date();
	date_current.setHours(0);
	date_current.setMinutes(0);
	date_current.setSeconds(0);

	// checkin date
	var date_checkin = new Date(year.value, (month.value-1), day.value);
	date_checkin.setHours(0);
	date_checkin.setMinutes(0);
	date_checkin.setSeconds(0);
	
	// checkout date
	var date_checkout = new Date(year.value, (month.value-1), parseInt(day.value)+parseInt(nights.value));
	date_checkout.setHours(0);
	date_checkout.setMinutes(0);
	date_checkout.setSeconds(0);
	
	var diff = parseInt(date_checkin.getTime()) - parseInt(date_current.getTime());
	
	if (diff < -1000)
	{
		if (warning) {//alert(unescape(msg[1]));	// alert wrong date;
			/*
					warn.set.title("Error");
		warn.set.parent(document.body);
		warn.set.intro("You have the following errors:");
		//warn.set.messages(Array("ce faci?", "faci bine", "ok!"));
		warn.set.message("Your e-mail address is not correct. Please try again!");
		warn.set.message("Insert destination.");
		warn.set.message("You can't checkin in the past.");
		warn.display();
		*/
			warn.set.title("Error");
			warn.set.parent(document.body);
			warn.set.message(unescape(msg[1]));
			warn.display();
		}
		return false;
	}
	else
	{
		checkout.innerHTML = date_checkout.getDate() + " " + months[date_checkout.getMonth()] + " " + date_checkout.getFullYear();
		return true;
	}
}

var check_destination = function(act, ajax)
{
	if (arguments.length < 1) act = false;
	if (arguments.length < 1) ajax = true;

	var destination = document.getElementById("destination");
	
	if (destination.value.length < 3)
	{
		//if (!act) alert(unescape(msg[2]));
		return false;
	}
	else
	{
		if (ajax) __send("destination=" + destination.value);
		//alert(destination.value);
	}
	
	return true;
}

// --> Checks whether the form data inserted is correct or not
var validate = function(destinations, dateRange) {
	if (arguments.length < 1) {
		destinations = true;
	}
	if (arguments.length < 2) {
		dateRange = true;
	}
	result = true;
	//string = unescape(msg[0]);
	
	warn.set.title("Error");
	warn.set.intro(unescape(msg[0]));
	warn.set.parent(document.body);
	
	if (dateRange) {
		if (!recalculate(false))
		{
			result = false;
			//string += "\r\n     • " + unescape(msg[1]);
			warn.set.message(unescape(msg[1]));
		}
	}
	
	if (destinations) {
		var mdr = document.getElementsByName("multiple_destinations_radio");
		var mdrc = mdr.length;
		
		if (mdrc >= 1)
		{
			mdrck = false;
			for (var i = 0; i < mdrc; i++)
			{
				if (mdr[i].checked)
				{
					mdrck = true;
					break;
				}
			}
			
			if (!mdrck)
			{
				result = false;
				//string += "\r\n     • " + unescape(msg[3]);
				warn.set.message(unescape(msg[3]));
			}
		}
		else
		{
			result = false;
			//string += "\r\n     • " + unescape(msg[4]);
			warn.set.message(unescape(msg[4]));
		}
	}
	
	//if (!check_destination(true, false))
	//{
	//	result = false;
		//string += "\r\n     • " + unescape(msg[2]); 
	//	warn.set.message(unescape(msg[2]));
	//}
	
	if (!result) {//alert(string);
		warn.display();
	}
	
	return result;
}
// <-- Checks whether the form data inserted is correct or not
