//Form Variable
var HomeForm = get('HomeForm');
var bookIsPrevFlex = false;
var formTabIndex = 100;

addEvent(window,'load', setupFullSearch, false);
function moreFlightLegs(elem){
	get(elem).style.display="block";
	get('moreFlightsLnk').style.display="none";
}

function setupFullSearch(){
	HomeForm = get('HomeForm');
	var searchComponents = getByClassName('change_search', {tagName:['li', 'a', 'input'], className:'change_search', startElem:get('RTR')});
	for(i=0;i<searchComponents.length;i++){
		var tempObj = searchComponents[i];
		addEvent(tempObj, 'click', searchTypeControl, false);
	}
	var tripType = get('tripType').value;
	setSearchDisplay(tripType);
	setTabIndices(HomeForm);
}

/* this is to override the default */
function setActiveTab(triggerID,type)
{
	if (triggerID.match('trigger')){
		var activeTab =triggerID.split("_")[0];
		setSearchDisplay(activeTab);
		get('tripType').value = activeTab;
	}
}
function searchTypeControl(e){
	var t = window.event ? window.event.srcElement : e ? e.target : null;
	if(t.id == "" || t.id == null){
		t = t.parentNode;
	}
if(exists(get('flex'))){
	if (t.id.match('flex')){
			flexType = t.id.substring(t.id.length-1, t.id.length);
			flexType = parseInt(flexType);
			flexAirports(flexType);
		} else if (t.id.match('radio')){
			switch (t.id){
			case 'radio_price':
				flexPriceSchedule(true,'flex');
			break;
			case 'radio_schedule':
				flexPriceSchedule(false,'flex');
			break;
			}
		} else {
			return;
			//alert('no cases');
		}
	
}
}

function setSearchDisplay(activeTab){
	var tabsID = "applicationTabs";
	//var activeTab = whichType.split("_")[0];
	var tabs = get(tabsID);
	var tabCollection = tabs.getElementsByTagName('li');
	var tabContentCollection = new Array();
		tabContentCollection[0] = get('roundtrip');
		//tabContentCollection[1] = get('oneway');
		tabContentCollection[1] = get('multicity');
//Set Tab display		
	for(var i=0;i<tabCollection.length;i++)
	{
		setClassName(tabCollection[i].id,"");
		if(tabCollection[i].id==activeTab + "_trigger") { setClassName(tabCollection[i].id,"active"); }
		
	}
	
//Set flex radio display
	if(exists(get('flex'))){
		if(activeTab != 'multicity'){
			get('flex').style.display = 'block';
		} else {
			get('flex').style.display = 'none';	
		}
	}
//Set roundtrip display
	if(activeTab == 'roundtrip'){
			get('departureDate_1').style.display = 'block';
			get('departureTime_1').style.display = 'block';
			get('roundtripwhenflexinstruct').style.display = 'block';
			get('destinationDate_flex').style.display="block";
			get('destinationTime_flex').style.display="block";
			get('flexDays_destination').style.display="block";
			get('onewaywhenflexinstruct').style.display = 'none';
	}

//Set roundtrip display minus return date and time 
	if(activeTab == 'oneway'){
			get('departureDate_1').style.display = 'none';
			get('departureTime_1').style.display = 'none';
			get('roundtripwhenflexinstruct').style.display = 'none';
			get('destinationDate_flex').style.display="none";
			get('destinationTime_flex').style.display="none";
			get('flexDays_destination').style.display="none";
			get('onewaywhenflexinstruct').style.display = 'block';
			activeTab = 'roundtrip';
	}

//Display travel criteria - from/to, date/time
	for(var i=0;i<tabContentCollection.length;i++){
		if(exists(get('flex'))){
			if(tabContentCollection[i].id == activeTab){
				tabContentCollection[i].style.display = "block";
			} else {
				tabContentCollection[i].style.display = "none";
			}
			
		}
	}
}

function flexPriceSchedule(isOn,row) {
	if(exists(get('flex'))){
	  if (document.getElementById) {
		var row=document.getElementById(row);
		//perform if Price is selected
		if (isOn) {
			// set row color back to black (enabled text)
			row.style.color = "#000000";
	
			// enable Flex options
			get('flexRadio1').disabled = false;
			get('flexRadio2').disabled = false;
			get('flexRadio3').disabled = false;
	
			if (get('flexRadio1').checked == true) {
				get('cabinClassPref').style.display="block";
				get('cabinPref').style.display="none";
			} else {
				get('cabinClassPref').style.display="none";
				get('cabinPref').style.display="block";
			}
			
			//if Flex dates is selected, show flex calendars, hide default date selection
			if (get('flexRadio3').checked) {
				get('flexDates').style.display="block";
				if (get('flexDates2') != null) {
					get('flexDates2').style.display="block";
				}
				get('defaultDates').style.display="none";
			}
		   get('radio_price').checked = true;
		   get('radio_schedule').checked = false;
		   // perform if Schedule is selected
		} else {
		  // set row color to gray (disabled text)
		  row.style.color = "#999999";
	
		  // disable Flex options
		  get('flexRadio1').disabled = true;
		  get('flexRadio2').disabled = true;
		  get('flexRadio3').disabled = true;
	
		  // show radius selection instead of flex airports instructional copy
		  get('flexAirports').style.display = "none";
	
		  // show default date selection and hide flex calendars just in case they were visible
		  get('flexDates').style.display="none";
		  if (get('flexDates2') != null) {
			get('flexDates2').style.display="none";
		  }
		  get('defaultDates').style.display="block";
	
		  //change back to Exact airports and dates when Schedule is selected
		  get('flexRadio1').checked = true;
		  get('flexRadio2').checked = false;
		  get('flexRadio3').checked = false;
	
		  get('cabinClassPref').style.display="block";
		  get('cabinPref').style.display="none";
		  
		  // hide flexible dates & airports radio text help just in case it is visible
		  get('flexDatesCopy').style.display="none";
		  get('flexAirportsCopy').style.display="none";
	
		  get('radio_price').checked = false;
		  get('radio_schedule').checked = true;
		
		}
	  }
  	}	
 }

function flexAirports(n) {
	if(exists(get('flex'))){
		EnhancedCalendar.close();
		if(bookIsPrevFlex && (n === 1 || n === 2)) {
			get('departureDate[0]').value = get('departureDateOptionsFlex').value;
			if(exists(get('departureDate[1]'))) { get('departureDate[1]').value = get('destinationDateOptionsFlex').value; }
			bookIsPrevFlex = false;
		}
	
		switch (n) {
			// Exact airports and dates selected
			case 1:
				get('flexAirports').style.display="none";
				get('defaultDates').style.display="block";
				get('flexDates').style.display="none";
				if (get('flexDates2') != null) {
					get('flexDates2').style.display="none";
				}
				get('flexDatesCopy').style.display="none";
				get('flexAirportsCopy').style.display="none";
		
				get('cabinClassPref').style.display="block";
				get('cabinPref').style.display="none";
	
				//change back to Exact airports and dates 
				get('flexRadio1').checked = true;
				get('flexRadio2').checked = false;
				get('flexRadio3').checked = false;
							
				flexPriceSchedule(true,'flex');
				break;
			// Flexible airports selected
			case 2:
				get('flexAirports').style.display="block";
				get('defaultDates').style.display="block";
				get('flexDates').style.display="none";
				if (get('flexDates2') != null) {
					get('flexDates2').style.display="none";
				}
				get('flexDatesCopy').style.display="none";
				get('flexAirportsCopy').style.display="inline";
	
				get('cabinClassPref').style.display="none";
				get('cabinPref').style.display="block";
	
				get('radio_cabin').checked = true
				get('radio_class').checked = false;
	
				//Check State of airport radius radio buttons
				var departure = HomeForm.departureAirportMilesRange;
				var destination = HomeForm.destinationAirportMilesRange;
				var emptyDepartureRadio = true;
				var emptyDestinationRadio = true;
				for(i=0; i<departure.length; i++){
					if(departure[i].checked){
						emptyDepartureRadio = false;
					}
				}
				for(i=0; i<destination.length; i++){
					if(destination[i].checked){
						emptyDestinationRadio = false;
					}
				}
				if(emptyDepartureRadio){
					departure[1].checked = true;	
					}
				if(emptyDestinationRadio){
					destination[1].checked = true;	
				}
							
				flexPriceSchedule(true,'flex'); 
				break;
			// Flexible dates selected
			case 3:
				get('flexAirports').style.display="none";
				get('defaultDates').style.display="none";
				get('flexDates').style.display="block";
				if (get('flexDates2') != null) {
					get('flexDates2').style.display="block";
				}
				get('flexDatesCopy').style.display="inline";
				get('flexAirportsCopy').style.display="none";
	
				get('cabinClassPref').style.display="none";
				get('cabinPref').style.display="block";
				
				// Set flex date to active for searching nearby dates link
				get('flexRadio1').checked = false;
				get('flexRadio2').checked = false;
				get('flexRadio3').checked = true;
				get('departureDateOptionsFlex').value = get('departureDate[0]').value;
				if(exists(get('departureDate[1]'))) { get('destinationDateOptionsFlex').value = get('departureDate[1]').value; }
				flexPriceSchedule(true,'flex'); 
	
				get('radio_cabin').checked = true
				get('radio_class').checked = false;
				bookIsPrevFlex = true;
				break;
		}
	}
}

function flexWeekends(){
	if(exists(get('flex'))){
		get('flexTravelWeek').checked = false;
		get('flexTravelWeekend').checked = true;
	}
}

function checkFareOption(){
   get('radio_class').checked = true;
}
function checkCabinOption(){
   get('radio_cabin').checked = true;
}

function setTabIndices(form){
	
	for(i=0; i<form.length; i++){
		var elem = form.elements[i];
		if(elem.type == 'radio' || elem.type == 'text' || elem.type == 'button' || elem.tagName == 'SELECT'){
			form.elements[i].tabIndex = formTabIndex;
			formTabIndex++;
		}
	}
	
}

function setAndSubmit(){
	try {
		var tripType = get('tripType').value;
		//alert(tripType);
		if(tripType == 'multicity') {
			get('roundtrip').innerHTML = "";
		}
		if(tripType == 'roundtrip' || tripType == 'oneway') {
			if(exists(get('multicity'))){
				get('multicity').innerHTML = "";
			}
		}
		//HomeForm.submit();
		return true;
	} catch(e) {
		return false;	
	}
	
}

