//Defines functions used to manipulate the letter code drop downs

var flightSearchForm = flightSearchForm || document.forms.flightSearch || document.forms.main;
function getFlightSearchForm() {
  return flightSearchForm = flightSearchForm || document.forms.flightSearch || document.forms.main;
}

function doSettingsForLetterCodes(depCityValue, arrCityValue) {
	doCommomSettingsForLetterCodes(depCityValue, arrCityValue);
	setDefaultLetterCode(getFlightSearchForm().classLetter);
	setDefaultLetterCode(flightSearchForm.classLetterReturn);
	setLetterCodeVisibility();
}
/*Performs the settings for letter codes without setting the default values*/
function doSettingsForLetterCodesWithoutDefault(depCityValue, arrCityValue){
	doCommomSettingsForLetterCodes(depCityValue, arrCityValue);
	setLetterCodeVisibility();
}
function depCityChanged(depCityPanel, arrCityPanel) {
  obDepChanged();
  updateCabinAndLetterCodes(depCityPanel, arrCityPanel, getFlightSearchForm().classType, flightSearchForm.classTypeReturn, flightSearchForm.classLetter, flightSearchForm.classLetterReturn);
}
function arrCityChanged(depCityPanel, arrCityPanel) {
	obArrivalChanged();
  updateCabinAndLetterCodes(depCityPanel, arrCityPanel, getFlightSearchForm().classType, flightSearchForm.classTypeReturn, flightSearchForm.classLetter, flightSearchForm.classLetterReturn);
}

function inbDepCityChanged(inbDepCityPanel, inbArrCityPanel) {
  ibDepChanged();
  updateCabinAndLetterCodes(inbDepCityPanel, inbArrCityPanel, getFlightSearchForm().classType, flightSearchForm.classTypeReturn, flightSearchForm.classLetter, flightSearchForm.classLetterReturn);
}

function inbArrCityChnaged(inbDepCityPanel, inbArrCityPanel) {
  ibArrivalChanged();
  updateCabinAndLetterCodes(inbDepCityPanel, inbArrCityPanel, getFlightSearchForm().classType, flightSearchForm.classTypeReturn, flightSearchForm.classLetter, flightSearchForm.classLetterReturn);
}

function cabinChanged(depCityPanel, arrCityPanel, isOutboundChange) {
	if (isOutboundChange) {
	obCabinChanged();
	}
  updateCabinAndLetterCodes(depCityPanel, arrCityPanel, getFlightSearchForm().classType, flightSearchForm.classTypeReturn, flightSearchForm.classLetter, flightSearchForm.classLetterReturn);
}

function changeBookingType() {
	setLetterCodeVisibility();
	bookingTypeChanged();
}
function setLetterCodeVisibility() {
	var newlySelectedSearch = getSearchType();
	// If the search type is MPM or SpendMiles then the class letter codes
	// fields should disappear from the panel
	if (newlySelectedSearch == "milesPlusMoney"
			|| newlySelectedSearch == "redeemMiles") {
		document.getElementById("classLetterFrom").style.visibility = "hidden";
		document.getElementById("classLetterImageFrom").style.visibility = "hidden";
		getFlightSearchForm().classLetter.style.visibility = "hidden";
		document.getElementById("classLetterTo").style.visibility = "hidden";
		document.getElementById("classLetterImageTo").style.visibility = "hidden";
		flightSearchForm.classLetterReturn.style.visibility = "hidden";
	}
	if (newlySelectedSearch == "exact_date"
			|| newlySelectedSearch == "lowest_fare") {
		document.getElementById("classLetterFrom").style.visibility = "visible";
		document.getElementById("classLetterImageFrom").style.visibility = "visible";
		getFlightSearchForm().classLetter.style.visibility = "visible";
		document.getElementById("classLetterTo").style.visibility = "visible";
		document.getElementById("classLetterImageTo").style.visibility = "visible";
		flightSearchForm.classLetterReturn.style.visibility = "visible";
	}
}
function setStyle(element){
	element.style.width = "40px";
	element.style.height = "18px";
}



