/// <summary>
///  Executed on Load
/// </summary>
function Load()
{
	// Get the state of the Forms , ie retrun multi or single
	var blSingleTrip= document.getElementById('SingleRadio').checked;
	var blReturnTrip= document.getElementById('ReturnRadio').checked;
	var blMultiTrip= document.getElementById('MultiRadio').checked;
	
	if (blSingleTrip)
	{
		setFormSingleTrip(true);
	}
	else if (blReturnTrip)
	{
		setFormReturnTrip(true);		
		// Set Open Jaw Defaults
		DisplayOpenJawForm();
	}
	else
	{
		setFormMultiTrip(true);
	}

	// Set the Departure field as default  entering field
	document.getElementById("CD1").focus();
}

/// <summary>
/// Displays the Open Jaw Form fields
/// </summary>
function DisplayOpenJawForm()
{
	// Get the state of the Forms 
	var blReturnToChecked = document.getElementById('CAR2').checked;
	var blReturnFromChecked = document.getElementById('CDR2').checked;

	// Tell the differant Rows to Show/Hide
	ShowHide('ReturnTo',blReturnToChecked);	
	ShowHide('ReturnFrom',blReturnFromChecked);
	
	// Decide iif we should show the two search options
	/*if ((blReturnToChecked) || (blReturnFromChecked))
	{
		ShowHide('SpecificFare',false);
		ShowHide('JustFare',false);
	}
	else
	{
		ShowHide('SpecificFare',true);
		ShowHide('JustFare',true);
	}*/
}

/// <summary>
/// Transfer information to hidden fields for requesting on the next page
/// </summary>
function TransferExtraFormInformation()
{
	var f1 = document.getElementById("form1");
	f1.AirStepCX.value = f1.CX.options[f1.CX.selectedIndex].text
	f1.AirStepCL.value = f1.CL.options[f1.CL.selectedIndex].text
	f1.AirStepTD1.value = f1.TD1.options[f1.TD1.selectedIndex].text
	f1.AirStepTD2.value = f1.TD2.options[f1.TD2.selectedIndex].text
	
	// Copy Extra's for multi search's
	f1.AirStepCD1.value = f1.CD1.value
	f1.AirStepCA1.value = f1.CA1.value
	f1.AirStepCA2.value = f1.CA2.value
	f1.AirStepCA3.value = f1.CA3.value
	f1.AirStepCA4.value = f1.CA4.value
	f1.AirStepCA5.value = f1.CA5.value
	f1.AirStepCA6.value = f1.CA6.value
	
}

/// <summary>
/// Submits the form to the Server
/// </summary>
function Submit(searchType)
{
	// Only run if the Airports and Dates are potentially valid
	if ((CheckAirports()) && (CheckDates()))
	{
		if (searchType == 2)
		{
			// Set the Progress Bar Running
			setTimeout ("ProgressStatus()", 1000);
		}
		else
		{
			// Blag the progrss bar to look like its working
			document.getElementById("ProgressTable").style.display="none";
			document.getElementById("StopSearch").style.display="none";
			document.getElementById("ExtendSearch").style.display="none";

			// Set the Progress Bar Running
			setTimeout ("BlagProgressStatus()", 1000);
		}

		TransferExtraFormInformation();

		// Submit the Forms
		document.getElementById("form1").submit();

		// Show the Interim Page
		ShowHide("SP", true);
		ShowHide("MP", false);
		
		return true;		
	}
	else
	{
		return false;
	}
}

/// <summary>
/// Validates the airports submitted
/// </summary>
function CheckAirports()
{
	f1 = document.getElementById("form1")
	// Check Adults to Infants ratio
	if (f1.NSI[f1.NSI.selectedIndex].value > f1.NSA[f1.NSA.selectedIndex].value)
	{
		alert("Airline regulations stipulate that you must travel with one adult per infant.\nIf you are travelling with " + f1.NSI[f1.NSI.selectedIndex].value + " infants, then you must take " + f1.NSI[f1.NSI.selectedIndex].value + " adults.");
		f1.NSA.focus();
		return false
	}

	if (document.getElementById("CD1"))
	{
		var DepartureBox = document.getElementById("CD1");

		
		// Check the destinations have been filled in correctly
		if (DepartureBox.value.length<3)
		{
			alert("Please specify departure city or airport");
			DepartureBox.focus();
			return false
		}
		
	}
	if (document.getElementById("CA1"))
	{
		var ArrivalBox = document.getElementById("CA1");
		if (ArrivalBox.value.length<3)
		{
			alert("Please specify destination city or airport");
			ArrivalBox.focus();
			return false
		}
	}

	
	// Airports are valid 
	return true
}

/// <summary>
/// Check Dates Are valid
/// </summary>
function CheckDates()
{
	//Variables for today's date
	var today  = new Date();
	
	//Variables for Depart date
	var depDay = f1.DD1.value;
	var depMonth = f1.MD1.value.substr(0,2);
	var depYear = f1.MD1.value.substr(2,6);
	var depDate = new Date(depYear, (depMonth-1), depDay);
	
	//Variables for Arrive date
	var ArrDay = f1.DD2.value;
	var ArrMonth = f1.MD2.value.substr(0,2);
	var ArrYear = f1.MD2.value.substr(2,6);
	var ArrDate = new Date(ArrYear, (ArrMonth-1), ArrDay);
	
	//Check to see if depDate is within 2 and 330 days of today
	if (depDate > ArrDate)
	{
		alert ("Departure Date Must be before Arrival Date");
	}
	else
	{
		return true;
	}
}

/// <summary>
/// Sets the form up for a single trip
/// </summary>
function setFormSingleTrip(blShowHide)
{
	if (blShowHide == true)
	{
		// Remove the elements of the other two forms
		setFormReturnTrip(false);
		setFormMultiTrip(false);		
	}
	else
	{
	}	
}

/// <summary>
/// Sets the form up for a single trip
/// </summary>
function setFormReturnTrip(blShowHide)
{
	if (blShowHide)
	{
		// Remove the elements of the other two forms
		setFormSingleTrip(false);
		setFormMultiTrip(false);		

		ShowHide("ReturnFromDiffAirport", true);
		ShowHide("ReturnToDiffAirport", true);
		ShowHide("ReturnDateRow", true);
//		ShowHide("AdvancedOptionsLink", true);
	}
	else
	{
		ShowHide("ReturnFromDiffAirport", false);
		ShowHide("ReturnToDiffAirport", false);
		ShowHide("ReturnDateRow", false);
		ShowHide("ReturnTo", false);
		ShowHide("ReturnFrom", false);	
//		ShowHide("AdvancedOptionsLink", false);
	
	}	
}

/// <summary>
/// Sets th 	e form up for a single trip
/// </summary>
function setFormMultiTrip(blShowHide)
{
	if (blShowHide == true)
	{
		// Remove the elements of the other two forms		
		setFormSingleTrip(false);	
		setFormReturnTrip(false);
		// Show Multi rows
		ShowHide("MultiBlank1", true);
		ShowHide("ReturnDateRow", true);
		ShowHide("MultiBlank2", true);
		ShowHide("ReturnDateRow2", true);
		ShowHide("ReturnFrom2", true);
		ShowHide("MultiBlank3", true);
		ShowHide("ReturnDateRow3", true);
		ShowHide("ReturnFrom3", true);
		ShowHide("MultiBlank4", true);
		ShowHide("ReturnDateRow4", true);
		ShowHide("ReturnFrom4", true);
		ShowHide("MultiBlank5", true);
		ShowHide("ReturnDateRow5", true);
		ShowHide("ReturnFrom5", true);
		ShowHide("ReturnFrom6", true);

		// Hide Search options
//		ShowHide("SearchByLowestFare", false);
		//ShowHide("SpecificFare", false);
		//ShowHide("JustFare", false);
		
		// Rename CA3 to the multi box
		document.getElementById("CA2").name = "return_CA2";
		document.getElementById("multi_CA2").name = "CA2";
		
		document.getElementById("SearchByFlightTimesRadio").checked = true;
	}
	else
	{
		// Show Multi rows
		ShowHide("MultiBlank1", false);
		ShowHide("ReturnDateRow2", false);
		ShowHide("ReturnFrom2", false);	
		ShowHide("MultiBlank2", false);
		ShowHide("ReturnDateRow3", false);
		ShowHide("ReturnFrom3", false);
		ShowHide("MultiBlank3", false);
		ShowHide("ReturnDateRow4", false);
		ShowHide("ReturnFrom4", false);
		ShowHide("MultiBlank4", false);
		ShowHide("ReturnDateRow5", false);
		ShowHide("ReturnFrom5", false);
		ShowHide("MultiBlank5", false);
		ShowHide("ReturnFrom6", false);
		
		// Hide Search options
//		ShowHide("SearchByLowestFare", true);
		//ShowHide("SpecificFare", true);
		//ShowHide("JustFare", true);
		
		// Rename CA3 to the multi box
		document.getElementById("CA2").name = "CA2";
		document.getElementById("multi_CA2").name = "multi_CA2";
	}	
}

