YAHOO.namespace("aerlingus.options");YAHOO.namespace("aerlingus.options.sort");YAHOO.namespace("aerlingus.searchType");YAHOO.namespace("aerlingus.fareCategory");YAHOO.namespace("aerlingus.calendar");YAHOO.namespace("aerlingus.staticHtml");var ALL_OPTIONS=[],DESTINATION_OPTIONS=[],SELECT_ORIGIN_AIRPORT="selectedSourceAirport_1",SELECT_DESTINATION_AIRPORT="selectedDestinationAirport_1",Dom=YAHOO.util.Dom,AIRPORT_OPTIONS_FILE=CURRENT_LOCALE+"_airportOptions.jsp",DEPART_CALENDAR="departCalendar",RETURN_CALENDAR="returnCalendar",FARE_CATEGORY_SELECT_ELEMENT="selectedFareCategory",SELECTED_DEPARTURE_DAY="selectedDay_1",SELECTED_DEPARTURE_MONTH="selectedMonth_1",SELECTED_RETURN_DAY="selectedDay_2",SELECTED_RETURN_MONTH="selectedMonth_2",DEPARTURE_DATE,RETURN_DATE,RETURN_TYPE="selectedFlightTypeReturn",ONEWAY_TYPE="selectedFlightTypeOneway",VERSION_A="versionA",VERSION_FIELDSET="versionFieldset",VERSION_DIV="versionDiv";YAHOO.aerlingus.options.loadDependentFiles=function(){var a=new YAHOO.util.YUILoader({require:["connection","json","datasource"],base:YUI_BASE_DIR,onSuccess:YAHOO.aerlingus.options.getJSONData});a.insert()};YAHOO.aerlingus.options.getJSONData=function(){var b,a;b={success:function(d){a=[];try{a=YAHOO.lang.JSON.parse(d.responseText);ALL_OPTIONS=a;YAHOO.aerlingus.options.addOptions(Dom.get(SELECT_ORIGIN_AIRPORT),"");YAHOO.aerlingus.options.addOptions(Dom.get(SELECT_DESTINATION_AIRPORT),"");YAHOO.aerlingus.options.loadInit()}catch(c){setTimeout("YAHOO.aerlingus.options.getJSONData()",2000);return}},failure:function(c){if(!YAHOO.util.Connect.isCallInProgress(c)){setTimeout("YAHOO.aerlingus.options.getJSONData()",2000)}},timeout:2000};YAHOO.util.Connect.asyncRequest("GET",JSON_OPTIONS_LOCATON+"/"+AIRPORT_OPTIONS_FILE,b)};YAHOO.aerlingus.options.loadInit=function(){YAHOO.aerlingus.calendar.initialiseDates_Load();YAHOO.aerlingus.searchType.checkBusinessRoute();YAHOO.util.Event.addListener(DEPART_CALENDAR,"click",YAHOO.aerlingus.calendar.openCalendar_Click);YAHOO.util.Event.addListener(RETURN_CALENDAR,"click",YAHOO.aerlingus.calendar.openCalendar_Click);YAHOO.util.Event.addListener(SELECTED_DEPARTURE_DAY,"change",YAHOO.aerlingus.calendar.selectDeparture_Change);YAHOO.util.Event.addListener(SELECTED_DEPARTURE_MONTH,"change",YAHOO.aerlingus.calendar.selectDeparture_Change);YAHOO.util.Event.addListener(SELECTED_RETURN_DAY,"change",YAHOO.aerlingus.calendar.selectReturn_Change);YAHOO.util.Event.addListener(SELECTED_RETURN_MONTH,"change",YAHOO.aerlingus.calendar.selectReturn_Change);YAHOO.util.Event.addListener(RETURN_TYPE,"click",YAHOO.aerlingus.calendar.selectFlightType_Click);YAHOO.util.Event.addListener(ONEWAY_TYPE,"click",YAHOO.aerlingus.calendar.selectFlightType_Click);YAHOO.util.Event.addListener(SELECT_ORIGIN_AIRPORT,"change",YAHOO.aerlingus.options.selectElement_Change);YAHOO.util.Event.addListener(SELECT_DESTINATION_AIRPORT,"change",YAHOO.aerlingus.options.selectElement_Change)};YAHOO.aerlingus.options.selectElement_Change=function(b){var a=YAHOO.util.Event.getTarget(b);if(a.id==SELECT_ORIGIN_AIRPORT){YAHOO.aerlingus.options.addOptions(Dom.get(SELECT_DESTINATION_AIRPORT),a.value)}YAHOO.aerlingus.searchType.checkBusinessRoute()};YAHOO.util.Event.onDOMReady(YAHOO.aerlingus.options.loadDependentFiles);YAHOO.aerlingus.options.addOptions=function(h,d){var c,b,a,g;oOption=document.createElement("option");oOption.value="";oOption.title="";a=ALL_OPTIONS;if(trim(h.id," ")==trim(SELECT_ORIGIN_AIRPORT," ")){try{oOption.innerHTML=FROM}catch(f){oOption.innerHTML="From"}}else{if(trim(h.id," ")==trim(SELECT_DESTINATION_AIRPORT," ")){if(d!=""){a=YAHOO.aerlingus.options.generateDestinationOptions(d)}h.innerHTML="";try{oOption.innerHTML=TO}catch(f){oOption.innerHTML="To"}}}h.appendChild(oOption);b=YAHOO.aerlingus.options.sort.getSortedAirportsByMeaning(a);for(i=0,len=b.length;i<len;++i){h=YAHOO.aerlingus.options.appendOption(h,b[i])}return h};YAHOO.aerlingus.options.appendOption=function(f,l){var c,e,k,g,d,h=true,a,b;c=l;e=c.obj2.airport.code;k=c.obj2.airport.meaning;d=c.obj1.country.code;if(YAHOO.aerlingus.options.extraCountryAirports[d]){a=new YAHOO.util.LocalDataSource(YAHOO.aerlingus.options.extraCountryAirports[d]);for(b=0;b<a.liveData.length;b++){if(a.liveData[b]==e){h=false;break}}}if(h){g=document.createElement("option");g.value=e;g.title=k+" ("+e+")";g.innerHTML=k+" ("+e+")";f.appendChild(g)}return f};YAHOO.aerlingus.options.generateDestinationOptions=function(a){var b;countryOptions=ALL_OPTIONS;for(i=0,len=countryOptions.length;i<len;++i){b=countryOptions[i];for(j=0,sublen=b.country.airports.length;j<sublen;++j){airport=b.country.airports[j].airport;if(trim(airport.code," ")==trim(a," ")){return airport.destinations}}}};YAHOO.aerlingus.options.makePair=function(b,a){this.obj1=b;this.obj2=a};YAHOO.aerlingus.options.sort.sortByMeaning=function(e,d){var c,f;c=e.obj2.airport.meaning.toLowerCase();f=d.obj2.airport.meaning.toLowerCase();return((c<f)?-1:((c>f)?1:0))};YAHOO.aerlingus.options.sort.getSortedAirportsByMeaning=function(b){var f,g,e,c,a,d;f=[];for(d=0,a=b.length;d<a;++d){g=b[d];e=b[d].country.airports;for(c=0,sublen=e.length;c<sublen;++c){f[f.length++]=new YAHOO.aerlingus.options.makePair(g,e[c])}}return f.sort(YAHOO.aerlingus.options.sort.sortByMeaning)};YAHOO.aerlingus.searchType.checkBusinessRoute=function(){if(YAHOO.aerlingus.searchType.isBusinessRoute()){YAHOO.aerlingus.fareCategory.disableFareCategory(false)}else{YAHOO.aerlingus.fareCategory.disableFareCategory(true)}};YAHOO.aerlingus.searchType.isBusinessRoute=function(){var c,a,b;c=YAHOO.aerlingus.searchType.getSelectedRouteCode();a=businessRoutes.length;for(b=0;b<a;b++){if(businessRoutes[b]==c){return true}}return false};YAHOO.aerlingus.searchType.getSelectedRouteCode=function(){var a,b,c;a=Dom.get(SELECT_ORIGIN_AIRPORT).value;b=Dom.get(SELECT_DESTINATION_AIRPORT).value;c=a+b;return c};YAHOO.aerlingus.fareCategory.disableFareCategory=function(b){var a;a=Dom.get(FARE_CATEGORY_SELECT_ELEMENT);a.disabled=b;if(b=true){a.selectedIndex=0}};YAHOO.aerlingus.calendar.openCalendar=function(d){var a=255,l=240,e,h,b,c,f,k,g;if(d.id==DEPART_CALENDAR){c=Dom.get(SELECTED_DEPARTURE_DAY).value;f=Dom.get(SELECTED_DEPARTURE_MONTH).value;k="depart"}else{c=Dom.get(SELECTED_RETURN_DAY).value;f=Dom.get(SELECTED_RETURN_MONTH).value;k="return"}g=CURRENT_LOCALE;if((g==null)||(g=="")){g=LOC}e="calendar.do?daySelected="+c+"&monthSelected="+f+"&leg="+k+"&bookingLocale="+g;window.open(e,"Calendar","width="+a+",height="+l)};function setDate(e,f,d){var a,b,c=0;if(d=="depart"){b=Dom.get(SELECTED_DEPARTURE_DAY);a=Dom.get(SELECTED_DEPARTURE_MONTH)}else{if(d=="return"){b=Dom.get(SELECTED_RETURN_DAY);a=Dom.get(SELECTED_RETURN_MONTH)}}for(i=0;i<12;i++){if(f==(parseInt(a.options[i].value,10))){c=i}}a.options[c].selected=true;var g=parseInt(e)-1;b.options[g]["selected"]=true;YAHOO.aerlingus.calendar.selectDeparture_Change()}YAHOO.aerlingus.calendar.selectDeparture_Change=function(){var c=parseInt(Dom.get(SELECTED_DEPARTURE_DAY).value);var f=parseInt(Dom.get(SELECTED_DEPARTURE_MONTH).value);var a=parseInt(Dom.get(SELECTED_DEPARTURE_MONTH).selectedIndex);var b=YAHOO.aerlingus.calendar.getYear(c,f);var h=Dom.get(SELECTED_RETURN_DAY).value;var e=Dom.get(SELECTED_RETURN_MONTH).value;var g=Dom.get(SELECTED_RETURN_MONTH).selectedIndex;var d=YAHOO.aerlingus.calendar.getYear(h,e);if((f==e)&&(h<c)){YAHOO.aerlingus.calendar.updateReturnDates(c,e)}else{if(a>g){YAHOO.aerlingus.calendar.selectDepartureMonth_Change()}}YAHOO.aerlingus.calendar.updateNumberOfDays(Dom.get(SELECTED_DEPARTURE_MONTH),Dom.get(SELECTED_DEPARTURE_DAY));YAHOO.aerlingus.calendar.setDepartureDate(c,f,b)};YAHOO.aerlingus.calendar.formatDate=function(a){var b=a.getMonth()+"/"+a.getDate()+"/"+a.getFullYear();return b};YAHOO.aerlingus.calendar.setDepartureDate=function(b,d,a){var e=new Date();var c=YAHOO.aerlingus.utils.getLenMonth(a,d);d=parseInt(d)+1;e.setMonth(d);if(c<b){e.setDate(1)}else{e.setDate(b)}e.setFullYear(a);DEPARTURE_DATE=YAHOO.aerlingus.calendar.formatDate(e)};YAHOO.aerlingus.calendar.selectDepartureMonth_Change=function(){var f=Dom.get(SELECTED_DEPARTURE_DAY);var a=Dom.get(SELECTED_DEPARTURE_MONTH);var d=a.selectedIndex;var b=a.value;var c=parseInt(b,10);var e=Dom.get(SELECTED_RETURN_MONTH).selectedIndex;if(e<d){YAHOO.aerlingus.calendar.updateReturnDates(f.value,Dom.get(SELECTED_DEPARTURE_MONTH).value);YAHOO.aerlingus.calendar.updateNumberOfDays(Dom.get(SELECTED_RETURN_MONTH),Dom.get(SELECTED_RETURN_DAY))}YAHOO.aerlingus.calendar.selectDeparture_Change()};YAHOO.aerlingus.calendar.updateReturnDates=function(b,c){Dom.get(SELECTED_RETURN_DAY).value=b;Dom.get(SELECTED_RETURN_MONTH).value=c;var a=YAHOO.aerlingus.calendar.getYear(b,c);YAHOO.aerlingus.calendar.setReturnDate(b,c,a)};YAHOO.aerlingus.calendar.getYear=function(a,c){var b=new Date();if(c<b.getMonth()||(c==b.getMonth()&&a<b.getDate())){return b.getFullYear()+1}else{return b.getFullYear()}};YAHOO.aerlingus.calendar.updateNumberOfDays=function(e,d){var b=e.value;var f=parseInt(b,10);var g=new Date();var a=(g.getUTCMonth());var h=g.getYear();if(f<a){var c=YAHOO.aerlingus.utils.getLenMonth(h+1,f)}else{var c=YAHOO.aerlingus.utils.getLenMonth(h,f)}YAHOO.aerlingus.calendar.populateDays(c,d)};YAHOO.aerlingus.calendar.openCalendar_Click=function(b){var a=YAHOO.util.Event.getTarget(b);YAHOO.aerlingus.calendar.openCalendar(a)};YAHOO.aerlingus.calendar.setReturnDate=function(e,d,a){var c=new Date();var b=YAHOO.aerlingus.utils.getLenMonth(a,d);d=parseInt(d)+1;c.setMonth(d);if(b<e){c.setDate(1)}else{c.setDate(e)}c.setFullYear(a);RETURN_DATE=YAHOO.aerlingus.calendar.formatDate(c)};YAHOO.aerlingus.calendar.populateDays=function(e,c){var a,f,b;a=c.length;b=new Date();if(a!=0){f=c.value}else{f=b.getDate()+1}for(var d=0;d<a;d++){c.options[d]=null}c.length=e;for(var d=0;d<e;d++){c.options[d]=new Option(d+1);c.options[d].value=(d+1);if(d==(f-1)){c.options[d].selected=true}}};YAHOO.aerlingus.calendar.selectFlightType_Click=function(c){var d=YAHOO.util.Event.getTarget(c);var a=Dom.get(SELECTED_RETURN_DAY);var b=Dom.get(SELECTED_RETURN_MONTH);if(d.id==ONEWAY_TYPE){a.disabled=true;b.disabled=true}else{a.disabled=false;b.disabled=false}};YAHOO.aerlingus.calendar.initialiseDates_Load=function(){var a=new Date(),f,c,b,e,g,h,d;g=MONTHS_LONG;b=parseInt(a.getMonth());f=Dom.get(SELECTED_DEPARTURE_MONTH);c=Dom.get(SELECTED_RETURN_MONTH);for(e=0;e<12;e++){h=document.createElement("option");d=document.createElement("option");h.value=(b+e)%12;d.value=(b+e)%12;h.title=g[(b+e)%12];d.title=g[(b+e)%12];h.innerHTML=g[(b+e)%12];d.innerHTML=g[(b+e)%12];f.appendChild(h);c.appendChild(d)}YAHOO.aerlingus.calendar.updateNumberOfDays(f,Dom.get(SELECTED_DEPARTURE_DAY));YAHOO.aerlingus.calendar.updateNumberOfDays(c,Dom.get(SELECTED_RETURN_DAY))};YAHOO.util.Event.onDOMReady(function(){});function trim(b,a){return ltrim(rtrim(b,a),a)}function ltrim(b,a){a=a||"\\s";return b.replace(new RegExp("^["+a+"]+","g"),"")}function rtrim(b,a){a=a||"\\s";return b.replace(new RegExp("["+a+"]+$","g"),"")};