/*
-----------------------------------------------------------
This function checks for errors on the form selection.
-----------------------------------------------------------
Modifications:
-----------------------------------------------------------
22/07/04 - CP
Added functionality to check if date is in the past and alert user to select future date.
Added padNumber() function
-----------------------------------------------------------
*/

function checkCorrectDate()
{
	var arrMonth
	var MonthValue
	var DayValue
	var YearValue
	
	arrMonth = document.holidaySearch.departureMonthYearMin.value.split("-");
	DayValue = document.holidaySearch.departureDayMin.value;
		
	MonthValue = arrMonth[0]
	YearValue = arrMonth[1]
	
	if( (DayValue > 30 && (MonthValue == '04') || (MonthValue == '06') || (MonthValue == '09') || (MonthValue == '11' ) ) || ( DayValue > 28 && (MonthValue == '02'))	)
	{
		document.holidaySearch.departureDayMin.value = ReturnCorrectDay(MonthValue,YearValue)	
	}

}

function checkYear(year) 
{ 
 return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}

function ReturnCorrectDay(ValueMonth,ValueYear)
{
	if(ValueMonth != '02' && document.holidaySearch.departureDayMin.value > 30)
		return 30;
	else if(ValueMonth == '02' && checkYear(ValueYear) && document.holidaySearch.departureDayMin.value > 28)
		return 29;
	else if(ValueMonth == '02' && !checkYear(ValueYear) && document.holidaySearch.departureDayMin.value > 28)
		return 28;
	else
		return document.holidaySearch.departureDayMin.value;
	
}

function search() {

	var minDepartureArray;
	var date = new Date()
	var now = new Date(date.getYear(),date.getMonth(),date.getDate());
	var airports;
	minDepartureArray = document.holidaySearch.departureMonthYearMin.value.split("-");
	var dateOnForm = new Date(minDepartureArray[1],minDepartureArray[0]-1,document.holidaySearch.departureDayMin.value);
	
	// fix for errors when searching 22/23/24th October
	// Added by Chris  - 22-10-04
	
	var tmpDate = minDepartureArray[1] + "-" + minDepartureArray[0] + "-" + document.holidaySearch.departureDayMin.value
	if (invalidDate(tmpDate) && invalidDestination(document.holidaySearch.destinationAirport.value)) {
		alert('Please select a date at least 3 days in advance');
		document.holidaySearch.departureDayMin.value = '25';
		return false;
	}
	
	// end fix
	
	if (document.holidaySearch.destinationAirport.value == '' || document.holidaySearch.destinationAirport.value == 'none')
		{
		alert("Please select a destination airport");
		document.holidaySearch.destinationAirport.focus();
		return false;
	}
	else if (document.holidaySearch.destinationAirport.value == 'NOSEARCHEUROPE') {
		alert('Please choose a destination inside Europe and Mediterranean');
		document.holidaySearch.destinationAirport.focus();
		return false;
	}
	else if (document.holidaySearch.destinationAirport.value == 'NOSEARCHWORLDWIDE') {
		alert('Please choose a destination inside Worldwide');
		document.holidaySearch.destinationAirport.focus();
		return false;
	}
	else if (dateOnForm <= now) {
		alert('Please select a departure date after today');
		document.holidaySearch.departureDayMin.value = padNumber(date.getDate());
		document.holidaySearch.departureMonthYearMin.value = padNumber(date.getMonth()+1) + "-" + date.getYear();
		document.holidaySearch.departureDayMin.focus();
		return false;
	}
	else {
		document.holidaySearch.departureMonthMin.value = minDepartureArray[0];
		document.holidaySearch.departureYearMin.value = minDepartureArray[1];
		document.holidaySearch.departureDayMax.value = document.holidaySearch.departureDayMin.value;
		document.holidaySearch.departureMonthMax.value = minDepartureArray[0];
		document.holidaySearch.departureYearMax.value = minDepartureArray[1];
		//alert(minDepartureArray[0] + "\n" + minDepartureArray[1] + "\n" + document.holidaySearch.departureDayMin.value);
		//alert("Dest air: " + document.holidaySearch.destinationAirport.value);
	}
}

function padNumber(num) {
	if (num.length = 1) {
		num = "0" + num;
	}
	return num;
}

// Functions for checking if date is one of those known to produce and error when searching on balearics:
// 22-10-2004
// 23-10-2004
// 24-10-2004

function invalidDestination(dest) {
	var invalid = false;
	if (dest == 'IBZ,PMI,MAH' || dest == 'IBZ' || dest == 'PMI' || dest == 'MAH') {
		invalid = true;
	}
	return invalid;
}

function invalidDate(d) {
	var invalid = false;
	if (d == '2004-10-22' || d == '2004-10-23' || d == '2004-10-24') {
		invalid = true;
	}
	return invalid;
}
