function checkBrowserName(name){  
   var agent = navigator.userAgent.toLowerCase();  
   if (agent.indexOf(name.toLowerCase())>-1) {  
     return true;  
   }  
   return false;  
} 

function Booking() {
	var countries = {
			'EGY':'Ägypten','AEX':'Arabische Emirate','ARG':'Argentinien','OZZ':'Australien','BHS':'Bahamas','BHR':'Bahrain','BAL':'Baltikum','BEL':'Belgien','BIH':'Bosnien und Herzegowina','BRA':'Brasilien','BGR':'Bulgarien','CHL':'Chile','CRI':'Costa Rica','DEU':'Deutschland','DOM':'Dominikanische Republik','DNK':'Dänemark','FIN':'Finnland','FRA':'Frankreich','GRD':'Grenada','GCE':'Griechenland','GBP':'Großbritannien','GLP':'Guadeloupe','GTM':'Guatemala','IRL':'Irland','ISL':'Island','ISR':'Israel','ITL':'Italien','JAM':'Jamaika','JOR':'Jordanien','CYM':'Kaimaninseln','CDN':'Kanada','KAR':'Karibik','HRV':'Kroatien','LUX':'Luxemburg','MYS':'Malaysia','MLA':'Malta','MAR':'Marokko','MTQ':'Martinique','MUS':'Mauritius','MEX':'Mexico','NAM':'Namibia','NZL':'Neuseeland','NLD':'Niederlande','NOR':'Norwegen','AUT':'Österreich','OMN':'Oman','POL':'Polen','PRT':'Portugal','PRI':'Puerto Rico','REU':'Reunion','ROU':'Rumänien','LCA':'Saint Lucia','SWE':'Schweden','CHE':'Schweiz','YUG':'Serbien und Montenegro','SVN':'Slowenien','ESP':'Spanien','ZAF':'Südafrika','THA':'Thailand','TTO':'Trinidad und Tobago','CZE':'Tschechische Republik','TUN':'Tunesien','TUR':'Türkei','HUN':'Ungarn','URY':'Uruguay','USA':'USA','CYP':'Zypern'
	};
	
	var cities = {
			EGY : {ALY:'Alexandria',CAI:'Cairo',HRG:'Hurghada',SSH:'Sharm El Sheikh'},
			AEX : {AUH:'Abu Dhabi',DXB:'Dubai',RKT:'Ras Al Khaimah',SHJ:'Sharjah'},
			ARG : {BUE:'Buenos Aires',COR:'Cordoba -Argentinien)',FTE:'El Calafate',MDZ:'Mendoza',NQN:'Neuquen',ROS:'Rosario',SLA:'Salta',BRC:'San Carlos De Bariloche',SFN:'Santa Fe',USH:'Ushuaia'},
			OZZ : {ADL:'Adelaide',WSY:'Airlie Beach',ASP:'Alice Springs',AYQ:'Ayers Rock',BNE:'Brisbane',BME:'Broome',BDB:'Bundaberg',BWT:'Burnie',CNS:'Cairns',CBR:'Canberra',OOL:'Coolangatta -Gold  Coast)',DRW:'Darwin',DPO:'Devonport',JFM:'Fremantle',GLT:'Gladstone',HVB:'Hervey Bay',HBA:'Hobart',KTA:'Karratha',KTR:'Katherine',KGC:'Kingscote',KNX:'Kununurra',LST:'Launceston',MKY:'Mackay',MCY:'Maroochydore',MEL:'Melbourne',NSA:'Noosa',PER:'Perth',PPP:'Proserpine',ROK:'Rockhampton',SYD:'Sydney',TSV:'Townsville'},
			BHS : {},
			BHR : {BAH:'Bahrain',WGF:'Manama'},
			BAL : {KUN:'Kaunas',KLJ:'Klaipeda',RIX:'Riga',TLL:'Tallinn',TAY:'Tartu',VNO:'Vilnius'},
			BEL : {ANR:'Antwerpen',ZGJ:'Brugge',BRU:'Brussels',CRL:'Charleroi',LGG:'Liege',OST:'Ostend'},
			BIH : {SJJ:'Sarajevo'},
			BRA : {AQA:'Araraquara',BEL:'Belem',BHZ:'Belo Horizonte',BSB:'Brasilia',CPQ:'Campinas',CGB:'Cuiaba',CWB:'Curitiba',FLN:'Florianopolis',FOR:'Fortaleza',GYN:'Goiania',IOS:'Ilheus',JOI:'Joinville',LDB:'Londrina',MCZ:'Maceio',MGF:'Maringa',NAT:'Natal',PMW:'Palmas',POA:'Porto Alegre',REC:'Recife',RAO:'Ribeirao Preto',SDU:'Rio d. J. Santos Dumont',GIG:'Rio de Janeiro',RIO:'Rio De Janeiro',SSA:'Salvador',SSZ:'Santos',SJK:'Sao Jose Dos Campos',SAO:'Sao Paulo',GRU:'Sao Paulo -Guarulhos)',CGH:'Sao Paulo Congonhas',UDI:'Uberlandia',VIX:'Vitoria'},
			BGR : {BOJ:'Bourgas',SOF:'Sofia',VAR:'Varna'},
			CHL : {ANF:'Antofagasta',CJC:'Calama',CCP:'Concepcion',IQQ:'Iquique',PMC:'Puerto Montt',SCL:'Santiago de Chile',KNA:'Vina Del Mar'},
			CRI : {LIR:'Liberia',XQP:'Quepos',SJO:'San Jose -Costa Rica)',TNO:'Tamarindo'},
			DEU : {AAH:'Aachen Maastricht',AOC:'Altenburg Nobitz Apt',ZAX:'Angermuende',QOB:'Ansbach',ZCA:'Arnsberg',ZCB:'Aschaffenburg',AGB:'Augsburg',ZBZ:'Bad Salzungen',ZCC:'Baden-Baden',ZCD:'Bamberg',BYU:'Bayreuth',ZCE:'Berchtesgaden',ZCG:'Bergisch Gladbach',BER:'Berlin',SXF:'Berlin Schönefeld',TXL:'Berlin Tegel',THF:'Berlin Tempelhof',BFE:'Bielefeld',BBJ:'Bitburg Air Base',ZCI:'Bocholt',QBO:'Bochum',PHM:'Boeblingen',BNJ:'Bonn',BWE:'Braunschweig',BRE:'Bremen',BRV:'Bremerhaven',ZCN:'Celle',ZTZ:'Chemnitz',ZCP:'Coburg',CBU:'Cottbus',QEI:'Crailsheim',ZCQ:'Cuxhaven',ZCR:'Dachau',ZCS:'Darmstadt',DUS:'Düsseldorf',ZSU:'Dessau',DTM:'Dortmund',DRS:'Dresden',ZCY:'Dueren',DUI:'Duisburg',QEF:'Egelsbach',EIB:'Eisenach',EME:'Emden',QEX:'Emmerich',ERF:'Erfurt',ZCZ:'Erlangen',ESS:'Essen',ZEB:'Esslingen',ZED:'Euskirchen',FLF:'Flensburg',FRA:'Frankfurt',ZFR:'Frankfurt/Oder',QFB:'Freiburg',QFL:'Freilassing',FDH:'Friedrichshafen',FRZ:'Fritzlar',FEL:'Fuerstenfeldbruck',ZEE:'Fulda',ZEI:'Garmisch-Partenkirchen',ZEJ:'Gelsenkirchen',ZGA:'Gera',ZQY:'Giessen',ZES:'Goeppingen',ZGE:'Goerlitz',ZEU:'Goettingen',ZET:'Goslar',ZGO:'Gotha',GUT:'Guetersloh',ZEW:'Gummersbach',ZEY:'Hagen',HHN:'Hahn',ZHQ:'Halberstadt',ZHZ:'Halle',HAM:'Hamburg',ZNB:'Hamm',ZNF:'Hanau',HAJ:'Hannover',HDB:'Heidelberg',ZNI:'Heidenheim',ZNJ:'Heilbronn',ZNK:'Herford',ZNN:'Hilden',ZNO:'Hildesheim',HOQ:'Hof',QOG:'Homburg',QHU:'Husum',ZNQ:'Ingolstadt',ZNR:'Iserlohn',ZJS:'Jena',KLT:'Kaiserslautern',QKA:'Karlsruhe',FKB:'Karlsruhe/Baden Baden',KSF:'Kassel',CGN:'Köln',QLH:'Kelsterbach',ZNS:'Kempten',KEL:'Kiel',ZNV:'Koblenz',QKZ:'Konstanz',QKF:'Krefeld',QLG:'Landshut',LBC:'Lübeck',LEJ:'Leipzig',ZNW:'Limburg',QII:'Lindau',ZOB:'Lippstadt',QLO:'Loerrach',ZOD:'Ludwigsburg',ZOE:'Ludwigshafen',ZOC:'Luedenscheid',ZMG:'Magdeburg',QMZ:'Mainz',MHG:'Mannheim',ZOI:'Marburg An Der Lahn',ZOJ:'Marl',MGL:'Mönchengladbach',MUC:'München',FMO:'Münster',ZON:'Moers',ZOO:'Muelheim An Der Ruhr',NUE:'Nürnberg',ZUB:'Neubrandenburg',ZOP:'Neunkirchen',ZOQ:'Neuss',QGW:'Neustadt/Gladwe',NRN:'Niederrhein',ZOV:'Norderstedt',ZOW:'Nordhorn',ZOY:'Oberhausen',ZOZ:'Offenbach',ZPA:'Offenburg',ZPD:'Oldenburg',ZPE:'Osnabrueck',PAD:'Paderborn',ZPF:'Passau',ZPG:'Peine',ZPI:'Pirmasens',XXP:'Potsdam',RMS:'Ramstein',ZPJ:'Ratingen',QRB:'Ravensburg',ZPL:'Recklinghausen',ZPM:'Regensburg',ZPN:'Remscheid',ZPP:'Reutlingen',ZPQ:'Rheine',ZRX:'Riesa',ZPR:'Rosenheim',XXR:'Rostock',RLG:'Rostock-Laage',ZPS:'Ruesselsheim',SCN:'Saarbrücken',ZPT:'Saarlouis',ZPU:'Salzgitter',ZPV:'Schwaebish Gmuend',ZPW:'Schweinfurt',ZSR:'Schwerin',SGE:'Siegen',ZPZ:'Sindelfringen',ZQA:'Singen',ZQB:'Solingen',ZQC:'Speyer',ZSN:'Stendal',ZSX:'Stralsund',STR:'Stuttgart',ZSO:'Suhl',ZQF:'Trier',QUL:'Ulm',QVQ:'Verden',ZQL:'Villingen-Schwenningen',ZQQ:'Wetzlar',UWE:'Wiesbaden',WVN:'Wilhelmshaven',ZWM:'Wismar',ZWT:'Wittenberg',ZQV:'Worms',QWU:'Würzburg',UWP:'Wuppertal',ZIT:'Zittau',ZQW:'Zweibruecken'},
			DOM : {POP:'Puerto Plata',PUJ:'Punta Cana',STI:'Santiago -Dom.Rep.)',SDQ:'Santo Domingo'},
			DNK : {AAL:'Aalborg',AAR:'Aarhus',BLL:'Billund',CPH:'Copenhagen',EBJ:'Esbjerg',KRP:'Karup',RNN:'Ronne',SGD:'Sonderborg',TED:'Thisted'},
			FIN : {HEL:'Helsinki',IVL:'Ivalo',JOE:'Joensuu',JYV:'Jyvaskyla',KAJ:'Kajaani',KEM:'Kemi/Tornio',KTT:'Kittila',KOK:'Kokkola Pietarsaari',KUO:'Kuopio',KAO:'Kuusamo',QLF:'Lahti',LPP:'Lappeenranta',MHQ:'Mariehamn',MIK:'Mikkeli',OUL:'Oulu',POR:'Pori',RVN:'Rovaniemi',SVL:'Savonlinna',SJY:'Seinajoki',SOT:'Sodankyla',TMP:'Tampere',TKU:'Turku',UTI:'Utti',VAA:'Vaasa',VRK:'Varkaus'},
			FRA : {XAB:'Abbeville',AGF:'Agen',XAI:'Aix Les Bains',QXB:'Aix-En-Provence',AJA:'Ajaccio',XAV:'Albertville',LBI:'Albi',XAS:'Ales',QAM:'Amiens',ANE:'Angers',ANG:'Angouleme',NCY:'Annecy-Meythe',QNJ:'Annemasse',XAT:'Antibes',XAC:'Arcachon',ZAF:'Arles -Railway Service)',QRV:'Arras',JAH:'Aubagne',XUY:'Auray',AUR:'Aurillac',AUF:'Auxerre Branches',AVN:'Avignon',XBD:'Bar Le Duc',MLH:'Basel-Mulhouse',BIA:'Bastia',XBY:'Bayonne',XBM:'Beaulieu Sur Mer',XBV:'Beaune',BVA:'Beauvais',XBF:'Bellegarde',EGC:'Bergerac',QBQ:'Besancon',XBH:'Bethune',BZR:'Beziers',BIQ:'Biarritz -Parme)',XBQ:'Blois',BOD:'Bordeaux',XBT:'Boulogne Billancourt',XBS:'Boulogne Sur Mer',XBK:'Bourg En Bresse',BOU:'Bourges',BES:'Brest',XBC:'Briancon',BVE:'Brive-La-Gaillarde',CFR:'Caen',CQF:'Calais',CLY:'Calvi',CEQ:'Cannes',CCF:'Carcassonne',XCD:'Chalon Sur Saone',XCR:'Chalons Sur Marne',CMF:'Chambery',XCF:'Chamonix Mont Blanc',XCZ:'Charleville Mezieres',QTJ:'Chartres',XCY:'Chateau Thierry',CHR:'Chateauroux',XCX:'Chatellerault',XCW:'Chaumont',CER:'Cherbourg',CFE:'Clermont-Ferrand',CMR:'Colmar -Houssen)',XCP:'Compiegne',QEV:'Courbevoie',CSF:'Creil',XDA:'Dax',DOL:'Deauville',DPE:'Dieppe',DIJ:'Dijon',DNR:'Dinard',XDN:'Douai',XDR:'Dreux',XDK:'Dunkerque',XEP:'Epernay',EPL:'Epinal',XEB:'Evian Les Bains',JEV:'Evre',EVX:'Evreux',FSC:'Figari',BOR:'Fontaine',XFB:'Fontainebleu',FRJ:'Frejus',GFR:'Granville',GNB:'Grenoble',XHY:'Hendaye',XHE:'Hyeres',JLP:'Juan Les Pins',EDM:'La Roche',XRO:'La Roche Sur Yon',LRH:'La Rochelle',ZAO:'Laberandie',LAI:'Lannion',XLN:'Laon',LVA:'Laval',LBG:'Le Bourget',LEH:'Le Havre',LME:'Le Mans',CET:'Le Pontreau',LPY:'Le Puy',XLE:'Lens',QBH:'Levallois',XLR:'Libourne',LIL:'Lille',LIG:'Limoges',XLX:'Lisieux',LRT:'Lorient',LDE:'Lourdes/Tarbes',LYS:'Lyon',QNX:'Macon',MRS:'Marseille',MVV:'Megeve',XMT:'Menton',MZM:'Metz',ETZ:'Metz/Nancy',XMO:'Modane',XMJ:'Mont De Marsan',XMW:'Montauban',MCM:'Monte Carlo -Monaco)',XMK:'Montelimar',MCU:'Montlucon',LBY:'Montoir',MPL:'Montpellier',MXN:'Morlaix',XMU:'Moulin Sur Allier',QMU:'Moutiers',ENC:'Nancy',NTE:'Nantes',QNL:'Neuilly Sur Seine',NVS:'Nevers',FNI:'Nimes',NIT:'Niort',NCE:'Nizza',XOG:'Orange',ORE:'Orleans',PAR:'Paris',CDG:'Paris Charles De Gaulle',ORY:'Paris Orly',CNG:'Parvaud',PUF:'Pau',PGX:'Perigueux',PGF:'Perpignan',PIS:'Poitiers',POX:'Pontoise',PRP:'Propriano',UIP:'Quimper',XRT:'Rambouillet',RHE:'Reims',RNS:'Rennes',RNE:'Roanne',RDZ:'Rodez',QZV:'Roissy-en-France',URO:'Rouen',RYN:'Royan',RCO:'Saint Agnant',XST:'Saintes',XSN:'Sallanches',XSU:'Saumur',XSQ:'Selestat',XSF:'Sens',XSY:'Sete',XSS:'Soissons',SXD:'Sophia Antipolis',EBU:'St. Etienne',XGF:'St. Gervaise Le Fayet',XJZ:'St. Jean De Luz',XSB:'St. Malo',SNR:'St. Nazaire',XSH:'St. Pierre Des Corps',XSJ:'St. Quentin',XSK:'St. Raphael',JSZ:'St. Tropez',LTT:'St. Tropez',SXB:'Strasbourg',GAT:'Tallard',LSO:'Talmont',XTB:'Tarbes',DLE:'Tavaux',XTH:'Thionville',XTS:'Thonon Les Bains',TLN:'Toulon',TLS:'Toulouse',TUF:'Tours',SBK:'Tremuson',QYR:'Troyes',VAF:'Valence',XVS:'Valenciennes',VNE:'Vannes',XVD:'Vendome',XVE:'Versailles',XVO:'Vesoul',VHY:'Vichy',XVI:'Vienne',XVZ:'Vierzon'},
			GRD : {GND:'Grenada'},
			GCE : {ZAN:'Aghios Nicolaos',AXD:'Alexandroupolis',ATH:'Athen',CHQ:'Chania',JKH:'Chios',CFU:'Corfu',HER:'Heraklion',IOA:'Ioannina',KLX:'Kalamata',AOK:'Karpathos',KVA:'Kavala',EFL:'Kefallinia',KGS:'Kos',LRA:'Larisa',LXS:'Lemnos',JMK:'Mykonos',MJT:'Mytilene',JNX:'Naxos',PAS:'Paros',GPA:'Patras',PVK:'Preveza/Lefkas',RHO:'Rhodos',SMI:'Samos',JSI:'Skiathos',SKG:'Thessaloniki',JTR:'Thira',VOL:'Volos',ZTH:'Zakynthos'},
			GBP : {ABZ:'Aberdeen',QDH:'Ashford',XQB:'Basingstoke -Rail Station)',QQX:'Bath',XQD:'Bedford -Rail Station)',BFS:'Belfast',BHX:'Birmingham',BLK:'Blackpool',BOH:'Bournemouth',BSH:'Brighton',BRS:'Bristol',CBG:'Cambridge',CWL:'Cardiff',CAX:'Carlisle',CEG:'Chester',CVT:'Coventry',XVC:'Crewe -Rail Station)',DND:'Dundee',EMA:'East Midlands',EDI:'Edinburgh',EXT:'Exeter',GLA:'Glasgow',PIK:'Glasgow - Prestwick',GLO:'Gloucester',GCI:'Guernsey',HLY:'Holyhead',HUY:'Humberside',INV:'Inverness',JER:'Jersey',LBA:'Leeds-Bradford',QEW:'Leicester',LWK:'Lerwick/Tingwall',LPL:'Liverpool',LON:'London',LCY:'London City Airport',LGW:'London Gatwick',LHR:'London Heathrow',LTN:'London Luton',STN:'London Stansted',LDY:'Londonderry',LYX:'Lydd',MAN:'Manchester',KYN:'Milton Keynes',NCL:'Newcastle',XNE:'Newport Gwent',NQY:'Newquay',ORM:'Northampton',NWI:'Norwich',XNM:'Nottingham -Rail Service)',OBN:'Oban',OXF:'Oxford',PSL:'Perth -Gro?ritannien)',PLH:'Plymouth',PME:'Portsmouth',SZD:'Sheffield',SOU:'Southampton',SEN:'Southend',ENK:'St. Angelo',SWS:'Swansea',SWI:'Swindon',MME:'Teesside',WFD:'Woodford',QQY:'York'},
			GLP : {PTP:'Pointe A Pitre'},
			GTM : {GUA:'Guatemala City'},
			IRL : {ORK:'Cork',DUB:'Dublin',GWY:'Galway',KIR:'Kerry County',NOC:'Knock',LMK:'Limerick',SNN:'Shannon',SXL:'Sligo',WAT:'Waterford',WEX:'Wexford'},
			ISL : {AEY:'Akureyri',EGS:'Egilsstadir',REK:'Reykjavik',KEF:'Reykjavik Keflavik Intl.'},
			ISR : {BEV:'Beer Sheba',ETH:'Elat',HFA:'Haifa',JRS:'Jerusalem',TLV:'Tel Aviv'},
			ITL : {QAO:'Agrigento',ALL:'Albenga',QAL:'Alessandria',AHO:'Alghero',AOI:'Ancona',QZO:'Arezzo',QNO:'Ascoli Piceno',QVN:'Avellino',BRI:'Bari',BGY:'Bergamo',BLQ:'Bologna',BZO:'Bolzano',VBS:'Brescia',QBS:'Brescia Bahnhof',BDS:'Brindisi',CAG:'Cagliari',QCL:'Caltanissetta',QTC:'Caserta',CTA:'Catania',CIY:'Comiso',QCM:'Como',QCS:'Cosenza',CRV:'Crotone',CUF:'Cuneo',FLR:'Florenz',FOG:'Foggia',FRL:'Forli',QFR:'Frosinone',GOA:'Genua',GRS:'Grosseto',QLP:'La Spezia',SUF:'Lamezia-Terme',QLT:'Latina',LCC:'Lecce',MIL:'Mailand',LIN:'Mailand Linate',MXP:'Mailand Malpensa',QMR:'Marsala',QME:'Messina',ZMO:'Modena',NAP:'Neapel',QNU:'Nuoro',OLB:'Olbia',QOS:'Oristano',QPA:'Padova',PMO:'Palermo',PMF:'Parma',PEG:'Perugia',PSR:'Pescara',QPZ:'Piacenza',PSA:'Pisa',QEZ:'Pomezia',QAD:'Pordenone',QPO:'Potenza',QPR:'Prato',QRG:'Ragusa',RAN:'Ravenna',REG:'Reggio Calabria',ZRO:'Reggio Nell Emilia Bus',RMI:'Rimini',ROM:'Rom',CIA:'Rom -Ciampino)',FCO:'Rom Fiumicino',QSR:'Salerno',QSS:'Sassari',SAY:'Siena',QIC:'Siracusa',RRO:'Sorrento',TAR:'Taranto',TTB:'Tortoli',TPS:'Trapani',ZIA:'Trento',TSF:'Treviso',TRS:'Trieste',TRN:'Turin',UDN:'Udine',QVA:'Varese',VCE:'Venedig',VRN:'Verona',VIC:'Vicenza'},
			JAM : {KIN:'Kingston -Jamaika)',MBJ:'Montego Bay'},
			JOR : {AMM:'Amman'},
			CYM : {GCM:'Grand Cayman'},
			CDN : {YXX:'Abbotsford',YBA:'Banff',XPN:'Brampton',XBR:'Brockville',YKZ:'Buttonville',YYC:'Calgary',YCG:'Castlegar',YYG:'Charlottetown',YCW:'Chilliwack',YCN:'Cochrane',YQQ:'Comox',YNF:'Corner Brook',YCC:'Cornwall',YCA:'Courtenay',YDQ:'Dawson Creek',YDF:'Deer Lake',YHD:'Dryden',DUQ:'Duncan/Quam',YXR:'Earlton',YEG:'Edmonton',YEL:'Elliot Lake',YMM:'Fort Mcmurray',YYE:'Fort Nelson',YXJ:'Fort Saint John',YFC:'Fredericton',YQX:'Gander',YQU:'Grande Prairie',YHZ:'Halifax',YHM:'Hamilton',YJA:'Jasper',YKA:'Kamloops',YLW:'Kelowna',YGK:'Kingston -Kanada)',YKX:'Kirkland Lake',XLK:'Levis',YXU:'London -Kanada)',YLY:'Lytton',YGR:'Magdalen Island',ZMT:'Masset',YME:'Matane',YQM:'Moncton',YYY:'Mont Joli',YMQ:'Montreal',YMX:'Montreal Mirabel',YUL:'Montreal P. E. Trudeau',YMJ:'Moose Jaw',YCD:'Nanaimo',XLV:'Niagara Falls',YYB:'North Bay',XOK:'Oakville',YOO:'Oshawa',YOW:'Ottawa',YOS:'Owen Sound',YPE:'Peace River',YTA:'Pembroke',YZT:'Port Hardy',YPA:'Prince Albert',YXS:'Prince George',YPR:'Prince Rupert',YQB:'Quebec',YQZ:'Quesnel',YQF:'Red Deer',YQR:'Regina',YXK:'Rimouski',YRI:'Riviere Du Loup',YSJ:'Saint John',YZR:'Sarnia',YXE:'Saskatoon',YAM:'Sault Ste Marie',YZV:'Sept-Iles',YYD:'Smithers',YAY:'St. Anthony',YYT:'St. Johns',YJT:'Stephenville',YSB:'Sudbury',YQY:'Sydney -Kanada)',YXT:'Terrace',YQT:'Thunder Bay',YTS:'Timmins',YTO:'Toronto',YYZ:'Toronto Pearson Intl.',XLZ:'Truro',YVR:'Vancouver',YYJ:'Victoria -Kanada)',YXZ:'Wawa',YWS:'Whistler',YZU:'Whitecourt',YXY:'Whitehorse',YWL:'Williams Lake',YQG:'Windsor',YWG:'Winnipeg',YQI:'Yarmouth',YZF:'Yellowknife'},
			KAR : {ANU:'Antigua',AUA:'Aruba',BON:'Bonaire',CUR:'Curacao',PTP:'Pointe A Pitre',SBH:'St. Barthelemy',SXM:'St. Maarten'},
			HRV : {DBV:'Dubrovnik',OSI:'Osijek',PUY:'Pula',RJK:'Rijeka',SPU:'Split',ZAD:'Zadar',ZAG:'Zagreb'},
			LUX : {LUX:'Luxemburg'},
			MYS : {JHB:'Johor Bahru',KBR:'Kota Bharu',KUL:'Kuala Lumpur',KUA:'Kuantan',PEN:'Penang'},
			MLA : {GZM:'Gozo',MLA:'Malta'},
			MAR : {AGA:'Agadir',CAS:'Casablanca',RAK:'Marrakech',OZZ:'Quarzazate',RBA:'Rabat',TNG:'Tanger'},
			MTQ : {FDF:'Fort De France'},
			MUS : {MRU:'Mauritius'},
			MEX : {ACA:'Acapulco',AGU:'Aguascalientes',CUN:'Cancun',CUU:'Chihuahua',CJS:'Ciudad Juarez',CZM:'Cozumel',CVJ:'Cuernavaca',GDL:'Guadalajara',HMO:'Hermosillo',ZIH:'Ixtapa/Zihuatanejo',LAP:'La Paz',LZC:'Lazaro Cardenas',BJX:'Leon-Guanajuato',MZT:'Mazatlan',MID:'Merida',MEX:'Mexico City',MTT:'Minatitlan',MTY:'Monterrey',OAX:'Oaxaca',PCM:'Playa Del Carmen',PBC:'Puebla',PVR:'Puerto Vallarta',QRO:'Queretaro',SLW:'Saltillo',SJD:'San Jose Cabo',SLP:'San Luis Potosi',TAM:'Tampico',TIJ:'Tijuana',TRC:'Torreon',TGZ:'Tuxtla Gutierrez',VER:'Veracruz',VSA:'Villahermosa',ZCL:'Zacatecas'},
			NAM : {SWP:'Swakopmund',WVB:'Walvis Bay',WDH:'Windhoek'},
			NZL : {AKL:'Auckland',CHC:'Christchurch',DUD:'Dunedin',GIS:'Gisborne',GMN:'Greymouth',HKK:'Hokitika',IVC:'Invercargill',KAT:'Kaitaia',KKE:'Kerikeri',NPE:'Napier-Hastings',NSN:'Nelson',PCN:'Picton',ZQN:'Queenstown',ROT:'Rotorua',TEU:'Te Anau',TIU:'Timaru',WLG:'Wellington',WRE:'Whangarei'},
			NLD : {AMS:'Amsterdam Schiphol',HAG:'Den Haag',EIN:'Eindhoven',QYE:'Enschede',GRQ:'Groningen',MST:'Maastricht',RTM:'Rotterdam',UTC:'Utrecht'},
			NOR : {AES:'Aalesund',ALF:'Alta',ANX:'Andenes',BDU:'Bardufoss',BGO:'Bergen',BOO:'Bodo',EVE:'Evenes',FRO:'Floro',HFT:'Hammerfest',HAU:'Haugesund',KKN:'Kirkenes',KRS:'Kristiansand',KSU:'Kristiansund',LKL:'Lakselv',LKN:'Leknes',MOL:'Molde',NVK:'Narvik',OSL:'Oslo',TRF:'Oslo - Sandefjord',GEN:'Oslo Gardermoen',SDN:'Sandane',SVG:'Stavanger',SVJ:'Svolvaer',TOS:'Tromso/Langnes',TRD:'Trondheim',VDS:'Vadso',VDB:'Valdres',VAW:'Vardoe'},
			AUT : {QDI:'Dornbirn',GRZ:'Graz',INN:'Innsbruck',KLU:'Klagenfurt',LNZ:'Linz',SZG:'Salzburg',ANT:'St. Anton',VIE:'Wien'},
			OMN : {MCT:'Muscat',SLL:'Salalah'},
			POL : {QYY:'Bialystok',QEO:'Bielsko Biala',BZG:'Bromberg',GDN:'Gdansk',KTW:'Katowice',QKI:'Kielce',KRK:'Krakow',QLZ:'Lodz',QLU:'Lublin',QYO:'Olsztyn',POZ:'Poznan',RZE:'Rzeszow',WAW:'Warsaw',WRO:'Wroclaw'},
			PRT : {ZAV:'Aveiro',BGZ:'Braga',CBP:'Coimbra',FAO:'Faro',FNC:'Funchal',HOR:'Horta',LIS:'Lissabon',PDL:'Ponta Delgada',OPO:'Porto',PXO:'Porto Santo',XSZ:'Setubal'},
			PRI : {BQN:'Aguadilla',ARE:'Arecibo',MAZ:'Mayaguez',PSE:'Ponce',SJU:'San Juan'},
			REU : {RUN:'St-Denis De La Reunion',ZSE:'St. Pierre de la Reunion'},
			ROU : {XHV:'Brasov',BUH:'Bucharest',OTP:'Bukarest',CND:'Constanta',SBZ:'Sibiu',TSR:'Timisoara'},
			LCA : {SLU:'Saint Lucia',UVF:'Saint Lucia'},
			SWE : {BLE:'Borlange',GOT:'Gothenburg',HAD:'Halmstad',JHE:'Helsingborg',AGH:'Helsingborg/Angelholm',JKG:'Jonkoping',KLR:'Kalmar',KSD:'Karlstad',KRN:'Kiruna',KID:'Kristianstad',LPI:'Linkoping',LLA:'Lulea',HMA:'Malmo',MMA:'Malmo',MMX:'Malmoe Sturup',MXX:'Mora',NRK:'Norrkoping',OSD:'Ostersund',RNB:'Ronneby',GSE:'Saeve Airport',KVB:'Skovde',JSO:'Sodertalje',STO:'Stockholm',ARN:'Stockholm Arlanda',NYO:'Stockholm Nykoping',THN:'Trollhattan',UME:'Umea',VST:'Vasteras',VXO:'Vaxjo',VBY:'Visby'},
			CHE : {ZDA:'Aarau -Railway Service)',ZAP:'Appenzell',ACO:'Ascona',ZDG:'Baden -Railway Service)',BSL:'Basel-Mulhouse',ZDI:'Bellinzona',BRN:'Berne',ZDK:'Biel/Bienne',ZDL:'Brig',ZDO:'Buchs',ZDT:'Chur',ZHF:'Fribourg',GVA:'Genf',ZHK:'Gstaad',ZIN:'Interlaken',ZHV:'La Chaux-De-Fonds',QLS:'Lausanne',ZJI:'Locarno',LUG:'Lugano',ZJK:'Luzern',ZJM:'Martigny',ZJP:'Montreux',QNC:'Neuchatel',ZJU:'Olten',ZKJ:'Schaffhausen',ZKK:'Schwyz',ZKO:'Sierre/Siders',SIR:'Sion -Sitten)',QGL:'St. Gallen',SMV:'St. Moritz',ZTK:'Thun',ZKY:'Verbier',ZKZ:'Vevey Bvb',ZLC:'Waedenswil',ZLF:'Wettingen',ZKW:'Wetzikon',ZLI:'Winterthur',ZRH:'Zürich',QZB:'Zermatt',ZLM:'Zug'},
			YUG : {BEG:'Belgrade'},
			SVN : {LJU:'Ljubljana'},
			ESP : {ABC:'Albacete',ALC:'Alicante',LEI:'Almeria',OVD:'Asturias',BCN:'Barcelona',BIO:'Bilbao',CDZ:'Cadiz',ODB:'Cordoba',FGR:'Fuengirola',FUE:'Fuerteventura',GRO:'Gerona',GIB:'Gibraltar',QIJ:'Gijon',LPA:'Gran Canaria',GRX:'Granada',HEV:'Huelva',IBZ:'Ibiza',XRY:'Jerez De La Frontera',LCG:'La Coruna',GMZ:'La Gomera',ACE:'Lanzarote',LEN:'Leon',QLQ:'Lerida',MAD:'Madrid',MAH:'Mahon Menorca',AGP:'Malaga',QRL:'Marbella',MJV:'Murcia',QWW:'Navalmoral de la Mata',PMI:'Mallorca',PNA:'Pamplona',REU:'Reus',SLM:'Salamanca',EAS:'San Sebastian',SPC:'Santa Cruz De La Palma',SDR:'Santander',SCQ:'Santiago De Compostela',SVQ:'Seville',BJZ:'Talaveral La Real',QGN:'Tarragona',TCI:'Tenerife',TFN:'Teneriffa Nord',TFS:'Teneriffa Süd',TOJ:'Torrejon Afb',UTL:'Torremolinos',VLC:'Valencia',VLL:'Valladolid',VDE:'Valverde',VGO:'Vigo',VIT:'Vitoria',ZAZ:'Zaragoza'},
			ZAF : {BFN:'Bloemfontein',DUR:'Durban',ELS:'East London',GRJ:'George',HDS:'Hoedspruit Transvaal',JNB:'Johannesburg',CPT:'Kapstadt',KIM:'Kimberley',MQP:'Kruger Mpumalanga',PZB:'Pietermaritzburg',PTG:'Pietersburg',PBZ:'Plettenberg Bay',PLZ:'Port Elizabeth',PRY:'Pretoria',RCB:'Richards Bay',SDB:'Saldanha Bay',NTY:'Sun City',UTN:'Upington'},
			THA : {BKK:'Bangkok',CNX:'Chiang Mai',CEI:'Chiang Rai',HDY:'Hat Yai',HHQ:'Hua Hin',KKC:'Khon Kaen',USM:'Koh Samui',KBV:'Krabi',HGN:'Mae Hong Son',NAK:'Nakhon Ratchasima',PYX:'Pattaya',PHS:'Phitsanulok',HKT:'Phuket',URT:'Surat Thani',UBP:'Ubon Ratchathani',UTH:'Udon Thani'},
			TTO : {POS:'Port of Spain'},
			CZE : {BRQ:'Brno',PRG:'Prag'},
			TUN : {DJE:'Djerba',MIR:'Monastir',SFA:'Sfax El Maou',QSO:'Sousse',TOE:'Tozeur',TUN:'Tunis'},
			TUR : {ADA:'Adana',ANK:'Ankara',ESB:'Ankara Esenboga',AYT:'Antalya',BJV:'Bodrum',BTZ:'Bursa',DLM:'Dalaman',IST:'Istanbul',IZM:'Izmir',ADB:'Izmir Adnan Menderes',ASR:'Kayseri',QRQ:'Marmaris',SSX:'Samsun',TZX:'Trabzon'},
			HUN : {BUD:'Budapest'},
			URY : {MVD:'Montevideo',PDP:'Punta del Este'},
			USA : {ABI:'Abilene',ADS:'Addison Airport',CAK:'Akron/Canton',ABY:'Albany',ALB:'Albany-Schenctady',ABQ:'Albuquerque',AEX:'Alexandria -Intl.)',ABE:'Allentown-Bthlehm',AMA:'Amarillo',ANA:'Anaheim',ANC:'Anchorage',AID:'Anderson',ARB:'Ann Arbor',ANB:'Anniston',ATW:'Appleton',ACV:'Arcata',AVL:'Asheville',HTS:'Ashland-Huntington',ASE:'Aspen',ATL:'Atlanta',ACY:'Atlantic City',AGS:'Augusta',AUS:'Austin',BFL:'Bakersfield',GBO:'Baltimore Greenbelt',BWI:'Baltimore/Wash. Intl.',BGR:'Bangor',BTR:'Baton Rouge',BPT:'Beaumont-Ptarthur',BKW:'Beckley',BED:'Bedford',BLI:'Bellingham',BJI:'Bemidji',BEH:'Benton Harbor',JBK:'Berkeley',BIL:'Billings',BGM:'Binghamton',BHM:'Birmingham',BMG:'Bloomington -Indiana)',BMI:'Bloomington-Normal -Illinois)',BCT:'Boca Raton',BOI:'Boise',BOS:'Boston',WBU:'Boulder',BWG:'Bowling Green',BZN:'Bozeman',BRD:'Brainerd',EEN:'Brattleboro',BDR:'Bridgeport',BRO:'Brownsville',BUF:'Buffalo',IFP:'Bullhead City',BUR:'Burbank -Los Angeles)',BRL:'Burlington -Iowa)',BBF:'Burlington -Massachusetts)',BTV:'Burlington -Vermont)',BTM:'Butte',JHY:'Cambridge -Massachusetts)',CLD:'Carlsbad',CPR:'Casper',CDC:'Cedar City',CID:'Cedar Rapids / Iowa City',CMI:'Champaign',CHS:'Charleston -South Carolina)',CRW:'Charleston -West Virginia)',CLT:'Charlotte',CHO:'Charlottesville',CHA:'Chattanooga',DOV:'Cheswold',CHI:'Chicago',MDW:'Chicago Midway',ORD:'Chicago O\'Hare Intl.',CVG:'Cincinnati',JID:'City Of Industry H/P',CKB:'Clarksburg',CLW:'Clearwater ',CLE:'Cleveland',COI:'Cocoa Beach',CGS:'College Park',CLL:'College Station',COS:'Colorado Springs',COU:'Columbia -Missouri)',CAE:'Columbia -South Carolina)',GTR:'Columbus -G. T.)',CSG:'Columbus -Georgia)',CLU:'Columbus -Indiana)',CMH:'Columbus -Ohio)',CCR:'Concord -California)',CON:'Concord -New Hampshire)',CRP:'Corpus Christi',DAG:'Daggett',DAL:'Dallas -Love Field)',DFW:'Dallas/Ft Worth',DXR:'Danbury',DAY:'Dayton',DAB:'Daytona Beach',DEO:'Dearborn',DEC:'Decatur',DEN:'Denver International',DSM:'Des Moines',DTT:'Detroit',DTW:'Detroit -Wayne County)',DHN:'Dothan',DBQ:'Dubuque',DLH:'Duluth -International)',DRO:'Durango',EAU:'Eau Claire',ELP:'El Paso',EKO:'Elko',ELM:'Elmira',QTS:'Englewood',ERI:'Erie',ESC:'Escanaba',EUG:'Eugene',EKA:'Eureka',EVV:'Evansville',FAI:'Fairbanks',FAR:'Fargo',FMN:'Farmington',XNA:'Fayetteville -Arkansas)',FAY:'Fayetteville -North Carolina)',FDY:'Findlay',FLG:'Flagstaff',FNT:'Flint',FLO:'Florence -South Carolina)',FNL:'Fort Collins/Loveland',FLL:'Fort Lauderdale',RSW:'Fort Myers',FMY:'Fort Myers',FSM:'Fort Smith',FWA:'Fort Wayne',AFW:'Fort Worth Alliance',FAT:'Fresno',FUL:'Fullerton',GNV:'Gainesville',JHC:'Garden City',GYY:'Gary Regional',JGX:'Glendale',GFK:'Grand Forks',GRI:'Grand Island',GJT:'Grand Junction',GRR:'Grand Rapids',GTF:'Great Falls',GRB:'Green Bay',GSO:'Greensboro/High Point',GLH:'Greenville -Mississippi)',PGV:'Greenville -North Carolina)',GCY:'Greenville -Tennessee)',GSP:'Greenville-Spartanburg',GPT:'Gulfport',GUC:'Gunnison',HGR:'Hagerstown',CMX:'Hancock',HRL:'Harlingen',MDT:'Harrisburg',HAR:'Harrisburg -Pennsylvania)',HFD:'Hartford',BDL:'Hartford -Bradley Intl.)',HDN:'Hayden',HLN:'Helena',HSH:'Henderson Sky Harbor',HIB:'Hibbing',ITO:'Hilo -Hawaii Island)',HHH:'Hilton Head',HNL:'Honolulu',HOU:'Houston',IAH:'Houston',HSV:'Huntsville-Decatur',HYA:'Hyannis',IDA:'Idaho Falls',IPL:'Imperial',IND:'Indianapolis',INL:'International Falls',IYK:'Inyokern',ISP:'Islip',ITH:'Ithaca',JXN:'Jackson -Michigan)',JAN:'Jackson -Mississippi)',JAC:'Jackson -Wyoming)',JAX:'Jacksonville -Florida)',OAJ:'Jacksonville -North Carolina)',JEF:'Jefferson City',JOT:'Joliet',JLN:'Joplin',JNU:'Juneau',OGG:'Kahului -Maui Island)',AZO:'Kalamazoo',FCA:'Kalispell',MKC:'Kansas City',MCI:'Kansas City Intl.',JHM:'Kapalua -Maui Island)',ERV:'Kerrville',EYW:'Key West',ILE:'Killeen',KPD:'King Of Prussia',ISM:'Kissimmee',TYS:'Knoxville',OKK:'Kokomo',KOA:'Kona -Hawaii Island)',LSE:'La Crosse',LGC:'La Grange',LCI:'Laconia',LAF:'Lafayette -Indiana)',LFT:'Lafayette -Louisiana)',LCH:'Lake Charles',HII:'Lake Havasu City',LAL:'Lakeland',WJF:'Lancaster -California)',LNS:'Lancaster -Pennsylvania)',LAN:'Lansing',LRD:'Laredo',LAS:'Las Vegas',LEB:'Lebanon-Whiterjct',LWB:'Lewisburg',LEX:'Lexington',LIH:'Lihue -Kauai Island)',AOH:'Lima',LNK:'Lincoln',LDJ:'Linden',GYR:'Litchfield',LIT:'Little Rock',LGB:'Long Beach',GGG:'Longview',LAX:'Los Angeles',SDF:'Louisville',LBB:'Lubbock',LYH:'Lynchburg',MCN:'Macon -Georgia)',MSN:'Madison',MHT:'Manchester -New Hampshire)',MHK:'Manhattan',MTH:'Marathon',MGE:'Marietta',MXG:'Marlborough',MQT:'Marquette',ASL:'Marshall',MFE:'Mcallen',MFR:'Medford',MLB:'Melbourne -Florida)',MEM:'Memphis',MNM:'Menominee',MEI:'Meridian',MSC:'Mesa',MIA:'Miami',MAF:'Midland',MKE:'Milwaukee',MSP:'Minneapolis',MOT:'Minot',MSO:'Missoula',MOB:'Mobile',MOD:'Modesto',MLI:'Moline',MKK:'Molokai-Hawaii)',MLU:'Monroe',MRY:'Monterey -California)',MGM:'Montgomery',GAI:'Montgomery County',MTJ:'Montrose',MGW:'Morgantown',MMU:'Morristown',NUQ:'Mountain View',MIE:'Muncie',MKG:'Muskegon',MYR:'Myrtle Beach',APF:'Naples',ASH:'Nashua',BNA:'Nashville',EWB:'New Bedford',EWN:'New Bern',HVN:'New Haven',GON:'New London',MSY:'New Orleans',NYC:'New York',JFK:'New York John F Kennedy',LGA:'New York La Guardia',EWR:'New York Newark',SWF:'Newburgh',JNP:'Newport Beach',PHF:'Newportnews-Hampt',ORF:'Norfolk',LBF:'North Platte',ORQ:'Norwalk',OWD:'Norwood',QHO:'Oak Brook',OAK:'Oakland',OCF:'Ocala',OCN:'Oceanside',OKC:'Oklahoma City',OMA:'Omaha',ONT:'Ontario',SNA:'Orange County',ORL:'Orlando',MCO:'Orlando',OSH:'Oshkosh',FMH:'Otios Afb',OXR:'Oxnard',PAH:'Paducah',PGA:'Page',PSP:'Palm Springs',PAO:'Palo Alto',PFN:'Panama City',HLM:'Park Township',JPD:'Pasadena',PSC:'Pasco',PNS:'Pensacola',PIA:'Peoria',PHL:'Philadelphia',APG:'Phillips Aaf',PHX:'Phoenix',PIT:'Pittsburgh',PSF:'Pittsfield',JBS:'Pleasanton',PIH:'Pocatello',PPM:'Pompano Beach',PTK:'Pontiac',PWM:'Portland -Maine)',PDX:'Portland Intl.',HIO:'Portland/Hillsboro -Oregon)',PSM:'Portsmouth',PCT:'Princeton',HPV:'Princeville -Kauai)',PVD:'Providence',PUB:'Pueblo',RAC:'Racine',RDU:'Raleigh/Durham',RAP:'Rapid City',RDG:'Reading',RDD:'Redding',RNO:'Reno -Tahoe Intl.)',RHI:'Rhinelander',RIC:'Richmond',RAL:'Riverside',ROA:'Roanoke',ROC:'Rochester',RST:'Rochester -Minnesota)',RKS:'Rock Springs',RFD:'Rockford',RKP:'Rockport',RWI:'Rocky Mount-Wilson',ROW:'Roswell',RUT:'Rutland',HMT:'Ryan Field',SAC:'Sacramento',SMF:'Sacramento',MBS:'Saginaw-Baycity',SLE:'Salem',SBY:'Salisbury',SLC:'Salt Lake City',SJT:'San Angelo',SAT:'San Antonio',SAN:'San Diego',SFO:'San Francisco',SJC:'San Jose -California)',SBP:'San Luis Obispo',SRF:'San Rafael',SFB:'Sanford',SBA:'Santa Barbara',ZSM:'Santa Clara',SRU:'Santa Cruz',SAF:'Santa Fe -New Mexico)',SMX:'Santa Maria',SMO:'Santa Monica',STS:'Santa Rosa',SRQ:'Sarasota',SAV:'Savannah',JMH:'Schaumburg',ZSY:'Scottsdale',SCF:'Scottsdale Municipal',AVP:'Scranton/Wilkes-Barre',SEA:'Seattle',SBM:'Sheboygan',SHV:'Shreveport',SUX:'Sioux City',FSD:'Sioux Falls',PAE:'Snohomish County',SBN:'South Bend',GEG:'Spokane',SPZ:'Springdale Muni',SGH:'Springfield',SPI:'Springfield',SGF:'Springfield',SFY:'Springfield',STC:'St. Cloud',SGU:'St. George',STL:'St. Louis',PIE:'St. Petersburg',SCE:'State College',SHD:'Staunton',SCK:'Stockton',JSD:'Stratford',SUA:'Stuart',SUE:'Sturgeon Bay',SGR:'Sugar Land',SSC:'Sumter',SUN:'Sun Valley',SYR:'Syracuse',TIW:'Tacoma',TLH:'Tallahassee',TPA:'Tampa',TEX:'Telluride',TPL:'Temple',HUF:'Terre Haute',TEB:'Teterboro',TXK:'Texarkana',JTO:'Thousand Oaks',TOL:'Toledo',MJX:'Toms River',TOA:'Torrance',TVC:'Traverse City',TTN:'Trenton',TRI:'Tri-City',TUS:'Tucson',TUL:'Tulsa',TCL:'Tuscaloosa',TWF:'Twin Falls',TYR:'Tyler',UCA:'Utica',EGE:'Vail/Eagle',VLO:'Vallejo',VPS:'Valparaiso -Florida)',VPZ:'Valparaiso -Indiana)',VNC:'Venice',VRB:'Vero Beach',VCT:'Victoria -Texas)',VCV:'Victorville',VIS:'Visalia',ACT:'Waco',WAS:'Washington',IAD:'Washington Dulles',DCA:'Washington National',OXC:'Waterbury-Oxford',ALO:'Waterloo',UGN:'Waukegan',UES:'Waukesha',CWA:'Wausau-CentralWisconsin)',PBI:'West Palm Beach',HPN:'Westchester County',ICT:'Wichita',CHD:'Williams',IPT:'Williamsport',NXX:'Willow Grove',ILG:'Wilmington -Delaware)',ILM:'Wilmington -North Carolina-',INT:'Winston Salem',BTL:'Wk Kellogg Regional',ORH:'Worcester',WYS:'Yellowstone',YNG:'Youngstown-Warren',YUM:'Yuma'},
			CYP : {QNP:'Ayia Napa',LCA:'Larnaca',QLI:'Limassol',NIC:'Nicosia',PFO:'Paphos'}
	};
	
	var current = {
			country : 'DEU',
			city : 'FDH'
	};
	
	var oldQuery;
	
	var radixTree;
	
	this.getCountrySelector = function () {
		var options = '';
		for (var code in countries){
			options += '<option '+(code == current.country ? 'selected="selected"' : '' )+' value="'+code+'" >'+countries[code]+'</option>';
		}
		return '<select name="tx_affbook_pi1[country]"size="1" onChange="booking.updateCountry(this.options[this.selectedIndex].value)">'+options+'</select>';
	};
	
	this.getCitySelector = function (type) {
		var options = '';
		var selected = '';
		for (var IATAcode in cities[current.country]) {
			options += '<option '+(IATAcode == current.city ? 'selected="selected"' : '' )+' value="'+IATAcode+'">'+cities[current.country][IATAcode]+'</option>';
		}
		var output = '<select name="tx_affbook_pi1['+(type == 'O' ? 'cityO' : 'cityD' )+']" size="1" '+ (type == 'O' ? 'onChange="booking.updateCityOfDestination()"' : '') +'>'+options+'</select>';
		return output;
	};
	
	this.updateCountry = function (country) {
		if (typeof(country) != 'undefined' && country != current.country) {
			current.country = country;
			current.city = '';
		}
		document.getElementById('citySelectorOrigin').innerHTML = booking.getCitySelector('O');
		document.getElementById('citySelectorDestination').innerHTML = booking.getCitySelector();
	};
	
	this.updateCityOfDestination = function (){
		document.carRental["tx_affbook_pi1[cityD]"].selectedIndex = document.carRental["tx_affbook_pi1[cityO]"].selectedIndex;
	};
	
	this.init = function () {
		if (document.getElementById('countrySelector') != null) {
			document.getElementById('countrySelector').innerHTML = booking.getCountrySelector();
			this.updateCountry();
		}
		
//		if(!checkBrowserName('MSIE 3') && !checkBrowserName('MSIE 4') && !checkBrowserName('MSIE 5') && !checkBrowserName('MSIE 6')){ 
			
			radixTree = new RadixTree();
			var z = new Object();
			for (var code in countries){
				for (var IATAcode in cities[code]) {
					var value = cities[code][IATAcode]+' ('+IATAcode+' - '+countries[code]+')';
					if (value in z) {
					} else {
						radixTree.insert(value.toLowerCase(), value);					
					}
					z[value] = 1;
				}
			}
//		}
	};
	
	this.search = function(selector, select, selectorCity) {
		var query = document.getElementById(selectorCity).value;
		if (query == oldQuery)
			return;
		if (query.length > 0) {
			var result = radixTree.search(query.toLowerCase(), 100);
			var entries = '';
			for (var i=0;i<result.length;i++){
				entries += '<option onmouseover="this.style.backgroundColor=\'#327AC4\';this.style.color=\'#FFFFFF\'" onmouseout="this.style.backgroundColor=\'#FFFFFF\';this.style.color=\'#000000\'" value="'+result[i]+'">'+result[i]+'</option>';
			}
			var content = "<select id='"+select+"' size='"+(result.length > 10 ? 10 : Math.max(result.length, 2))+"' style='width:250px;' onclick='booking.setAirport(\""+selector+"\",\""+selectorCity+"\",this)' >"+entries+"</select>";			
		} else
			var content = '';

		$(selector).innerHTML = content;
	};
	
	this.setAirport = function(selectId, inputId, el) {
		var obj = $(inputId);
		if (obj)
			obj.value = el.value;
		$(selectId).innerHTML='';
	};
	
};

var citySearchOrigin = {
		
		charactersBeforeSearch : 1,
		timeBeforeSuggest : 200,
		timer: null,
				
		init : function (){
			this.addEvent($('originSelectorCity'), 'keyup', this.startSuggestionsTimer);
		},
				
		startSuggestionsTimer : function (evt){
			clearTimeout(citySearchOrigin.timer);
			citySearchOrigin.timer = setTimeout('booking.search("originSelector","originSelect","originSelectorCity")', citySearchOrigin.timeBeforeSuggest);
		},
		
		addEvent : function (elm, evt, func){
			if(elm){
				if(elm.addEventListener){
					elm.addEventListener(evt, func, false);
				}
				else if(window.attachEvent){
					elm.attachEvent(('on' + evt), func)
				}
			}
		},
		
		closeSession : function (){
			delete citySearchOrigin;
			citySearchOrigin = null;
		}
};

var citySearchDestination = {
		
		charactersBeforeSearch : 1,
		timeBeforeSuggest : 200,
		timer: null,
				
		init : function (){
			this.addEvent($('destinationSelectorCity'), 'keyup', this.startSuggestionsTimer);
		},
				
		startSuggestionsTimer : function (evt){
			clearTimeout(citySearchDestination.timer);
			citySearchDestination.timer = setTimeout('booking.search("destinationSelector","destinationSelect","destinationSelectorCity")', citySearchDestination.timeBeforeSuggest);
		},
		
		addEvent : function (elm, evt, func){
			if(elm){
				if(elm.addEventListener){
					elm.addEventListener(evt, func, false);
				}
				else if(window.attachEvent){
					elm.attachEvent(('on' + evt), func)
				}
			}
		},
		
		closeSession : function (){
			delete citySearchDestination;
			citySearchDestination = null;
		}
};

window.addEvent('load',	function() {
	booking = new Booking();	
	booking.init();

	new Calendar({ 
		car_date_from: 'd.m.Y' ,
		car_date_to: 'd.m.Y'
	},{
		direction: 1,
		pad: 0
	});

	new Calendar({ 
		flight_date_from: 'd.m.Y',
		flight_date_to: 'd.m.Y'
	},{
		pad: 0,
		direction: 1
	});
	
	
	new Calendar({ 
		hotel_date_from: 'd.m.Y',
		hotel_date_to: 'd.m.Y'
	},{
		direction: 1,
		pad: 0
	});
});

//if(!checkBrowserName('MSIE 3') && !checkBrowserName('MSIE 4') && !checkBrowserName('MSIE 5') && !checkBrowserName('MSIE 6')){
	citySearchOrigin.addEvent(window, 'load', function(){citySearchOrigin.init();});
	citySearchOrigin.addEvent(window, 'unload', function(){citySearchOrigin.closeSession();});

	citySearchDestination.addEvent(window, 'load', function(){citySearchDestination.init();});
	citySearchDestination.addEvent(window, 'unload', function(){citySearchDestination.closeSession();});
//}
