










function validateFlightSearchCriteriaFormOnlyIE6up(form) {
    var agt=navigator.userAgent.toLowerCase();
    // ***BROWSER VERSION***
    //http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
    // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);

    // Note: Opera and WebTV spoof Navigator.  We do strict client detection.
    // To allow spoofing, take out the tests for opera and webtv.
    var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) );
    var is_nav6 = (is_nav && (is_major == 5));
    var is_nav6up = (is_nav && (is_major >= 5));
    var is_gecko = (agt.indexOf('gecko') != -1);

    var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3 = (is_ie && (is_major < 4));
    var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_ie4up = (is_ie && (is_major >= 4));
    var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5up = (is_ie && !is_ie3 && !is_ie4);
    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
    var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
    var is_ie6up = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

    // KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

    var is_webtv = (agt.indexOf("webtv") != -1);

    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

    // *** JAVASCRIPT VERSION CHECK ***
    var is_js;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if (is_opera5up) is_js = 1.3;
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_hotjava3up) is_js = 1.4;
    else if (is_nav6 || is_gecko) is_js = 1.5;
    // NOTE: In the future, update this code when newer versions of JS
    // are released. For now, we try to provide some upward compatibility
    // so that future versions of Nav and IE will show they are at
    // *least* JS 1.x capable. Always check for JS version compatibility
    // with > or >=.
    else if (is_nav6up) is_js = 1.5;
    // NOTE: ie5up on mac is 1.4
    else if (is_ie5up) is_js = 1.3

    // HACK: no idea for other browsers; always check for JS version with > or >=
    else is_js = 0.0;

    // *** PLATFORM ***
    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
    // NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
    //        Win32, so you can't distinguish between Win95 and WinNT.
    var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

    // is this a 16 bit compiled version?
    var is_win16 = ((agt.indexOf("win16")!=-1) ||
               (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) ||
               (agt.indexOf("windows 16-bit")!=-1) );

    var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                    (agt.indexOf("windows 16-bit")!=-1));

    var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));
    var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));

    // NOTE: Reliable detection of Win98 may not be possible. It appears that:
    //       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
    //       - On Mercury client, the 32-bit version will return "Win98", but
    //         the 16-bit version running on Win98 will still return "Win95".
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    var is_win32 = (is_win95 || is_winnt || is_win98 ||
                    ((is_major >= 4) && (navigator.platform == "Win32")) ||
                    (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

    var is_os2   = ((agt.indexOf("os/2")!=-1) ||
                    (navigator.appVersion.indexOf("OS/2")!=-1) ||
                    (agt.indexOf("ibm-webexplorer")!=-1));

    var is_mac    = (agt.indexOf("mac")!=-1);
    // hack ie5 js version for mac
    if (is_mac && is_ie5up) is_js = 1.4;
    var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) ||
                               (agt.indexOf("68000")!=-1)));
    var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) ||
                                (agt.indexOf("powerpc")!=-1)));

    var is_sun   = (agt.indexOf("sunos")!=-1);
    var is_sun4  = (agt.indexOf("sunos 4")!=-1);
    var is_sun5  = (agt.indexOf("sunos 5")!=-1);
    var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
    var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
    var is_irix5 = (agt.indexOf("irix 5") !=-1);
    var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
    var is_hpux  = (agt.indexOf("hp-ux")!=-1);
    var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
    var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
    var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
    var is_aix1  = (agt.indexOf("aix 1") !=-1);
    var is_aix2  = (agt.indexOf("aix 2") !=-1);
    var is_aix3  = (agt.indexOf("aix 3") !=-1);
    var is_aix4  = (agt.indexOf("aix 4") !=-1);
    var is_linux = (agt.indexOf("inux")!=-1);
    var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
    var is_unixware = (agt.indexOf("unix_system_v")!=-1);
    var is_mpras    = (agt.indexOf("ncr")!=-1);
    var is_reliant  = (agt.indexOf("reliantunix")!=-1);
    var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) ||
           (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) ||
           (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
    var is_sinix = (agt.indexOf("sinix")!=-1);
    var is_freebsd = (agt.indexOf("freebsd")!=-1);
    var is_bsd = (agt.indexOf("bsd")!=-1);
    var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux ||
                 is_sco ||is_unixware || is_mpras || is_reliant ||
                 is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

    var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));

    if (!is_ie) {
        return validateFlightSearchCriteriaForm(form);
    } else if (is_ie6up) {
        return validateFlightSearchCriteriaForm(form);
    } else {
        return true;
    }

 }

function doSelection() {
	return processSelection(14,5,2008);
}

var reservations="+44 (0)871 700 2000";

// localised static values
function localizedStrings() {
this.months = new Array ('Enero ','Febrero ','Marzo ','Abril ','Mayo ','Junio ','Julio ','Agosto ','Septiembre ','Octubre ','Noviembre ','Diciembre ');

//normal reservations only flights
this.invalidAirportCombination1 =
"   Desafortunadamente, la combinaci" + unescape('%F3') + "n de \n" +
"   aeropuerto de salida y aeropuerto de destino \n" +
"   que usted ha seleccionado no est" + unescape('%E1') + " actualmente \n" +
"   disponible para reservas en l" + unescape('%ED') + "nea.\n\n" +
"   Rogamos se ponga en contacto con la Central de reservas de \n" +
"   Flybe llam" + unescape('%E1') + "ndonos directamente al ";
// mensaje adicional para reservas si se trata de un vuelo de c" + unescape('%F3') + "digo compartido Continental
this.invalidAirportCombination2 =  
"\n\n" +
"   Estos son servicios de c" + unescape('%F3') + "digo compartido  y est" + unescape('%E1') + "n\n" +
"   totalmente operados por Continental Airlines.\n" +
"   Todos los productos y servicios de estos vuelos\n" +
"   se ofrecen de conformidad con los productos y servicios\n" + 
"   est" + unescape('%E1') + "ndar de Continental Airlines.\n" +
"   Flybe Economy Plus no est" + unescape('%E1') + " disponible\n" + 
"   en estos vuelos.";      
//mostrado para c" + unescape('%F3') + "digo compartido ScotAirways
this.invalidAirportCombination3 =
"   Desafortunadamente, la combinaci" + unescape('%F3') + "n de \n" +
"   aeropuerto de salida y aeropuerto de destino \n" +
"   que usted ha seleccionado no est" + unescape('%E1') + " actualmente \n" +
"   disponible para reservas en l" + unescape('%ED') + "nea \n" +
"   a trav" + unescape('%E9') + "s de este sistema. \n\n" + 
"   Rogamos se ponga en contacto con la Central de reservas de \n" +
"   Flybe llam" + unescape('%E1') + "ndonos directamente al ";   
           
this.baconnectmessage = 
"   Unfortunately the travel dates you have chosen\n " + 
"   for the selected route is not available to book\n " + 
"   on Flybe.com.  Travel on this route is available to\n " + 
"   book on Flybe.com for journeys beginning after\n " + 
"   25th March 2007.  You will be redirected after\n " + 
"   clicking on the button below. ";
                	   
                	   
this.saturdaysOnly = "\n__________________________________\n\n" +
"        Rogamos tenga en cuenta que este \n" +
"        vuelo s" + unescape('%F3') + "lo funciona los \n" +
"        s" + unescape('%E1') + "bados. ";

this.saturdayOnlyDepartures = "\n__________________________________\n\n" +
"        Rogsmos tenga en cuenta que este \n" +
"        vuelo de salida s" + unescape('%F3') + "lo funciona los \n" +
"        s" + unescape('%E1') + "bados. ";


this.saturdayOnlyReturns = "\n__________________________________\n\n" +
"        Rogsmos tenga en cuenta que este \n" +
"        vuelo de regreso s" + unescape('%F3') + "lo funciona los \n" +
"        s" + unescape('%E1') + "bados. ";

this.businessClassOnly = "\n__________________________________\n\n" +
"        Lo sentimos, la clase Business no est" + unescape('%E1') + " \n" +
"        disponible en esta ruta. \n" +
"        Por favor, elija Premium Economy. ";

this.routeNotYetAvailable = 'Esta ruta no se puede reservar hasta el mes de noviembre; vuelva a seleccionar';

this.skiRoute1 = 'Rogamos a los pasajeros que deseen llevar consigo sus esqu' + unescape('%ED') + 's en esta ruta, se pongan en contacto con nuestro Servicio de Atenci' + unescape('%F3') + 'n al Cliente al ';
this.skiRoute1a = ' ('
this.skiRoute1b = ' si llama desde fuera del Reino Unido) '
this.skiRoute2 = 'despu' + unescape('%E9') + 's de realizar su reserva para pre-reservar su equipo de esqu' + unescape('%ED') + '.  '
+ 'Los esqu' + unescape('%ED') + 's ser' + unescape('%E1') + 'n un porte garantizado por \u00A320 (o divisa local equivalente) por juego, por sector.  ';

this.requiredFieldStr = 'Please supply the ';

this.departureDayStr = 'd' + unescape('%ED') + 'a de salida.';
this.departureMonthStr = 'mes de salida.';
this.departureAirportStr = 'aeropuerto de salida.';
this.destinationAirportStr = 'aeropuerto de destino.';
this.returnDayStr = 'd' + unescape('%ED') + 'a de regreso o elimine el mes de regreso.';
this.returnMonthStr = 'mes de regreso o elimine el d' + unescape('%ED') + 'a de regreso.';
this.depDestDifferent = 'Por favor, seleccione aeropuertos de salida y de destino distintos.';
this.noOutwardXmasStr = 'El d' + unescape('%ED') + 'a de Navidad no hay vuelos de salida. \n\nPor favor, vuelva a seleccionar.';
this.noReturnXmasStr = 'El d' + unescape('%ED') + 'a de Navidad no hay vuelos de regreso. \n\nPor favor, vuelva a seleccionar.';
this.noWinterExtension = 'Las reservas para viajar en esta ruta pueden realizarse hasta finales de octubre de 2005.\n' +
'Si va a viajar despu' + unescape('%E9') + 's de esta fecha, puede realizar las reservas cuando publiquemos nuestro horario de invierno a finales de junio.\nPara ser el primero en conocer nuestro horario de invierno y otras estupendas ofertas, \u00A1suscr' + unescape('%ED') + 'base ahora a nuestro Bolet' + unescape('%ED') + 'n Electr' + unescape('%F3') + 'nico!';

this.thereAreOnly = 'S' + unescape('%F3') + 'lo hay ';
this.daysInMonthStr =' d' + unescape('%ED') + 'as en ';
this.amendDepDate = '.\n\nPor favor, corrija la fecha de salida.';

this.amendRetDate = '.\n\nPor favour, corrija la fecha de regreso.';

this.earliest = 'Hoy es el primer d' + unescape('%ED') + 'a que puede reservar este vuelo, 2 horas antes de su despegue.\n' +
'Por favor, corrija.';
this.internationalResTelNo = '\n' +
' (o fuera del Reino Unido 00 44 1392 268525 para llamadas internacionales). ';

this.invalidDepartureDate = 'Rogamos tenga en cuenta que esta ruta comenzar' + unescape('%E1') + ' a operar a partir del ';
this.flyingAfterSchedule = 'Las reservas para viajar en esta ruta pueden realizarse has ';
this.timetableAlert = '.\nEn junio y noviembre se publicar' + unescape('%E1') + 'n nuevos horarios,\n' +
'pero tambi' + unescape('%E9') + 'n haremos adiciones a nuestro horario durante el a' + unescape('%F1') + 'o.\n\n' +
'Si desea ser el primero en conocer nuestros nuevos horarios y\n' +
'otras estupendas ofertas, \u00A1inscr' + unescape('%ED') + 'base ahora en nuestro Bolet' + unescape('%ED') + 'n Electr' + unescape('%F3') + 'nico!\n\n';

this.forFlightFrom = '. Por favor, vuelva a seleccionar su(s) fecha(s) de acuerdo con ello. Si desea m' + unescape('%E1') + 's informaci' + unescape('%F3') + 'n sobre nuestros horarios de vuelo, no dude en consultar nuestro horario en l' + unescape('%ED') + 'nea.';
this.flightsFrom = 'Los vuelos de ';
this.flightsTo = ' a ';
this.advanceBookingRequired = ' deben reservarse con m' + unescape('%E1') + 's de tres d' + unescape('%ED') + 'as de antelaci' + unescape('%F3') + 'n.';

this.returnDateInvalid = 'La fecha de regreso no puede ser anterior a la fecha de salida.\n\nPor favor, corrija.';
this.dayReturn = 'El regreso es el mismo d' + unescape('%ED') + 'a que la salida. Si se ha equivocado, por favor, corrija.';
this.invalidRoute = 'No cubrimos esta ruta. Por favor, seleccione otra combinaci' + unescape('%F3') + 'n.';

this.interIslandRoutes = 'FlyBE. lamenta informarle de que debido a dificultades con la licencia del Consejo de Transportes de Guernsey, ha tenido que suspenderse la venta de este servicio.  Esperamos poder reanudar este servicio lo antes posible.  Los pasajeros que ya tienen reserve deben facturar del modo normal';

this.departingFrom='salida desde';
this.goingTo='con destino a';

this.unmin='Los ni' + unescape('%F1') + 'os de 11 a' + unescape('%F1') + 'os o menores se transportar' + unescape('%E1') + 'n como menores no acompa' + unescape('%F1') + 'ados\n' +
'a menos que viajen con un adulto mayor de 16 a' + unescape('%F1') + 'os.\n' +
'Por favor, p' + unescape('%F3') + 'ngase en contacto con el servicio de atenci' + unescape('%F3') + 'n a clientes de Flybe si desea m' + unescape('%E1') + 's informaci' + unescape('%F3') + 'n sobre\n' +
'0871 700 2000 en el Reino Unido o 0044 13 92 268 525 desde fuera del Reino Unido.';

this.invalidNumAdults='Por favor, seleccione el n' + unescape('%FA') + 'mero de pasajeros que volar' + unescape('%E1') + '.';
}

flightStrings = new localizedStrings;

var departureAirports=new Array();
departureAirports['ABZ']=new Array("Aberdeen  (ABZ)",'GBP','XXX','BHD','BHX','EXT','JER','LGW','NCL','SOU');
departureAirports['ALC']=new Array("Alicante  (ALC)",'EUR','XXX','EXT','SOU');
departureAirports['AMS']=new Array("Amsterdam  (AMS)",'EUR','XXX','EXT','SOU');
departureAirports['AVN']=new Array("Avignon (AVN)",'EUR','XXX','EXT','SOU');
departureAirports['BHD']=new Array("Belfast City  (BHD)",'GBP','XXX','ABZ','BHX','CWL','DSA','DND','EDI','EXT','GLA','INV','JER','LBA','LGW','MAN','NCL','NQY','CDG','RNS','SOU');
departureAirports['EGC']=new Array("Bergerac  (EGC)",'EUR','XXX','BHX','EDI','EXT','LBA','LGW','SOU');
departureAirports['BHX']=new Array("Birmingham  (BHX)",'GBP','XXX','ABZ','BHD','EGC','BES','BRU','DBV','DND','DUS','EDI','FRA','GLA','GCI','HAM','HAJ','INV','IOM','JER','LRH','MXP','NQY','CDG','SPU','STR','TLS');
departureAirports['BES']=new Array("Brest  (BES)",'EUR','XXX','BHX','EXT','MAN','SOU');
departureAirports['BRS']=new Array("Bristol  (BRS)",'GBP','XXX','BRU','JER');
departureAirports['BRU']=new Array("Bruselas (BRU)",'EUR','XXX','BHX','BRS','EXT','MAN','NCL','SOU');
departureAirports['BOD']=new Array("Burdeos  (BOD)",'EUR','XXX','SOU');
departureAirports['CWL']=new Array("Cardiff (CWL)",'GBP','XXX','BHD','EDI','GLA','JER','NCL','CDG');
departureAirports['DSA']=new Array("Doncaster Sheffield (DSA)",'GBP','XXX','BHD','JER');
departureAirports['DUB']=new Array("Dublin  (DUB)",'EUR','XXX','EXT','GCI','NWI','SOU');
departureAirports['DBV']=new Array("Dubrovnik (DBV)",'EUR','XXX','BHX','EXT');
departureAirports['DND']=new Array("Dundee (DND)",'GBP','XXX','BHD','BHX');
departureAirports['DUS']=new Array("Dusseldorf (DUS)",'EUR','XXX','BHX','MAN','SOU');
departureAirports['EDI']=new Array("Edimburgo  (EDI)",'GBP','XXX','BHD','EGC','BHX','CWL','EXT','JER','MAN','NQY','NWI','RNS','SOU');
departureAirports['EXT']=new Array("Exeter  (EXT)",'GBP','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BES','BRU','DUB','DBV','EDI','FAO','GLA','GCI','INV','JER','LBA','AGP','MAN','NCL','NCE','NWI','PMI','CDG','RNS');
departureAirports['FAO']=new Array("Faro  (FAO)",'EUR','XXX','EXT','SOU');
departureAirports['FRA']=new Array("Frankfurt (FRA)",'EUR','XXX','BHX','MAN','SOU');
departureAirports['GLA']=new Array("Glasgow International (GLA)",'GBP','XXX','BHD','BHX','CWL','EXT','JER','LRH','MAN','NQY','NWI','CDG','SOU');
departureAirports['GCI']=new Array("Guernsey  (GCI)",'GBP','XXX','BHX','DUB','EXT','JER','LGW','MAN','NWI','CDG','SOU');
departureAirports['HAM']=new Array("Hamburgo (HAM)",'EUR','XXX','BHX');
departureAirports['HAJ']=new Array("Hannover (HAJ)",'EUR','XXX','BHX','MAN','SOU');
departureAirports['INV']=new Array("Inverness (INV)",'GBP','XXX','BHD','BHX','EXT','LGW','MAN','SOU');
departureAirports['IOM']=new Array("Isla de Man  (IOM)",'GBP','XXX','BHX','JER','LPL','LGW','LTN','MAN','NQY','SOU');
departureAirports['JER']=new Array("Jersey  (JER)",'GBP','XXX','ABZ','BHD','BHX','BRS','CWL','DSA','EDI','EXT','GLA','GCI','IOM','LGW','SEN','MAN','NCL','NQY','NCE','NWI','CDG','SOU');
departureAirports['LRH']=new Array("La Rochelle  (LRH)",'EUR','XXX','BHX','GLA','MAN','SOU');
departureAirports['LBA']=new Array("Leeds Bradford  (LBA)",'GBP','XXX','BHD','EGC','EXT','SOU');
departureAirports['LIG']=new Array("Limoges  (LIG)",'EUR','XXX','NCL','SOU');
departureAirports['LPL']=new Array("Liverpool  (LPL)",'GBP','XXX','IOM');
departureAirports['LGW']=new Array("Londres Gatwick  (LGW)",'GBP','XXX','ABZ','BHD','EGC','GCI','INV','IOM','JER','NCL');
departureAirports['LTN']=new Array("Londres Luton  (LTN)",'GBP','XXX','IOM');
departureAirports['SEN']=new Array("Londres Southend  (SEN)",'GBP','XXX','JER');
departureAirports['AGP']=new Array("Malaga  (AGP)",'EUR','XXX','EXT','SOU');
departureAirports['MAN']=new Array("Manchester  (MAN)",'GBP','XXX','BHD','BES','BRU','DUS','EDI','EXT','FRA','GLA','GCI','HAJ','INV','IOM','JER','LRH','MXP','NWI','CDG','RNS','SOU');
departureAirports['MXP']=new Array("Milan Malpensa (MXP)",'EUR','XXX','BHX','MAN');
departureAirports['NCL']=new Array("Newcastle  (NCL)",'GBP','XXX','ABZ','BHD','BRU','CWL','EXT','JER','LIG','LGW','RNS','SOU');
departureAirports['NQY']=new Array("Newquay (NQY)",'GBP','XXX','BHD','BHX','EDI','GLA','IOM','JER');
departureAirports['NCE']=new Array("Niza (NCE)",'EUR','XXX','EXT','JER','SOU');
departureAirports['NWI']=new Array("Norwich  (NWI)",'GBP','XXX','DUB','EDI','EXT','GLA','GCI','JER','MAN','CDG');
departureAirports['PMI']=new Array("Palma Mallorca  (PMI)",'EUR','XXX','EXT','SOU');
departureAirports['CDG']=new Array("Paris Charles De Gaulle  (CDG)",'EUR','XXX','BHD','BHX','CWL','EXT','GLA','GCI','JER','MAN','NWI','SOU');
departureAirports['PGF']=new Array("Perpignan  (PGF)",'EUR','XXX','SOU');
departureAirports['RNS']=new Array("Rennes  (RNS)",'EUR','XXX','BHD','EDI','EXT','MAN','NCL','SOU');
departureAirports['SOU']=new Array("Southampton  (SOU)",'GBP','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BES','BRU','BOD','DUB','DUS','EDI','FAO','FRA','GLA','GCI','HAJ','INV','IOM','JER','LRH','LBA','LIG','AGP','MAN','NCL','NCE','PMI','CDG','PGF','RNS');
departureAirports['SPU']=new Array("Split (SPU)",'EUR','XXX','BHX');
departureAirports['STR']=new Array("Stuttgart (STR)",'EUR','XXX','BHX');
departureAirports['TLS']=new Array("Toulouse  (TLS)",'EUR','XXX','BHX');
departureAirports['XXX']=new Array('XXX','XXX','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BHX','BES','BRS','BRU','BOD','CWL','DSA','DUB','DBV','DND','DUS','EDI','EXT','FAO','FRA','GLA','GCI','HAM','HAJ','INV','IOM','JER','LRH','LBA','LIG','LPL','LGW','LTN','SEN','AGP','MAN','MXP','NCL','NQY','NCE','NWI','PMI','CDG','PGF','RNS','SOU','SPU','STR','TLS');
var destinationAirports=new Array();
destinationAirports['ABZ']=new Array("Aberdeen  (ABZ)",'GBP','XXX','BHD','BHX','EXT','JER','LGW','NCL','SOU');
destinationAirports['ALC']=new Array("Alicante  (ALC)",'EUR','XXX','EXT','SOU');
destinationAirports['AMS']=new Array("Amsterdam  (AMS)",'EUR','XXX','EXT','SOU');
destinationAirports['AVN']=new Array("Avignon (AVN)",'EUR','XXX','EXT','SOU');
destinationAirports['BHD']=new Array("Belfast City  (BHD)",'GBP','XXX','ABZ','BHX','CWL','DSA','DND','EDI','EXT','GLA','INV','JER','LBA','LGW','MAN','NCL','NQY','CDG','RNS','SOU');
destinationAirports['EGC']=new Array("Bergerac  (EGC)",'EUR','XXX','BHX','EDI','EXT','LBA','LGW','SOU');
destinationAirports['BHX']=new Array("Birmingham  (BHX)",'GBP','XXX','ABZ','BHD','EGC','BES','BRU','DBV','DND','DUS','EDI','FRA','GLA','GCI','HAM','HAJ','INV','IOM','JER','LRH','MXP','NQY','CDG','SPU','STR','TLS');
destinationAirports['BES']=new Array("Brest  (BES)",'EUR','XXX','BHX','EXT','MAN','SOU');
destinationAirports['BRS']=new Array("Bristol  (BRS)",'GBP','XXX','BRU','JER');
destinationAirports['BRU']=new Array("Bruselas (BRU)",'EUR','XXX','BHX','BRS','EXT','MAN','NCL','SOU');
destinationAirports['BOD']=new Array("Burdeos  (BOD)",'EUR','XXX','SOU');
destinationAirports['CWL']=new Array("Cardiff (CWL)",'GBP','XXX','BHD','EDI','GLA','JER','NCL','CDG');
destinationAirports['DSA']=new Array("Doncaster Sheffield (DSA)",'GBP','XXX','BHD','JER');
destinationAirports['DUB']=new Array("Dublin  (DUB)",'EUR','XXX','EXT','GCI','NWI','SOU');
destinationAirports['DBV']=new Array("Dubrovnik (DBV)",'EUR','XXX','BHX','EXT');
destinationAirports['DND']=new Array("Dundee (DND)",'GBP','XXX','BHD','BHX');
destinationAirports['DUS']=new Array("Dusseldorf (DUS)",'EUR','XXX','BHX','MAN','SOU');
destinationAirports['EDI']=new Array("Edimburgo  (EDI)",'GBP','XXX','BHD','EGC','BHX','CWL','EXT','JER','MAN','NQY','NWI','RNS','SOU');
destinationAirports['EXT']=new Array("Exeter  (EXT)",'GBP','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BES','BRU','DUB','DBV','EDI','FAO','GLA','GCI','INV','JER','LBA','AGP','MAN','NCL','NCE','NWI','PMI','CDG','RNS');
destinationAirports['FAO']=new Array("Faro  (FAO)",'EUR','XXX','EXT','SOU');
destinationAirports['FRA']=new Array("Frankfurt (FRA)",'EUR','XXX','BHX','MAN','SOU');
destinationAirports['GLA']=new Array("Glasgow International (GLA)",'GBP','XXX','BHD','BHX','CWL','EXT','JER','LRH','MAN','NQY','NWI','CDG','SOU');
destinationAirports['GCI']=new Array("Guernsey  (GCI)",'GBP','XXX','BHX','DUB','EXT','JER','LGW','MAN','NWI','CDG','SOU');
destinationAirports['HAM']=new Array("Hamburgo (HAM)",'EUR','XXX','BHX');
destinationAirports['HAJ']=new Array("Hannover (HAJ)",'EUR','XXX','BHX','MAN','SOU');
destinationAirports['INV']=new Array("Inverness (INV)",'GBP','XXX','BHD','BHX','EXT','LGW','MAN','SOU');
destinationAirports['IOM']=new Array("Isla de Man  (IOM)",'GBP','XXX','BHX','JER','LPL','LGW','LTN','MAN','NQY','SOU');
destinationAirports['JER']=new Array("Jersey  (JER)",'GBP','XXX','ABZ','BHD','BHX','BRS','CWL','DSA','EDI','EXT','GLA','GCI','IOM','LGW','SEN','MAN','NCL','NQY','NCE','NWI','CDG','SOU');
destinationAirports['LRH']=new Array("La Rochelle  (LRH)",'EUR','XXX','BHX','GLA','MAN','SOU');
destinationAirports['LBA']=new Array("Leeds Bradford  (LBA)",'GBP','XXX','BHD','EGC','EXT','SOU');
destinationAirports['LIG']=new Array("Limoges  (LIG)",'EUR','XXX','NCL','SOU');
destinationAirports['LPL']=new Array("Liverpool  (LPL)",'GBP','XXX','IOM');
destinationAirports['LGW']=new Array("Londres Gatwick  (LGW)",'GBP','XXX','ABZ','BHD','EGC','GCI','INV','IOM','JER','NCL');
destinationAirports['LTN']=new Array("Londres Luton  (LTN)",'GBP','XXX','IOM');
destinationAirports['SEN']=new Array("Londres Southend  (SEN)",'GBP','XXX','JER');
destinationAirports['AGP']=new Array("Malaga  (AGP)",'EUR','XXX','EXT','SOU');
destinationAirports['MAN']=new Array("Manchester  (MAN)",'GBP','XXX','BHD','BES','BRU','DUS','EDI','EXT','FRA','GLA','GCI','HAJ','INV','IOM','JER','LRH','MXP','NWI','CDG','RNS','SOU');
destinationAirports['MXP']=new Array("Milan Malpensa (MXP)",'EUR','XXX','BHX','MAN');
destinationAirports['NCL']=new Array("Newcastle  (NCL)",'GBP','XXX','ABZ','BHD','BRU','CWL','EXT','JER','LIG','LGW','RNS','SOU');
destinationAirports['NQY']=new Array("Newquay (NQY)",'GBP','XXX','BHD','BHX','EDI','GLA','IOM','JER');
destinationAirports['NCE']=new Array("Niza (NCE)",'EUR','XXX','EXT','JER','SOU');
destinationAirports['NWI']=new Array("Norwich  (NWI)",'GBP','XXX','DUB','EDI','EXT','GLA','GCI','JER','MAN','CDG');
destinationAirports['PMI']=new Array("Palma Mallorca  (PMI)",'EUR','XXX','EXT','SOU');
destinationAirports['CDG']=new Array("Paris Charles De Gaulle  (CDG)",'EUR','XXX','BHD','BHX','CWL','EXT','GLA','GCI','JER','MAN','NWI','SOU');
destinationAirports['PGF']=new Array("Perpignan  (PGF)",'EUR','XXX','SOU');
destinationAirports['RNS']=new Array("Rennes  (RNS)",'EUR','XXX','BHD','EDI','EXT','MAN','NCL','SOU');
destinationAirports['SOU']=new Array("Southampton  (SOU)",'GBP','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BES','BRU','BOD','DUB','DUS','EDI','FAO','FRA','GLA','GCI','HAJ','INV','IOM','JER','LRH','LBA','LIG','AGP','MAN','NCL','NCE','PMI','CDG','PGF','RNS');
destinationAirports['SPU']=new Array("Split (SPU)",'EUR','XXX','BHX');
destinationAirports['STR']=new Array("Stuttgart (STR)",'EUR','XXX','BHX');
destinationAirports['TLS']=new Array("Toulouse  (TLS)",'EUR','XXX','BHX');
destinationAirports['XXX']=new Array('XXX','XXX','XXX','ABZ','ALC','AMS','AVN','BHD','EGC','BHX','BES','BRS','BRU','BOD','CWL','DSA','DUB','DBV','DND','DUS','EDI','EXT','FAO','FRA','GLA','GCI','HAM','HAJ','INV','IOM','JER','LRH','LBA','LIG','LPL','LGW','LTN','SEN','AGP','MAN','MXP','NCL','NQY','NCE','NWI','PMI','CDG','PGF','RNS','SOU','SPU','STR','TLS');
var reservationsOnlyFlights=new Array('BHXBRU','BRSBRU','BRUBHX','BRUBRS','BRUNCL','NCLBRU');
var saturdayOnlyFlights=new Array('BHDRNS','RNSBHD');
var businessClassFlights=new Array();
codeShareRoutes = new Array();
codeShareCodes = new Array();var defaultScheduleStart='20080514';
var defaultScheduleEnd='20081025';
dateSpecificRoutes = new Array('ABZBHD','ABZBHD','ABZBHD','ABZBHD','ABZBHX','ABZBHX','ABZBHX','ABZBHX','ABZEXT','ABZEXT','ABZEXT','ABZEXT','ABZJER','ABZJER','ABZJER','ABZJER','ABZLBA','ABZLBA','ABZLBA','ABZLBA','ABZLGW','ABZLGW','ABZLGW','ABZLGW','ABZNCL','ABZNCL','ABZNCL','ABZNCL','ABZSOU','ABZSOU','ABZSOU','ABZSOU','AGPEXT','AGPEXT','AGPEXT','AGPEXT','AGPNWI','AGPNWI','AGPNWI','AGPNWI','AGPSOU','AGPSOU','AGPSOU','AGPSOU','ALCEXT','ALCEXT','ALCEXT','ALCEXT','ALCNWI','ALCNWI','ALCNWI','ALCNWI','ALCSOU','ALCSOU','ALCSOU','ALCSOU','AMSEXT','AMSEXT','AMSEXT','AMSEXT','AMSNWI','AMSNWI','AMSNWI','AMSNWI','AMSSOU','AMSSOU','AMSSOU','AMSSOU','ANESOU','ANESOU','ANESOU','ANESOU','AVNEXT','AVNEXT','AVNEXT','AVNEXT','AVNSOU','AVNSOU','AVNSOU','AVNSOU','BESBHX','BESBHX','BESBHX','BESBHX','BESEXT','BESEXT','BESEXT','BESEXT','BESMAN','BESMAN','BESMAN','BESMAN','BESSOU','BESSOU','BESSOU','BESSOU','BHDABZ','BHDABZ','BHDABZ','BHDABZ','BHDBHX','BHDBHX','BHDBHX','BHDBHX','BHDCDG','BHDCDG','BHDCDG','BHDCDG','BHDCWL','BHDCWL','BHDCWL','BHDCWL','BHDDND','BHDDND','BHDDND','BHDDND','BHDDSA','BHDDSA','BHDDSA','BHDDSA','BHDEDI','BHDEDI','BHDEDI','BHDEDI','BHDEXT','BHDEXT','BHDEXT','BHDEXT','BHDGCI','BHDGCI','BHDGCI','BHDGCI','BHDGLA','BHDGLA','BHDGLA','BHDGLA','BHDGWY','BHDGWY','BHDGWY','BHDGWY','BHDINV','BHDINV','BHDINV','BHDINV','BHDJER','BHDJER','BHDJER','BHDJER','BHDLBA','BHDLBA','BHDLBA','BHDLBA','BHDLGW','BHDLGW','BHDLGW','BHDLGW','BHDLPL','BHDLPL','BHDLPL','BHDLPL','BHDMAN','BHDMAN','BHDMAN','BHDMAN','BHDNCL','BHDNCL','BHDNCL','BHDNCL','BHDNQY','BHDNQY','BHDNQY','BHDNQY','BHDNWI','BHDNWI','BHDNWI','BHDNWI','BHDRNS','BHDRNS','BHDRNS','BHDRNS','BHDSOU','BHDSOU','BHDSOU','BHDSOU','BHXABZ','BHXABZ','BHXABZ','BHXABZ','BHXBES','BHXBES','BHXBES','BHXBES','BHXBHD','BHXBHD','BHXBHD','BHXBHD','BHXBRN','BHXBRN','BHXBRN','BHXBRN','BHXBRU','BHXBRU','BHXBRU','BHXBRU','BHXCDG','BHXCDG','BHXCDG','BHXCDG','BHXCMF','BHXCMF','BHXCMF','BHXCMF','BHXDBV','BHXDBV','BHXDBV','BHXDBV','BHXDND','BHXDND','BHXDND','BHXDND','BHXDUS','BHXDUS','BHXDUS','BHXDUS','BHXEDI','BHXEDI','BHXEDI','BHXEDI','BHXEGC','BHXEGC','BHXEGC','BHXEGC','BHXFRA','BHXFRA','BHXFRA','BHXFRA','BHXGCI','BHXGCI','BHXGCI','BHXGCI','BHXGLA','BHXGLA','BHXGLA','BHXGLA','BHXGWY','BHXGWY','BHXGWY','BHXGWY','BHXHAJ','BHXHAJ','BHXHAJ','BHXHAJ','BHXHAM','BHXHAM','BHXHAM','BHXHAM','BHXINV','BHXINV','BHXINV','BHXINV','BHXIOM','BHXIOM','BHXIOM','BHXIOM','BHXJER','BHXJER','BHXJER','BHXJER','BHXLRH','BHXLRH','BHXLRH','BHXLRH','BHXMXP','BHXMXP','BHXMXP','BHXMXP','BHXNQY','BHXNQY','BHXNQY','BHXNQY','BHXSPU','BHXSPU','BHXSPU','BHXSPU','BHXSTR','BHXSTR','BHXSTR','BHXSTR','BHXSZG','BHXSZG','BHXSZG','BHXSZG','BHXTLS','BHXTLS','BHXTLS','BHXTLS','BODSOU','BODSOU','BODSOU','BODSOU','BRNBHX','BRNBHX','BRNBHX','BRNBHX','BRNSOU','BRNSOU','BRNSOU','BRNSOU','BRSBRU','BRSBRU','BRSBRU','BRSBRU','BRSJER','BRSJER','BRSJER','BRSJER','BRUBHX','BRUBHX','BRUBHX','BRUBHX','BRUBRS','BRUBRS','BRUBRS','BRUBRS','BRUEXT','BRUEXT','BRUEXT','BRUEXT','BRUMAN','BRUMAN','BRUMAN','BRUMAN','BRUNCL','BRUNCL','BRUNCL','BRUNCL','BRUSOU','BRUSOU','BRUSOU','BRUSOU','CDGBHD','CDGBHD','CDGBHD','CDGBHD','CDGBHX','CDGBHX','CDGBHX','CDGBHX','CDGCWL','CDGCWL','CDGCWL','CDGCWL','CDGEDI','CDGEDI','CDGEDI','CDGEDI','CDGEXT','CDGEXT','CDGEXT','CDGEXT','CDGGCI','CDGGCI','CDGGCI','CDGGCI','CDGGLA','CDGGLA','CDGGLA','CDGGLA','CDGJER','CDGJER','CDGJER','CDGJER','CDGMAN','CDGMAN','CDGMAN','CDGMAN','CDGNWI','CDGNWI','CDGNWI','CDGNWI','CDGSOU','CDGSOU','CDGSOU','CDGSOU','CMFBHX','CMFBHX','CMFBHX','CMFBHX','CMFEXT','CMFEXT','CMFEXT','CMFEXT','CMFNWI','CMFNWI','CMFNWI','CMFNWI','CMFSOU','CMFSOU','CMFSOU','CMFSOU','CWLBHD','CWLBHD','CWLBHD','CWLBHD','CWLCDG','CWLCDG','CWLCDG','CWLCDG','CWLEDI','CWLEDI','CWLEDI','CWLEDI','CWLGLA','CWLGLA','CWLGLA','CWLGLA','CWLJER','CWLJER','CWLJER','CWLJER','CWLNCL','CWLNCL','CWLNCL','CWLNCL','DBVBHX','DBVBHX','DBVBHX','DBVBHX','DBVEXT','DBVEXT','DBVEXT','DBVEXT','DNDBHD','DNDBHD','DNDBHD','DNDBHD','DNDBHX','DNDBHX','DNDBHX','DNDBHX','DSABHD','DSABHD','DSABHD','DSABHD','DSAJER','DSAJER','DSAJER','DSAJER','DUBEXT','DUBEXT','DUBEXT','DUBEXT','DUBGCI','DUBGCI','DUBGCI','DUBGCI','DUBJER','DUBJER','DUBJER','DUBJER','DUBNWI','DUBNWI','DUBNWI','DUBNWI','DUBSOU','DUBSOU','DUBSOU','DUBSOU','DUSBHX','DUSBHX','DUSBHX','DUSBHX','DUSMAN','DUSMAN','DUSMAN','DUSMAN','DUSSOU','DUSSOU','DUSSOU','DUSSOU','EDIBHD','EDIBHD','EDIBHD','EDIBHD','EDIBHX','EDIBHX','EDIBHX','EDIBHX','EDICDG','EDICDG','EDICDG','EDICDG','EDICWL','EDICWL','EDICWL','EDICWL','EDIEGC','EDIEGC','EDIEGC','EDIEGC','EDIEXT','EDIEXT','EDIEXT','EDIEXT','EDIGCI','EDIGCI','EDIGCI','EDIGCI','EDIJER','EDIJER','EDIJER','EDIJER','EDIMAN','EDIMAN','EDIMAN','EDIMAN','EDINQY','EDINQY','EDINQY','EDINQY','EDINWI','EDINWI','EDINWI','EDINWI','EDIRNS','EDIRNS','EDIRNS','EDIRNS','EDISOU','EDISOU','EDISOU','EDISOU','EDISTR','EDISTR','EDISTR','EDISTR','EGCBHX','EGCBHX','EGCBHX','EGCBHX','EGCEDI','EGCEDI','EGCEDI','EGCEDI','EGCEXT','EGCEXT','EGCEXT','EGCEXT','EGCLBA','EGCLBA','EGCLBA','EGCLBA','EGCLGW','EGCLGW','EGCLGW','EGCLGW','EGCMAN','EGCMAN','EGCMAN','EGCMAN','EGCSOU','EGCSOU','EGCSOU','EGCSOU','EXTABZ','EXTABZ','EXTABZ','EXTABZ','EXTAGP','EXTAGP','EXTAGP','EXTAGP','EXTALC','EXTALC','EXTALC','EXTALC','EXTAMS','EXTAMS','EXTAMS','EXTAMS','EXTAVN','EXTAVN','EXTAVN','EXTAVN','EXTBES','EXTBES','EXTBES','EXTBES','EXTBHD','EXTBHD','EXTBHD','EXTBHD','EXTBRU','EXTBRU','EXTBRU','EXTBRU','EXTCDG','EXTCDG','EXTCDG','EXTCDG','EXTCMF','EXTCMF','EXTCMF','EXTCMF','EXTDBV','EXTDBV','EXTDBV','EXTDBV','EXTDUB','EXTDUB','EXTDUB','EXTDUB','EXTEDI','EXTEDI','EXTEDI','EXTEDI','EXTEGC','EXTEGC','EXTEGC','EXTEGC','EXTFAO','EXTFAO','EXTFAO','EXTFAO','EXTGCI','EXTGCI','EXTGCI','EXTGCI','EXTGLA','EXTGLA','EXTGLA','EXTGLA','EXTGVA','EXTGVA','EXTGVA','EXTGVA','EXTINV','EXTINV','EXTINV','EXTINV','EXTJER','EXTJER','EXTJER','EXTJER','EXTLBA','EXTLBA','EXTLBA','EXTLBA','EXTMAN','EXTMAN','EXTMAN','EXTMAN','EXTNCE','EXTNCE','EXTNCE','EXTNCE','EXTNCL','EXTNCL','EXTNCL','EXTNCL','EXTNWI','EXTNWI','EXTNWI','EXTNWI','EXTPMI','EXTPMI','EXTPMI','EXTPMI','EXTRNS','EXTRNS','EXTRNS','EXTRNS','EXTSZG','EXTSZG','EXTSZG','EXTSZG','FAOEXT','FAOEXT','FAOEXT','FAOEXT','FAOSOU','FAOSOU','FAOSOU','FAOSOU','FRABHX','FRABHX','FRABHX','FRABHX','FRAGLA','FRAGLA','FRAGLA','FRAGLA','FRAMAN','FRAMAN','FRAMAN','FRAMAN','FRASOU','FRASOU','FRASOU','FRASOU','GCIBHD','GCIBHD','GCIBHD','GCIBHD','GCIBHX','GCIBHX','GCIBHX','GCIBHX','GCICDG','GCICDG','GCICDG','GCICDG','GCIDUB','GCIDUB','GCIDUB','GCIDUB','GCIEDI','GCIEDI','GCIEDI','GCIEDI','GCIEXT','GCIEXT','GCIEXT','GCIEXT','GCIGLA','GCIGLA','GCIGLA','GCIGLA','GCIINV','GCIINV','GCIINV','GCIINV','GCIJER','GCIJER','GCIJER','GCIJER','GCILBA','GCILBA','GCILBA','GCILBA','GCILGW','GCILGW','GCILGW','GCILGW','GCIMAN','GCIMAN','GCIMAN','GCIMAN','GCINCL','GCINCL','GCINCL','GCINCL','GCINWI','GCINWI','GCINWI','GCINWI','GCISOU','GCISOU','GCISOU','GCISOU','GLABHD','GLABHD','GLABHD','GLABHD','GLABHX','GLABHX','GLABHX','GLABHX','GLACDG','GLACDG','GLACDG','GLACDG','GLACWL','GLACWL','GLACWL','GLACWL','GLAEXT','GLAEXT','GLAEXT','GLAEXT','GLAFRA','GLAFRA','GLAFRA','GLAFRA','GLAGCI','GLAGCI','GLAGCI','GLAGCI','GLAJER','GLAJER','GLAJER','GLAJER','GLALRH','GLALRH','GLALRH','GLALRH','GLAMAN','GLAMAN','GLAMAN','GLAMAN','GLANQY','GLANQY','GLANQY','GLANQY','GLANWI','GLANWI','GLANWI','GLANWI','GLASOU','GLASOU','GLASOU','GLASOU','GLASTR','GLASTR','GLASTR','GLASTR','GVAEXT','GVAEXT','GVAEXT','GVAEXT','GVAIOM','GVAIOM','GVAIOM','GVAIOM','GVAJER','GVAJER','GVAJER','GVAJER','GVANQY','GVANQY','GVANQY','GVANQY','GVANWI','GVANWI','GVANWI','GVANWI','GVASOU','GVASOU','GVASOU','GVASOU','GWYBHD','GWYBHD','GWYBHD','GWYBHD','GWYBHX','GWYBHX','GWYBHX','GWYBHX','GWYSOU','GWYSOU','GWYSOU','GWYSOU','HAJBHX','HAJBHX','HAJBHX','HAJBHX','HAJMAN','HAJMAN','HAJMAN','HAJMAN','HAJSOU','HAJSOU','HAJSOU','HAJSOU','HAMBHX','HAMBHX','HAMBHX','HAMBHX','INVBHD','INVBHD','INVBHD','INVBHD','INVBHX','INVBHX','INVBHX','INVBHX','INVEXT','INVEXT','INVEXT','INVEXT','INVGCI','INVGCI','INVGCI','INVGCI','INVJER','INVJER','INVJER','INVJER','INVLGW','INVLGW','INVLGW','INVLGW','INVMAN','INVMAN','INVMAN','INVMAN','INVSOU','INVSOU','INVSOU','INVSOU','IOMBHX','IOMBHX','IOMBHX','IOMBHX','IOMGVA','IOMGVA','IOMGVA','IOMGVA','IOMJER','IOMJER','IOMJER','IOMJER','IOMLGW','IOMLGW','IOMLGW','IOMLGW','IOMLPL','IOMLPL','IOMLPL','IOMLPL','IOMLTN','IOMLTN','IOMLTN','IOMLTN','IOMMAN','IOMMAN','IOMMAN','IOMMAN','IOMNQY','IOMNQY','IOMNQY','IOMNQY','IOMSOU','IOMSOU','IOMSOU','IOMSOU','JERABZ','JERABZ','JERABZ','JERABZ','JERBHD','JERBHD','JERBHD','JERBHD','JERBHX','JERBHX','JERBHX','JERBHX','JERBRS','JERBRS','JERBRS','JERBRS','JERCDG','JERCDG','JERCDG','JERCDG','JERCWL','JERCWL','JERCWL','JERCWL','JERDSA','JERDSA','JERDSA','JERDSA','JERDUB','JERDUB','JERDUB','JERDUB','JEREDI','JEREDI','JEREDI','JEREDI','JEREXT','JEREXT','JEREXT','JEREXT','JERGCI','JERGCI','JERGCI','JERGCI','JERGLA','JERGLA','JERGLA','JERGLA','JERGVA','JERGVA','JERGVA','JERGVA','JERINV','JERINV','JERINV','JERINV','JERIOM','JERIOM','JERIOM','JERIOM','JERLBA','JERLBA','JERLBA','JERLBA','JERLGW','JERLGW','JERLGW','JERLGW','JERLPL','JERLPL','JERLPL','JERLPL','JERLTN','JERLTN','JERLTN','JERLTN','JERMAN','JERMAN','JERMAN','JERMAN','JERNCE','JERNCE','JERNCE','JERNCE','JERNCL','JERNCL','JERNCL','JERNCL','JERNQY','JERNQY','JERNQY','JERNQY','JERNWI','JERNWI','JERNWI','JERNWI','JERSEN','JERSEN','JERSEN','JERSEN','JERSOU','JERSOU','JERSOU','JERSOU','LBAABZ','LBAABZ','LBAABZ','LBAABZ','LBABHD','LBABHD','LBABHD','LBABHD','LBAEGC','LBAEGC','LBAEGC','LBAEGC','LBAEXT','LBAEXT','LBAEXT','LBAEXT','LBAGCI','LBAGCI','LBAGCI','LBAGCI','LBAJER','LBAJER','LBAJER','LBAJER','LBASOU','LBASOU','LBASOU','LBASOU','LGWABZ','LGWABZ','LGWABZ','LGWABZ','LGWBHD','LGWBHD','LGWBHD','LGWBHD','LGWEGC','LGWEGC','LGWEGC','LGWEGC','LGWGCI','LGWGCI','LGWGCI','LGWGCI','LGWINV','LGWINV','LGWINV','LGWINV','LGWIOM','LGWIOM','LGWIOM','LGWIOM','LGWJER','LGWJER','LGWJER','LGWJER','LGWNCL','LGWNCL','LGWNCL','LGWNCL','LIGMAN','LIGMAN','LIGMAN','LIGMAN','LIGNCL','LIGNCL','LIGNCL','LIGNCL','LIGSOU','LIGSOU','LIGSOU','LIGSOU','LPLBHD','LPLBHD','LPLBHD','LPLBHD','LPLIOM','LPLIOM','LPLIOM','LPLIOM','LPLJER','LPLJER','LPLJER','LPLJER','LRHBHX','LRHBHX','LRHBHX','LRHBHX','LRHGLA','LRHGLA','LRHGLA','LRHGLA','LRHMAN','LRHMAN','LRHMAN','LRHMAN','LRHSOU','LRHSOU','LRHSOU','LRHSOU','LTNIOM','LTNIOM','LTNIOM','LTNIOM','LTNJER','LTNJER','LTNJER','LTNJER','MANBES','MANBES','MANBES','MANBES','MANBHD','MANBHD','MANBHD','MANBHD','MANBRU','MANBRU','MANBRU','MANBRU','MANCDG','MANCDG','MANCDG','MANCDG','MANDUS','MANDUS','MANDUS','MANDUS','MANEDI','MANEDI','MANEDI','MANEDI','MANEGC','MANEGC','MANEGC','MANEGC','MANEXT','MANEXT','MANEXT','MANEXT','MANFRA','MANFRA','MANFRA','MANFRA','MANGCI','MANGCI','MANGCI','MANGCI','MANGLA','MANGLA','MANGLA','MANGLA','MANHAJ','MANHAJ','MANHAJ','MANHAJ','MANINV','MANINV','MANINV','MANINV','MANIOM','MANIOM','MANIOM','MANIOM','MANJER','MANJER','MANJER','MANJER','MANLIG','MANLIG','MANLIG','MANLIG','MANLRH','MANLRH','MANLRH','MANLRH','MANMXP','MANMXP','MANMXP','MANMXP','MANNWI','MANNWI','MANNWI','MANNWI','MANRNS','MANRNS','MANRNS','MANRNS','MANSOU','MANSOU','MANSOU','MANSOU','MJVSOU','MJVSOU','MJVSOU','MJVSOU','MXPBHX','MXPBHX','MXPBHX','MXPBHX','MXPMAN','MXPMAN','MXPMAN','MXPMAN','NCEEXT','NCEEXT','NCEEXT','NCEEXT','NCEJER','NCEJER','NCEJER','NCEJER','NCESOU','NCESOU','NCESOU','NCESOU','NCLABZ','NCLABZ','NCLABZ','NCLABZ','NCLBHD','NCLBHD','NCLBHD','NCLBHD','NCLBRU','NCLBRU','NCLBRU','NCLBRU','NCLCWL','NCLCWL','NCLCWL','NCLCWL','NCLEXT','NCLEXT','NCLEXT','NCLEXT','NCLGCI','NCLGCI','NCLGCI','NCLGCI','NCLJER','NCLJER','NCLJER','NCLJER','NCLLGW','NCLLGW','NCLLGW','NCLLGW','NCLLIG','NCLLIG','NCLLIG','NCLLIG','NCLRNS','NCLRNS','NCLRNS','NCLRNS','NCLSOU','NCLSOU','NCLSOU','NCLSOU','NQYBHD','NQYBHD','NQYBHD','NQYBHD','NQYBHX','NQYBHX','NQYBHX','NQYBHX','NQYEDI','NQYEDI','NQYEDI','NQYEDI','NQYGLA','NQYGLA','NQYGLA','NQYGLA','NQYGVA','NQYGVA','NQYGVA','NQYGVA','NQYIOM','NQYIOM','NQYIOM','NQYIOM','NQYJER','NQYJER','NQYJER','NQYJER','NQYSOU','NQYSOU','NQYSOU','NQYSOU','NWIAGP','NWIAGP','NWIAGP','NWIAGP','NWIALC','NWIALC','NWIALC','NWIALC','NWIAMS','NWIAMS','NWIAMS','NWIAMS','NWIBHD','NWIBHD','NWIBHD','NWIBHD','NWICDG','NWICDG','NWICDG','NWICDG','NWICMF','NWICMF','NWICMF','NWICMF','NWIDUB','NWIDUB','NWIDUB','NWIDUB','NWIEDI','NWIEDI','NWIEDI','NWIEDI','NWIEXT','NWIEXT','NWIEXT','NWIEXT','NWIGCI','NWIGCI','NWIGCI','NWIGCI','NWIGLA','NWIGLA','NWIGLA','NWIGLA','NWIGVA','NWIGVA','NWIGVA','NWIGVA','NWIJER','NWIJER','NWIJER','NWIJER','NWIMAN','NWIMAN','NWIMAN','NWIMAN','PGFSOU','PGFSOU','PGFSOU','PGFSOU','PMIEXT','PMIEXT','PMIEXT','PMIEXT','PMISOU','PMISOU','PMISOU','PMISOU','RNSBHD','RNSBHD','RNSBHD','RNSBHD','RNSEDI','RNSEDI','RNSEDI','RNSEDI','RNSEXT','RNSEXT','RNSEXT','RNSEXT','RNSMAN','RNSMAN','RNSMAN','RNSMAN','RNSNCL','RNSNCL','RNSNCL','RNSNCL','RNSSOU','RNSSOU','RNSSOU','RNSSOU','SENJER','SENJER','SENJER','SENJER','SOUABZ','SOUABZ','SOUABZ','SOUABZ','SOUAGP','SOUAGP','SOUAGP','SOUAGP','SOUALC','SOUALC','SOUALC','SOUALC','SOUAMS','SOUAMS','SOUAMS','SOUAMS','SOUANE','SOUANE','SOUANE','SOUANE','SOUAVN','SOUAVN','SOUAVN','SOUAVN','SOUBES','SOUBES','SOUBES','SOUBES','SOUBHD','SOUBHD','SOUBHD','SOUBHD','SOUBOD','SOUBOD','SOUBOD','SOUBOD','SOUBRN','SOUBRN','SOUBRN','SOUBRN','SOUBRU','SOUBRU','SOUBRU','SOUBRU','SOUCDG','SOUCDG','SOUCDG','SOUCDG','SOUCMF','SOUCMF','SOUCMF','SOUCMF','SOUDUB','SOUDUB','SOUDUB','SOUDUB','SOUDUS','SOUDUS','SOUDUS','SOUDUS','SOUEDI','SOUEDI','SOUEDI','SOUEDI','SOUEGC','SOUEGC','SOUEGC','SOUEGC','SOUFAO','SOUFAO','SOUFAO','SOUFAO','SOUFRA','SOUFRA','SOUFRA','SOUFRA','SOUGCI','SOUGCI','SOUGCI','SOUGCI','SOUGLA','SOUGLA','SOUGLA','SOUGLA','SOUGVA','SOUGVA','SOUGVA','SOUGVA','SOUGWY','SOUGWY','SOUGWY','SOUGWY','SOUHAJ','SOUHAJ','SOUHAJ','SOUHAJ','SOUINV','SOUINV','SOUINV','SOUINV','SOUIOM','SOUIOM','SOUIOM','SOUIOM','SOUJER','SOUJER','SOUJER','SOUJER','SOULBA','SOULBA','SOULBA','SOULBA','SOULIG','SOULIG','SOULIG','SOULIG','SOULRH','SOULRH','SOULRH','SOULRH','SOUMAN','SOUMAN','SOUMAN','SOUMAN','SOUMJV','SOUMJV','SOUMJV','SOUMJV','SOUNCE','SOUNCE','SOUNCE','SOUNCE','SOUNCL','SOUNCL','SOUNCL','SOUNCL','SOUNQY','SOUNQY','SOUNQY','SOUNQY','SOUPGF','SOUPGF','SOUPGF','SOUPGF','SOUPMI','SOUPMI','SOUPMI','SOUPMI','SOURNS','SOURNS','SOURNS','SOURNS','SOUSZG','SOUSZG','SOUSZG','SOUSZG','SPUBHX','SPUBHX','SPUBHX','SPUBHX','STRBHX','STRBHX','STRBHX','STRBHX','STREDI','STREDI','STREDI','STREDI','STRGLA','STRGLA','STRGLA','STRGLA','SZGBHX','SZGBHX','SZGBHX','SZGBHX','SZGEXT','SZGEXT','SZGEXT','SZGEXT','SZGSOU','SZGSOU','SZGSOU','SZGSOU','TLSBHX','TLSBHX','TLSBHX','TLSBHX');
minimumFlyDates = new Array('20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080521','20080521','20080521','20080521','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080521','20080521','20080521','20080521','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080521','20080521','20080521','20080521','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080711','20080711','20080711','20080711','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080521','20080521','20080521','20080521','20080521','20080521','20080521','20080521','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080607','20080607','20080607','20080607','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080711','20080711','20080711','20080711','20080607','20080607','20080607','20080607','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080521','20080521','20080521','20080521','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080514','20080524','20080524','20080524','20080524');maximumFlyDates = new Array('20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080103','20080103','20080103','20080103','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081004','20081004','20081004','20081004','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20081019','20081019','20081019','20081019','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071030','20071030','20071030','20071030','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081023','20081023','20081023','20081023','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081004','20081004','20081004','20081004','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081021','20081021','20081021','20081021','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20080416','20080416','20080416','20080416','20080405','20080405','20080405','20080405','20080417','20080417','20080417','20080417','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081019','20081019','20081019','20081019','20081019','20081019','20081019','20081019','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20071005','20071005','20071005','20071005','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080416','20080416','20080416','20080416','20081019','20081019','20081019','20081019','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080412','20080412','20080412','20080412','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080412','20080412','20080412','20080412','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081018','20081018','20081018','20081018','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20080412','20080412','20080412','20080412','20080405','20080405','20080405','20080405','20080412','20080412','20080412','20080412','20080405','20080405','20080405','20080405','20080405','20080405','20080405','20080405','20080417','20080417','20080417','20080417','20081025','20081025','20081025','20081025','20071030','20071030','20071030','20071030','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080412','20080412','20080412','20080412','20080329','20080329','20080329','20080329','20080927','20080927','20080927','20080927','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20070929','20070929','20070929','20070929','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20070929','20070929','20070929','20070929','20081023','20081023','20081023','20081023','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071005','20071005','20071005','20071005','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081004','20081004','20081004','20081004','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20080927','20080927','20080927','20080927','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20071027','20071027','20071027','20071027','20080103','20080103','20080103','20080103','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080405','20080405','20080405','20080405','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20080927','20080927','20080927','20080927','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081021','20081021','20081021','20081021','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080417','20080417','20080417','20080417','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20080417','20080417','20080417','20080417','20080329','20080329','20080329','20080329','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081025','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081024','20081025','20081025','20081025','20081025','20080412','20080412','20080412','20080412','20081004','20081004','20081004','20081004','20081025','20081025','20081025','20081025','20071027','20071027','20071027','20071027','20071027','20071027','20071027','20071027','20080329','20080329','20080329','20080329','20080412','20080412','20080412','20080412','20080412','20080412','20080412','20080412','20081025','20081025','20081025','20081025');

// Static values (not localised)
var maxPAX = 8;

var adult = '1';
var child = '0';
var infant = '0';

skiRoutes = new Array("AGP", "SZG", "TLS", "BGY", "GVA", "CMF");

interIslandRoutes = new Array();

validBERoutes = new Array("ABZBHX","BHXABZ",
"BHXFRA","FRABHX",
"BHXDUS","DUSBHX", 
"BHXSTR","STRBHX",
"BHXCDG","CDGBHX",
"BHXMXP","MXPBHX",
"BHXHAM","HAMBHX",
"GLAMAN","MANGLA",
"EDIMAN","MANEDI",
"BRUMAN","MANBRU",	
"DUSMAN","MANDUS",
"FRAMAN","MANFRA",	
"MANMXP","MXPMAN",
"MANIOM","IOMMAN",		
"CDGMAN","MANCDG",		
"HAJMAN","MANHAJ",		
"EDICDG","CDGEDI",		
"INVLGW","LGWINV",	
"IOMLGW","LGWIOM");


var HELPDESK_NUMBER = "08708 890908";

var bookingForm;

// Variables
var okayToSubmit = true;
var depDate = new Date();
var destDate = new Date();
var returnTrip = false;
var routeIndex = 0;
var codeShareCode = "";
var version = "unknown";

// Run immediate code
if (navigator.appName.indexOf('Netscape') != -1) {
	versionType = 'n';
	versionNum = navigator.appVersion.substring(0, 1);
	version = versionType + versionNum;
} else if (navigator.appVersion.indexOf('MSIE') != -1) {
	versionType = 'e';
	MS = navigator.appVersion.indexOf('MSIE');
	versionNum = navigator.appVersion.substring(MS + 5, MS + 6);
	version = versionType + versionNum;
} else {

	versionType = 'unknown';
}

// Private functions
function isSkiRoute(departure, destination) {

	var returnState = false;

	if (skiRoutes != null && departure != null && destination != null) {
		for (i = 0; i < skiRoutes.length; i++) {
			if (departure.substr(0, 3) == skiRoutes[i] ||
				destination.substr(0,3) == skiRoutes[i]) {
				returnState = true;
				break;
			}
		}
	}
	return returnState;
}


function isInterIslandRoute(departure, destination) {

	var returnState = false;

	if (interIslandRoutes != null && departure != null && destination != null) {
		for (i = 0; i < interIslandRoutes.length; i++) {
			if ((departure.substr(0, 3) + destination.substr(0,3))  == interIslandRoutes[i] ) {
				returnState = true;
				break;
			}
		}
	}
	return returnState;
}

function isBERoute(departure, destination, depDay, depMonth, destDay, destMonth) {

        var returnState = false;

        if (validBERoutes != null && departure != null && destination != null) {
                for (i = 0; i < validBERoutes.length; i++) {
                        if ((departure.substr(0, 3) + destination.substr(0,3))  == validBERoutes[i] ) {

                                // Check the selected date for this BA Route, if before 24th March then show message for redirect
                                if( depMonth < 200703 ) {
                                        returnState = true;
                                        break;
                                }

                                if( depMonth == 200703 && depDay < 25) {
                                        returnState = true;
                                        break;
                                }
                        }
                }
        }


        return returnState;
}

function isWinterFlight(depMonth) {

	var returnState = false;

	if (depMonth != null) {
		//winter flight is Nov-Apr
		if (depMonth.substring(4, 6) == '11' || depMonth.substring(4, 6) == '12' ||
			depMonth.substring(4, 6) == '01' || depMonth.substring(4, 6) == '02' ||
			depMonth.substring(4, 6) == '03' || depMonth.substring(4, 6) == '04') {

			returnState = true;

		}
	}
	return returnState;
}

function isReservationsFlight(departure, destination) {
	//check the codeShareCarrier code, if any. For example CO for Continental.
	if (isInRouteList(codeShareRoutes, departure, destination)) {
		codeShareCode = new String(codeShareCodes[routeIndex]);
	}

	//if reservations only flight
	if (isInRouteList(reservationsOnlyFlights, departure, destination)) {
		//if also a Continental Code Share
		if (isInRouteList(codeShareRoutes, departure, destination) && (codeShareCode == "CO")) {
			//display both parts of the message
			alert(flightStrings.invalidAirportCombination1 + reservations + ". " + flightStrings.invalidAirportCombination2);
         return true;
		} else if (codeShareCode == "CB") {
			//display special message for scot air
			alert(flightStrings.invalidAirportCombination3 + reservations + ". ");
			return true;
		}
		//display just the first part of message
		alert(flightStrings.invalidAirportCombination1 + reservations + ". ");
		return true;
	}
	return false;

}
/**
 *param departure the airport code for departure
 *param destination the airport code for destination
 *param yearMonth the Year and month of journey e.g. 200510
 *param day the day of journey
 */
function isSaturdayOnlyFlight(info, departure, destination, yearMonth, day) {

	if (isInRouteList(saturdayOnlyFlights, departure, destination)) {
		if(isSelectedDateOnSaturday(yearMonth, day)==false){
			alert(info);
			return false;
		}
	}
	return true;
}

function isSelectedDateOnSaturday(yearMonth, day){

	var	theTime = new Date(yearMonth.substr(0, 4), yearMonth.substr(4)-1, day, 0, 0, 0);

	if (theTime.getDay() == 6){
		return true;
	}
	return false;
}

function isBusinessClassSelected() {
	var returnState = false;
	var fareClass = bookingForm.fareType.options[bookingForm.fareType.selectedIndex].value;
	if (fareClass == "BUSINESS") {
		returnState = true;
	}
	return returnState;
}

function isInRouteList(routeList, departure, destination) {

	var returnState = false;

	if (routeList != null && departure != null && destination !=null) {
		for (routeIndex = 0; routeIndex < routeList.length; routeIndex++) {
			if (departure.substr(0, 3) + destination.substr(0, 3) == routeList[routeIndex]) {
				returnState = true;
				break;
			}
		}
	}

	return returnState;

}

// whether we need to extend the dates
function checkExtendDates(formObject) {

	selectedDeparture = (formObject.selDep.options[formObject.selDep.selectedIndex].value).substring(0,3);
	selectedDestination = (formObject.selDest.options[formObject.selDest.selectedIndex].value).substring(0,3);
	selectedDepartureAndDestination = selectedDeparture + selectedDestination;

	var matchedRoute = false;

	if (selectedDepartureAndDestination != null) {
		if (isInRouteList(dateSpecificRoutes, selectedDeparture, selectedDestination)) {
			updateDates(minimumFlyDates[routeIndex].substring(0,6), maximumFlyDates[routeIndex].substring(0,6), formObject.selDepMonth);
			updateDates(minimumFlyDates[routeIndex].substring(0,6), maximumFlyDates[routeIndex].substring(0,6), formObject.selRetMonth);
			matchedRoute = true;
		}
	}

	if(!matchedRoute) {
		updateDates(defaultScheduleStart.substring(0,6), defaultScheduleEnd.substring(0,6), formObject.selDepMonth);
		updateDates(defaultScheduleStart.substring(0,6), defaultScheduleEnd.substring(0,6), formObject.selRetMonth);
	}

}

// public functions
/*
 * Function to control the 2 select boxes on the front page.
 * Depending on which one is selected it will populate the other
 * with the airports that can be flown to from the selected airport.
 * params
 * formObject - The form object that contains the select boxes
 * calledBy - what object called the function.
 *            Either one of the select boxes or the body tag
 */
function updateAirportExclDates(formObject, calledBy) {

	if (formObject != null && formObject != "" && calledBy != null
		&& calledBy != "" && version != 'e3') {

		var netscapeBodyId = "opener"
		fieldName = calledBy.name;

		if (fieldName == "selDep" || fieldName == "" || fieldName == netscapeBodyId) {
			fieldValue = "XXXXXX";
			changeFieldValue = "XXXXXX";

			if (formObject.depAirportCode && 
					formObject.depAirportCode.value != "" && fieldName == "") {
				fieldValue = formObject.depAirportCode.value;
				changeFieldValue = formObject.destAirportCode.value;
			}

			updateAirportList(formObject.selDep, formObject.selDest, fieldValue,changeFieldValue);
		}

		if (fieldName == "selDest" || fieldName == "" || fieldName == netscapeBodyId) {

			fieldValue = "XXXXXX";
			changeFieldValue = "XXXXXX";

			if (formObject.destAirportCode && 
					formObject.destAirportCode.value != "" && fieldName == "") {
				fieldValue = formObject.destAirportCode.value;
				changeFieldValue = formObject.depAirportCode.value;
			}

			updateAirportList(formObject.selDest, formObject.selDep, fieldValue,changeFieldValue);
		}

		if (fieldName != "" && fieldName != netscapeBodyId) {

			selectedDeparture = formObject.selDep.options[formObject.selDep.selectedIndex].value;

			selectedDestination = formObject.selDest.options[formObject.selDest.selectedIndex].value;

			if (isReservationsFlight(selectedDeparture, selectedDestination)) {
				return;
			}
		}

	}

}

function updateAirport(formObject, calledBy) {
	updateAirportExclDates(formObject, calledBy);
	checkExtendDates(formObject);
}

/*
 * Populate a airport select box
 * selectField - select box object that was selected
 * changeField - select box object to change
 */
function updateAirportList(selectField, changeField,fieldValue, changeFieldValue)  {

	if (selectField.selectedIndex  != -1 && fieldValue == 'XXXXXX') {
		fieldValue = selectField.options[selectField.selectedIndex].value;
	}

	if (changeField.selectedIndex  != -1 && changeFieldValue == 'XXXXXX') {
		changeFieldValue = changeField.options[changeField.selectedIndex].value;
	}

	changeFieldName = changeField.name;

	airportList = new Array();
	airportDesc = new Array();

	if (changeFieldName == 'selDep') {
		airportList = destinationAirports;
		airportDesc = departureAirports;
	} else {
		airportList = departureAirports;
		airportDesc = destinationAirports;

	}

	changeField.options.length = 1;

	if (airportList[fieldValue.substr(0,3)] != null) {

		for (var i = 2; i < airportList[fieldValue.substr(0,3)].length; i++) {

			if (changeFieldName == "selDep" && i == 2) {
				changeField.options[i-2] = new Option(flightStrings.departingFrom);
			} else if (changeFieldName == "selDest" && i == 2) {
				changeField.options[i-2] = new Option(flightStrings.goingTo);
			} else {
				changeField.options[i-2] =
					new Option(airportDesc[airportList[fieldValue.substr(0,3)][i]][0]);
			}

			changeField.options[i-2].value =
				airportList[fieldValue.substr(0,3)][i] +
				airportDesc[airportList[fieldValue.substr(0,3)][i]][1];

			if (changeField.options[i-2].value == changeFieldValue) {
				changeField.selectedIndex = i-2;
			}
		}
	}

}

function isValidRoute(dep, dest) {

	if (dep != null && dest != null && departureAirports[dep] != null) {
		for (var i = 2; i < departureAirports[dep].length; i++) {
			if (dest == departureAirports[dep][i]) {
				return true;
				break;
			}
		}
	}

	return false;

}

function updatePAX(elementName) {

	if (version != 'e3') {

		adultChange = true;
		childChange = true;
		infantChange = true;

		// Reset adult index previously chosen

		if (elementName == 'load' || elementName == 'numAdults') {
			if (elementName != 'load') { adultChange = false; }
			adult = bookingForm.numAdults.options[bookingForm.numAdults.selectedIndex].value;
		}
		// Reset child index previously chosen
		if (elementName == 'load' || elementName == 'numChildren') {
			if (elementName != 'load') { childChange = false; }
			child = bookingForm.numChildren.options[bookingForm.numChildren.selectedIndex].value;
		}
		// Reset infant index previously chosen
		if (elementName == 'load' || elementName == 'numInfants') {
			if (elementName != 'load') { infantChange = false; }
			infant = bookingForm.numInfants.options[bookingForm.numInfants.selectedIndex].value;
		}

		if (adultChange) {
			// Populate adult drop down
			bookingForm.numAdults.options.length = 1;
			for (var i = 1; i <= maxPAX - parseInt(child); i++) {
				bookingForm.numAdults.options[i] = new Option(i);
				bookingForm.numAdults.options[i].value = i;
			}
			// Reset selection if previously selected value too high
			bookingForm.numAdults.selectedIndex = parseInt(adult) < i ? parseInt(adult) : 0;
		}

		if (childChange) {
			// Populate child drop down
			bookingForm.numChildren.options.length = 1;
			for (var i = 1; i <= maxPAX - parseInt(adult); i++) {
				bookingForm.numChildren.options[i] = new Option(i);
				bookingForm.numChildren.options[i].value = i;
			}
			// Reset selection if previously selected value too high
			bookingForm.numChildren.selectedIndex = parseInt(child) < i ? parseInt(child) : 0;
		}

		if (infantChange) {
			// Populate infant drop down
			bookingForm.numInfants.options.length = 1;
			for (var i = 1; i <= parseInt(adult); i++) {
				bookingForm.numInfants.options[i] = new Option(i);
				bookingForm.numInfants.options[i].value = i;
			}
			// Reset selection if previously selected value too high
			bookingForm.numInfants.selectedIndex = parseInt(infant) < i ? parseInt(infant) : 0;
		}

	}
}

/*
 Checks to see if date of booking is not too close to flight date
*/
function toCloseFlightDate(numberOfDays, flightDate, today) {

	if (numberOfDays == null || numberOfDays == "" ||
		isNaN(numberOfDays) || isNaN(new Date(flightDate)))  {
		return false;
	}

	if (isNaN(Date(today))) {
		today = new Date();
	}

	oneDay = (60000 * 60) * 24;
	maximumBookingDate = new Date(flightDate.getTime() - (numberOfDays * oneDay))

	if (today.getTime() >= maximumBookingDate.getTime() &&
		 today.getTime() <= flightDate.getTime()) {
		return true;
	}

	return false;

}

function dateOutsideSchedule(departure, destination, outboundDate, returnDate) {

	if (isNaN(outboundDate)) {
		return false;
	}
	if (isNaN(returnDate)) {
		returnDate = outboundDate;
	}

	minimumFlyDate = null;
	maximumFlyDate = null;

	if (isInRouteList(dateSpecificRoutes, departure, destination)) {
		minimumFlyDate = minimumFlyDates[(routeIndex)];
		maximumFlyDate = maximumFlyDates[(routeIndex)];
	}
	if (minimumFlyDate == '') {
		minimumFlyDate = null;
	}

	if (maximumFlyDate == null || maximumFlyDate == '') {
		maximumFlyDate = defaultScheduleEnd;
	}

	if (minimumFlyDate != null && outboundDate < minimumFlyDate) {
		alert(flightStrings.invalidDepartureDate +
		formatDate(minimumFlyDate) + flightStrings.forFlightFrom );
		return true;
	} else if (returnDate > maximumFlyDate) {
		alert(flightStrings.flyingAfterSchedule +
		formatDate(maximumFlyDate) + flightStrings.timetableAlert );
		return true;
	}

	return false;
}

function updateDates(startDate, endDate, list) {
	var currMonth = list.options[list.selectedIndex].value;
	var firstVal = list.options[0].value;
	
	if (firstVal == 'XX' || firstVal == 'XXXXXX') {
		list.options.length = 1;
	} else {
		list.options.length = 0;
	}

	var endYear = endDate.substring(0,4);
	var endMonth = new Number(endDate.substring(4,6));
	var currentYear = startDate.substring(0,4);
	var currentMonth = new Number(startDate.substring(4,6));
	for (var yrInd = currentYear; yrInd <= endYear; yrInd++) {
		var startMth;
		var endMth;
		if (yrInd == currentYear) {
			startMth = currentMonth++;
		} else {
			startMth = 1;
		}
		if (yrInd == endYear) {
			endMth = endMonth;
		} else {
			endMth = 12;
		}
		for (var mthInd = startMth; mthInd <= endMth && mthInd <= 12; mthInd++) {
			list.options.length++;
			var newVal = yrInd + (mthInd < 10 ? '0' : '') + mthInd;
			newOpt = new Option(flightStrings.months[mthInd - 1] + yrInd, newVal);
			list.options[list.options.length-1] = newOpt;
			if (newVal == currMonth) {
				list.options[list.options.length-1].selected = true;
			}
		}
	}
 }

function formatDate(date) {
	var day = date.substring(6,8);
	var month = date.substring(4,6);
	var year = date.substring(0,4);
	return day + ' ' + flightStrings.months[month - 1] + year;
}

function hasUnaccompaniedMinors(numAdults, numChildren) {
	return numAdults == 0 && numChildren > 0;
}

function processSelection(dayToday,monthToday,yearToday) {

	var now = new Date(yearToday,monthToday,yearToday);

	// Retrieve values from form for easy handling
	var dep = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;
	var depDay = bookingForm.selDepDay.options[bookingForm.selDepDay.selectedIndex].value;
	var depMonth = bookingForm.selDepMonth.options[bookingForm.selDepMonth.selectedIndex].value;
	var dest = bookingForm.selDest.options[bookingForm.selDest.selectedIndex].value;
	var destDay = bookingForm.selRetDay.options[bookingForm.selRetDay.selectedIndex].value;
	var destMonth = bookingForm.selRetMonth.options[bookingForm.selRetMonth.selectedIndex].value;

	if (bookingForm.numAdults.options) {
		var adult = bookingForm.numAdults.options[bookingForm.numAdults.selectedIndex].value;
	}

	if (bookingForm.numChildren.options) {
		var child = bookingForm.numChildren.options[bookingForm.numChildren.selectedIndex].value;
	}

	if (bookingForm.numInfants.options) {
		var infant = bookingForm.numInfants.options[bookingForm.numInfants.selectedIndex].value;
	}

	var frenchDep = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;

	frenchDep = frenchDep.substr(0,3);

	// Are we dealing with a return trip?
	if ((destDay + destMonth) == 'XXXXXXXX') {
		returnTrip = false;
	} else {
		returnTrip = true;
	}

	if (hasUnaccompaniedMinors(adult, child)) {
		alert(flightStrings.unmin);
		return false;
	} else if (adult + child == 0) {
		alert(flightStrings.invalidNumAdults);
		return false;
	}

	 // Check if BERoute
     if( isBERoute(dep, dest, depDay, depMonth, destDay, depMonth) ) {
     
                alert(flightStrings.baconnectmessage);
                	   
                window.location = 'http://www.britishairways.com'
                return false;
     }

	
	
	// check if is a ski route and is in a winter month
//	if ( (isSkiRoute(dep, dest) ) && isWinterFlight(depMonth) ) {
//		alert(flightStrings.skiRoute1 + '0871 700 2000' + flightStrings.skiRoute1a + 'Outside UK 00 44 1392 268529' + flightStrings.skiRoute1b + flightStrings.skiRoute2);
//	}

	// check if interIslandRoute - if so, display this message
	if (isInterIslandRoute(dep, dest)) {
		alert(flightStrings.interIslandRoutes);
	}


	if (returnTrip) {
		if (destDay == 'XX') {
			alert(flightStrings.requiredFieldStr + flightStrings.returnDayStr);
			return false;
		}
		if (destMonth == 'XXXXXX') {
			alert(flightStrings.requiredFieldStr + flightStrings.returnMonthStr);
			return false;
		}
	}

	if (dep == dest) {
		alert(flightStrings.depDestDifferent);
		return false;
	}

	// Warn against christmas day bookings
	if ((depMonth + depDay).substring(4, 8) == '1225') {
		alert(flightStrings.noOutwardXmasStr);
		return false;
	}
	if ((destMonth + destDay).substring(4, 8) == '1225') {
		alert(flightStrings.noReturnXmasStr);
		return false;
	}

	// Check for consistent date selections
	var selectedMonth = depMonth.substring(4, 6);
	var leapYear = (depMonth.substring(0, 4) % 4 == 0);
	var febDays = leapYear ? 29 : 28;

	if (selectedMonth == '02') {
		if (depDay > febDays) {
			alert(flightStrings.thereAreOnly + febDays + flightStrings.daysInMonthStr
				+ flightStrings.months[1] + flightStrings.amendDepDate);
				return false;
		}
	} else if ((selectedMonth == '04') || (selectedMonth == '06') || (selectedMonth == '09') || (selectedMonth == '11')) {
		if (depDay > 30) {
			alert(flightStrings.thereAreOnly + '30' + flightStrings.daysInMonthStr
				+ flightStrings.months[selectedMonth - 1] + flightStrings.amendDepDate);
			return false;
		}
	}

	if (returnTrip) {
		selectedMonth = destMonth.substring(4, 6);
		leapYear = (destMonth.substring(0, 4) % 4 == 0);
		febDays = leapYear ? 29 : 28;

		if (selectedMonth == '02') {
			if (destDay > febDays) {
				alert(flightStrings.thereAreOnly + febDays + flightStrings.daysInMonthStr
				+ flightStrings.months[1] + flightStrings.amendRetDate);
				return false;
			}
		} else if ((selectedMonth == '04') || (selectedMonth == '06') || (selectedMonth == '09') || (selectedMonth == '11')) {
			if (destDay > 30) {
				alert(flightStrings.thereAreOnly + '30' + flightStrings.daysInMonthStr
				+ flightStrings.months[selectedMonth - 1] + flightStrings.amendRetDate);
				return false;

			}
		}
	}

	// Apply business rules
	if ((depMonth + depDay) < ('' + yearToday + (monthToday < 10 ? '0' : '') +
			monthToday + (dayToday < 10 ? '0' : '') + dayToday)) {
		alert(flightStrings.earliest);
		return false;
	}

	if (dateOutsideSchedule(dep.substr(0, 3), dest.substr(0, 3), depMonth + depDay, destMonth + destDay)) {
		return false;
	}

	if (dep.substr(0, 3) == 'MAN' && dest.substr(0, 3) == 'EWR' &&
		toCloseFlightDate(3, getDateSelected(bookingForm.selDepDay, bookingForm.selDepMonth, now) , now)) {

		alert(flightStrings.flightsFrom + departureAirports[dep.substr(0, 3)][0] + flightStrings.flightsTo +
			destinationAirports[dest.substr(0, 3)][0] +
			flightStrings.advanceBookingRequired);
		return false;
	}



	if (returnTrip) {
		if ((depMonth + depDay) > (destMonth + destDay)) {
			alert(flightStrings.returnDateInvalid);
			return false;
		} else if ((depMonth + depDay) == (destMonth + destDay)) {
			alert(flightStrings.dayReturn);
		}
	}

	if (isReservationsFlight(dep, dest)) {
		return false;
	}

	//for departures
	if (isSaturdayOnlyFlight(flightStrings.saturdayOnlyDepartures, dep, dest, depMonth, depDay)==false){
		return false;
	}

	if (returnTrip){
		if (isSaturdayOnlyFlight(flightStrings.saturdayOnlyReturns, dest, dep, destMonth, destDay)==false){
			return false;
		}
	}

	if (!isValidRoute(dep.substr(0,3), dest.substr(0,3))) {
		alert(flightStrings.invalidRoute);
		return false;
	}

	// Store indicies selected values in form to enable repopulation when returning to page
	bookingForm.depAirportCode.value = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;

	bookingForm.depAirportIndx.value = bookingForm.selDep.selectedIndex;

	bookingForm.destAirportCode.value = bookingForm.selDest.options[bookingForm.selDest.selectedIndex].value;

	bookingForm.destAirportIndx.value = bookingForm.selDest.selectedIndex;

	bookingForm.depDateIndx.value = bookingForm.selDepDay.options[bookingForm.selDepDay.selectedIndex].value;

	bookingForm.destDateIndx.value = bookingForm.selRetDay.options[bookingForm.selRetDay.selectedIndex].value;

	bookingForm.depMonthIndx.value = bookingForm.selDepMonth.selectedIndex;

	bookingForm.destMonthIndx.value =bookingForm.selRetMonth.selectedIndex;

	if (bookingForm.numAdults.selectedIndex) {
		bookingForm.noAdultsIndx.value = bookingForm.numAdults.selectedIndex;
	}

	if (bookingForm.numChildren.selectedIndex) {
		bookingForm.noChildrenIndx.value = bookingForm.numChildren.selectedIndex;
	}

	if (bookingForm.numInfants.selectedIndex) {
		bookingForm.noInfantsIndx.value = bookingForm.numInfants.selectedIndex;
	}

	if (bookingForm.fareType.options) {
		bookingForm.travelClass.value = bookingForm.fareType.options[bookingForm.fareType.selectedIndex].value;
	}
	// Submit form
	return true;

}

function registerBookingForm(formObject) {
	bookingForm = formObject;
}

function updateAirports(thisForm) {
	updateAirportExclDates(thisForm, thisForm['selDest']);
	updateAirportExclDates(thisForm, thisForm['selDep']);
	checkExtendDates(thisForm);
}
function processSelection4ItinChanges(dayToday,monthToday,yearToday) {
	var now = new Date(yearToday,monthToday,yearToday);

	// Retrieve values from form for easy handling
	var dep = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;
	var depDay = bookingForm.selDepDay.options[bookingForm.selDepDay.selectedIndex].value;
	var depMonth = bookingForm.selDepMonth.options[bookingForm.selDepMonth.selectedIndex].value;
	var dest = bookingForm.selDest.options[bookingForm.selDest.selectedIndex].value;
	var destDay = bookingForm.selRetDay.options[bookingForm.selRetDay.selectedIndex].value;
	var destMonth = bookingForm.selRetMonth.options[bookingForm.selRetMonth.selectedIndex].value;

	
	var frenchDep = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;

	frenchDep = frenchDep.substr(0,3);

	// Check if BERoute	
	if( isBERoute(dep, dest) ) {
		alert('Please book this on the www.ba.com website for travel prior to the 25th March');
	}
	
	// Are we dealing with a return trip?
	if ((destDay + destMonth) == 'XXXXXXXX' || !bookingForm.isReturn.value) {
		returnTrip = false;
	} else {
		returnTrip = true;
	}

	if (hasUnaccompaniedMinors(adult, child)) {
		alert(flightStrings.unmin);
		return false;
	} else if (adult + child == 0) {
		alert(flightStrings.invalidNumAdults);
		return false;
	}

	// check if is a ski route and is in a winter month
//	if ( (isSkiRoute(dep, dest) ) && isWinterFlight(depMonth) ) {
//		alert(flightStrings.skiRoute1 + '0871 700 2000' + flightStrings.skiRoute1a + 'Outside UK 00 44 1392 268529' + flightStrings.skiRoute1b + flightStrings.skiRoute2);
//	}

	// check if interIslandRoute - if so, display this message
	if (isInterIslandRoute(dep, dest)) {
		alert(flightStrings.interIslandRoutes);
	}


	if (returnTrip) {

		if (destDay == 'XX') {
			alert(flightStrings.requiredFieldStr + flightStrings.returnDayStr);
			return false;
		}

		if (destMonth == 'XXXXXX') {
			alert(flightStrings.requiredFieldStr + flightStrings.returnMonthStr);
			return false;
		}
	}

	if (dep == dest) {
		alert(flightStrings.depDestDifferent);
		return false;
	}

	// Warn against christmas day bookings
	if ((depMonth + depDay).substring(4, 8) == '1225') {
		alert(flightStrings.noOutwardXmasStr);
		return false;
	}
	if ((destMonth + destDay).substring(4, 8) == '1225') {
		alert(flightStrings.noReturnXmasStr);
		return false;
	}

	// Check for consistent date selections
	var selectedMonth = depMonth.substring(4, 6);
	var leapYear = (depMonth.substring(0, 4) % 4 == 0);
	var febDays = leapYear ? 29 : 28;

	if (selectedMonth == '02') {
		if (depDay > febDays) {
			alert(flightStrings.thereAreOnly + febDays + flightStrings.daysInMonthStr
				+ flightStrings.months[1] + flightStrings.amendDepDate);
				return false;
		}
	} else if ((selectedMonth == '04') || (selectedMonth == '06') || (selectedMonth == '09') || (selectedMonth == '11')) {
		if (depDay > 30) {
			alert(flightStrings.thereAreOnly + '30' + flightStrings.daysInMonthStr
				+ flightStrings.months[selectedMonth - 1] + flightStrings.amendDepDate);
			return false;
		}
	}

	if (returnTrip) {
		selectedMonth = destMonth.substring(4, 6);
		leapYear = (destMonth.substring(0, 4) % 4 == 0);
		febDays = leapYear ? 29 : 28;

		if (selectedMonth == '02') {
			if (destDay > febDays) {
				alert(flightStrings.thereAreOnly + febDays + flightStrings.daysInMonthStr
				+ flightStrings.months[1] + flightStrings.amendRetDate);
				return false;
			}
		} else if ((selectedMonth == '04') || (selectedMonth == '06') || (selectedMonth == '09') || (selectedMonth == '11')) {
			if (destDay > 30) {
				alert(flightStrings.thereAreOnly + '30' + flightStrings.daysInMonthStr
				+ flightStrings.months[selectedMonth - 1] + flightStrings.amendRetDate);
				return false;

			}
		}
	}

	// Apply business rules
	if ((depMonth + depDay) < ('' + yearToday + (monthToday < 10 ? '0' : '') +
			monthToday + (dayToday < 10 ? '0' : '') + dayToday)) {
		alert(flightStrings.earliest);
		return false;
	}

	if (dateOutsideSchedule(dep.substr(0, 3), dest.substr(0, 3), depMonth + depDay, destMonth + destDay)) {
		return false;
	}

	if (dep.substr(0, 3) == 'MAN' && dest.substr(0, 3) == 'EWR' &&
		toCloseFlightDate(3, getDateSelected(bookingForm.selDepDay, bookingForm.selDepMonth, now) , now)) {

		alert(flightStrings.flightsFrom + departureAirports[dep.substr(0, 3)][0] + flightStrings.flightsTo +
			destinationAirports[dest.substr(0, 3)][0] +
			flightStrings.advanceBookingRequired);
		return false;
	}



	if (returnTrip) {
		if ((depMonth + depDay) > (destMonth + destDay)) {
			alert(flightStrings.returnDateInvalid);
			return false;
		} else if ((depMonth + depDay) == (destMonth + destDay)) {
			alert(flightStrings.dayReturn);
		}
	}

	if (isReservationsFlight(dep, dest)) {
		return false;
	}

	//for departures
	if (isSaturdayOnlyFlight(flightStrings.saturdayOnlyDepartures, dep, dest, depMonth, depDay)==false){
		return false;
	}

	if (returnTrip){
		if (isSaturdayOnlyFlight(flightStrings.saturdayOnlyReturns, dest, dep, destMonth, destDay)==false){
			return false;
		}
	}

	if (!isValidRoute(dep.substr(0,3), dest.substr(0,3))) {
		alert(flightStrings.invalidRoute);
		return false;
	}

	// Store indicies selected values in form to enable repopulation when returning to page
	bookingForm.depAirportCode.value = bookingForm.selDep.options[bookingForm.selDep.selectedIndex].value;

	bookingForm.depAirportIndx.value = bookingForm.selDep.selectedIndex;

	bookingForm.destAirportCode.value = bookingForm.selDest.options[bookingForm.selDest.selectedIndex].value;

	bookingForm.destAirportIndx.value = bookingForm.selDest.selectedIndex;

	bookingForm.depDateIndx.value = bookingForm.selDepDay.options[bookingForm.selDepDay.selectedIndex].value;

	bookingForm.destDateIndx.value = bookingForm.selRetDay.options[bookingForm.selRetDay.selectedIndex].value;

	bookingForm.depMonthIndx.value = bookingForm.selDepMonth.selectedIndex;

	bookingForm.destMonthIndx.value =bookingForm.selRetMonth.selectedIndex;
	
	// Submit form
	return true;

}


   function populateAirports(combo, selectedOption) {
combo.options.length++;if (selectedOption == "ABZGBP"){combo.options[combo.options.length - 1] =  new Option("Aberdeen  (ABZ)",'ABZGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Aberdeen  (ABZ)",'ABZGBP');
}
combo.options.length++;if (selectedOption == "ALCEUR"){combo.options[combo.options.length - 1] =  new Option("Alicante  (ALC)",'ALCEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Alicante  (ALC)",'ALCEUR');
}
combo.options.length++;if (selectedOption == "AMSEUR"){combo.options[combo.options.length - 1] =  new Option("Amsterdam  (AMS)",'AMSEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Amsterdam  (AMS)",'AMSEUR');
}
combo.options.length++;if (selectedOption == "AVNEUR"){combo.options[combo.options.length - 1] =  new Option("Avignon (AVN)",'AVNEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Avignon (AVN)",'AVNEUR');
}
combo.options.length++;if (selectedOption == "BHDGBP"){combo.options[combo.options.length - 1] =  new Option("Belfast City  (BHD)",'BHDGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Belfast City  (BHD)",'BHDGBP');
}
combo.options.length++;if (selectedOption == "EGCEUR"){combo.options[combo.options.length - 1] =  new Option("Bergerac  (EGC)",'EGCEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Bergerac  (EGC)",'EGCEUR');
}
combo.options.length++;if (selectedOption == "BHXGBP"){combo.options[combo.options.length - 1] =  new Option("Birmingham  (BHX)",'BHXGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Birmingham  (BHX)",'BHXGBP');
}
combo.options.length++;if (selectedOption == "BESEUR"){combo.options[combo.options.length - 1] =  new Option("Brest  (BES)",'BESEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Brest  (BES)",'BESEUR');
}
combo.options.length++;if (selectedOption == "BRSGBP"){combo.options[combo.options.length - 1] =  new Option("Bristol  (BRS)",'BRSGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Bristol  (BRS)",'BRSGBP');
}
combo.options.length++;if (selectedOption == "BRUEUR"){combo.options[combo.options.length - 1] =  new Option("Bruselas (BRU)",'BRUEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Bruselas (BRU)",'BRUEUR');
}
combo.options.length++;if (selectedOption == "BODEUR"){combo.options[combo.options.length - 1] =  new Option("Burdeos  (BOD)",'BODEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Burdeos  (BOD)",'BODEUR');
}
combo.options.length++;if (selectedOption == "CWLGBP"){combo.options[combo.options.length - 1] =  new Option("Cardiff (CWL)",'CWLGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Cardiff (CWL)",'CWLGBP');
}
combo.options.length++;if (selectedOption == "DSAGBP"){combo.options[combo.options.length - 1] =  new Option("Doncaster Sheffield (DSA)",'DSAGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Doncaster Sheffield (DSA)",'DSAGBP');
}
combo.options.length++;if (selectedOption == "DUBEUR"){combo.options[combo.options.length - 1] =  new Option("Dublin  (DUB)",'DUBEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Dublin  (DUB)",'DUBEUR');
}
combo.options.length++;if (selectedOption == "DBVEUR"){combo.options[combo.options.length - 1] =  new Option("Dubrovnik (DBV)",'DBVEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Dubrovnik (DBV)",'DBVEUR');
}
combo.options.length++;if (selectedOption == "DNDGBP"){combo.options[combo.options.length - 1] =  new Option("Dundee (DND)",'DNDGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Dundee (DND)",'DNDGBP');
}
combo.options.length++;if (selectedOption == "DUSEUR"){combo.options[combo.options.length - 1] =  new Option("Dusseldorf (DUS)",'DUSEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Dusseldorf (DUS)",'DUSEUR');
}
combo.options.length++;if (selectedOption == "EDIGBP"){combo.options[combo.options.length - 1] =  new Option("Edimburgo  (EDI)",'EDIGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Edimburgo  (EDI)",'EDIGBP');
}
combo.options.length++;if (selectedOption == "EXTGBP"){combo.options[combo.options.length - 1] =  new Option("Exeter  (EXT)",'EXTGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Exeter  (EXT)",'EXTGBP');
}
combo.options.length++;if (selectedOption == "FAOEUR"){combo.options[combo.options.length - 1] =  new Option("Faro  (FAO)",'FAOEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Faro  (FAO)",'FAOEUR');
}
combo.options.length++;if (selectedOption == "FRAEUR"){combo.options[combo.options.length - 1] =  new Option("Frankfurt (FRA)",'FRAEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Frankfurt (FRA)",'FRAEUR');
}
combo.options.length++;if (selectedOption == "GLAGBP"){combo.options[combo.options.length - 1] =  new Option("Glasgow International (GLA)",'GLAGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Glasgow International (GLA)",'GLAGBP');
}
combo.options.length++;if (selectedOption == "GCIGBP"){combo.options[combo.options.length - 1] =  new Option("Guernsey  (GCI)",'GCIGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Guernsey  (GCI)",'GCIGBP');
}
combo.options.length++;if (selectedOption == "HAMEUR"){combo.options[combo.options.length - 1] =  new Option("Hamburgo (HAM)",'HAMEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Hamburgo (HAM)",'HAMEUR');
}
combo.options.length++;if (selectedOption == "HAJEUR"){combo.options[combo.options.length - 1] =  new Option("Hannover (HAJ)",'HAJEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Hannover (HAJ)",'HAJEUR');
}
combo.options.length++;if (selectedOption == "INVGBP"){combo.options[combo.options.length - 1] =  new Option("Inverness (INV)",'INVGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Inverness (INV)",'INVGBP');
}
combo.options.length++;if (selectedOption == "IOMGBP"){combo.options[combo.options.length - 1] =  new Option("Isla de Man  (IOM)",'IOMGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Isla de Man  (IOM)",'IOMGBP');
}
combo.options.length++;if (selectedOption == "JERGBP"){combo.options[combo.options.length - 1] =  new Option("Jersey  (JER)",'JERGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Jersey  (JER)",'JERGBP');
}
combo.options.length++;if (selectedOption == "LRHEUR"){combo.options[combo.options.length - 1] =  new Option("La Rochelle  (LRH)",'LRHEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("La Rochelle  (LRH)",'LRHEUR');
}
combo.options.length++;if (selectedOption == "LBAGBP"){combo.options[combo.options.length - 1] =  new Option("Leeds Bradford  (LBA)",'LBAGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Leeds Bradford  (LBA)",'LBAGBP');
}
combo.options.length++;if (selectedOption == "LIGEUR"){combo.options[combo.options.length - 1] =  new Option("Limoges  (LIG)",'LIGEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Limoges  (LIG)",'LIGEUR');
}
combo.options.length++;if (selectedOption == "LPLGBP"){combo.options[combo.options.length - 1] =  new Option("Liverpool  (LPL)",'LPLGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Liverpool  (LPL)",'LPLGBP');
}
combo.options.length++;if (selectedOption == "LGWGBP"){combo.options[combo.options.length - 1] =  new Option("Londres Gatwick  (LGW)",'LGWGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Londres Gatwick  (LGW)",'LGWGBP');
}
combo.options.length++;if (selectedOption == "LTNGBP"){combo.options[combo.options.length - 1] =  new Option("Londres Luton  (LTN)",'LTNGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Londres Luton  (LTN)",'LTNGBP');
}
combo.options.length++;if (selectedOption == "SENGBP"){combo.options[combo.options.length - 1] =  new Option("Londres Southend  (SEN)",'SENGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Londres Southend  (SEN)",'SENGBP');
}
combo.options.length++;if (selectedOption == "AGPEUR"){combo.options[combo.options.length - 1] =  new Option("Malaga  (AGP)",'AGPEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Malaga  (AGP)",'AGPEUR');
}
combo.options.length++;if (selectedOption == "MANGBP"){combo.options[combo.options.length - 1] =  new Option("Manchester  (MAN)",'MANGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Manchester  (MAN)",'MANGBP');
}
combo.options.length++;if (selectedOption == "MXPEUR"){combo.options[combo.options.length - 1] =  new Option("Milan Malpensa (MXP)",'MXPEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Milan Malpensa (MXP)",'MXPEUR');
}
combo.options.length++;if (selectedOption == "NCLGBP"){combo.options[combo.options.length - 1] =  new Option("Newcastle  (NCL)",'NCLGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Newcastle  (NCL)",'NCLGBP');
}
combo.options.length++;if (selectedOption == "NQYGBP"){combo.options[combo.options.length - 1] =  new Option("Newquay (NQY)",'NQYGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Newquay (NQY)",'NQYGBP');
}
combo.options.length++;if (selectedOption == "NCEEUR"){combo.options[combo.options.length - 1] =  new Option("Niza (NCE)",'NCEEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Niza (NCE)",'NCEEUR');
}
combo.options.length++;if (selectedOption == "NWIGBP"){combo.options[combo.options.length - 1] =  new Option("Norwich  (NWI)",'NWIGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Norwich  (NWI)",'NWIGBP');
}
combo.options.length++;if (selectedOption == "PMIEUR"){combo.options[combo.options.length - 1] =  new Option("Palma Mallorca  (PMI)",'PMIEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Palma Mallorca  (PMI)",'PMIEUR');
}
combo.options.length++;if (selectedOption == "CDGEUR"){combo.options[combo.options.length - 1] =  new Option("Paris Charles De Gaulle  (CDG)",'CDGEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Paris Charles De Gaulle  (CDG)",'CDGEUR');
}
combo.options.length++;if (selectedOption == "PGFEUR"){combo.options[combo.options.length - 1] =  new Option("Perpignan  (PGF)",'PGFEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Perpignan  (PGF)",'PGFEUR');
}
combo.options.length++;if (selectedOption == "RNSEUR"){combo.options[combo.options.length - 1] =  new Option("Rennes  (RNS)",'RNSEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Rennes  (RNS)",'RNSEUR');
}
combo.options.length++;if (selectedOption == "SOUGBP"){combo.options[combo.options.length - 1] =  new Option("Southampton  (SOU)",'SOUGBP', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Southampton  (SOU)",'SOUGBP');
}
combo.options.length++;if (selectedOption == "SPUEUR"){combo.options[combo.options.length - 1] =  new Option("Split (SPU)",'SPUEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Split (SPU)",'SPUEUR');
}
combo.options.length++;if (selectedOption == "STREUR"){combo.options[combo.options.length - 1] =  new Option("Stuttgart (STR)",'STREUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Stuttgart (STR)",'STREUR');
}
combo.options.length++;if (selectedOption == "TLSEUR"){combo.options[combo.options.length - 1] =  new Option("Toulouse  (TLS)",'TLSEUR', false, true);
}else{combo.options[combo.options.length - 1] = new Option("Toulouse  (TLS)",'TLSEUR');
}
}


function populateMonthYear(combo, selectedDate) {
combo.options.length++;if (selectedDate == "200805"){combo.options[combo.options.length - 1] = new Option("mayo 2008",'200805', false, true);
}else{combo.options[combo.options.length - 1] = new Option("mayo 2008",'200805');
}
combo.options.length++;if (selectedDate == "200806"){combo.options[combo.options.length - 1] = new Option("junio 2008",'200806', false, true);
}else{combo.options[combo.options.length - 1] = new Option("junio 2008",'200806');
}
combo.options.length++;if (selectedDate == "200807"){combo.options[combo.options.length - 1] = new Option("julio 2008",'200807', false, true);
}else{combo.options[combo.options.length - 1] = new Option("julio 2008",'200807');
}
combo.options.length++;if (selectedDate == "200808"){combo.options[combo.options.length - 1] = new Option("agosto 2008",'200808', false, true);
}else{combo.options[combo.options.length - 1] = new Option("agosto 2008",'200808');
}
combo.options.length++;if (selectedDate == "200809"){combo.options[combo.options.length - 1] = new Option("septiembre 2008",'200809', false, true);
}else{combo.options[combo.options.length - 1] = new Option("septiembre 2008",'200809');
}
combo.options.length++;if (selectedDate == "200810"){combo.options[combo.options.length - 1] = new Option("octubre 2008",'200810', false, true);
}else{combo.options[combo.options.length - 1] = new Option("octubre 2008",'200810');
}
}


var onLoadFunctions = new Array();
var onLoadFunctionNum = 0;

 function addOnLoadFunction(func) {
   onLoadFunctions[onLoadFunctionNum++] = func;
 } 

 function doOnload() {
   if (onLoadFunctionNum > 0) {
      for (funcnum = 0; funcnum < onLoadFunctions.length; funcnum++) {
          eval(onLoadFunctions[funcnum]);
      }
   }
 }
addOnLoadFunction('updatePAX("load")');
addOnLoadFunction('populateAirports(document.flightSearchCriteriaForm.selDep)');
addOnLoadFunction('populateAirports(document.flightSearchCriteriaForm.selDest)');
addOnLoadFunction('populateMonthYear(document.flightSearchCriteriaForm.selDepMonth)');
addOnLoadFunction('populateMonthYear(document.flightSearchCriteriaForm.selRetMonth)');
// See validationFunctionsFull for info on most of these methods

function validateMaxLength(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var formName = form.getAttributeNode("name");
oMaxLength = eval('new ' + formName.value + '_maxlength()');
for (x in oMaxLength) {
var field = form[oMaxLength[x][0]];
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'password' ||
field.type == 'textarea') &&
field.disabled == false) {
var iMax = parseInt(oMaxLength[x][2]("maxlength"));
if (field.value.length > iMax) {
if (i == 0) {
focusField = field;
}
fields[i++] = oMaxLength[x][1];
isValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}


function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var formName = form.getAttributeNode("name");
oRequired = eval('new ' + formName.value + '_required()');
for (x in oRequired) {
var field = form[oRequired[x][0]];
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'checkbox' ||
field.type == 'select-one' ||
field.type == 'password') &&
field.disabled == false) {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else if (field.type == 'checkbox') {
if (field.checked) {
value = field.value;
}
} else {
value = field.value;
}
if (trim(value).length == 0) {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
} else if (field.type == "select-multiple") {
var numOptions = field.options.length;
lastSelected=-1;
for(loop=numOptions-1;loop>=0;loop--) {
if(field.options[loop].selected) {
lastSelected = loop;
value = field.options[loop].value;
break;
}
}
if(lastSelected < 0 || trim(value).length == 0) {
if(i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid=false;
}
} else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) {
isChecked=-1;
for (loop=0;loop < field.length;loop++) {
if (field[loop].checked) {
isChecked=loop;
break; // only one needs to be checked
}
}
if (isChecked < 0) {
if (i == 0) {
focusField = field[0];
}
fields[i++] = oRequired[x][1];
isValid=false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}

function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

function validateInteger(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var formName = form.getAttributeNode("name");

oInteger = eval('new ' + formName.value + '_IntegerValidations()');
for (x in oInteger) {
var field = form[oInteger[x][0]];

if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') &&
field.disabled == false) {

var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}

if (value.length > 0) {

if (!isAllDigits(value)) {
bValid = false;
if (i == 0) {
focusField = field;
}
fields[i++] = oInteger[x][1];

} else {
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oInteger[x][1];
bValid = false;
}
}
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}

function isAllDigits(argvalue) {
argvalue = argvalue.toString();
var validChars = "0123456789";
var startFrom = 0;
if (argvalue.substring(0, 2) == "0x") {
validChars = "0123456789abcdefABCDEF";
startFrom = 2;
} else if (argvalue.charAt(0) == "0") {
validChars = "01234567";
startFrom = 1;
} else if (argvalue.charAt(0) == "-") {
startFrom = 1;
}

for (var n = startFrom; n < argvalue.length; n++) {
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
}
return true;
}

function validateCreditCard(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	var formName = form.getAttributeNode("name");

	oCreditCard = eval('new ' + formName.value + '_creditCard()');

	for (x in oCreditCard) {
		if ((form[oCreditCard[x][0]].type == 'text' || form[oCreditCard[x][0]].type == 'textarea') && 
				(form[oCreditCard[x][0]].value.length > 0) && form[oCreditCard[x][0]].disabled == false) {
			if (!luhnCheck(form[oCreditCard[x][0]].value)) {
				if (i == 0) {
					focusField = form[oCreditCard[x][0]];
				}
				fields[i++] = oCreditCard[x][1];
				bValid = false;
			}
		}
	}
	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}
	return bValid;
}
/* Same as above but only validates if there are no '*' i.e. not a masked
   pre-displayed number */
function validateMaskableCreditCard(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	var formName = form.getAttributeNode("name");

	oCreditCard = eval('new ' + formName.value + '_maskableCreditCard()');
	
	for (x in oCreditCard) {
		if ((form[oCreditCard[x][0]].type == 'text' || form[oCreditCard[x][0]].type == 'textarea') && 
				(form[oCreditCard[x][0]].value.length > 0) && form[oCreditCard[x][0]].disabled == false) {
			if (form[oCreditCard[x][0]].value.indexOf('*') == -1) {
				cardNumber = form[oCreditCard[x][0]].value.replace(/\s/g,"");
				if (!luhnCheck(cardNumber)) {
					if (i == 0) {
						focusField = form[oCreditCard[x][0]];
					}
					fields[i++] = oCreditCard[x][1];
					bValid = false;
				}
			}
		}
	}
	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}
	return bValid;
}

function luhnCheck(cardNumber) {
	if (isLuhnNum(cardNumber)) {
		var no_digit = cardNumber.length;
		var oddoeven = no_digit & 1;
		var sum = 0;
		for (var count = 0; count < no_digit; count++) {
			var digit = parseInt(cardNumber.charAt(count));
			if (!((count & 1) ^ oddoeven)) {
				digit *= 2;
				if (digit > 9) digit -= 9;
			};
			sum += digit;
		};
		if (sum == 0) return false;
		if (sum % 10 == 0) return true;
	};
	return false;
}

function isLuhnNum(argvalue) {
argvalue = argvalue.toString();
if (argvalue.length == 0) {
return false;
}
for (var n = 0; n < argvalue.length; n++) {
if ((argvalue.substring(n, n+1) < "0") ||
(argvalue.substring(n,n+1) > "9")) {
return false;
}
}
return true;
}


function validateDate(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var formName = form.getAttributeNode("name");

oDate = eval('new ' + formName.value + '_DateValidations()');

for (x in oDate) {
var field = form[oDate[x][0]];
var value = field.value;
var datePattern = oDate[x][2]("datePatternStrict");
// try loose pattern
if (datePattern == null)
datePattern = oDate[x][2]("datePattern");
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea') &&
(value.length > 0) && (datePattern.length > 0) &&
field.disabled == false) {
var MONTH = "MM";
var DAY = "dd";
var YEAR = "yyyy";
var orderMonth = datePattern.indexOf(MONTH);
var orderDay = datePattern.indexOf(DAY);
var orderYear = datePattern.indexOf(YEAR);
if ((orderDay < orderYear && orderDay > orderMonth)) {
var iDelim1 = orderMonth + MONTH.length;
var iDelim2 = orderDay + DAY.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderDay && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderDay) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[2], matched[1], matched[3])) {
if (i == 0) {
focusField = field;
}
fields[i++] = oDate[x][1];
bValid =  false;
}
} else {
if (i == 0) {
focusField = field;
}
fields[i++] = oDate[x][1];
bValid =  false;
}
} else if ((orderMonth < orderYear && orderMonth > orderDay)) {
var iDelim1 = orderDay + DAY.length;
var iDelim2 = orderMonth + MONTH.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderMonth && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderMonth) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[1], matched[2], matched[3])) {
if (i == 0) {
focusField = field;
}
fields[i++] = oDate[x][1];
bValid =  false;
}
} else {
if (i == 0) {
focusField = field;
}
fields[i++] = oDate[x][1];
bValid =  false;
}
} else if ((orderMonth > o