
function LoadDate() {
	var adate = new Date();
	document.getElementById('ArrivalDateYear').value = adate.getFullYear();
	document.getElementById('ArrivalDateMonth').value = adate.getMonth()+1;
	document.getElementById('ArrivalDateDay').value = adate.getDate();
	
	var ddate = new Date();
	ddate.setDate( adate.getDate() + 1 );
	document.getElementById('DepartureDateYear').value = ddate.getFullYear();
	document.getElementById('DepartureDateMonth').value = ddate.getMonth()+1;
	document.getElementById('DepartureDateDay').value = ddate.getDate();
}

function DateChanged(o){
        // Get arrival date
        var adate = new Date(document.getElementById('ArrivalDateYear').value,(document.getElementById('ArrivalDateMonth').value-1),document.getElementById('ArrivalDateDay').value);
        // Get departure date
        var ddate = new Date(document.getElementById('DepartureDateYear').value,(document.getElementById('DepartureDateMonth').value-1),document.getElementById('DepartureDateDay').value);
        if( o == "Arrival" ){
                // if arrival date is after departure date,
                // set departure date = arrival date + 1
                if( adate >= ddate ){
			ddate = adate;
			ddate.setDate( ddate.getDate() + 1 );
                        document.getElementById('DepartureDateYear').value = ddate.getFullYear();
                        document.getElementById('DepartureDateMonth').value = ddate.getMonth()+1;
                        document.getElementById('DepartureDateDay').value = ddate.getDate();
                }
        }else{
                // if departure date is before arrival date,
                // set arrival date = departure date - 1
                if( ddate <= adate ){
			adate = ddate;
			adate.setDate( adate.getDate() - 1 );
                        document.getElementById('ArrivalDateYear').value = adate.getFullYear();
                        document.getElementById('ArrivalDateMonth').value = adate.getMonth()+1;
                        document.getElementById('ArrivalDateDay').value = adate.getDate();
                }
        }
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(month,year) {
	for (var i = 1; i <= month; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = daysInFebruary(year)}
	} 
	return this
}

function ValidateDate(day,month,year){
	//alert( 'checking date '+year+'-'+month+'-'+day);
	// Check the year
	if( year < 2006 || year > 3000 ){ return false; }

	// Check the month
	if( month < 1 || month > 12 ){ return false; }

	// Get the number of days in the month
	var days_array = DaysArray(month,year);
	
	// Check the day
	if( day < 1 || day > days_array[month] ){ return false; }

	// Date must be good
	return true;
}

function ValidateForm(){
	// Validate the arrival and departure dates
	var arrival_date_day = document.getElementById('ArrivalDateDay').value;
	var arrival_date_month = document.getElementById('ArrivalDateMonth').value;
	var arrival_date_year = document.getElementById('ArrivalDateYear').value;

	var departure_date_day = document.getElementById('DepartureDateDay').value;
	var departure_date_month = document.getElementById('DepartureDateMonth').value;
	var departure_date_year = document.getElementById('DepartureDateYear').value;

	var adate = new Date( arrival_date_year, arrival_date_month-1, arrival_date_day);
	var ddate = new Date( departure_date_year, departure_date_month-1, departure_date_day);

	// Get today's date
	var today = new Date();
	today.setHours(0,0,0,0);

	// Get the time in milliseconds since the epic of each date
	var time_adate = adate.getTime();
	var time_ddate = ddate.getTime();
	var time_today = today.getTime();

	//alert( "time_adate = "+ time_adate +"\ntime_ddate = "+ time_ddate +"\ntime_today = "+ time_today);

	// Is the arrival date valid
	if( !ValidateDate(arrival_date_day,arrival_date_month,arrival_date_year) ){
		alert('Invalid arrival date');
		return false;
	}
	
	// Is the departure date valid
	if( !ValidateDate(departure_date_day,departure_date_month,departure_date_year) ){
		alert('Invalid departure date');
		return false;
	}

	// Is the arrival date prior to today
	if( time_adate < time_today ){
		alert('Arrival date is prior to today');
		return false;
	}

	// Is the departure date prior to today
	if( time_ddate < time_today ){
		alert('Departure date must be after today');
		return false;
	}

	// Is the arrival date after the departure date
	if( time_ddate <= time_adate ){
		alert('Departure date must be after arrival date');
		return false;
	}

	// Dates must be good
	//Call Google Analytics Action
	 urchinTracker('/book-now/rightForm');
	//Return Good
	return true;
}