var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};Object.extend=function(a,c){for(var b in c){a[b]=c[b]}return a};Function.prototype.bind=function(b){var a=this;return function(){return a.apply(b,arguments)}};if(!Array.prototype.forEach){Array.prototype.forEach=function(b,c){for(var a=0;a<this.length;a++){b.call(c,this[a],a)}}}Array.prototype.each=Array.prototype.forEach;String.prototype.camelize=function(){return this.replace(/-\D/gi,function(a){return a.charAt(a.length-1).toUpperCase()})};var $A=function(c){var b=[];for(var a=0;a<c.length;a++){b.push(c[a])}return b};function $(){if(arguments.length==1){return b(arguments[0])}var a=[];$c(arguments).each(function(c){a.push(b(c))});return a;function b(c){if(typeof c=="string"){c=document.getElementById(c)}return c}}if(!window.Element){var Element={}}Object.extend(Element,{remove:function(a){a=$(a);a.parentNode.removeChild(a)},hasClassName:function(a,b){a=$(a);return !!a.className.match(new RegExp("\\b"+b+"\\b"))},addClassName:function(a,b){a=$(a);if(!Element.hasClassName(a,b)){a.className=(a.className+" "+b)}},removeClassName:function(a,b){a=$(a);if(Element.hasClassName(a,b)){a.className=a.className.replace(b,"")}}});document.getElementsByClassName=function(b){var c=[];var a=document.getElementsByTagName("*");$A(a).each(function(d){if(Element.hasClassName(d,b)){c.push(d)}});return c};Function.prototype.bindAsEventListener=function(c){var a=this,b=$A(arguments),c=b.shift();return function(d){return a.apply(c,[d||window.event].concat(b))}};var monthName=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");var tripTypeName=new Array();tripTypeName.O="Oneway";tripTypeName.R="Return";tripTypeName.M="Multi";tripTypeName.RT="Round Trip";var searchOptionTypeName=new Array();searchOptionTypeName.T="Flexible";searchOptionTypeName.F="Must";var travelClass=new Array();travelClass.ECO="Economy";travelClass.PRM="Premium";travelClass.BUS="Business";travelClass.BUSGLOBAL="Business/First";travelClass.FIR="First";var valueSplitConstant=":";var cookieStrSplitConstant="|";var regionCodeConstant="REGION";var tripTypeConstant="TRIPTYPE";var fromCodeConstant="FROM";var toConstant="TO";var depDayConstant="DEPDAY";var depMonthConstant="DEPMONTH";var depYearConstant="DEPYEAR";var retDayConstant="RETDAY";var retMonthConstant="RETMONTH";var retYearConstant="RETYEAR";var flexibleConstant="FLEXIBLE";var adultConstant="ADULTS";var childConstant="CHILDREN";var infantConstant="INFANTS";var travelClassConstant="TRAVELCLASS";var PastSearchClass=Class.create();PastSearchClass.prototype={initialize:function(){},setRegionCode:function(a){if(a.value!=null){this.regionCodeValue=a.value}else{if(a!=null){this.regionCodeValue=a}}},setIntTripType:function(a){if(a.value!=null){this.intTripTypeValue=a.value}else{if(a!=null){this.intTripTypeValue=a}}},setIntFrom:function(a){if(a.value!=null){this.intFromValue=a.value}else{if(a!=null){this.intFromValue=a}}},setIntTo:function(a){if(a.value!=null){this.intToValue=a.value}else{if(a!=null){this.intToValue=varToFrom}}},setIntDepDay:function(a){if(a.value!=null){this.intDepDayValue=a.value}else{if(a!=null){this.intDepDayValue=a}}},setIntDepMonth:function(a){if(a.value!=null){this.intDepMonthValue=a.value}else{if(a!=null){this.intDepMonthValue=a}}},setIntDepYear:function(a){if(a.value!=null){this.intDepYearValue=a.value}else{if(varIntYearDay!=null){this.intDepYearValue=a}}},setIntRetDay:function(a){if(a.value!=null){this.intRetDayValue=a.value}else{if(a!=null){this.intRetDayValue=a}}},setIntRetMonth:function(a){if(a.value!=null){this.intRetMonthValue=a.value}else{if(varIntRetDay!=null){this.intRetMonthValue=varIntRetDay}}},setIntRetYear:function(a){if(a.value!=null){this.intRetYearValue=a.value}else{if(a!=null){this.intRetYearValue=a}}},setIntFlexiDates:function(a){if(a.value!=null){this.intFlexiDatesValue=a.value}else{if(a!=null){this.intFlexiDatesValue=a}}},setIntAdults:function(a){if(a.value!=null){this.intAdultsValue=a.value}else{if(a!=null){this.intAdultsValue=a}}},setIntChildren:function(a){if(a.value!=null){this.intChildrenValue=a.value}else{if(a!=null){this.intChildrenValue=a}}},setIntInfants:function(a){if(a.value!=null){this.intInfantsValue=a.value}else{if(a!=null){this.intInfantsValue=a}}},setIntTravelClass:function(a){if(a.value!=null){this.intTravelClassValue=a.value}else{if(a!=null){this.intTravelClassValue=a}}},getRegionCode:function(){return this.regionCodeValue},getIntTripType:function(){return this.intTripTypeValue},getIntFrom:function(){return this.intFromValue},getIntTo:function(){return this.intToValue},getIntDepDay:function(){return this.intDepDayValue},getIntDepMonth:function(){return this.intDepMonthValue},getIntDepYear:function(){return this.intDepYearValue},getIntRetDay:function(){return this.intRetDayValue},getIntRetMonth:function(){return this.intRetMonthValue},getIntRetYear:function(){return this.intRetYearValue},getIntFlexiDates:function(){return this.intFlexiDatesValue},getIntAdults:function(){return this.intAdultsValue},getIntChildren:function(){return this.intChildrenValue},getIntInfants:function(){return this.intInfantsValue},getIntTravelClass:function(){return this.intTravelClassValue},serialize:function(){var a="";a=a+regionCodeConstant+valueSplitConstant+this.regionCodeValue+valueSplitConstant;a=a+tripTypeConstant+valueSplitConstant+this.intTripTypeValue+valueSplitConstant;a=a+fromCodeConstant+valueSplitConstant+this.intFromValue+valueSplitConstant;a=a+toConstant+valueSplitConstant+this.intToValue+valueSplitConstant;a=a+depDayConstant+valueSplitConstant+this.intDepDayValue+valueSplitConstant;a=a+depMonthConstant+valueSplitConstant+this.intDepMonthValue+valueSplitConstant;a=a+depYearConstant+valueSplitConstant+this.intDepYearValue+valueSplitConstant;a=a+retDayConstant+valueSplitConstant+this.intRetDayValue+valueSplitConstant;a=a+retMonthConstant+valueSplitConstant+this.intRetMonthValue+valueSplitConstant;a=a+retYearConstant+valueSplitConstant+this.intRetYearValue+valueSplitConstant;a=a+flexibleConstant+valueSplitConstant+this.intFlexiDatesValue+valueSplitConstant;a=a+adultConstant+valueSplitConstant+this.intAdultsValue+valueSplitConstant;a=a+childConstant+valueSplitConstant+this.intChildrenValue+valueSplitConstant;a=a+infantConstant+valueSplitConstant+this.intInfantsValue+valueSplitConstant;a=a+travelClassConstant+valueSplitConstant+this.intTravelClassValue;a=a+cookieStrSplitConstant;return a},deSerialize:function(c){var a=c.split(valueSplitConstant);for(var b=0;b<a.length;b=b+2){if(a[b]==regionCodeConstant){this.regionCodeValue=a[b+1]}else{if(a[b]==tripTypeConstant){this.intTripTypeValue=a[b+1]}else{if(a[b]==fromCodeConstant){this.intFromValue=a[b+1]}else{if(a[b]==toConstant){this.intToValue=a[b+1]}else{if(a[b]==depDayConstant){this.intDepDayValue=a[b+1]}else{if(a[b]==depMonthConstant){this.intDepMonthValue=a[b+1]}else{if(a[b]==depYearConstant){this.intDepYearValue=a[b+1]}else{if(a[b]==retDayConstant){this.intRetDayValue=a[b+1]}else{if(a[b]==retMonthConstant){this.intRetMonthValue=a[b+1]}else{if(a[b]==retYearConstant){this.intRetYearValue=a[b+1]}else{if(a[b]==flexibleConstant){this.intFlexiDatesValue=a[b+1]}else{if(a[b]==adultConstant){this.intAdultsValue=a[b+1]}else{if(a[b]==childConstant){this.intChildrenValue=a[b+1]}else{if(a[b]==infantConstant){this.intInfantsValue=a[b+1]}else{if(a[b]==travelClassConstant){this.intTravelClassValue=a[b+1]}}}}}}}}}}}}}}}}},compare:function(a){if(this.regionCodeValue!=a.regionCodeValue||this.intTripTypeValue!=a.intTripTypeValue||this.intFromValue!=a.intFromValue||this.intToValue!=a.intToValue||this.intDepDayValue!=a.intDepDayValue||this.intDepMonthValue!=a.intDepMonthValue||this.intDepYearValue!=a.intDepYearValue||this.intRetDayValue!=a.intRetDayValue||this.intRetMonthValue!=a.intRetMonthValue||this.intRetYearValue!=a.intRetYearValue||this.intRetYearValue!=a.intRetYearValue||this.intFlexiDatesValue!=a.intFlexiDatesValue||this.intAdultsValue!=a.intAdultsValue||this.intChildrenValue!=a.intChildrenValue||this.intInfantsValue!=a.intInfantsValue||this.intTravelClassValue!=a.intTravelClassValue){return false}return true},display:function(){var f;var h;var e;var g;var c;var d=parseInt(this.intAdultsValue)+parseInt(this.intChildrenValue);if(parseInt(d)>1){h=d+" seats"}else{h=d+" seat"}if(this.intTripTypeValue=="R"&&(this.regionCodeValue=="AM"||this.regionCodeValue=="am")){g=tripTypeName.RT}else{g=tripTypeName[this.intTripTypeValue]}if(this.intFlexiDatesValue){c="T"}else{c="F"}itineraryForKeys=this.serialize();var b=itineraryForKeys.indexOf(cookieStrSplitConstant);itineraryForKeys=itineraryForKeys.substring(0,b);e=this.intFromValue+" to "+this.intToValue+" "+this.intDepDayValue+" "+monthName[this.intDepMonthValue-1]+" "+h+" - "+g;var a=new Array();a[0]=itineraryForKeys;a[1]=e;return a}};var regionAustralia="au";var regionAsia="as";var regionAfrica="af";var regionAmerica="am";var regionEurope="eu";var regionSouthPacific="sp";var cookieLimitPerRegion=5;var existingCount=0;var regionCounterArray=new Array();regionCounterArray[regionAustralia]=1;regionCounterArray[regionAsia]=1;regionCounterArray[regionAfrica]=1;regionCounterArray[regionAmerica]=1;regionCounterArray[regionEurope]=1;regionCounterArray[regionSouthPacific]=1;function addPastSearch(){var i;var q=document.getElementById("intForm");var b=q.regionCode;if(isReturn(q.intTripType)){i="R"}else{i="O"}var l=q.intFrom;var g=q.intTo;var c=q.intDepDay;var d=q.intDepMonth;var a=q.intDepYear;var f=q.intRetDay;var p=q.intRetMonth;var h=q.intRetYear;var n=q.intFlexiDates;var e=q.intAdults;var o=q.intChildren;var j=q.intInfants;var k=q.intTravelClass;var m=new PastSearchClass();m.setRegionCode(b);m.setIntTripType(i);m.setIntFrom(l);m.setIntTo(g);m.setIntDepDay(c);m.setIntDepMonth(d);m.setIntDepYear(a);m.setIntRetDay(f);m.setIntRetMonth(p);m.setIntRetYear(h);m.setIntFlexiDates(n);m.setIntAdults(e);m.setIntChildren(o);m.setIntInfants(j);m.setIntTravelClass(k);writePastSearchCookie(m)}function writePastSearchCookie(d){var c;var e;var a=getCookieValue("pastSearchCookie");if(a==null){a="";e=a+d.serialize()}else{e=parseAndComparePastSearchCookie(a,d)}var b="pastSearchCookie="+e;document.cookie=b+";path=/"}function parseAndComparePastSearchCookie(b,g){var c=new Array();var h="";var e=b.split("|");for(var d=0;d<e.length-1;d++){c[d]=new PastSearchClass();c[d].deSerialize(e[d]);if(c[d].compare(g)){e.splice(d,1);break}}h=g.serialize();for(var a=0;a<e.length-1;a++){c[a]=new PastSearchClass();c[a].deSerialize(e[a]);var f=c[a].getRegionCode();h=addPastSearchCookieByRegion(c[a],f,h)}return h}function addPastSearchCookieByRegion(a,b,c){existingCount=regionCounterArray[b];if(existingCount<cookieLimitPerRegion){c=c+a.serialize();existingCount=existingCount+1;regionCounterArray[b]=existingCount}return c}function populatePastSearch(m){var k;var n=new UserContextInfo();var h=n.getLastRegion();m.options[0]=new Option("Your past flight searches",0);var l=new Array();var i=getCookieValue("pastSearchCookie");if(!i){k=new Array()}else{k=i.split("|")}var f=1;var e=0;for(var g=0;g<k.length-1;g++){l[g]=new PastSearchClass();l[g].deSerialize(k[g]);var d=l[g].display();if(h.toLowerCase()==l[g].getRegionCode()&&e<5){var a=d[0];var j=d[1];m.options[f]=new Option(j,a);f++;e++}}}function isReturn(b){for(var a=0;a<b.length;++a){if((b[a].value=="R"||b[a].value=="return")&&b[a].checked){return true}}return false}function restorePastSearch(h,k,g,e,f,c){var d="";var b=new PastSearchClass();var i=new Date();var a=new Date();var j=e;this.intShowHideReturn=c;if(0==parseInt(h.value)){return}else{d=h.value}b.deSerialize(d);f.setInitialValues(b.getIntFrom(),b.getIntTo());i.setDate(b.getIntDepDay());i.setMonth(b.getIntDepMonth()-1);i.setYear(b.getIntDepYear());a.setDate(b.getIntRetDay());a.setMonth(b.getIntRetMonth()-1);a.setYear(b.getIntRetYear());k.update(i);g.update(a);setCommonFields(b.getIntTripType(),b.getIntFlexiDates(),b.getIntAdults(),b.getIntChildren(),b.getIntInfants());this.intShowHideReturn();if(b.getIntTravelClass()){document.getElementById(j).value=b.getIntTravelClass()}}function setCommonFields(a,d,b,c,e){if(a){if(a=="R"){document.getElementById("intTripTypeReturn").checked=true;document.getElementById("intTripTypeOneWay").checked=false}else{document.getElementById("intTripTypeReturn").checked=false;document.getElementById("intTripTypeOneWay").checked=true}}if(d){if(d=="true"){document.getElementById("intFlexiDatesCheckBox").checked=true}else{document.getElementById("intFlexiDatesCheckBox").checked=false}}else{document.getElementById("intFlexiDatesCheckBox").checked=false}document.getElementById("intAdults").value=b;document.getElementById("intChildren").value=c;document.getElementById("intInfants").value=e}function DateRange(b,a){this.from=b;this.to=a}DateRange.prototype.withinRange=function(a){return(this.from.getTime()<=a.getTime()&&a.getTime()<=this.to.getTime())};DateRange.prototype.intersectsRange=function(a){return((a.from.getTime()<=this.to.getTime()&&this.to.getTime()<=a.to.getTime())||(a.from.getTime()<=this.from.getTime()&&this.from.getTime()<=a.to.getTime()))};DateRange.prototype.intersectsRanges=function(a){for(var b=0;b<a.length;++b){if(this.intersectsRange(a[b])){return true}}};Date.prototype.padded=function(a){return(a<10?("0"+a):a.toString())};Date.prototype.getFullMonth=function(){return Date.Months[this.getMonth()]};Date.prototype.getShortMonth=function(){return Date.ShortMonths[this.getMonth()]};Date.prototype.getFullDay=function(){return Date.Days[this.getDay()]};Date.prototype.getShortDay=function(){return Date.ShortDays[this.getDay()]};Date.prototype.getShortDayIndex=function(a){return Date.ShortDays[a]};Date.prototype.format=function(a){var b=new String(a);b=b.replace("HH",this.padded(this.getHours()));b=b.replace("H",this.getHours().toString());b=b.replace("MM",this.padded(this.getMinutes()));b=b.replace("M",this.getMinutes().toString());b=b.replace("SS",this.padded(this.getSeconds()));b=b.replace("S",this.getSeconds().toString());b=b.replace("YYYY",this.getFullYear().toString());b=b.replace("YY",this.getFullYear().toString().substring(2,4));b=b.replace("DDDD",this.getFullDay());b=b.replace("DDD",this.getShortDay());b=b.replace("DD",this.padded(this.getDate()));b=b.replace("mmmm",this.getFullMonth());b=b.replace("mmm",this.getShortMonth());b=b.replace("mm",this.padded(this.getMonth()+1));return b};Date.prototype.withinRange=function(a){return(a.from.getTime()<=this.getTime()&&this.getTime()<=a.to.getTime())};Date.prototype.withinRanges=function(a){for(var b=0;b<a.length;++b){if(this.withinRange(a[b])){return true}}return false};Date.prototype.dateWithinRange=function(c){var b=new Date(c.from.getTime());var a=new Date(c.to.getTime());b.setHours(0,0,0,0);a.setHours(23,59,59,999);return(b.getTime()<=this.getTime()&&this.getTime()<=a.getTime())};Date.prototype.dateWithinRanges=function(a){for(var b=0;b<a.length;++b){if(this.dateWithinRange(a[b])){return true}}return false};Date.prototype.monthWithinRange=function(c){var b=new Date(c.from.getTime());var a=new Date(c.to.getTime());b.setDate(1);b.setHours(0,0,0,0);a.setMonth(c.to.getMonth()+1,1);a.setHours(0,0,0,0);a.setTime(a.getTime()-1);return(b.getTime()<=this.getTime()&&this.getTime()<=a.getTime())};Date.prototype.monthWithinRanges=function(a){for(var b=0;b<a.length;++b){if(this.monthWithinRange(a[b])){return true}}return false};Calendar.prototype.updateDaySelectOptions=function(){var f=this.dayField.options;var c=0;var b=0;var a=this.displayDate.getMonth();var h=this.displayDate.getDate();var e=new Date(this.displayDate);for(var g=1;g<=31;++g){e.setDate(g);if(a==e.getMonth()){if(e.dateWithinRanges(this.dateRanges)){if(g==h){b=c}f[c]=new Option(e.format(daySelectFormat),g);++c}}}f.length=c;this.dayField.selectedIndex=b};Calendar.prototype.updateMonthYearSelectOptions=function(){var l=this.monthYearField.options;var a=0;var d=0;var b=this.displayDate.getMonth();var f=this.displayDate.getFullYear();var e=this.endDate.getMonth();var j=this.endDate.getFullYear();var k=new Date(this.startDate);k.setDate(1);var c=k.getMonth();var g=k.getFullYear();while(g<j||(c<=e&&g<=j)){if(k.monthWithinRanges(this.dateRanges)){if(c==b&&g==f){d=a}var h=buildMonthYearSelectLabel(k.getShortMonth(),g);var i=(c+1)+","+g;l[a]=new Option(h,i);++a}k.setMonth(c+1);c=k.getMonth();g=k.getFullYear()}l.length=a;this.monthYearField.selectedIndex=d};Calendar.prototype.updateHourSelectOptions=function(){var d=this.hourField.options;var g=this.hourField.value;d.length=0;var c=new DateRange(new Date(this.displayDate),new Date(this.displayDate));c.from.setHours(0,0,0);c.to.setHours(11,59,59);var f=false;var a=null;if(this.isAnytime){if(this.isAnytimeSelected||!this.hasUserSetHour){a=d.length}d[d.length]=new Option(Date.time[0],"Anytime",false,false)}if(c.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&c.withinRange(this.displayDate)&&a==null){a=d.length}d[d.length]=new Option(Date.time[1],"Morning",false,false)}c.from.setHours(12,0,0);c.to.setHours(17,59,59);if(c.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&c.withinRange(this.displayDate)&&a==null){a=d.length}d[d.length]=new Option(Date.time[2],"Afternoon",false,false)}c.from.setHours(18,0,0);c.to.setHours(20,59,59);if(c.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&c.withinRange(this.displayDate)&&a==null){a=d.length}d[d.length]=new Option(Date.time[3],"Evening",false,false)}var b=new Date(this.displayDate);for(var e=1;e<=23;++e){b.setHours(e,0,0);if(b.withinRanges(this.dateRanges)){if(a==null&&e==this.displayDate.getHours()){a=d.length}d[d.length]=new Option((e<10?("0"+e+":00"):(e+":00")),e,false,false)}}this.hourField.selectedIndex=a};Calendar.prototype.updateFormInputs=function(){if(this.haveFieldsBeenInserted){var a="YYYYmmDD0000";if(this.startDate.format("YYYYmmDDHH00")==this.displayDate.format("YYYYmmDDHH00")){a="YYYYmmDDHH00"}this.formattedField.value=this.displayDate.format(a);this.bookLeadFormattedField.value=this.startDate.format(a);this.timeField.value=this.displayDate.getTime();this.yearField.value=this.displayDate.getFullYear();this.monthField.value=this.displayDate.getMonth()+1;if(this.showMonthYearField){this.updateMonthYearSelectOptions()}else{this.monthYearField.value=this.monthField.value+","+this.yearField.value}if(this.showDayField){this.updateDaySelectOptions()}else{this.dayField.value=this.displayDate.getDate()}if(this.showHourField){this.updateHourSelectOptions()}else{this.hourField.value=this.displayDate.getHours()}}};Calendar.prototype.update=function(a){this.displayDate=new Date(a.getTime());if(!this.displayDate.withinRanges(this.dateRanges)){this.pullWithinRange()}this.updateFormInputs();this.divCalendar.innerHTML=this.createCalendarHtml();if(this.onChangeCallback!=null){this.onChangeCallback()}if(this.popup!=null){if(this.useIePopup){this.popup.document.body.innerHTML=this.divCalendar.innerHTML}else{this.popup=this.divCalendar}}};Calendar.prototype.pullWithinRange=function(){var b=false;var a=null;var d=null;var c=this.displayDate.getTime();for(var e=0;e<this.dateRanges.length;++e){var g=this.dateRanges[e].from.getTime();var f=this.dateRanges[e].to.getTime();if(f<c&&(a==null||(c-f)<(c-a.getTime()))){a=new Date(f)}else{if(c<g&&(d==null||(g-c)<(d.getTime()-c))){d=new Date(g)}}}if(a!=null&&a.getMonth()==this.displayDate.getMonth()){this.displayDate=a}else{if(d!=null&&d.getMonth()==this.displayDate.getMonth()){this.displayDate=d}else{this.displayDate=this.dateRanges[0].from}}};Calendar.prototype.updateDayOfMonth=function(b){var a=new Date(this.displayDate);a.setDate(b);if(this.hasUserSetHour==false&&this.defaultHour!=null&&this.defaultHour>=0&&this.defaultHour<=23){a.setHours(this.defaultHour,0,0)}this.update(a);this.adjustHourOfDay()};Calendar.prototype.updateMonthYear=function(c){var d=c.split(",");var a=d[0]-1;var e=d[1];var b=new Date(this.displayDate);b.setFullYear(e);b.setMonth(a);while(a!=b.getMonth()){b.setTime(b.getTime()-24*60*60*1000)}if(this.hasUserSetHour==false&&this.defaultHour!=null&&this.defaultHour>=0&&this.defaultHour<=23){b.setHours(this.defaultHour,0,0)}this.update(b);this.adjustHourOfDay()};Calendar.prototype.updateHourOfDay=function(c){this.hasUserSetHour=true;this.hourRangeSelected=isNaN(parseInt(c));var b=c.toString().toLowerCase();if("morning"==b){c=(this.isAnytime==true)?6:1}else{if("afternoon"==b){c=(this.isAnytime==true)?15:12}else{if("evening"==b){c=(this.isAnytime==true)?20:18}}}if("anytime"==b){this.isAnytimeSelected=true;c=12}else{this.isAnytimeSelected=false}var a=new Date(this.displayDate);a.setHours(c);this.update(a);this.adjustHourOfDay()};Calendar.prototype.adjustHourOfDay=function(){if(this.hourRangeSelected){var c=this.hourField.value;var b=c.toString().toLowerCase();if("morning"==b){c=(this.isAnytime==true)?6:1}else{if("afternoon"==b){c=(this.isAnytime==true)?15:12}else{if("evening"==b){c=(this.isAnytime==true)?20:18}}}if("anytime"==b){this.isAnytimeSelected=true;c=12}else{this.isAnytimeSelected=false}if(c!=this.displayDate.getHours()){var a=new Date(this.displayDate);a.setHours(c);this.update(a)}}};Calendar.prototype.createCalendarHtml=function(){var n='<table class="calendar" cellspacing="0" ';if(this.showCalendarIcon){n+='onmouseout="javascript:'+this.popupVarName()+'.mouseOut();" onmouseover="javascript:'+this.popupVarName()+'.mouseOver();"'}n+='>\n<tr>\n<td style="padding:0;">\n<table class="months" cellspacing="0">\n<tr>';var g=this.displayDate.getDate();var a=this.displayDate.getMonth();var h=this.displayDate.getFullYear();var e=this.endDate.getMonth();var o=this.endDate.getFullYear();var p=new Date(this.startDate);p.setDate(1);var b=p.getMonth();var l=p.getFullYear();var d=0;while(l<o||(b<=e&&l<=o)||d%7!=0){n+="<th ";if(p.monthWithinRanges(this.dateRanges)){var k=(b+1)+","+l;if(b==a&&l==h){n+=' class="active"'}else{n+=' class="month"';n+=' onclick="javascript:'+this.popupVarName()+".updateMonthYear('"+k+'\');" title="'+p.getShortMonth()+" "+l+'"';n+=" onmouseover=\"javascript:this.className+=' hover';\"";n+=" onmouseout=\"javascript:this.className=this.className.replace(/ hover/,'');\""}}else{n+=' class="disabled" '}n+=">"+p.getShortMonth()+"</th>";p.setMonth(b+1);b=p.getMonth();l=p.getFullYear();if(++d%7==0){n+="\n</tr>\n<tr>"}}n+="\n</tr>";n+="\n</table>";n+='\n<table class="date"><tr><th>'+this.displayDate.format(calendarDateDisplayFormat)+"</th></tr></table>";n+='\n<table class="days">';n+="\n<tr><th>"+p.getShortDayIndex(0)+"</th><th>"+p.getShortDayIndex(1)+"</th><th>"+p.getShortDayIndex(2)+"</th><th>"+p.getShortDayIndex(3)+"</th><th>"+p.getShortDayIndex(4)+"</th><th>"+p.getShortDayIndex(5)+"</th><th>"+p.getShortDayIndex(6)+"</th></tr>";var p=new Date(this.displayDate);p.setDate(1);var f=p.getDay();for(var d=0;d<6;++d){n+="\n<tr>";for(var c=0;c<7;++c){if((c+7*d)>=f&&p.getMonth()==this.displayDate.getMonth()){n+="<td ";if(this.dateRanges==null||p.dateWithinRanges(this.dateRanges)){if(p.getDate()==g&&p.getMonth()==a&&p.getYear()==h){n+=' class="active"'}else{n+=' class="date"';n+=" onmouseover=\"javascript:this.className=this.className+' hover';\"";n+=" onmouseout=\"javascript:this.className=this.className.replace(/ hover/ig,'');\""}n+=' onclick="javascript:'+this.popupVarName()+".hidePopup();"+this.popupVarName()+".updateDayOfMonth("+p.getDate()+');"'}else{n+=' class="disabled"'}n+=">"+p.getDate()+"</td>";p.setDate((c+7*d)+2-f)}else{n+="<td>&nbsp;</td>"}}n+="</tr>"}n+="\n</table>\n</td>\n</tr>\n</table>";return n};Calendar.prototype.millisecondTimeout=500;Calendar.prototype.useIePopup=(window.createPopup?true:false);Calendar.prototype.popupVarName=function(){return(this.useIePopup?("parent."+this.varName):this.varName)};Calendar.prototype.popupCreate=function(){this.clearPopupTimers();this.mouseOverCounter=0;this.popupX=0;this.popupY=this.dayField.offsetHeight+1;if(this.useIePopup){this.popup=this.win.createPopup();var b=this.popup.document.createElement("link");b.href=this.calendarCSS;b.rel="stylesheet";b.type="text/css";this.popup.document.body.parentNode.insertBefore(b,this.popup.document.body);this.popup.document.body.innerHTML=this.divCalendar.innerHTML;this.popup.show(0,this.monthYearField.offsetHeight,$j(this.divCalendar).width(),$j(this.divCalendar).height()+2,this.monthYearField)}else{var a=this.monthYearField;while(a.offsetParent!=null){a=a.offsetParent}this.popup=this.divCalendar;$j(this.popup).show()}this.mouseOver()};Calendar.prototype.mouseOver=function(){this.mouseOverCounter++};Calendar.prototype.mouseOut=function(){this.mouseOverCounter--;var a;(($j("body").find(".searchFragment").html()!=null||location.href.indexOf("showHeader=0")>-1)&&(this.useIePopup))?a=this.popupVarName().split(".")[1]:a=this.popupVarName();this.popupTimers.push(window.setTimeout(a+".timeoutPopup();",this.millisecondTimeout))};Calendar.prototype.timeoutPopup=function(){if(this.mouseOverCounter<=0){this.hidePopup()}};Calendar.prototype.clearPopupTimers=function(){while(this.popupTimers.length>0){window.clearTimeout(this.popupTimers.shift())}this.mouseOverCounter=0};Calendar.prototype.hidePopup=function(){this.clearPopupTimers();if(this.popup!=null){if(this.useIePopup){this.popup.hide()}else{$j(this.popup).hide()}}this.popup=null};Calendar.prototype.popupToggle=function(){if(this.popup==null&&!this.dayField.disabled&&!this.monthYearField.disabled){this.popupCreate()}else{this.hidePopup()}};Calendar.prototype.setEnabled=function(a){if(this.dayField.type!="hidden"){this.dayField.disabled=(!a)}if(this.monthYearField.type!="hidden"){this.monthYearField.disabled=(!a)}if(this.hourField.type!="hidden"){this.hourField.disabled=(!a)}if(a){this.calendarIcon.className=this.calendarIcon.className.replace(/disabled/ig,"")}else{this.calendarIcon.className+=" disabled"}};Calendar.prototype.createCalendar=function(b){this.fieldTag=this.doc.getElementById(this.fieldTagId);while(this.fieldTag.hasChildNodes()){this.fieldTag.removeChild(this.fieldTag.firstChild)}this.calendarTag=((this.calendarTagId==null)?null:this.doc.getElementById(this.calendarTagId));while(this.calendarTag!=null&&this.calendarTag.hasChildNodes()){this.calendarTag.removeChild(this.calendarTag.firstChild)}var a=this.doc.createElement("div");a.className="clearit";a.appendChild(this.monthYearField);a.appendChild(this.dayField);if(this.showCalendarIcon){a.appendChild(this.calendarIcon)}a.appendChild(this.hourField);a.appendChild(this.yearField);a.appendChild(this.monthField);a.appendChild(this.timeField);a.appendChild(this.formattedField);a.appendChild(this.bookLeadFormattedField);this.fieldTag.appendChild(a);this.haveFieldsBeenInserted=true;this.update(this.startDate);if(b){if(this.showCalendarIcon||this.calendarTagId==null){$j("#"+b).prepend(this.divCalendar)}else{this.calendarTag.appendChild(this.divCalendar)}}else{if(this.showCalendarIcon||this.calendarTagId==null){$j("#"+this.fieldTagId).prepend(this.divCalendar)}else{this.calendarTag.appendChild(this.divCalendar)}}};Calendar.prototype.setOnChangeCallback=function(a){this.onChangeCallback=a};Calendar.prototype.getDate=function(){return(this.displayDate==null?this.startDate:this.displayDate)};Calendar.prototype.setCalendarCSS=function(a){this.calendarCSS=a};Calendar.prototype.setDefaultHour=function(a){this.defaultHour=a};Calendar.prototype.setAnytime=function(a){this.isAnytime=a;if(this.showHourField){this.updateHourSelectOptions()}else{this.hourField.value=this.displayDate.getHours()}};Calendar.prototype.serialize=function(){return""+this.getDate().getTime()+"-"+(this.hourRangeSelected?1:0)+"-"+(this.hasUserSetHour?1:0)+"-"+(this.isAnytimeSelected?1:0)};Calendar.prototype.deserialize=function(b){var a=b.split("-");this.isAnytimeSelected=(a[3]=="1"?true:false);this.hasUserSetHour=(a[2]=="1"?true:false);this.hourRangeSelected=(a[1]=="1"?true:false);this.update(new Date(parseInt(a[0])))};Calendar.prototype.showHours=function(){this.hourField.style.visibility="visible"};Calendar.prototype.hideHours=function(){this.updateHourOfDay("Anytime");this.hourField.style.visibility="hidden"};function Calendar(f,g,j,e,h,i,k,b,c,a,d){this.win=window;this.doc=document;this.varName=f;this.fieldTagId=h;this.calendarTagId=a;this.isAnytime=false;this.isAnytimeSelected=true;this.dateRanges=e;this.startDate=e[0].from;this.endDate=e[e.length-1].to;this.displayDate=null;this.fieldsToHide=d;this.inputIdPrefix=g;this.inputNamePrefix=j;this.showMonthYearField=((i==true||i==null)?true:false);this.showDayField=((k==true||k==null)?true:false);this.showHourField=((b==true||b==null)?true:false);this.showCalendarIcon=((c==true||c==null)?true:false);this.contextURL=document.URL.substring(0,document.URL.indexOf("/",9));this.calendarCSS=this.contextURL+"/styles/themes/red08/common.css";this.onChangeCallback=null;this.hourRangeSelected=true;this.defaultHour=null;this.hasUserSetHour=false;this.haveFieldsBeenInserted=false;this.divCalendar=this.doc.createElement("div");this.divCalendar.id=this.inputIdPrefix+"CalendarPage";this.divCalendar.className="calendarPage";if(this.showCalendarIcon||this.calendarTagId==null){$j(this.divCalendar).attr("style","display: none")}this.formattedField=this.doc.createElement("input");this.formattedField.type="hidden";this.formattedField.name=j+"Formatted";this.formattedField.id=g+"Formatted";this.bookLeadFormattedField=this.doc.createElement("input");this.bookLeadFormattedField.type="hidden";this.bookLeadFormattedField.name=j+"BookLeadFormatted";this.bookLeadFormattedField.id=g+"BookLeadFormatted";this.timeField=this.doc.createElement("input");this.timeField.type="hidden";this.timeField.name=j+"Time";this.timeField.id=g+"Time";this.yearField=this.doc.createElement("input");this.yearField.type="hidden";this.yearField.name=j+"Year";this.yearField.id=g+"Year";this.monthField=this.doc.createElement("input");this.monthField.type="hidden";this.monthField.name=j+"Month";this.monthField.id=g+"Month";if(this.showMonthYearField){this.monthYearField=this.doc.createElement("select");this.monthYearField.onchange=new Function(f+".updateMonthYear(this.options[this.selectedIndex].value);"+f+".hidePopup();")}else{this.monthYearField=this.doc.createElement("input");this.monthYearField.type="hidden"}if(this.showDayField){this.dayField=this.doc.createElement("select");this.dayField.onchange=new Function(f+".updateDayOfMonth(this.options[this.selectedIndex].value);"+f+".hidePopup();")}else{this.dayField=this.doc.createElement("input");this.dayField.type="hidden"}if(this.showHourField){this.hourField=this.doc.createElement("select");this.hourField.onchange=new Function(f+".updateHourOfDay(this.options[this.selectedIndex].value);"+f+".hidePopup();")}else{this.hourField=this.doc.createElement("input");this.hourField.type="hidden"}this.monthYearField.className="calMonthYear";this.monthYearField.name=j+"MonthYear";this.monthYearField.id=g+"MonthYear";this.dayField.className="calDay";this.dayField.name=j+"Day";this.dayField.id=g+"Day";this.hourField.className="calHour";this.hourField.name=j+"Hour";this.hourField.id=g+"Hour";this.calendarIcon=this.doc.createElement("input");this.calendarIcon.type="text";this.calendarIcon.readOnly="readOnly";this.calendarIcon.className="calendarIcon";this.calendarIcon.id=g+"PopupCalendarIcon";this.calendarIcon.onclick=new Function(f+".popupToggle()");this.calendarIcon.onmouseover=new Function(f+".mouseOver()");this.calendarIcon.onmouseout=new Function(f+".mouseOut()");if(Calendar.title){this.calendarIcon.title=Calendar.title}else{this.calendarIcon.title="Click for a month-by-month calendar"}this.mouseOverCounter=0;this.popupTimers=new Array();this.popup=null;this.popupX=0;this.popupY=0;this.popupW=0;this.popupH=0}Calendar.prototype.setDateRange=function(a){this.dateRanges=a;this.startDate=a[0].from;this.endDate=a[a.length-1].to;this.displayDate=null;this.update(this.startDate)};function submitTwice(){document.intForm.submit()}function FlightSearchValidator(b,g,a,c,f,d,e){this.earliestBookingDate=b;this.formId=g;this.departCalendar=a;this.returnCalendar=c;this.region=d;this.dataContainer=f;this.invalidLocationOptions=["","select a city","Select a City","selectacity","separator"];this.intShowHideReturn=e}FlightSearchValidator.prototype.isProduction=function(){return(window.location.host.indexOf("www.qantas")==0||window.location.host.indexOf("qantas")==0)};FlightSearchValidator.prototype.bookingEngineUrl=function(){return(this.isProduction()?"http://wftc3.e-travel.com":"http://siteacceptance.wftc3.e-travel.com")};FlightSearchValidator.prototype.isReturn=function(){for(var a=0;a<this.tripType.length;++a){if((this.tripType[a].value=="R"||this.tripType[a].value=="return")&&this.tripType[a].checked){return true}}return false};FlightSearchValidator.prototype.validateLocations=function(){for(var a=0;a<this.invalidLocationOptions.length;++a){if(this.from.value==this.invalidLocationOptions[a]){alert(this.dataContainer.errorMsgs["bookingForm.error.departurelocation"]);this.from.focus();return false}}for(var a=0;a<this.invalidLocationOptions.length;++a){if(this.to.value==this.invalidLocationOptions[a]||this.toBox.value==this.invalidLocationOptions[a]){alert(this.dataContainer.errorMsgs["bookingForm.error.arrivallocation"]);this.toBox.focus();return false}}if(this.from.value==this.to.value){alert(this.dataContainer.errorMsgs["bookingForm.error.departurearrivallocation"]);this.from.focus();return false}return true};FlightSearchValidator.prototype.validateDates=function(){if(this.departCalendar.getDate().getTime()<this.earliestBookingDate.getTime()){alert(this.dataContainer.errorMsgs["bookingForm.error.startdate"]);this.departCalendar.monthYearField.focus();return false}if(this.isReturn()&&this.returnCalendar.getDate().getTime()<this.departCalendar.getDate().getTime()){alert(this.dataContainer.errorMsgs["bookingForm.error.startenddate"]);this.returnCalendar.monthYearField.focus();return false}return true};FlightSearchValidator.prototype.validatePax=function(){var d=parseInt(this.adults.value);var b=parseInt(this.children.value);var e=parseInt(this.infants.value);var c=d+b+e;var a=this.dataContainer.maxPax;if(c>a){alert(this.dataContainer.errorMsgs["bookingForm.error.maxpaxs"]);this.adults.focus();return false}if(e>d){alert(this.dataContainer.errorMsgs["bookingForm.error.infant"]);this.infants.focus();return false}if(d==0&&b==0&&e==0){alert(this.dataContainer.errorMsgs["bookingForm.error.minpaxs"]);this.adults.focus();return false}return true};FlightSearchValidator.prototype.isSearchByBestPrice=function(){return true};FlightSearchValidator.prototype.isFlexible=function(){if(this.flexiDates!=null&&this.flexiDates.value!=null){if(this.flexiDates.value.indexOf("true")>-1){return true}}return false};FlightSearchValidator.prototype.createCommonQueryString=function(){var e=null;var g="";var e="";e+="LANGUAGE=GB";e+="&TRIP_TYPE="+(this.isReturn()?"R":"O");e+="&B_LOCATION_1="+this.from.value;e+="&E_LOCATION_1="+this.to.value;e+="&B_DATE_1="+this.departCalendar.getDate().format("YYYYmmDDHH00");e+="&B_DATE_2="+this.returnCalendar.getDate().format("YYYYmmDDHH00");var b=parseInt(this.adults.value);var a=parseInt(this.children.value);var f=parseInt(this.infants.value);var d=1;for(var c=0;c<b;++c){e+="&TRAVELLER_TYPE_"+d+"=ADT";if(c<f){e+="&HAS_INFANT_"+d+"=TRUE"}++d}for(var c=0;c<a;++c){e+="&TRAVELLER_TYPE_"+d+"=CHD";++d}e+="&SEVEN_DAY_SEARCH=TRUE";e+="&CUSTOMER_TYPE=P";e+="&ARRANGE_BY=N";if(this.region=="sp"){e+="&SO_SITE_OFFICE_ID=AKLQF08AA"}e+="&PAGE_FROM=/regions/dyn/quickSearch";return e};FlightSearchValidator.prototype.createDomesticQueryString=function(a){var d=this.createCommonQueryString();if(this.region=="au"){d+="&SITE=QFD";var e="/pl/QFdomestic/en/FamilyPricerAvailabilityServlet"}else{d+="&SITE=QFN";var e="/pl/QFdomestic/en/OverrideServlet";d+="&EMBEDDED_TRANSACTION=FamilyPricerAvailabilityServlet";d+="&SO_SITE_FD_INTERNA=FALSE"}var b=new Date(2004,4,25,0,0,0);if(a){var c="RF_FFCONLY=Y";var f="RF_SERVLET="+this.bookingEngineUrl()+e;d="https://"+location.host+"/regions/dyns/routeFilter?"+d+"&"+f+"&"+c}else{d=this.bookingEngineUrl()+e+"?"+d}return d};FlightSearchValidator.prototype.createInternationalQueryString=function(a){var e=this.createCommonQueryString();var d=false;var b=FlightDataCache.getFlightDataItem(this.dataContainer,this.from.value,this.to.value);if(this.region=="au"||this.region=="sp"){d=(b.isTransTasman())}if(d){e+="&SITE=QFN";if(this.region=="au"){if(!a){e="FamilyPricerAvailabilityServlet?"+e}}else{e+="&EMBEDDED_TRANSACTION=FamilyPricerAvailabilityServlet"}}else{e+="&SITE=QFI";if(this.region=="au"||this.region=="sp"){}else{}if(this.isSearchByBestPrice()){e+="&EMBEDDED_TRANSACTION=ValuePricerServlet"}else{e+="&EMBEDDED_TRANSACTION=AirAvailabilityServlet"}if(this.region=="au"||this.region=="sp"){if(this.region=="au"){e+="&SO_SITE_PREFERRED_CARRIER=QFAO";e+="&SO_SITE_FC_INCLUDE_AIRLINES=QFAO"}}else{if(this.region=="uk"){e+="&SO_SITE_OFFICE_ID=LONQF18AA";e+="&SO_SITE_PREFERRED_CARRIER=QFBA";e+="&SO_SITE_FC_INCLUDE_AIRLINES=QFBA"}else{if(this.region=="sg"){e+="&SO_SITE_OFFICE_ID=SINQF18AA";e+="&SO_SITE_PREFERRED_CARRIER=QFBA";e+="&SO_SITE_FC_INCLUDE_AIRLINES=QFBA"}else{if(this.region=="as"){e+="&SO_SITE_OFFICE_ID=SINQF18AA";e+="&SO_SITE_PREFERRED_CARRIER=QFBA";e+="&SO_SITE_FC_INCLUDE_AIRLINES=QFBA"}else{if(this.region=="us"){e+="&SO_SITE_OFFICE_ID=LAXQF18AA"}}}}e+="&SO_QUEUE_OFFICE_ID=SYDQF2RES";e+="&SO_SITE_FP_CC_CARDHOLDERNAME=";e+="&SO_GL=%3C%3Fxml+version%3D%271.0%27+encoding%3D%27iso-8859-1%27%3F%3E%3CSO_GL%3E%3CGLOBAL_LIST%3E%3CNAME%3ESITE_CREDIT_CARD%3C%2FNAME%3E%3CLIST_ELEMENT%3E%3CCODE%3EXX%3C%2FCODE%3E%3CLIST_VALUE%3E%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E"}}if(a){var c="RF_FFCONLY=Y";if(this.region=="au"&&d){var f="RF_SERVLET="+this.bookingEngineUrl()+"/pl/QFinternational/en/FamilyPricerAvailabilityServlet"}else{var f="RF_SERVLET="+this.bookingEngineUrl()+"/pl/QFinternational/en/OverrideServlet"}e="https://"+location.host+"/regions/dyns/routeFilter?"+e+"&"+f+"&"+c}else{if(this.region=="au"&&d){e=this.bookingEngineUrl()+"/pl/QFinternational/en/"+e}else{e=this.bookingEngineUrl()+"/pl/QFinternational/en/OverrideServlet?"+e}}return e};FlightSearchValidator.prototype.setSelectionDetailsCke=function(b){var e="";if(this.region=="au"||this.region=="sp"){var d=""}else{var a=this.travelClass.value;var d="|SRCHBY:"+(this.isSearchByBestPrice()?"B":"S")}if((this.region=="au"&&b=="int")||(this.region=="sg")||(this.region=="uk")||(this.region=="eu")||(this.region=="us")||(this.region=="as")||(this.region=="sp"&&b=="int")){a=this.travelClass.value;d="|SRCHBY:"+(this.isFlexible()?"T":"F");if(document.getElementById("intArrangeBy")!=null){e=document.getElementById("intArrangeBy").selectedIndex;e="|SORTBY:"+e}}if(b=="dom"){d="|SRCHBY:"+(this.isFlexible()?"T":"F");e=document.getElementById("domArrangeBy").selectedIndex;e="|SORTBY:"+e}var c="selections=DATES:"+this.departCalendar.serialize()+","+this.returnCalendar.serialize()+"|PORTS:"+this.from.value+","+this.to.value+"|PSGRS:"+this.adults.value+","+this.children.value+","+this.infants.value+"|TYPE:"+b+"|TRIP:"+(this.isReturn()?"R":"O")+d+"|REGION:"+this.region+"|FARE:"+a+e;document.cookie=c+";path=/"};FlightSearchValidator.prototype.domesticInitialise=function(a){var b=document.getElementById(this.formId);this.tripType=b.domTripType;this.from=b.domFrom;this.to=b.domTo;this.adults=b.domAdults;this.children=b.domChildren;this.infants=b.domInfants;if(this.region=="au"||this.region=="sp"){this.flexiDates=b.domFlexiDates;this.sortFlightsBy=b.domArrangeBy}};FlightSearchValidator.prototype.domesticValidateAndSubmit=function(a,b){this.domesticInitialise();if(!this.validateLocations()){return false}if(!this.validateDates()){return false}if(!this.validatePax()){return false}this.setSelectionDetailsCke("dom");if(!b){var c=this.createDomesticQueryString(a);if(!this.isProduction()){alert(c)}document.location=c}else{document.domForm.submit()}return true};FlightSearchValidator.prototype.internationalInitialise=function(){var a=document.getElementById(this.formId);this.tripType=a.intTripType;this.from=a.intFrom;this.to=a.intTo;this.toBox=a.intToTextField;this.adults=a.intAdults;this.children=a.intChildren;this.infants=a.intInfants;this.travelClass=a.intTravelClass;this.flexiDates=a.intFlexiDatesCheckBox;this.sortFlightsBy=a.intArrangeBy};FlightSearchValidator.prototype.internationalValidateAndSubmit=function(a,b){this.internationalInitialise();if(!this.validateLocations()){return false}if(!this.validateDates()){return false}if(!this.validatePax()){return false}this.setSelectionDetailsCke("int");if(this.isFlexible()){document.getElementById("intFlexiDates").value="true"}else{document.getElementById("intFlexiDates").value="false"}if(!b){var c=this.createInternationalQueryString(a);if(!this.isProduction()){alert(c)}document.location=c}else{this.setIntFormProperties();if($j.browser.safari){setTimeout("submitTwice()",10)}else{if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){setTimeout("submitTwice()",10)}}document.getElementById(this.formId).submit()}addPastSearch();return true};FlightSearchValidator.prototype.setIntFormProperties=function(){document.getElementById(this.formId).intTransTasman.value="false";if(this.region=="au"||this.region=="sp"){var a=FlightDataCache.getFlightDataItem(this.dataContainer,this.from.value,this.to.value);if(a.isTransTasman()){document.getElementById(this.formId).intTransTasman.value="true"}}};FlightSearchValidator.prototype.domesticSetSelections=function(){this.setSelections(true)};FlightSearchValidator.prototype.internationalSetSelections=function(){this.setSelections(false)};FlightSearchValidator.prototype.setSelections=function(y){var p;var b;if((document.cookie.indexOf("usercontext="))!=-1){var n=getCookieValue("usercontext");var E=n.indexOf("dep#");var D=n.indexOf("arr#");p=n.substring(E+4,E+7);b=n.substring(D+4,D+7)}if(p!=null||b!=null){if((document.cookie.indexOf("selections="))!=-1){var G=readCookieValue("selections");var a=G.indexOf("REGION:");var i=G.substring(a+7,a+9);if(this.region==i){var t=G.indexOf("DATES:");var x=G.indexOf("PORTS:");var h=G.indexOf("TYPE:");var k=G.indexOf("FARE:");var j=G.indexOf("PSGRS:");var A=G.indexOf("TRIP:");var F=G.indexOf("SRCHBY:");var c=G.indexOf("SORTBY:");var g=G.substring(t+6,x-1);var m=g.split(",");var v=m[0];var e=m[1];var d=G.substring(h+5,h+8);var r;if(c!=-1){r=G.substring(k+5,c-1)}else{r=G.substring(k+5)}var l=r.split(",");var C=G.substring(j+6,j+7);var f=G.substring(j+8,j+9);var q=G.substring(j+10,j+11);var B=G.substring(A+5,A+6);var u=G.substring(F+7,F+8);var w;if(c!=-1){w=G.substring(c+7,c+8)}if(d=="dom"&&y){this.domesticInitialise();this.departCalendar.deserialize(v);this.returnCalendar.deserialize(e);this.setCommonFields(p,b,C,f,q,u,B);if(!browser.isMSIE5x){this.intShowHideReturn()}if(this.region=="au"||this.region=="sp"){this.sortFlightsBy.selectedIndex=w}this.intShowHideReturn();if(window.navigator.userAgent.toLowerCase().indexOf("msie 5.5")==-1){this.intShowHideReturn()}}else{if(d=="int"&&!y){this.internationalInitialise();this.departCalendar.deserialize(v);this.returnCalendar.deserialize(e);if(this.region=="au"||this.region=="sp"){if(w!=null&&w!=""){this.sortFlightsBy.selectedIndex=w}}if(l.length>1){this.set(this.travelClass,l[1])}else{this.set(this.travelClass,l)}this.setCommonFields(p,b,C,f,q,u,B);this.intShowHideReturn();if(window.navigator.userAgent.toLowerCase().indexOf("msie 5.5")==-1){this.intShowHideReturn()}}}}}}if(document.getElementById("divSortBy")!=null&&(window.navigator.userAgent.toLowerCase().indexOf("msie 5.5")!=-1)&&!isAfterTTReturnNfsCutover()){var o=FlightDataCache.getFlightDataItem(this.dataContainer,document.getElementById("intFrom").value,document.getElementById("intTo").value);if(o.isTransTasman()){document.getElementById("intTripTypeReturn").checked=true;if(this.sortFlightsBy!=null){this.sortFlightsBy.selectedIndex=0}checkT_Tasman()}}};FlightSearchValidator.prototype.setCommonFields=function(d,f,c,e,g,a,b){this.set(this.from,d);this.set(this.to,f);this.set(this.adults,c);this.set(this.children,e);this.set(this.infants,g);if(this.tripType){if(b=="R"){this.tripType[0].checked=true}else{this.tripType[1].checked=true}}if(this.flexiDates){if(a=="T"){if(document.getElementById("transTasmanPostThrottleDate")!=null){document.getElementById("transTasmanPostThrottleDate").style.display="block"}this.flexiDates.value=true;this.flexiDates.checked=true}else{this.flexiDates.value=false;this.flexiDates.checked=false}}};FlightSearchValidator.prototype.set=function(a,c){if(c){for(var b=0;b<a.length;b++){if(a.options[b].value==c){a.options[b].selected=true;break}}}};FlightSearchValidator.prototype.preSelectSingleOpt=function(a){if(a!=null&&a.options!=null){if(a.options.length==3){a.selectedIndex=2}}};FlightSearchValidator.prototype.flightValidateAndSubmit=function(a,b,c){this.flightInitialise();if(!this.validateLocations()){return false}if(!this.validateDates()){return false}if(!this.validatePax()){return false}if(c){this.setSelectionDetailsCke("dom")}else{this.setSelectionDetailsCke("int")}if(!b){var d=this.createFlightQueryString(a,c);if(!this.isProduction()){alert(d)}document.location=d}else{document.domForm.submit()}return true};FlightSearchValidator.prototype.flightInitialise=function(a){var b=document.getElementById(this.formId);this.tripType=b.domTripType;this.from=b.domFrom;this.to=b.domTo;this.adults=b.domAdults;this.children=b.domChildren;this.infants=b.domInfants;this.flexiDates=b.domFlexiDates;this.sortFlightsBy=b.domArrangeBy;this.travelClass=b.intTravelClass};FlightSearchValidator.prototype.createFlightQueryString=function(a,b){if(b){return createDomesticQueryString(a)}else{return createInternationalQueryString(a)}return s};$j(document).ready(function(){var i=ucG.getLastCountry();var n=ucG.getLastLocale();var k="http://www.qantas.com.au/travel/airlines/price-promise/global/en";var m="http://www.qantas.com.au/travel/airlines/points-plus-pay/global/en";var o='<div id="price-promise">Find great deals in one place at qantas.com.<br />Low online rates are guaranteed with the qantas.com Price Promise.</div>';var h='<div id="points-pay">Pay with a mixture of Frequent Flyer points and money at qantas.com. The more points used, the less money paid!</div>';var l='<a id="isPricePromise" href="'+k+'" target="_blank"><img src="/img/icons/price-promise.gif" alt="Price Promise" /></a>';if(((location.href.indexOf("/flight-search/")>-1&&location.href.indexOf("useSkin")>-1)||location.href.indexOf("/travel/airlines/home/")>-1)&&$j("span").hasClass("brand_icon")){var j=$j("span.brand_icon");if(i=="AU"){j.append(l)}$j("body").append('<div id="ppMSG"><div id="ppMSGWrap"><img src="/img/_red08/common/tool-tip.gif" alt="" id="ppTOOLTIP" />'+h+((i=="AU")?o:"")+"</div></div>");$j("a",j).bind("mouseenter",function(a){if($j(this).attr("id")=="isPricePromise"){$j("#points-pay").hide();$j("#price-promise").show()}else{$j("#points-pay").show();$j("#price-promise").hide()}var b=$j(this).offset().top-($j("#ppMSG").height()+15);var c=$j(this).offset().left;if($j.browser.version.substr(0,3)<="7.0"&&$j.browser.msie){$j("div.paxNumbers, div.travelClass").addClass("hidden")}$j("#ppMSG").css({left:c,top:b}).show()}).bind("mouseleave",function(){if($j.browser.version.substr(0,3)<="7.0"&&$j.browser.msie){$j("div.paxNumbers, div.travelClass").removeClass("hidden")}$j("#ppMSG").hide()})}else{if(location.href.indexOf("/flight-search/")>-1&&location.href.indexOf("useSkin")==-1&&$j("span").hasClass("brand_icon")){$j("span.brand_icon").hide();$j("div.contentPanel").append('<p class="clearit"><a href="'+m+'" target="_blank" class="left"><img src="/img/_red08/specific/book/book-points-plus-pay.gif" alt="Points + Pay" /></a>'+((i=="AU")?'<a href="'+k+'" target="_blank" class="left" style="margin: 0 0 0 8px"><img src="/img/_red08/specific/book/book-price-promise.gif" alt="Price Promise" /></a>':"")+"</p>")}else{if(location.href.indexOf("/international-flight-specials/")>-1||location.href.indexOf("/domestic-flight-specials/")){}}}});function populateOptions(e,b,d){var a=document.getElementById(e);var f=false;a.selectedIndex=-1;a.options.length=0;for(var c=0;c<b.length;++c){a.options[c]=new Option(b[c][1],b[c][0]);if(f==false&&b[c][0]==d){f=true;a.selectedIndex=c}}if(f==false){a.selectedIndex=0}}function populateNumericOptions(e,b,g,d){var a=document.getElementById(e);var f=false;a.selectedIndex=-1;a.options.length=0;for(var c=b;c<=g;++c){a.options[c-b]=new Option(c.toString(),c.toString());if(f==false&&c.toString()==d){f=true;a.selectedIndex=c-b}}if(f==false){a.selectedIndex=0}}function populateOptionsMulti(a,g,f,k){var b=0;var h=document.getElementById(a);var c=false;h.selectedIndex=-1;h.options.length=0;var d=0;for(var e=k-1;e<g.length;e=e+k){h.options[d]=new Option(g[e][1],g[e][0]);if(c==false&&g[e][0]==f){c=true;b=d}++d}h.selectedIndex=b}function populateOptionsWithStyle(e,b,d){var a=document.getElementById(e);var f=false;a.selectedIndex=-1;a.options.length=0;for(var c=0;c<b.length;++c){a.options[c]=new Option(b[c][1],b[c][0]);if(b[c][2]!=null&&b[c][2]!=""){a.options[c].className=b[c][2]}if(f==false&&b[c][0]==d){f=true;a.selectedIndex=c}}if(f==false){a.selectedIndex=0}}function getAbsLeft(b){var a=b.offsetLeft;while(b=b.offsetParent){a+=b.offsetLeft}return a}function getAbsTop(b){var a=b.offsetTop;while(b=b.offsetParent){a+=b.offsetTop}return a}function changeBkgrnd(a){addClassName(a,"selected")}function changeBkgrnd_Blur(a){removeClassName(a,"selected")}function addClassName(a,b){if(!Element.hasClassName(a,b)){a.className=(a.className+" "+b)}}function removeClassName(a,b){if(Element.hasClassName(a,b)){a.className=a.className.replace(b,"")}}var FlightDataCache=Class.create();Object.extend(FlightDataCache.prototype,{initialize:function(){this.flightDataCacheArray=new Object()},getFlightDataItem:function(c,e,d){var a=this.flightDataCacheArray[e];if(a==null){a=new Object();this.flightDataCacheArray[e]=a}var b=a[d];if(b==null){b=new FlightData(c,e,d);a[d]=b}return b}});var FlightDataCache=new FlightDataCache();var FlightData=Class.create();FlightData.prototype={initialize:function(a,c,b){this.dataContainer=a;this.airports=a.getAirports();this.fromAirports=a.getFromAirports();this.toAirports=a.getToAirports();this.classes=a.getClasses();this.matrix=a.getMatrix();this.fromAirport=getObjectFromArrayByCode(c,this.airports);this.toAirport=getObjectFromArrayByCode(b,this.airports);this.fromAirportIndex=indexOfAirportByCode(c,this.fromAirports);this.toAirportIndex=indexOfAirportByCode(b,this.toAirports);this.matrixItem=getMatrixItem(this.fromAirportIndex,this.toAirportIndex,this.matrix,this.fromAirports.length,this.toAirports.length)},isValidFlight:function(a){if(this.matrixItem!=null){if(this.fromAirport!=this.toAirport){if(determineBooleanValueFromMatrixItem(this.matrixItem,this.dataContainer.getValidFlightIndex())){return true}}}return false},isDomestic:function(){if(this.fromAirport.country==this.toAirport.country){return true}return false},isInternational:function(){if(this.fromAirport.country!=this.toAirport.country&&!this.isTransTasman()){return true}return false},isTransTasman:function(){if((this.fromAirport.country.code=="AU"&&this.toAirport.country.code=="NZ")||(this.fromAirport.country.code=="NZ"&&this.toAirport.country.code=="AU")){return true}else{return false}},getClasses:function(a){if(this.matrixItem!=null){return getClassesForFlight(this.matrixItem,this.dataContainer,a,this.fromAirport,this.toAirport)}return new Array()}};var Citycodes=Class.create();Citycodes.prototype={initialize:function(b,a){this.cityCode=b;this.timeZoneOffset=a}};var Airport=Class.create();Airport.prototype={initialize:function(c,d,b,a){this.code=c;this.airportName=d;this.country=getObjectFromArrayByCode(b,a)},getCountry:function(){return this.country},toStringNameOnly:function(){return this.airportName},toString:function(){return this.toStringNoCode()+" ("+this.code+")"},toStringAirportCodeOnly:function(){return this.toStringNoCode()+"<span class='aCode'> ("+this.code+")</span>"},toStringNoCode:function(){return this.airportName+", "+this.country.countryName},toStringWithHighlightedAirport:function(i){var d=this.toString();var o=d.toLowerCase().indexOf(i.toLowerCase());var p="flagno";if(o>this.airportName.length){var b=this.toStringNoCode().length;var f=d.substring(b).toLowerCase().indexOf(i.toLowerCase());o=b+f;p="flagyes"}if(p=="flagno"){var c=d.substring(0,o);var e=d.substring(o,o+i.length);var j=d.substring(o+i.length,d.length);var q=j.substring(j.lastIndexOf("("),j.lastIndexOf(")")+1);var n=j.substring(0,j.lastIndexOf("("));return c+"<strong>"+e+"</strong>"+n+"<span class='aCode'>"+q+"</span>"}else{var h=d.substring(0,o);var m=h.substring(d.lastIndexOf("("));var a=d.substring(0,(o-i.length));var k=d.substring(0,((o+1)-(i.length)));var l=d.substring(o,o+i.length);var g=d.substring(o+i.length,d.length);if(i.length==2){return a+"<span class='aCode'>"+m+"<strong>"+l+"</strong>"+g+"</span>"}else{if(i.length==1){return a+"<span class='aCode'>(<strong>"+l+"</strong>"+g+"</span>"}else{return k+"<span class='aCode'>(<strong>"+l+"</strong>"+g+"</span>"}}}}};function getAirportAsHTMLString(g,e,a){var c="";if(g.airportName.toLowerCase().indexOf(e.toLowerCase())==0){if(g.airportName.toLowerCase()==(e.toLowerCase())){c=' class="toBoxHighlight" '}}var b="<a onFocus='changeBkgrnd(this)' onBlur='changeBkgrnd_Blur(this)' href='javascript:void(0)' id='to"+g.code+"'"+c+"/>";var d;if(a){d=g.toStringWithHighlightedAirport(e)}else{d=g.toStringAirportCodeOnly()}var f="</a>";return b+d+f}var BookingClass=Class.create();BookingClass.prototype={initialize:function(b,c,a){this.code=b;this.value=c;this.className=a}};var Country=Class.create();Country.prototype={initialize:function(a,b){this.code=a;this.countryName=b}};var FromBoxControl=Class.create();FromBoxControl.prototype={initialize:function(e,d,a,c,b){this.fromBox=$(e);this.popularFromAirports=d.getPopularFromAirports();this.fromAirports=d.getFromAirports();this.airports=d.getAirports();this.defaultValue=a;this.showCountries=c;this.fromHeader=b;this.fromBox.onchange=this.fromBoxChange.bindAsEventListener(this);this.populateFromBox()},fromBoxChange:function(a){},populateFromBox:function(){var f=false;var a=0;this.fromBox.options.length=0;var c=0;this.fromBox.options[c]=new Option(this.fromHeader,"");c++;this.fromBox.options[c]=new Option("-----------------","separator");c++;if(this.popularFromAirports!=null&&this.popularFromAirports!=""){var b=new Array();for(var e=0;e<this.popularFromAirports.length;++e){var h=getObjectFromArrayByCode(this.popularFromAirports[e],this.airports);b[e]=h}for(var e=0;e<b.length;++e,c++){var h=b[e];this.fromBox.options[c]=new Option(h.airportName,h.code);if(!f&&this.defaultValue==h.code){a=c;f=true}}this.fromBox.options[c]=new Option("-----------------","separator");c++}var g="";var d=new Array();for(var e=0;e<this.fromAirports.length;++e){var h=getObjectFromArrayByCode(this.fromAirports[e],this.airports);d[e]=h}for(var e=0;e<d.length;++e,c++){var h=d[e];if(h!=null){if(this.showCountries&&h.country.countryName!=g){this.fromBox.options[c]=new Option(h.country.countryName,"");this.fromBox.options[c].className="cityDropDownCountry";c++;g=h.country.countryName}this.fromBox.options[c]=new Option(h.airportName,h.code);if(!f&&this.defaultValue==h.code){a=c;f=true}}else{c--}}this.fromBox.selectedIndex=a}};function compareAirportsByName(d,c){if(d==null||c==null){return 0}if(d.airportName<c.airportName){return -1}else{if(d.airportName>c.airportName){return 1}else{return 0}}}var ToDropControl=Class.create();ToDropControl.prototype={initialize:function(f,b,e,a,d,c){this.fromBox=$(f);this.toBox=$(b);this.departCalendar=a;this.dataContainer=e;this.showCountries=d;this.toHeader=c;this.toAirports=this.dataContainer.getToAirports();this.popularToAirports=this.dataContainer.popularToAirports;this.airports=this.dataContainer.getAirports();this.toBox.onchange=this.toBoxChange.bindAsEventListener(this);this.inputType="selectBox";this.populateToBox()},toBoxChange:function(a){},populateToBox:function(b){this.toBox.options.length=0;var d=0;var a=0;this.toBox.options[d]=new Option(this.toHeader,"");d++;this.toBox.options[d]=new Option("-----------------","separator");d++;if(this.popularToAirports!=null){for(var e=0;e<this.popularToAirports.length;++e,d++){var g=getObjectFromArrayByCode(this.popularToAirports[e],this.airports);this.toBox.options[d]=new Option(g.airportName,g.code);if(this.defaultValue==g.code){a=d}}this.toBox.options[d]=new Option("-----------------","separator");d++}var f="";for(var e=0;e<this.toAirports.length;e++){var g=getObjectFromArrayByCode(this.toAirports[e],this.airports);if(this.showCountries&&g.country.countryName!=f){this.toBox.options[d]=new Option(g.country.countryName,"");this.toBox.options[d].className="cityDropDownCountry";d++;f=g.country.countryName}if(this.fromBox.value!=""){var c=FlightDataCache.getFlightDataItem(this.dataContainer,this.fromBox.value,g.code);if(c.isValidFlight()){this.toBox.options[d]=new Option(g.airportName,g.code);if(g.code==b){a=d}d++}}else{this.toBox.options[d]=new Option(g.airportName,g.code);if(g.code==b){a=d}d++}}this.toBox.selectedIndex=a}};var ToBoxControl=Class.create();ToBoxControl.prototype={initialize:function(a,g,j,f,e,b,c,h,d,i){this.fromBox=$(a);this.toBox=$(g);this.toBoxListDiv=$(j);this.toSelectionField=$(e);this.toBoxPlusSign=$(f);this.thisForm=$(b);this.currentSelection="";this.fieldsToHide=c;this.dataContainer=h;this.isHomePage=i;this.toBoxCloseButton=$(d);this.toBox.onkeydown=this.toBoxKeyDown.bindAsEventListener(this);this.toBox.onkeyup=this.toBoxKeyUp.bindAsEventListener(this);this.toBox.onfocus=this.toBoxFocus.bindAsEventListener(this);this.toBoxPlusSign.onclick=this.toBoxPlusSignClick.bindAsEventListener(this);this.popularFromAirports=h.getPopularFromAirports();this.boxOpen=false;this.inputType="textBox"},toBoxKeyDown:function(b){if(b!=null&&(b.keyCode==40)){var d=$(this.toSelectionField.id+"predictiveLookUp");if(d!=null){var a=d.getElementsByTagName("a");if(this.currentSelection==""){var f=a[0];this.currentSelection=f;changeBkgrnd(f)}else{for(var c=0;c<a.length;c++){if(Element.hasClassName(a[c],"selected")){changeBkgrnd_Blur(a[c]);if(c<(a.length-1)){nextItem=a[c+1]}else{nextItem=a[0]}this.currentSelection=nextItem;changeBkgrnd(nextItem);c=a.length}}}}fixScrollPosition(this.toBoxListDiv,this.currentSelection);return false}else{if(b!=null&&b.keyCode==38){var d=$(this.toSelectionField.id+"predictiveLookUp");if(d!=null){var a=d.getElementsByTagName("a");if(this.currentSelection!=""){for(var c=0;c<a.length;c++){if(Element.hasClassName(a[c],"selected")){changeBkgrnd_Blur(a[c]);if(c>0){nextItem=a[c-1]}else{nextItem=a[a.length-1]}this.currentSelection=nextItem;changeBkgrnd(nextItem);c=a.length}}}else{var e=a[a.length-1];this.currentSelection=e;changeBkgrnd(e)}}fixScrollPosition(this.toBoxListDiv,this.currentSelection);return false}else{if(b!=null&&b.keyCode==13){if(this.currentSelection!=""){this.currentSelection.onclick()}else{if(this.toBoxListDiv.getElementsByTagName("a").length==1){this.toBoxListDiv.getElementsByTagName("a")[0].onclick()}}}}}},toBoxKeyUp:function(a){if(a==null||a.keyCode==40||a.keyCode==38||a.keyCode==13||a.keyCode==9||a.keyCode==37||a.keyCode==39){}else{this.currentSelection="";this.populateToMatchingAirports(a)}},toBoxFocus:function(a){this.toBox.select()},toBoxPlusSignClick:function(b){this.populateToAllAirports(b);this.toBox.focus();var d=$(this.toSelectionField.id+"predictiveLookUp");var a=d.getElementsByTagName("a");for(var c=0;c<a.length;c++){if(("to"+this.toSelectionField.value)==a[c].id){this.currentSelection=a[c];changeBkgrnd(a[c]);fixScrollPosition(this.toBoxListDiv,this.currentSelection)}}},populateToAllAirports:function(a){var b=getAirportsFromAirportCodes(this.dataContainer.getToAirports(),this.dataContainer.getAirports());var c=getValidToAirports(this.fromBox.value,b,this.dataContainer);this.populateToOptions(a,c,false)},populateToMatchingAirports:function(a){var b=getValidToAirportsThatMatchString(this.fromBox.value,this.toBox.value,this.dataContainer);this.populateToOptions(a,b,true)},populateToOptions:function(j,b,a){var k="";this.setBoxOpen(true);if(b.length==0){$j(".predictiveTextBox").parent().hide();$j(this.toBoxListDiv).attr("class","predictiveTextBox toCityBoxNoMatches");$j(this.toBoxListDiv).parent().show();this.toBoxListDiv.innerHTML=this.dataContainer.noMatchingCitiesText;this.toBoxCloseButton.onclick=this.closeToBoxListDiv.bindAsEventListener(this)}else{var f=new Array();var h="";var g="";var d=5;var e=0;d=(d<b.length/2)?(b.length/2):d;for(var i=0;i<b.length;i++){var c=b[i];if(e<d){h=h+"<li>"+getAirportAsHTMLString(c,this.toBox.value,a)+"</li>"}else{g=g+"<li>"+getAirportAsHTMLString(c,this.toBox.value,a)+"</li>"}e++}optionList='<div id="'+this.toSelectionField.id+'predictiveLookUp" class="clearit"><ul class="left">'+h+"</ul>";if(g!=""){optionList=optionList+'<ul class="left">'+g+"</ul>"}optionList=optionList+"</div>";if(e<"6"){$j(".predictiveTextBox").parent().hide();$j(this.toBoxListDiv).attr("class","predictiveTextBox toCityBoxSingleColumn");$j(this.toBoxListDiv).parent().show()}else{if(e>"5"){$j(".predictiveTextBox").parent().hide();$j(this.toBoxListDiv).attr("class","predictiveTextBox toCityBoxDoubleColumns");$j(this.toBoxListDiv).parent().show()}else{}}this.toBoxListDiv.innerHTML=optionList;this.toBoxCloseButton.onclick=this.closeToBoxListDiv.bindAsEventListener(this);for(var i=0;i<b.length;i++){var c=b[i];new ToSelection(c,this.toBox,this.toSelectionField,this.toBoxListDiv,this)}if(b.length>0){document.onclick=this.closeToBoxListDiv.bindAsEventListener(this)}}},closeToBoxListDiv:function(b){if(b.target){targ=b.target}else{if(b.srcElement){targ=b.srcElement}}if(targ.id!=this.toBoxPlusSign.id){if(this.boxOpen){$j(".predictiveTextBox").parent().hide();this.hideShowFields(false);if(this.toSelectionField.value==""){this.toBox.value=""}else{var a=getObjectFromArrayByCode(this.toSelectionField.value,this.dataContainer.getAirports());this.toBox.value=a.toStringNameOnly()}this.setBoxOpen(false)}}},setBoxOpen:function(a){this.boxOpen=a;this.hideShowFields(a);this.hideShowCloseButton(a);if(!a){this.currentSelection=""}},hideShowFields:function(b){for(var a=0;a<this.fieldsToHide.length;a++){if(b){if($j.browser.version.substr(0,3)=="6.0"&&$j.browser.msie){$j("#"+this.fieldsToHide[a]).css("visibility","hidden")}}else{if($j.browser.version.substr(0,3)=="6.0"&&$j.browser.msie){$j("#"+this.fieldsToHide[a]).css("visibility","visible")}}}},hideShowCloseButton:function(a){if(a){$j(this.toBoxCloseButton).parent().show()}else{$j(this.toBoxCloseButton).parent().hide()}}};function fixScrollPosition(b,a){if(a.offsetTop>(b.offsetHeight-20)){b.scrollTop=a.offsetTop}if(a.offsetTop<b.scrollTop){b.scrollTop=0}}var FromToHandler=Class.create();FromToHandler.prototype={initialize:function(c,d,e,b,g,a,f){this.fromBoxControl=c;this.toBoxControl=d;if(this.toBoxControl.inputType=="textBox"){this.toSelectionField=this.toBoxControl.toSelectionField}else{this.toSelectionField=this.toBoxControl.toBox}this.toBox=this.toBoxControl.toBox;this.classBox=$(e);this.departCalendar=a;this.intDomConvertFunction=b;this.fromBoxControl.fromBox.onchange=this.fromToChange.bindAsEventListener(this);this.toSelectionField.onchange=this.fromToChange.bindAsEventListener(this);this.dataContainer=g;this.hideTravelClass=f},fromToChange:function(a){if(this.toBoxControl.inputType=="textBox"&&this.toBoxControl.boxOpen){this.toBoxControl.populateToMatchingAirports(a)}else{if(this.toBoxControl.inputType=="selectBox"){this.toBoxControl.populateToBox(this.toSelectionField.value)}if(this.fromBoxControl.fromBox.value!=""&&this.toSelectionField.value!=""){var b=FlightDataCache.getFlightDataItem(this.dataContainer,this.fromBoxControl.fromBox.value,this.toSelectionField.value);if(!b.isValidFlight()){if(this.toBoxControl.inputType=="textBox"){this.toSelectionField.value="";this.toBox.value=""}else{this.toSelectionField.selectedIndex=0}this.intDomConvertFunction()}else{this.populateClasses(b);this.intDomConvertFunction(b)}}else{this.populateClassesForRoute();this.intDomConvertFunction()}}},populateClasses:function(d){this.classBox.selectedIndex=0;if(this.classBox!=null){if(d!=null){var e=d.getClasses(this.departCalendar)}else{var e=getClassesForFlight(null,this.dataContainer,this.departCalendar,this.fromAirport,this.toAirport)}if(e.length==0){if(document.getElementById(this.hideTravelClass)){document.getElementById(this.hideTravelClass).style.display="none"}}else{var b=this.classBox.selectedIndex;this.classBox.options.length=0;for(var h=0;h<e.length;h++){var f=e[h];this.classBox.options[h]=new Option(f.className,f.value)}var o=document.URL.toString();if(o.indexOf("?")>0){var a=o.split("?");var n=a[1].split("&");for(var h=0;h<n.length;h++){var k=n[h].split("=");if(k[0]=="travelClass"){var m=k[1]}}}if(b!=-1&&m=="null"){this.classBox.selectedIndex=b}else{var c=new Array();var l=false;for(var g=0;g<this.classBox.length;g++){c[g]=this.classBox.options[g].value;if(m=="PRE"){m="PRM"}if(m==c[g]){l=true;break}}if(m!="null"&&l){if(m=="ECO"){this.classBox.value="ECO"}else{if(m=="BUS"){this.classBox.value="BUS"}else{if(m=="PRM"){this.classBox.value="PRM"}else{if(m=="FIR"){this.classBox.value="FIR"}else{this.classBox.selectedIndex=b}}}}}else{if(m=="FIR"&&!l){this.classBox.selectedIndex=this.classBox.length-1}else{this.classBox.selectedIndex=b}}}if(document.getElementById(this.hideTravelClass)){document.getElementById(this.hideTravelClass).style.display="block"}}}},populateClassesForRoute:function(){if(this.fromBoxControl.fromBox.value!=""&&this.toSelectionField.value!=""){var a=FlightDataCache.getFlightDataItem(this.dataContainer,this.fromBoxControl.fromBox.value,this.toSelectionField.value,this.toBoxControl.departCalendar);this.populateClasses(a)}else{this.populateClasses()}},setInitialValues:function(e,d){var b=false;for(var a=0;a<this.fromBoxControl.fromBox.options.length;++a){if(this.fromBoxControl.fromBox.options[a].value==e){this.fromBoxControl.fromBox.selectedIndex=a;b=true;break}}if(b==false&&e==""){this.fromBoxControl.fromBox.selectedIndex=0}if(this.toBoxControl.inputType=="textBox"&&d!=null&&d!=""){var c=getObjectFromArrayByCode(d,this.dataContainer.getAirports());if(c!=null){this.toBox.value=c.airportName;this.toSelectionField.value=c.code}}this.fromToChange();if(this.toBoxControl.inputType=="textBox"){}else{var b=false;for(var a=0;a<this.toBoxControl.toBox.options.length;++a){if(this.toBoxControl.toBox.options[a].value==d){this.toBoxControl.toBox.selectedIndex=a;b=true;break}}if(b==false&&e==""){this.toBoxControl.toBox.selectedIndex=0}}}};var ToSelection=Class.create();ToSelection.prototype={initialize:function(e,a,d,c,b){this.airport=e;this.toBox=a;this.toSelectionField=d;this.toBoxListDiv=c;this.toBoxControl=b;this.airportHref=$("to"+e.code);this.airportHref.onclick=this.airportHrefClick.bindAsEventListener(this)},airportHrefClick:function(a){this.toBoxControl.setBoxOpen(false);this.toSelectionField.value=this.airport.code;this.toBox.value=this.airport.toStringNameOnly();this.toBoxListDiv.innerHTML="";$j("div.predictiveTextBox").parent().hide();if($j("div").hasClass("majorCitySelected")){var b=this.toBoxControl.popularFromAirports;arrivalCheckforMajorCities(b)}else{this.toSelectionField.onchange()}}};function getValidToAirportsThatMatchString(f,c,g){var a=g.getToAirports();var e=g.getAirports();var b=getAirportsThatMatchString(c,a,e);var d=getValidToAirports(f,b,g);return d}function getValidToAirports(d,c,f){var a=new Array();for(var b=0;b<c.length;b++){var e=c[b];var g=FlightDataCache.getFlightDataItem(f,d,e.code);if(g.isValidFlight()||d.length=="0"){a.push(e)}}return a}function getAirportsFromAirportCodes(d,a){var c=new Array();for(var b=0;b<d.length;b++){var e=getObjectFromArrayByCode(d[b],a);c.push(e)}return c}function getAirportsThatMatchString(c,a,e){var b=new Array();if(c!=""&&c!=null){if(c.length==1){var f=new RegExp("^"+c,"i")}else{f=new RegExp(""+c,"i")}for(var d=0;d<a.length;d++){var g=getObjectFromArrayByCode(a[d],e);if(f.test(g.code)){b.push(g)}else{if(f.test(g.airportName)){b.push(g)}}}}return b}function indexOfAirportByCode(c,a){for(var b=0;b<a.length;b++){if(c==a[b]){return b}}return -1}function getObjectFromArrayByCode(c,b){for(var a=0;a<b.length;a++){if(c==b[a].code){return b[a]}}return null}function getMatrixItem(f,c,h,g,i){var a=(f*i)+c;var e=h.charAt(a*2);var d=h.charAt((a*2)+1);var j=parseInt(e+d);var b=j.toString(2);return b.padLeft(6,"0")}function determineBooleanValueFromMatrixItem(b,a){if(b.charAt(a)=="1"){return true}return false}function getClassesForFlight(i,g,k,c,j){var f=new Array();var e=getObjectFromArrayByCode("Y",g.getClasses());var a=getObjectFromArrayByCode("P",g.getClasses());var h=getObjectFromArrayByCode("T",g.getClasses());var b=getObjectFromArrayByCode("J",g.getClasses());var d=getObjectFromArrayByCode("F",g.getClasses());if(i==null){return f}else{if(determineBooleanValueFromMatrixItem(i,g.getEconomyClassIndex())){if(e!=null){f.push(e)}}if(determineBooleanValueFromMatrixItem(i,g.getPremiumClassIndex())){if(a!=null){f.push(a)}}if(determineBooleanValueFromMatrixItem(i,g.getBusinessFirstClassIndex())){if(h!=null){f.push(h)}}if(determineBooleanValueFromMatrixItem(i,g.getBusinessClassIndex())){if(b!=null){f.push(b)}}if(determineBooleanValueFromMatrixItem(i,g.getFirstClassIndex())){if(d!=null){f.push(d)}}}return f}String.prototype._pad=function(b,c,a){var d=[a?"":this,a?this:""];while(d[a].length<(b?b:0)&&(d[a]=d[1]+(c?c:" ")+d[0])){}return d[a]};String.prototype.padLeft=function(a,b){return this._pad(a,b,0)};String.prototype.padRight=function(a,b){return this._pad(a,b,1)};Number.prototype.padLeft=function(a,b){return(""+this).padLeft(a,b)};Number.prototype.padRight=function(a,b){return(""+this).padRight(a,b)};function setGlobalCityInList(){if((document.cookie.indexOf("usercontext="))!=-1){var c=getCookieValue("usercontext");var h=c.indexOf("dep#");var a=c.substring(h+4,h+7);var g=new Array();g[0]=[["ADL","ADL"],["BNE","BNE"],["CNS","CNS"],["DRW","DRW"],["OOL","OOL"],["MEL","MEL"],["PER","PER"],["SYD","SYD"],["ABX","SYD"],["ASP","DRW"],["ARM","SYD"],["AYQ","DRW"],["BNK","BNE"],["BCI","BNE"],["BKQ","BNE"],["BLT","BNE"],["BMP","CNS"],["BME","PER"],["BDB","BNE"],["BWT","MEL"],["CBR","CBR"],["CTL","BNE"],["CFS","SYD"],["DPO","MEL"],["DBO","SYD"],["EMD","BNE"],["GLT","BNE"],["GOV","CNS"],["HTI","CNS"],["HIS","CNS"],["HBA","HBA"],["HID","CNS"],["KGC","ADL"],["KGI","PER"],["KTA","PER"],["KNX","PER"],["LST","LST"],["LRE","BNE"],["LDH","SYD"],["MKY","BNE"],["MQL","MEL"],["MRZ","SYD"],["MHU","MEL"],["ISA","BNE"],["NAA","SYD"],["NTL","SYD"],["ZNE","PER"],["PBO","PER"],["PHE","PER"],["PLO","ADL"],["PQQ","SYD"],["PPP","CNS"],["ROK","BNE"],["RMA","BNE"],["MCY","BNE"],["TMW","SYD"],["TPR","PER"],["TSV","BNE"],["WGA","SYD"],["WEI","CNS"],["WOL","MEL"]];g[1]=[["AKL","AKL"],["CHC","CHC"],["ZQN","CHC"],["ROT","AKL"],["WLG","WLG"]];for(var e=0;e<g.length;e++){var f=g[e];for(var d=0;d<f.length;d++){if(f[d][0]==a){for(var b=0;b<document.globaldeals.globalDealsList.options.length;++b){if(document.globaldeals.globalDealsList.options[b].value==f[d][1]){document.globaldeals.globalDealsList.selectedIndex=b;return}}}}}}};
