﻿// Booking Magnet Javascript methods
var isBabyRoute = false;
var fromCode = '';
var toCode = '';
var SelectedRoute = null;
var fromInitialised = false;
var toInitialised = false;

// Used by the ajax animation to show and hide panels
function Cover(bottom, top, ignoreSize) {
    //var location = Sys.UI.DomElement.getLocation(bottom);
    // use jquery position as above doesnt work with new template
    var location = $(bottom).position();
    top.style.position = 'absolute';
    top.style.top = location.top + 'px';
    top.style.left = location.left + 'px';
    if (!ignoreSize) {
        top.style.height = bottom.offsetHeight + 'px';
        top.style.width = bottom.offsetWidth + 'px';
    }
}

// Hides all dropdown lists on the magnet when the airport list is shown
// this is to fix ie 6 bug that renders the dropdowns on top of other controls
function HideDropDowns(uniqueFormID,HideDropDowns)
{
    // Check for IE 6 as this is the only supported browser that messes up dropdowns
    if((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion.split('MSIE')[1]) <= 6))
    {
        // A list of all drop downs that need to be hidden for ie6 bug
        var DropDownsToHide = new Array('drpDepDay','drpDepMonth','drpRetDay','drpRetMonth','drpAdults','drpChildren','drpInfants');
        var i = 0
    
        if(HideDropDowns == 'true')
        {
            for(i=0;i<DropDownsToHide.length;i++)
            {
                document.getElementById(uniqueFormID + DropDownsToHide[i]).style.visibility = 'hidden';
            }
        }
        else
        {
            for(i=0;i<DropDownsToHide.length;i++)
            {
                document.getElementById(uniqueFormID + DropDownsToHide[i]).style.visibility = 'visible';
            }
        }
    }
}


// Disables the return date boxes if the one way checkbox is ticked
function OneWayToggle(uniqueFormID , OneWayBox)
{
    if (OneWayBox == 1)
    {
	    document.getElementById(uniqueFormID + 'drpRetDay').disabled = true;
	    document.getElementById(uniqueFormID + 'drpRetMonth').disabled = true;
    }
    else
    {
	    document.getElementById(uniqueFormID + 'drpRetDay').disabled = false;
	    document.getElementById(uniqueFormID + 'drpRetMonth').disabled = false;
    }
}

function ResetAirports(uniqueFormID, textbox,Value,AnimationName,Direction,Extender)
{
    $find(AnimationName).OnClick();
    
    document.getElementById(uniqueFormID + 'txtFrom').value = Value;
    document.getElementById(uniqueFormID + 'txtTo').value = Value;
    
    AlterAutoComplete('txtToExtender',document.getElementById(uniqueFormID + 'txtFrom'),'|depart');
    AlterAutoComplete('txtFromExtender',document.getElementById(uniqueFormID + 'txtTo'),'|arrive');
 
    UpdateToFromHeaders(uniqueFormID);
    UpdateToAirports();
    UpdateFromAirports();
    GetDynamicContent();
    
   // __doPostBack(uniqueFormID + textbox,'');
}

// Selects the chosen airport
function SelectAirport(uniqueFormID, textbox,Value,AnimationName,Direction,Extender)
{

    $find(AnimationName).OnClick();
    document.getElementById(uniqueFormID + textbox).value = Value;
    // Update the autocomplete filters
    if(document.getElementById(uniqueFormID + textbox).onChange != null)
    {
        AlterAutoComplete(Extender,document.getElementById(uniqueFormID + textbox),Direction);
    }
    if(Direction == '|depart')
    {
        UpdateToAirports(Value);
    }
    else
    {
        UpdateFromAirports(Value);
    }
    CheckBabyRoute();
        
    //get dynamic content
    GetDynamicContent();
    
    UpdateToFromHeaders(uniqueFormID);
    //__doPostBack(uniqueFormID + textbox,'');
}

// Clear the to or from textbox when focus is given to it
function ClearBox(textbox,action)
{
    if(action == 'focus')
    {
        textbox.value = '';    
    }
    return false;   
}

// Update the autocomplete extenders filter property
function AlterAutoComplete(extender,textbox,direction)
{    
    if($find(extender) != null)
    {
        $find(extender).set_contextKey(textbox.value + direction+ibeCultureCode);
    }
}

// Validates and finishes populating the booking form before posting
function ValidateIBE()
{

    //CheckBabyRoute();
    var USNotice = true;
//    
//    if(document.location.toString().indexOf("en-us") > 0 && SelectedRoute != null && SelectedRoute.From.Country.Id != 9)
//    {
//        USNotice=confirm("Important currency information: Your booking will be quoted and charged in local currency. A currency calculator is available in pricing information to give you approximate currency conversions into the currency of your choice. You are leaving the bmi website for USA. All bookings will be governed by the fare rules and booking conditions of the country of departure, this may include an online booking fee.  If the payment card used is not billed in UK Pounds (GBP, £) there may be a difference between the final amount shown and the amount billed on your statement.");
//    }

    if (USNotice==true)
    {
        if(isBabyRoute)
        {
            document.forms[0].action = babyPostUrl;
            PopulateBabyForm();
            //clear viewstate
            document.forms[0].__VIEWSTATE.name = 'NOVIEWSTATE';
            document.forms[0].submit();
            return false;
        }
    }else
    {
    return false;
    }   
}

function PopulateBabyForm()
{
    // Get To and From codes
    document.getElementById("From").value = fromCode;
    document.getElementById("To").value = toCode;
    // Calculate depart and return dates
    var dtDepart = document.getElementById(ibeUniqueID +'drpDepDay').value + '/' + document.getElementById(ibeUniqueID +'drpDepMonth').value.split('|')[1] + '/' + document.getElementById(ibeUniqueID +'txtDepYear').value;
    document.getElementById("OutboundDate").value = dtDepart;
    
    var dtReturn;
    // We are not doing oneway request so generate a return date
    dtReturn = document.getElementById(ibeUniqueID +'drpRetDay').value + '/' + document.getElementById(ibeUniqueID +'drpRetMonth').value.split('|')[1] + '/' + document.getElementById(ibeUniqueID +'txtRetYear').value;
    document.getElementById("ReturnDate").value = dtReturn;
    
    document.getElementById("Adt").value = document.getElementById(ibeUniqueID +'drpAdults').value;
    document.getElementById("Chd").value = document.getElementById(ibeUniqueID +'drpChildren').value;
    document.getElementById("Inf").value = document.getElementById(ibeUniqueID +'drpInfants').value;
}

function InitIBE()
{


}


function CheckBabyRoute()
{        
    isBabyRoute = false;

    var from = document.getElementById(ibeUniqueID+'txtFrom').value;
    var to  = document.getElementById(ibeUniqueID+'txtTo').value;
    var makeRequest = false;
    //dont make call if either are empty or contain a slash
    if(from != '' && from.indexOf("/") == -1)
    {
        if(to != '' && to.indexOf("/") == -1)
        {
            makeRequest = true; 
        }
    }
    if(makeRequest)
    {
        var data = from + '/' + to + '/' + ibeCultureCode;
        //PageMethods.IsBabyRoute(data, OnSucceeded, OnFailed);
        bmi.GetRouteInfo(data,OnSucceeded,OnFailed);
    }
}
    
function OnFailed(error,userContext,methodName)
{
    //uncomment line below to see what the error was
    //alert(error.get_message());
}
    
function OnSucceeded(result)
{
    UpdateIbeForBaby(result);

}

function UpdateIbeForBaby(route)
{
    SelectedRoute = route;
    
    var u = ibeUniqueID;

    if(SelectedRoute != null)
    {
        if(document.getElementById('lblAdultsAge')!=null)
        {
            if(SelectedRoute.RouteGroup == "Baby")
            {
                fromCode = SelectedRoute.From.Code;
                toCode = SelectedRoute.To.Code;
                //change children/adult ages from 12 to 14
                document.getElementById('lblAdultsAge').innerHTML  = '14+';
                document.getElementById('lblChildrenAge').innerHTML  = '2-14';
                //set i must travel on these days and hide the flexible option
                document.getElementById('FlexDatesSelector').style.display = 'none';
                isBabyRoute = true;
            }
            else
            {
                fromCode = '';
                toCode = '';
                document.getElementById('lblAdultsAge').innerHTML  = '12+'
                document.getElementById('lblChildrenAge').innerHTML  = '2-12'
                document.getElementById('FlexDatesSelector').style.display = '';
                isBabyRoute = false;
            }
               
                        
            var o = document.getElementById(ibeUniqueID+'lstFlex').getElementsByTagName('label');
            var find = '';
            var rep = '';
            if(o != null)
            {
                if(SelectedRoute.Longhaul)
                {
                    find = '+/- 7';
                    rep = '+/- 3';
                }
                else
                {     
                    find = '+/- 3';
                    rep = '+/- 7';
                }
                for(i=0;i<o.length; i++)
                {
                    o[i].innerHTML = o[i].innerHTML.replace(find,rep);
                }
            }
            if(SelectedRoute.OPStartDate.getFullYear() != 0001)
            {
                //try date
                var da = new Date(SelectedRoute.OPStartDate);
                
                var now = new Date();

                var selectedDate = new Date(document.getElementById(ibeUniqueID + 'txtDepYear').value,document.getElementById(ibeUniqueID + 'drpDepMonth').value.split('|')[1]-1,document.getElementById(ibeUniqueID + 'drpDepDay').value,23,59,0,0);
                
                if(selectedDate > now)
                    now = selectedDate;

                if(da > now)
                {
                
                    var d = da.getDate();
                    var m = da.getMonth()+1;
                    var y = da.getFullYear();
                                        
                    if(m<10)
                        m= "0"+m;

                   preselectDropDown(document.getElementById(ibeUniqueID + 'drpDepDay'),d);
                   preselectDropDown(document.getElementById(ibeUniqueID + 'drpDepMonth'),y+'|'+m);
                    
                    da.setDate(da.getDate()+1);
                    d = da.getDate();
                    m = da.getMonth()+1;
                    y = da.getFullYear();

                    if(m<10)
                        m= "0"+m;
                    
                   preselectDropDown(document.getElementById(ibeUniqueID + 'drpRetDay'),d);
                   preselectDropDown(document.getElementById(ibeUniqueID + 'drpRetMonth'),y+'|'+m);
               }
            }
        }
    }
    UpdateToFromHeaders(ibeUniqueID); 
   
}

function preselectDropDown(obj, va)
{
    for(var i = 0; i < obj.length; i++)
    {
        if(obj.options[i].value == va)
        {
            obj.options[i].selected = true;
        }
    }
}

//updates what is shown in the to/from headers in airport lists
//uses vars that are on front of the IBE
function UpdateToFromHeaders(formId)
{
    var to = document.getElementById('toHeader') ;
    var from = document.getElementById('fromHeader');

    var frmTo = document.getElementById(formId +'txtTo') ;
    var frmFrom = document.getElementById(formId +'txtFrom');

    to.innerHTML = allArrivalPoints;
    from.innerHTML = allDeparturePoints;

    //if from contains / all arrivals
    if(frmFrom.value.indexOf('/') < 0 )
    {
    //from has selected update to header
    to.innerHTML = arrivalPointsFrom + frmFrom.value;
    }

    //if to contains / all arrivals
    if(frmTo.value.indexOf('/') < 0 )
    {
    //from has selected update to header
    from.innerHTML = departurePointsTo + frmTo.value;
    }
}


if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

/*
*Functions to control Scrolling of the airport lists
*/

var scrolling = false;
var direction = 1; //1 down, -1 up
var thingtoscroll;

function scrollDown(elementId)
{
    thingtoscroll = document.getElementById(elementId);
    scrolling = true;
    direction = 1;
    scroll();
}
function scrollUp(elementId)
{
    thingtoscroll = document.getElementById(elementId);
    scrolling = true;
    direction = -1;
    scroll();
}
function scroll()
{
    if(scrolling && thingtoscroll != null)
    {
        thingtoscroll.scrollTop += (2 * direction);
        setTimeout("scroll()",25);
    }
}
function stopScroll()
{
    scrolling = false;
    thingtoscroll=null;
}
function toggleScrollBar(obj, show)
{
    if(show != '')
    {
        document.getElementById(obj).style.overflow = 'auto';
    }
    else
    {
        document.getElementById(obj).style.overflow = 'hidden';
    }
}


function UpdateAirport() 
{
    //bmi.GetDynamicContent('LHR','JED',DycComplete, OnFailed); 
    GetDynamicContent();
}

function GetDynamicContent()
{
 var from = document.getElementById(ibeUniqueID+'txtFrom');
 var to = document.getElementById(ibeUniqueID+'txtTo');
    bmi.GetDynamicContent(from.value,to.value,DycComplete, OnFailed); 
    
}

 
 function UpdateToAirports()
 {
    var affiliate = '';
    if(referral != null)
    {
        affiliate = referral;
    }
    var txtFrom = document.getElementById(ibeUniqueID+'txtFrom');
    if(routeList.length == 0)
    {
        bmi.GetTheAirports('t', txtFrom.value,ibeCultureCode, affiliate ,AirportSearchToComplete, OnFailed); 
    }
    else
    {
            var rts = routeList.split(",");
            newrts = '';
            for(i = 0; i < rts.length; i++)
            {
                if(txtFrom.value.indexOf('/')>0)
                {
                    if(newrts.indexOf(rts[i].split('|')[1]) < 0)
                    {
                        if(newrts.length > 0)
                        {
                            newrts += ',';
                        }
                        newrts += rts[i].split('|')[1] ;
                    }
                }
                else
                {
                    if(rts[i].split('|')[0] == txtFrom.value)
                    {
                        if(newrts.length > 0)
                        {
                            newrts += ',';
                        }
                        newrts += rts[i].split('|')[1] ;
                    }
                }
            }
            //alert(newrts);           
            AirportSearchToComplete(newrts.split(','),'','');
    }
 }
 function UpdateFromAirports()
 {
    var affiliate = '';
    if(referral != null)
    {
        affiliate = referral;
    }

    var txtTo = document.getElementById(ibeUniqueID+'txtTo');


    if(routeList.length == 0)
    {
        bmi.GetTheAirports('f', txtTo.value,ibeCultureCode,affiliate,AirportSearchFromComplete, OnFailed); 
    }
    else
    {
            var rts = routeList.split(",");
            newrts = '';
            for(i = 0; i < rts.length; i++)
            {
                if(txtTo.value.indexOf('/')>0)
                {
                    if(newrts.indexOf(rts[i].split('|')[0]) < 0)
                    {
                        if(newrts.length > 0)
                        {
                            newrts += ',';
                        }
                        newrts += rts[i].split('|')[0] ;
                    }                
                }
                else
                {
                    if(rts[i].split('|')[1] == txtTo.value)
                    {
                        if(newrts.length > 0)
                        {
                            newrts += ',';
                        }
                        newrts += rts[i].split('|')[0] ;
                    }
                }
            }
            //alert(newrts);
            AirportSearchFromComplete(newrts.split(','),'','');

    }

 }
 
 function AirportSearchFromComplete(result, userContext, methodName) {
   //$get(ibeUniqueID+'txtFrom').value = result;
   var l = document.getElementById('AirportListInfoFrom');
   l.innerHTML = '';
   var tmp = '';
   var itemspergroup = (Math.round(result.length/3));
   var loopcount = 1;
   tmp = '<div style=\"width: 150px; float:left\">'
   for(i = 0; i < result.length; i++)
   {   
        tmp += '<div class=\"AirportItem\"><a class=\"alink\" onclick=\'toggleScrollBar(\"AirportListInfoFrom\",\"\");SelectAirport(ibeUniqueID,\"txtFrom\",\"'+result[i]+'\",\"CloseAnimation",\"|depart\",\"txtToExtender\"); return false;\'>'+result[i]+'</a></div>';
        
        if(i == (loopcount * itemspergroup))
        {
            tmp += '</div><div style=\"width: 150px; float:left\">';
            loopcount++;
        }
        if(i == result.length-1)
        {
            tmp += '</div>';
            tmp += '<div class=\"clear\"></div><a class=\"AirportItem\" onclick=\'toggleScrollBar(\"AirportListInfoFrom\",\"\");ResetAirports(ibeUniqueID,\"txtFrom\",resetText,\"CloseAnimation\",\"|depart\",\"txtToxtender\"); return false;\'>'+resetLinkText+'</a>';
        }        

    }
     l.innerHTML += tmp;     
 }
 function AirportSearchToComplete(result, userContext, methodName) {
   //$get(ibeUniqueID+'txtFrom').value = result;
   var l = document.getElementById('AirportListInfoTo');
   l.innerHTML = '';
   var tmp = '';
   
   var itemspergroup = (Math.round(result.length/3));
   var loopcount = 1;
   
   tmp = '<div style=\"width: 150px; float:left\">'
   for(i = 0; i < result.length; i++)
   {   
        tmp += '<div class=\"AirportItem\"><a class=\"alink\" onclick=\'toggleScrollBar(\"AirportListInfoTo\",\"\");SelectAirport(ibeUniqueID,\"txtTo\",\"'+result[i]+'\",\"CloseToAnimation",\"|arrive\",\"txtFromExtender\"); return false;\'>'+result[i]+'</a></div>';
        if(i == (loopcount * itemspergroup))
        {
            tmp += '</div><div style=\"width: 150px; float:left\">';
            loopcount++;
        }
        if(i == result.length-1)
        {   
            tmp += '</div>';
            tmp += '<div class=\"clear\"></div><a class=\"AirportItem\" onclick=\'toggleScrollBar(\"AirportListInfoTo\",\"\");ResetAirports(ibeUniqueID,\"txtTo\",resetText,\"CloseToAnimation\",\"|arrive\",\"txtFromExtender\"); return false;\'>'+resetLinkText+'</a>';
        }        
   }
   
   
     l.innerHTML += tmp;    
 }
function OnFailed(error, userContext, methodName) {
    //alert(error.message);
}

function DycComplete(result, userContext, methodName) 
{
    //alert(result);
    if(result.length > 0)
    {
        document.getElementById('dycMessageContainer').style.display = '';
        document.getElementById('dycMessage').innerHTML = '<ul>'+result+'</ul>';
    }
    else
    {
        document.getElementById('dycMessageContainer').style.display = 'none';
        document.getElementById('dycMessage').innerHTML = result;
    }
}


AlteredDate = new Date();

function UpdateDatesWithID(ChangedDropDown,uniqueId)
{
    var id1 = uniqueId.replace(/_/g,"$"); 
    var year = 0;
    var month = 0;
    var day = 0;
    
    // Work out which dropdown has changed
    switch(ChangedDropDown.name)
    {
        case id1 +'drpDepDay':
        case id1 +'drpDepMonth':        
            AlteredDate.setFullYear(document.getElementById(uniqueId +'drpDepMonth').value.split('|')[0],document.getElementById(uniqueId +'drpDepMonth').value.split('|')[1] - 1,document.getElementById(uniqueId +'drpDepDay').value);
            // Check if the date that is now selected is actually a real date, if not roll the month on so it is valid
            year = document.getElementById(uniqueId +'drpDepMonth').value.split('|')[0];
            month = document.getElementById(uniqueId +'drpDepMonth').value.split('|')[1] - 1;
            day = document.getElementById(uniqueId +'drpDepDay').value
            
            if((year != AlteredDate.getFullYear()) || (month != AlteredDate.getMonth()) || (day != AlteredDate.getDate()))
            {
                // An invalid date was passed and automatically adjusted so now alter manually to be the format we want
                AlteredDate = new Date();
                // Check for december
                if(document.getElementById(uniqueId +'drpDepMonth').value.split('|')[1] - 1 == 11)
                {
                    AlteredDate.setFullYear(document.getElementById(uniqueId +'drpDepMonth').value.split('|')[0],0,document.getElementById(uniqueId +'drpDepDay').value);                
                }
                else
                {
                    AlteredDate.setFullYear(document.getElementById(uniqueId +'drpDepMonth').value.split('|')[0],document.getElementById(uniqueId +'drpDepMonth').value.split('|')[1],document.getElementById(uniqueId +'drpDepDay').value);
                }                    
            }
            
            // Verify the altered date
            VerifyAlteredDate();
            // Update the row of the affected drop down
            UpdateRow(document.getElementById(uniqueId +'txtDepDay'),document.getElementById(uniqueId +'drpDepDay'),document.getElementById(uniqueId +'drpDepMonth'),document.getElementById(uniqueId +'txtDepYear'));
            // Update the other row
            UpdateOtherRow(document.getElementById(uniqueId +'txtRetDay'),document.getElementById(uniqueId +'drpRetDay'),document.getElementById(uniqueId +'drpRetMonth'),document.getElementById(uniqueId +'txtRetYear'),0);            
        break
        case id1 +'drpRetDay':
        case id1 +'drpRetMonth':        
            AlteredDate.setFullYear(document.getElementById(uniqueId +'drpRetMonth').value.split('|')[0],document.getElementById(uniqueId +'drpRetMonth').value.split('|')[1] - 1,document.getElementById(uniqueId +'drpRetDay').value);

            // Check if the date that is now selected is actually a real date, if not roll the month on so it is valid
            year = document.getElementById(uniqueId +'drpRetMonth').value.split('|')[0];
            month = document.getElementById(uniqueId +'drpRetMonth').value.split('|')[1] - 1;
            day = document.getElementById(uniqueId +'drpRetDay').value
            
            if((year != AlteredDate.getFullYear()) || (month != AlteredDate.getMonth()) || (day != AlteredDate.getDate()))
            {
                // An invalid date was passed and automatically adjusted so now alter manually to be the format we want
                AlteredDate = new Date();
                // Check for december
                if(document.getElementById(uniqueId +'drpRetMonth').value.split('|')[1] - 1 == 11)
                {
                    AlteredDate.setFullYear(document.getElementById(uniqueId +'drpRetMonth').value.split('|')[0],0,document.getElementById(uniqueId +'drpRetDay').value);                
                }
                else
                {
                    AlteredDate.setFullYear(document.getElementById(uniqueId +'drpRetMonth').value.split('|')[0],document.getElementById(uniqueId +'drpRetMonth').value.split('|')[1],document.getElementById(uniqueId +'drpRetDay').value);
                }                    
            }            
            
            // Verify the altered date
            VerifyAlteredDate();
            // Update the row of the affected drop down
            UpdateRow(document.getElementById(uniqueId +'txtRetDay'),document.getElementById(uniqueId +'drpRetDay'),document.getElementById(uniqueId +'drpRetMonth'),document.getElementById(uniqueId +'txtRetYear'));
            // Update the row of the affected drop down
            UpdateOtherRow(document.getElementById(uniqueId +'txtDepDay'),document.getElementById(uniqueId +'drpDepDay'),document.getElementById(uniqueId +'drpDepMonth'),document.getElementById(uniqueId +'txtDepYear'),1);            
        break        
        
        default:
            //alert('check line 367a');
        break
    }       
    
}

// Updates the date dropdowns based on the on change
function UpdateDates(ChangedDropDown)
{
    UpdateDatesWithID(ChangedDropDown,ibeUniqueID,0);
}

//function UpdateDropDates(ChangedDropDown, formId, depDay, depDate, depMonth, depYear, retDay, retDate, retMonth, retYear )
//{   
//    //var id1 = formId.replace(/_/g,"$"); 
//    var id1 = formId;
//    // Work out which dropdown has changed
//    switch(ChangedDropDown.id)
//    {
//        case id1 +depDate:
//        case id1 +depMonth:        
//            AlteredDate.setFullYear(document.getElementById(formId +depMonth).value.split('|')[0],document.getElementById(formId +depMonth).value.split('|')[1] - 1,document.getElementById(formId +depDate).value);
//            // Verify the altered date
//            VerifyAlteredDate();
//            // Update the row of the affected drop down
//            UpdateRow(document.getElementById(formId +depDay),document.getElementById(formId +depDate),document.getElementById(formId +depMonth),document.getElementById(formId +depYear));
//            // Update the other row
//            UpdateOtherRow(document.getElementById(formId +retDay),document.getElementById(formId +retDate),document.getElementById(formId +retMonth),document.getElementById(formId +retYear),0);            
//        break
//        case id1 +retDate:
//        case id1 +retMonth:        
//            AlteredDate.setFullYear(document.getElementById(formId +retMonth).value.split('|')[0],document.getElementById(formId +retMonth).value.split('|')[1] - 1,document.getElementById(formId +retDate).value);
//            // Verify the altered date
//            VerifyAlteredDate();
//            // Update the row of the affected drop down
//            UpdateRow(document.getElementById(formId +retDay),document.getElementById(formId +retDate),document.getElementById(formId +retMonth),document.getElementById(formId +retYear));
//            // Update the row of the affected drop down
//            UpdateOtherRow(document.getElementById(formId +depDay),document.getElementById(formId +depDate),document.getElementById(formId +depMonth),document.getElementById(formId +depYear),1);            
//        break        
//        
//        default:
//            //alert('check line 367b');
//        break
//    }         
//}

// Verifys the altered date is a valid one and can be booked
function VerifyAlteredDate()
{  
    var today = new Date();
    today.setHours(00,00,00,00);
    // Create a datetime object representing the last possible booking date
    var lastBookingDate = new Date(today.getTime() + (oneDay * maxBookingDays));
    // Check that the selected date is before today - if so change it to next year
    if(AlteredDate < today)
    {
        AlteredDate.setFullYear((today.getFullYear() + 1),AlteredDate.getMonth(),AlteredDate.getDate());        
    }
    
    // Check if the selected date is valid according to business rules - if not default to today
    if(AlteredDate > lastBookingDate)
    {
        AlteredDate = today;    
    }
}

// Updates the row of the event firing dropdown
function UpdateRow(Day,DateSelected,Month,Year)
{
    var longDate = AlteredDate.getMonth() + 1;
    if(longDate < 10)
    {
        longDate = '0' + longDate;
    }

    Day.value = Days[AlteredDate.getDay()];
    DateSelected.value = AlteredDate.getDate();
  
    var found = false;  
    for(i = 0; i < Month.length; i++)
    {
        if(Month.options[i].value == (AlteredDate.getFullYear() + '|' + longDate))
        {
            found = true;
        }
    }
    if(found)
    {
        Month.value = AlteredDate.getFullYear() + '|' + longDate;
    }
    else
    {
        Month.value = (AlteredDate.getFullYear()-1) + '|' + longDate;
    }
    
    Year.value = AlteredDate.getFullYear();
}

// Updates the ajacent row of the event firing the dropdown
function UpdateOtherRow(Day,DateDrop,Month,Year,Return)
{
    // Set this date to be the same as the one selected if the new date is in the future
    OtherDate = new Date();
    OtherDate.setFullYear(Year.value,(Month.value.split('|')[1] - 1),DateDrop.value);                

    switch(Return)
    {    
        case 0:
            if(AlteredDate > OtherDate)
            {
                UpdateRow(Day,DateDrop,Month,Year);
            }    
        break
        case 1:
            // check that return hasnt been changed to be less than the selected outbound - if it has then alter outbound to be same as return
            if(AlteredDate < OtherDate)
            {
                UpdateRow(Day,DateDrop,Month,Year);
            } 
        break
    }


}


function UpdateInf(AdultDropdown,InfantDropDown)
{
    var SelectedInfants = document.getElementById(ibeUniqueID + InfantDropDown).value;
    // Clear the infant drop down
    document.getElementById(ibeUniqueID + InfantDropDown).length = 0;
    var Item;
    
    // Rebuild with the amount selected in the adult dropdown
    for(var i = 0; i <= AdultDropdown.value ; i++)
    {
        if(i < 10)
        {
            Item = document.createElement("option");
            Item.value = i;
            Item.text = i;
            document.getElementById(ibeUniqueID + InfantDropDown).options.add(Item);
        }
    }
    if(SelectedInfants <= AdultDropdown.value)
    {
        document.getElementById(ibeUniqueID + InfantDropDown).value = SelectedInfants;
    }
    else
    {
        if(AdultDropdown.value == 10)
        {
            document.getElementById(ibeUniqueID + InfantDropDown).value = SelectedInfants;
        }
        else
        {
            document.getElementById(ibeUniqueID + InfantDropDown).value = 0;
        }
    }
}

function OpenFromFlyout()
{
    if(fromInitialised == false)
    {
        //please wait

        var l = document.getElementById('AirportListInfoFrom');
        l.innerHTML = 'please wait';

        //populate
        UpdateFromAirports();
        fromInitialised = true;
    }
    return false;
}

function OpenToFlyout()
{
    if(toInitialised == false)
    {
        //please wait

        var l = document.getElementById('AirportListInfoTo');
        l.innerHTML = 'please wait';

        //populate
        UpdateToAirports();
        toInitialised = true;
    }
    return false;
}


