/* stuff you can change */
// setColor("#cccccc", "#cccccc", "#ffffff", "#ffffff", "#333333", "#cccccc", "#333333");
// setFontColor("#333333", "#333333", "#333333", "#ffffff", "#333333");
/* end stuff you can change */

addCalendar("Calendar1", "Select Date", "date_arrive", "myform");
addCalendar("Calendar2", "Select Date", "date_depart", "myform");
setWidth(90, 1, 15, 1);
setFormat("mm-dd-yyyy");
delimiter = /-/;
function sendform(theform)
{
	// values from the form
    var noa = theform.num_adults.value;
	var noc = theform.num_children.value;


	// verify form has been filled
	var filled 		= /\S/;
	var els 		= theform.elements;
	for(var i = 0; i < els.length; i++)
	{
		if(!filled.test(els[i].value))
		{
			alert("You must fill out all fields.");
			els[i].focus();
			return false;
		}
	}

	// verify number of children & number adults are valid
	if(isNaN(noa) || isNaN(noc))
	{
		alert("You must choose the number of adults and the number of children.");
		return false;
	}

	// see if arrival > depart
	if(compare_date(theform.date_arrive.value,theform.date_depart.value) > 0)
	{
		alert("Arrival date must be before departure date.");
		return false;
	}
    var date_arrive = theform.date_arrive.value.split(delimiter);
	var date_depart = theform.date_depart.value.split(delimiter);
	var arrive = parseInt(date_arrive[0])+'/'+date_arrive[1]+'/'+date_arrive[2]; 	// arrive month
	var depart = parseInt(date_depart[0])+'/'+date_depart[1]+'/'+date_depart[2]; 	// arrive month
	var bad = date_arrive[1];	// arrive day
	var bay = date_arrive[2];	// arrive year
	var bdm = date_depart[0];	// depart month
	var bdd = date_depart[1];	// depart day
	var bdy = date_depart[2];	// depart year

	// build the URL;
	var full_url = base_server
					
                                        + "Hotel=" + clientHotel
                                        + "&Chain=" + clientChain
				        + "&arrive=" + arrive
                                        + "&depart=" + depart
                                //	+ "&hea=" + clientEmail
				//	+ "&url=" + clientWeb
				//	+ "&locale=en_US"
				//	+ "&checkAvailability=true"
				//	+ "&bam=" + bam
				//	+ "&bad=" + bad
				//	+ "&bay=" + bay
				//	+ "&bdm=" + bdm
				//	+ "&bdd=" + bdd
				//	+ "&bdy=" + bdy
					+ "&Adult=" + noa
					+ "&Child=" + noc;

	window.location = full_url;
	return false;
}

/*
used for body onload
Set date_arrive to the current day
*/
function set_arrive(depart_id, arrive_id)
{
	var date_arrive = document.getElementById(arrive_id);
	var today = new Date();
	var month = today.getMonth() + 1;
	var year = today.getFullYear();
	var day = today.getDate();

	if(month < 10) month = "0" + month;
	if(day < 10) day = "0" + day;

	date_arrive.value = month + "-" + day + "-" + year;
	set_depart(depart_id, arrive_id);
}

/*
compare two dates, see if the first > second
first < second: -1
first == second: 0
first > second: 1
*/
function compare_date(date1, date2)
{
    var date1_parts = date1.split(delimiter);
	var date2_parts = date2.split(delimiter);

    var bam = date1_parts[0]; 	// arrive month
	var bad = date1_parts[1];	// arrive day
	var bay = date1_parts[2];	// arrive year
	var bdm = date2_parts[0];	// depart month
	var bdd = date2_parts[1];	// depart day
	var bdy = date2_parts[2];	// depart year

	// date1 == date2
    if((bam == bdm) && (bad == bdd) && (bay == bdy))
	{
		return 0;
	}
	// date1 > date2
    else if(
		(bay > bdy) ||  // arrive year > depart year
		(bay == bdy && bam > bdm) || // years ok, arrive month > depart month
		(bay == bdy && bam == bdm && bad > bdd) // year ok, months ok, arrive day > depart day
	)
	{
		return 1;
	}
	// date1 < date2
	else
	{
		return -1;
	}
}

function check_depart(depart_id, arrive_id)
{
    var date_arrive	= document.getElementById(arrive_id);
	var date_depart	= document.getElementById(depart_id);
	if(compare_date(date_arrive.value, date_depart.value) > 0)
	{
		set_depart(depart_id, arrive_id);
	}
}
/*
Set date_depart = date_arrive + 1
*/
function set_depart(depart_id, arrive_id)
{
	var date_arrive	= document.getElementById(arrive_id);
	var date_depart	= document.getElementById(depart_id);

	// date_arrive stuff
	var thedate 	= date_arrive.value;
	var dateparts 	= thedate.split(delimiter);
	var month 		= dateparts[0];
	var day 		= dateparts[1];
	var year 		= dateparts[2];

	// account for leap year
	var feb_days	= ((year % 4 == 0) && ((year % 100 !=0 )||(year % 400 == 0))) ? 29 : 28;
	var month_days 	= new Array(31, feb_days, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	// create date_depart string
	var new_month	= Math.floor(month) + 0;
    var new_day 	= Math.floor(day) + 1;
	var new_year 	= year;

	// roll to next month
	if(new_day > month_days[month - 1])
	{
		new_day = 1;
		new_month++;
		// roll to next year
		if(new_month > 12)
		{
			new_month = 01;
			new_year++;
		}
	}

	if(new_month < 10) new_month = "0" + new_month;
	if(new_day < 10) new_day = "0" + new_day;
	date_depart.value = new_month + "-" + new_day + "-" + new_year;
}