Event.observe(window, "load", SetupAdditionalAirports);
    
    var Airport1Visible = $("Airport1Visible");
    var Airport2Visible = $("Airport2Visible");
    var Airport3Visible = $("Airport3Visible");
    var Airport4Visible = $("DestAirport1Visible");
    var Airport5Visible = $("DestAirport2Visible");
    var Airport6Visible = $("DestAirport3Visible");
    var country = $("ucFlightSearch_ddlDepartureCountry");
    
    function SetupAdditionalAirports()
    {
        
    
        var closeAirport1Button = $("ucFlightSearch_closeAirport1Button");
        var closeAirport2Button = $("ucFlightSearch_closeAirport2Button");
        var closeAirport3Button = $("ucFlightSearch_closeAirport3Button");
        var closeAirport4Button = $("ucFlightSearch_closeAirport4Button");
        var closeAirport5Button = $("ucFlightSearch_closeAirport5Button");
        var closeAirport6Button = $("ucFlightSearch_closeAirport6Button");
        var departureAirportDiv1 = $("DepartureAirport1Div");
        var departureAirportDiv2 = $("DepartureAirport2Div");
        var departureAirportDiv3 = $("DepartureAirport3Div");
        var ukDestinationAirport1 = $("UKDestinationAirport1");
        var ukDestinationAirport2 = $("UKDestinationAirport2");
        var ukDestinationAirport3 = $("UKDestinationAirport3");
        
        var uk_id = "23";
    
        if(closeAirport1Button != null) closeAirport1Button.style.display = "none";
        if(closeAirport2Button != null) closeAirport2Button.style.display = "none";
        if(closeAirport3Button != null) closeAirport3Button.style.display = "none";
        if(closeAirport4Button != null) closeAirport4Button.style.display = "none";
        if(closeAirport5Button != null) closeAirport5Button.style.display = "none";
        if(closeAirport6Button != null) closeAirport6Button.style.display = "none";
        
        // Fix for Firefox to get the browser to refresh the async panel after returning to the page from the back button.  
        if(navigator.userAgent.indexOf("Firefox")!=-1 && Page_IsValid)
        {
           var prm = Sys.WebForms.PageRequestManager.getInstance();
            
            prm.add_endRequest(SetDropDowncookies);
            
            // Prevent Firefox from posting back if there is a server side validation error, as
            // the postback hides the error message from the user.  
            var serverSideError = $("ServerSideError");
            if(serverSideError == null || serverSideError==0)
            {
                __doPostBack('ucFlightSearch_UpdatePanel1', '');
            }
        }
       
        
        // Set display of UK Departure airports
        SetTierVisibility(departureAirportDiv1, Airport2Visible, Airport3Visible, Airport1Visible, closeAirport1Button, "ucFlightSearch_deciFlyingFrom1");
        SetTierVisibility(departureAirportDiv2, Airport1Visible, Airport3Visible, Airport2Visible, closeAirport2Button, "ucFlightSearch_deciFlyingFrom2");
        SetTierVisibility(departureAirportDiv3, Airport1Visible, Airport2Visible, Airport3Visible, closeAirport3Button, "ucFlightSearch_deciFlyingFrom3");
        
        var lnkAddAdditionalAirports = $("ucFlightSearch_lnkAddDepartureAirport")    
        SetAdditionalAirportLinkVisiblity(lnkAddAdditionalAirports, Airport1Visible, Airport2Visible, Airport3Visible);
        

        // Set display of UK Destinataion airports
        SetTierVisibility(ukDestinationAirport1, Airport5Visible, Airport6Visible, Airport4Visible, closeAirport4Button, "ucFlightSearch_deciFlyingTo1");
        SetTierVisibility(ukDestinationAirport2, Airport4Visible, Airport6Visible, Airport5Visible, closeAirport5Button, "ucFlightSearch_deciFlyingTo2");
        SetTierVisibility(ukDestinationAirport3, Airport4Visible, Airport5Visible, Airport6Visible, closeAirport6Button, "ucFlightSearch_deciFlyingTo3");
        
        lnkAddAdditionalAirports = $("ucFlightSearch_lnkAddDestinationAirport")   
        SetAdditionalAirportLinkVisiblity(lnkAddAdditionalAirports, Airport4Visible, Airport5Visible, Airport6Visible);
            
        //SetDropDowncookies(null,null);
       
    }
    
    function SetDropDowncookies(sender, args)
    {
        var country = $("ucFlightSearch_ddlDepartureCountry");
        var countryid = "23";
        var serverSideError = $("ServerSideError");
        
        if(serverSideError == null || serverSideError==0)
        {
            if(country.value == countryid)
            {
                var departureinput1 = readCookie('departureinput1');
                var departureinput2 = readCookie('departureinput2');
                var departureinput3 = readCookie('departureinput3');
                if(departureinput1 != null) {$("ucFlightSearch_ddlDeparture1").value = departureinput1;}
                if(departureinput2 != null) {$("ucFlightSearch_ddlDeparture2").value = departureinput2;}
                if(departureinput3 != null) {$("ucFlightSearch_ddlDeparture3").value = departureinput3;}
                if(readCookie('destinationinput') != null){$("ucFlightSearch_destinationSearch").value = readCookie('destinationinput').replace(/\+/g," ");}
                if(readCookie('destinationinput') != null){$("ucFlightSearch_destinationSearch_hidden").value = readCookie('destinationinput').replace(/\+/g," ");}
            }
            else
            {
                var destairport1 = readCookie('destairport1');
                var destairport2 = readCookie('destairport2');
                var destairport3 = readCookie('destairport3');
                if(destairport1 != null) {$("ucFlightSearch_ddlDestination1").value = destairport1;}
                if(destairport2 != null) {$("ucFlightSearch_ddlDestination2").value = destairport2;}
                if(destairport3 != null) {$("ucFlightSearch_ddlDestination3").value = destairport3;}
                
                var airport1 = readCookie('airport1');
                if(airport1 != null) {$("ucFlightSearch_ddlNonUKDepartureAirports").value = airport1;}
            }
        }
    }
    
    function SetAdditionalAirportLinkVisiblity(lnkAddAdditionalAirports, AirportVisibleField1, AirportVisibleField2, AirportVisibleField3)
    {
        if(lnkAddAdditionalAirports != null)
        {
            if(AirportVisibleField1.value == "1" && AirportVisibleField2.value == "1" && AirportVisibleField3.value == "1")
            {
                lnkAddAdditionalAirports.style.display = "none";
            }
            else
            {
                lnkAddAdditionalAirports.style.display = "block";
            }
        }
    }
    
    function SetTierVisibility(AirportDiv, AirportVisibleField1, AirportVisibleField2, AirportVisibleField3, CloseAirportButton, DataEntryContainerItemGroup)
    {
        if(AirportVisibleField3.value == "1")
        {
            if(AirportDiv != null) AirportDiv.style.display = "block";
            if(DataEntryContainerItemGroup != null) Msfg$callFunction(DataEntryContainerItemGroup, "Hidden", false);
            
            if((AirportVisibleField1.value == "1" || AirportVisibleField2.value == "1") && CloseAirportButton != null)
            {
                CloseAirportButton.style.display = "inline";
            }
        }
        else
        {
            if(AirportDiv != null) AirportDiv.style.display = "none";
            if(DataEntryContainerItemGroup != null) Msfg$callFunction(DataEntryContainerItemGroup, "Hidden", true);
            if(CloseAirportButton != null) CloseAirportButton.style.display = "none";
        }
    }
    
    function ExpandAdditionalAirports(SectionToExpand)
    {
        if(SectionToExpand == "departure")
        {
            var closeAirport1Button = $("ucFlightSearch_closeAirport1Button");
            var closeAirport2Button = $("ucFlightSearch_closeAirport2Button");
            var closeAirport3Button = $("ucFlightSearch_closeAirport3Button");
            var dataGroupItemName1 = "ucFlightSearch_deciFlyingFrom1";
            var dataGroupItemName2 = "ucFlightSearch_deciFlyingFrom2";
            var dataGroupItemName3 = "ucFlightSearch_deciFlyingFrom3";
            var airportDiv2 = $("DepartureAirport2Div");
            var airportDiv3 = $("DepartureAirport3Div");
            var addAirportsLink = $("ucFlightSearch_lnkAddDepartureAirport")
            Airport1Visible = $("Airport1Visible");
            Airport2Visible = $("Airport2Visible");
            Airport3Visible = $("Airport3Visible");
        }
        else
        {
            var closeAirport1Button = $("ucFlightSearch_closeAirport4Button");
            var closeAirport2Button = $("ucFlightSearch_closeAirport5Button");
            var closeAirport3Button = $("ucFlightSearch_closeAirport6Button");
            var dataGroupItemName1 = "ucFlightSearch_deciFlyingTo1";
            var dataGroupItemName2 = "ucFlightSearch_deciFlyingTo2";
            var dataGroupItemName3 = "ucFlightSearch_deciFlyingTo3";
            var airportDiv2 = $("UKDestinationAirport2");
            var airportDiv3 = $("UKDestinationAirport3");
            var addAirportsLink = $("ucFlightSearch_lnkAddDestinationAirport")
            Airport1Visible = $("DestAirport1Visible");
            Airport2Visible = $("DestAirport2Visible");
            Airport3Visible = $("DestAirport3Visible");
        }
          
        closeAirport1Button.style.display = "inline";
        closeAirport2Button.style.display = "inline";
        closeAirport3Button.style.display = "inline";
        
        if(Airport1Visible.value == "0")
        {
            Msfg$callFunction(dataGroupItemName1, "Hidden", false);
            Airport1Visible.value = "1";
        }
        else if(Airport2Visible.value == "0" && Airport3Visible.value == "0")
        {
            airportDiv2.style.display = "block";
            Msfg$callFunction(dataGroupItemName2, "Hidden", false);
            closeAirport2Button.style.display = "inline";
            Airport2Visible.value = "1";
        }
        else if(Airport2Visible.value == "1" && Airport3Visible.value == "0")
        {
            airportDiv3.style.display = "block";
            Msfg$callFunction(dataGroupItemName3, "Hidden", false);
            closeAirport3Button.style.display = "inline";
            addAirportsLink.style.display = "none";
            Airport3Visible.value = "1"
        }
        else if(Airport2Visible.value == "0" && Airport3Visible.value == "1")
        {
            airportDiv2.style.display = "block";
            Msfg$callFunction(dataGroupItemName2, "Hidden", false);
            closeAirport2Button.style.display = "inline";
            addAirportsLink.style.display = "none";
            Airport2Visible.value = "1";
        }
    }
  
   function ClearCombo(combo)
   {
        combo.selectedIndex = 0;
   }
   function CopyComboData(SourceCombo, DestCombo)
   {
      DestCombo.selectedIndex = SourceCombo.selectedIndex;
   }
   function HideCombo(ComboNumber, Section)
   {
        if(Section == "Departure")
        {
            var panelID = "ucFlightSearch_deciFlyingFrom" + ComboNumber;
            var hiddenID = "Airport" + ComboNumber + "Visible";
            var buttonID = "ucFlightSearch_closeAirport" + ComboNumber + "Button";
            var divId = "DepartureAirport" + ComboNumber + "Div";
        }
        else
        {
            var destinationComboNumber = parseInt(ComboNumber) + 3;
            var panelID = "ucFlightSearch_deciFlyingTo" + ComboNumber;
            var hiddenID = "DestAirport" + ComboNumber + "Visible";
            var buttonID = "ucFlightSearch_closeAirport" + destinationComboNumber + "Button";
            var divId = "UKDestinationAirport" + ComboNumber;
        }
        
        if ($(panelID) != null)
        {
            Msfg$callFunction(panelID, "Hidden", true);
            $(divId).style.display = "none";
        }
        if ($(hiddenID) != null)    
            $(hiddenID).value = "0"; 
        if ($(buttonID) != null)
            $(buttonID).style.display = "none";
   }   
   function IsComboEmpty(combo)
   {
      if (combo == null)
        return true;  
      else if (combo.value != "" && combo.value != null && combo.value != " ")
        return false;
      else
        return true;
   }
       
    function ContractAdditionalAirport(airportToContract)
    {
        if(airportToContract <=3)
        {
            var combo = $("ucFlightSearch_ddlDeparture1");
            var combo2 = $("ucFlightSearch_ddlDeparture2");
            var combo3 = $("ucFlightSearch_ddlDeparture3");
            var closeAirport1Button = $("ucFlightSearch_closeAirport1Button");
            var closeAirport2Button = $("ucFlightSearch_closeAirport2Button");
            var closeAirport3Button = $("ucFlightSearch_closeAirport3Button");
            var lnkAddDepartureAirport =  $("ucFlightSearch_lnkAddDepartureAirport");
            var Airport2HiddenField = $("Airport2Visible");
            var Airport3HiddenField = $("Airport3Visible");
            var Section = "Departure";
            var addAirportsLink = $("ucFlightSearch_lnkAddDepartureAirport")
        }
        else
        {
            var combo = $("ucFlightSearch_ddlDestination1");
            var combo2 = $("ucFlightSearch_ddlDestination2");
            var combo3 = $("ucFlightSearch_ddlDestination3");
            var closeAirport1Button = $("ucFlightSearch_closeAirport4Button");
            var closeAirport2Button = $("ucFlightSearch_closeAirport5Button");
            var closeAirport3Button = $("ucFlightSearch_closeAirport6Button");
            var lnkAddDepartureAirport =  $("ucFlightSearch_lnkAddDestinationAirport");
            var Airport2HiddenField = $("DestAirport2Visible");
            var Airport3HiddenField = $("DestAirport3Visible");
            var Section = "Destination";
            var addAirportsLink = $("ucFlightSearch_lnkAddDestinationAirport")
        }
        
        if(airportToContract == "1" || airportToContract == "4")
        {
            if(Airport2HiddenField.value == "1" && Airport3HiddenField.value == "0")
            {
                //If we've got text in 2, copy it to 1. Make 2 invisible
                if(!IsComboEmpty(combo2))
                {
                    CopyComboData(combo2, combo);
                    ClearCombo(combo2);  
                }
                else
                {
                    ClearCombo(combo); 
                }
                HideCombo("2", Section);
                closeAirport1Button.style.display = "none"; 
                
            }
            
            else if(Airport2HiddenField.value == "0" && Airport3HiddenField.value == "1")
            {
                //if there is text in 3, copy it to 1. Clear the selection in 3.
                if(!IsComboEmpty(combo3))
                {
                    CopyComboData(combo3, combo);
                    ClearCombo(combo3);
                }
                else
                {
                    ClearCombo(combo);
                }
                 
                HideCombo("3", Section);  
                closeAirport1Button.style.display = "none";
            }
            
            else if(Airport2HiddenField.value == "1" && Airport3HiddenField.value == "1")
            {
                //If there is text in 2, copy it to 1. Clear the selection in 2.
                if(!IsComboEmpty(combo2))
                {
                    CopyComboData(combo2, combo);
                    ClearCombo(combo2);
                }
                else
                {
                    ClearCombo(combo);
                }
                
                //If there is text in 3, copy it to 2 and make 3 invisible. This makes it look like 1 has dissappeared when 
                //really 3 has dissappeared but the values from 2 and 3 have been moved to 2 and 1 respectively.
                if(!IsComboEmpty(combo3))
                {
                    CopyComboData(combo3, combo2);
                    ClearCombo(combo3);                    
                }
                else
                {
                    ClearCombo(combo2);
                }
                HideCombo("3", Section);                  
                
                //We have removed an airport so the add airport button can be made visible.
                addAirportsLink.style.display = "block";
            }            
        }
        
        if(airportToContract == "2" || airportToContract == "5")
        {
            ClearCombo(combo2);
            
            if(!IsComboEmpty(combo3))
            {
                CopyComboData(combo3, combo2);
                ClearCombo(combo3);  
                HideCombo("3", Section);                  
            }
            else
            {
                HideCombo("2", Section);
                if(Airport3HiddenField.value == "0")
                {
                    closeAirport1Button.style.display = "none";
                }
                
            }
            
            addAirportsLink.style.display = "block";
            
        }
        else if(airportToContract == "3" || airportToContract == "6")
        {
            ClearCombo(combo3);
            HideCombo("3", Section);
            if(Airport2HiddenField.value == "0")
                    closeAirport1Button.style.display = "none";
            
            //Make 3 invisible and make the add airport button visible
            addAirportsLink.style.display = "block";
            
        }
    }

function ResetHiddenFields()
{
    var ddlDepartureCountry = $('ucFlightSearch_ddlDepartureCountry');
    var countryid = ddlDepartureCountry.value;
    
    if(countryid=="23")
    {
        Airport1Visible.value = 1; 
        Airport2Visible.value = 1; 
        Airport3Visible.value = 1; 
        Airport4Visible.value = 0; 
        Airport5Visible.value = 0; 
        Airport6Visible.value = 0; 
    }
    else
    {
        Airport1Visible.value = 1;
        Airport2Visible.value = 0; 
        Airport3Visible.value = 0; 
        Airport4Visible.value = 1; 
        Airport5Visible.value = 1; 
        Airport6Visible.value = 1; 
    }
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split('&');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

