//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 (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(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(tabContentCollection[i].id == activeTab){
			tabContentCollection[i].style.display = "block";
		} else {
			tabContentCollection[i].style.display = "none";
		}
		
	}

}

function flexPriceSchedule(isOn,row) {
  if (document.getElementById) {
    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) {
	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(){
	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') {
			get('multicity').innerHTML = "";
		}
		//HomeForm.submit();
		return true;
	} catch(e) {
		return false;	
	}
	
}