﻿
(function(){var exportSymbol=skyscanner.exportSymbol;var snippets={};var snippetsCount=0;exportSymbol("skyscanner.snippets.Snippets",snippets);exportSymbol("skyscanner.snippets.snippetsCount",snippetsCount);exportSymbol("skyscanner.snippets.version","1"); { if (!skyscanner.texts) skyscanner.texts = new Array(); var st = skyscanner.texts;  if (!st['nl']) st['nl'] = new  Array(); var t = st['nl']; t['txtSnBack']='Terug';  t['txtSnFsctrlArrivalDayIsLaterThanOutboundDay']='Selecteer een vertrekdatum die voor de retourdatum ligt.';  t['txtSnFsctrlArrivalFlightIsLaterThanOutboundFlight']='De aankomsttijd van de uitgaande vlucht is later dan de vertrektijd van de retourvlucht.';  t['txtSnFsctrlBestPrice']='laagste prijs';  t['txtSnFsctrlInboundFlightToolTip']='Gebruik dit vervolgkeuzemenu om de terugvlucht te selecteren';  t['txtSnFsctrlIncorrectInboundFlight']='Deze vlucht is niet beschikbaar met de geselecteerde heenvlucht.';  t['txtSnFsctrlIncorrectOutboundFlight']='Deze vlucht is niet beschikbaar met de geselecteerde terugvlucht.';  t['txtSnFsctrlOutboundFlightToolTip']='Gebruik dit vervolgkeuzemenu om de heenvlucht te selecteren';  t['txtSnFsctrlPleaseFillPlaces']='Vul in ieder geval één van de zoekvelden in om door te gaan';  t['txtSnFsctrlSelectBothFlights']='Selecteer de datum voor de terugvlucht en de heenvlucht.';  t['txtSnFsctrlSelectOutboundFlight']='Selecteer de heenvlucht om verder te gaan.';  t['txtSnFsctrlTooShortDelay']='De retourvlucht is minder dan 24 uur na de uitgaande vlucht. Wilt u doorgaan?';  t['txtSnLoading']='De pagina wordt geladen, een ogenblik geduld';  t['txtSnLoadingCancel']='Annuleren';  t['txtSnLoadingFailed']='Het laden is mislukt<br>Wordt over @@number_of_seconds@@ seconden opnieuw geprobeerd...';  t['txtSnRestart']='Opnieuw starten';  t['txtSnFsctrlSeeOtherRoutes']='Andere routes met goedkope vluchten weergeven op de Skyscanner website';  t['txtSnFsctrlHeaderPriceDetails']='De weergegeven prijzen zijn de prijzen van de goedkoopste retourvluchten per persoon inclusief de geschatte belastingen';  t['txt_as_nomatches']='Geen overeenkomsten gevonden --- U kunt dit negeren en later een plaats kiezen.';  t['txt_as_max_retry']='Overeenkomende namen zijn niet geladen. Ga door met typen. De naam wordt geaccepteerd en gecontroleerd nadat u op de knop "Zoeken" hebt gedrukt.';  t['txt_as_err_ret']='Overeenkomende namen zijn niet geladen. Opnieuw proberen…';  t['txt_as_loading']='Bezig met laden...';  t['txt_as_any']='Alle';  t['txt_as_simple_any']='Alle';  t['txt_as_all_airports']='Alle luchthavens';  t['txt_as_all_countries']='Alle landen';  t['txt_as_no_such_place']='Plek niet gevonden';  t['txt_as_everywhere']='Overal';  t['txt_as_everywhere_all']='Overal, Alle landen';  t['txt_sc_DidYouMean']='Bedoelde u:';  t['txt_return_b4_depart']='Selecteer een vertrekdatum die voor de retourdatum ligt.';  t['txt_sc_any_dst_c']='Alle landen';  t['txt_sc_any_dep_a']='Alle luchthavens';  t['txt_as_all']='Alle';  t['txt_sc_tooManyChildren']='Het aantal kinderen is groter dan het aantal volwassenen. Enkele kinderen reizen zonder gezelschap.';  t['txt_sc_tooManyInfants']='Het aantal opgegeven baby\x27s is groter dan het aantal volwassenen. Het wordt verminderd tot het maximaal toegestane aantal voor het opgegeven aantal volwassenen.';  t['txt_sc_wrongAdultsNumber']='Het aantal volwassenen moet tussen 1 en 8 liggen. Het aantal wordt gecorrigeerd naar het dichtstbijzijnde toegestane getal.';  t['txt_sc_tooManyChildren8']='Het aantal kinderen moet tussen 1 en 8 liggen. Het aantal wordt gecorrigeerd naar het dichtstbijzijnde toegestane getal.';  t['txt_maWD2_0']='Zo';  t['txt_maWD2_1']='Ma';  t['txt_maWD2_2']='Di';  t['txt_maWD2_3']='Wo';  t['txt_maWD2_4']='Do';  t['txt_maWD2_5']='Vr';  t['txt_maWD2_6']='Za';  t['txt_maWD_0']='zo';  t['txt_maWD_1']='ma';  t['txt_maWD_2']='di';  t['txt_maWD_3']='wo';  t['txt_maWD_4']='do';  t['txt_maWD_5']='vr';  t['txt_maWD_6']='za';  t['txt_maMN_0']='januari';  t['txt_maMN_1']='februari';  t['txt_maMN_2']='maart';  t['txt_maMN_3']='april';  t['txt_maMN_4']='mei';  t['txt_maMN_5']='juni';  t['txt_maMN_6']='juli';  t['txt_maMN_7']='augustus';  t['txt_maMN_8']='september';  t['txt_maMN_9']='october';  t['txt_maMN_10']='november';  t['txt_maMN_11']='december';  t['txt_maMNS_0']='jan';  t['txt_maMNS_1']='feb';  t['txt_maMNS_2']='mrt';  t['txt_maMNS_3']='apr';  t['txt_maMNS_4']='mei';  t['txt_maMNS_5']='jun';  t['txt_maMNS_6']='jul';  t['txt_maMNS_7']='aug';  t['txt_maMNS_8']='sep';  t['txt_maMNS_9']='okt';  t['txt_maMNS_10']='nov';  t['txt_maMNS_11']='dec';  t['txt_flex_chart_date']='Datum';  t['txt_every_date']='Het hele jaar';  t['txt_flex_dates']='De hele maand';  t['txt_one_way']='Enkele reis';  t['txt_not_recogn_date']='Voer een geldige datum in, bijvoorbeeld: @@validdate@@';  t['txt_maMNAlt_0']='januari';  t['txt_maMNAlt_1']='februari';  t['txt_maMNAlt_2']='maart';  t['txt_maMNAlt_3']='april';  t['txt_maMNAlt_4']='mei';  t['txt_maMNAlt_5']='juni';  t['txt_maMNAlt_6']='juli';  t['txt_maMNAlt_7']='augustus';  t['txt_maMNAlt_8']='september';  t['txt_maMNAlt_9']='oktober';  t['txt_maMNAlt_10']='november';  t['txt_maMNAlt_11']='december';  t['txt_maMNNorm_0']='januari';  t['txt_maMNNorm_1']='februari';  t['txt_maMNNorm_2']='maart';  t['txt_maMNNorm_3']='april';  t['txt_maMNNorm_4']='mei';  t['txt_maMNNorm_5']='juni';  t['txt_maMNNorm_6']='juli';  t['txt_maMNNorm_7']='augustus';  t['txt_maMNNorm_8']='september';  t['txt_maMNNorm_9']='oktober';  t['txt_maMNNorm_10']='november';  t['txt_maMNNorm_11']='december';  }  ;function DOMOperations(){}DOMOperations.stopPropagation=function(A){if(A&&A.stopPropagation){A.stopPropagation()}if(window.event){window.event.cancelBubble=true}};DOMOperations.stopEvent=function(A){DOMOperations.stopPropagation(A);DOMOperations.preventDefault(A)};DOMOperations.preventDefault=function(A){if(A.preventDefault){A.preventDefault()}else{A.returnValue=false}};DOMOperations.calcAbsPos=function(I){var J={left:0,top:0};this.isFixed=function(Q){var P=document.defaultView.getComputedStyle(Q,null);return P.getPropertyValue("position")=="fixed"};var M=0,K=0;var A=I.offsetParent;var G=I;if(I.getBoundingClientRect){var L=I.getBoundingClientRect();M+=parseInt(L.left+Math.max(I.ownerDocument.documentElement.scrollLeft,I.ownerDocument.body.scrollLeft));K+=parseInt(L.top+Math.max(I.ownerDocument.documentElement.scrollTop,I.ownerDocument.body.scrollTop));M-=parseInt(I.ownerDocument.documentElement.clientLeft);K-=parseInt(I.ownerDocument.documentElement.clientTop);if(skyscanner.snippets.core.Browser.isQuirkMode()){M-=2;K-=2}}else{var E=this.isFixed(I);M+=parseInt(I.offsetLeft)||0;K+=parseInt(I.offsetTop)||0;while(A){M+=parseInt(A.offsetLeft)||0;K+=parseInt(A.offsetTop)||0;var H=/^t(able|d|h)$/;var D=A.tagName.toLowerCase();var N=(D=="table"||D=="td"||D=="th");if((skyscanner.snippets.core.Browser.isMozilla()&&!N)||(skyscanner.snippets.core.Browser.isSafari()&&Math.round(skyscanner.snippets.core.Browser.getVer())!=2)){var C=document.defaultView.getComputedStyle(A,null);M+=parseInt(C.getPropertyValue("border-left-width"))||0;K+=parseInt(C.getPropertyValue("border-top-width"))||0;E=E||this.isFixed(A);if(A.tagName.toLowerCase()!="body"){G=A}}A=A.offsetParent}var B=I.parentNode;while(B&&B.tagName&&!/^body|html$/i.test(B.tagName)){var C=document.defaultView.getComputedStyle(B,null);var O=C.getPropertyValue("display");if(!/^inline|table.*$/i.test(O)){M-=parseInt(B.scrollLeft)||0;K-=parseInt(B.scrollTop)||0}if(skyscanner.snippets.core.Browser.isMozilla()){if(C.getPropertyValue("overflow")!="visible"){M+=parseInt(C.getPropertyValue("border-left-width"))||0;K+=parseInt(C.getPropertyValue("border-top-width"))||0}}B=B.parentNode}var C=document.defaultView.getComputedStyle(G,null);var F=C.getPropertyValue("position");if((skyscanner.snippets.core.Browser.isSafari()&&Math.round(skyscanner.snippets.core.Browser.getVer())==2&&(E||F=="absolute"))||(skyscanner.snippets.core.Browser.isMozilla()&&F!="absolute")){M-=parseInt(I.ownerDocument.body.offsetLeft)||0;K-=parseInt(I.ownerDocument.body.offsetTop)||0}if(E){M+=Math.max(I.ownerDocument.documentElement.scrollLeft,I.ownerDocument.body.scrollLeft);K+=Math.max(I.ownerDocument.documentElement.scrollTop,I.ownerDocument.body.scrollTop)}}J.left=M;J.top=K;return J};DOMOperations.disableTextSelecting=function(A){if(skyscanner.snippets.core.Browser.isIE()||skyscanner.snippets.core.Browser.isSafari()){A.onselectstart=function(){return false}}else{if(skyscanner.snippets.core.Browser.isMozilla()){A.style.MozUserSelect="none"}else{A.unselectable="on";A.mousedown=function(){return false}}}A.style.cursor="default"};DOMOperations.moveTo=function(B,E,A){if(typeof A=="undefined"){A=false}if(A){var D=skyscanner.$D.getStyle(B.parentNode,"position");if(D=="relative"||D=="absolute"){var C=skyscanner.$D.getRegion(B.parentNode);if(E.left!=null){E.left-=C.left}E.top-=C.top;if(E.right!=null){var C=skyscanner.$D.getRegion(B.parentNode);E.right=C.right-E.right}}if(E.left!=null){E.left-=parseInt(DOMOperations.getStyle(B,"margin-left"))||0}E.top-=parseInt(DOMOperations.getStyle(B,"margin-top"))||0}if(E.left!=null){B.style.left=E.left+"px"}if(E.right!=null){B.style.right=E.right+"px"}B.style.top=E.top+"px"};DOMOperations.get=function(B){var A=document.getElementById(B);return A};DOMOperations.hasClass=function(D,C){var B=D.className.split(" ");for(var A=0;A<B.length;A++){if(B[A]==C){return true}}return false};DOMOperations.removeCSSClass=function(D,C){var B=D.className.split(" ");var E="";if(B||B.length>0){for(var A=0;A<B.length;A++){if(B[A]!=C){if(E!=""){E+=" "}E+=B[A]}}}D.className=E};DOMOperations.addCSSClass=function(D,C){if(D.className&&D.className.length>0){var B=D.className.split(" ");var E=false;for(var A=0;A<B.length;A++){if(B[A]==C){E=true;break}}if(!E){D.className+=" "+C}}else{D.className+=C}};DOMOperations.createCSSNode=function(B){var C=document.getElementsByTagName("head")[0];var A=document.createElement("link");A.type="text/css";A.rel="stylesheet";A.href=B;C.appendChild(A)};DOMOperations.setStyle=function(D,C,E){if(typeof D=="undefined"||D==null){return false}if(typeof C=="undefined"||C==null||C==""){return false}if(typeof E=="undefined"||E==null||C==""){return false}var B=skyscanner.$U.toCamel(C);if(typeof D.style=="undefined"&&typeof D.push!="undefined"){for(var A=0;A<D.length;A++){if(typeof D[A].style!="undefined"){D[A].style[B]=E}}}else{if((typeof D.style)!="undefined"){D.style[B]=E}}};DOMOperations.getElementsByClassName=function(F,B,D){if(typeof F=="undefined"){return[]}if(typeof F=="string"){F=document.getElementById(F)}var E=[];var A=[];var I=B.split(" ");for(var H=0;H<I.length;H++){A=F.getElementsByTagName(I[H]);for(var C=0;C<A.length;C++){if(A[C].className!=""&&D!="*"){var G=new RegExp("\\b"+D+"\\b");if(G.test(A[C].className)){E.push(A[C])}}else{if(D=="*"){E.push(A[C])}if(D==""&&A[C].className==""){E.push(A[C])}}}}return E};DOMOperations.arrGec=function(A,B,C){return DOMOperations.getElementsByClassName(A,B,C)};DOMOperations.gec=function(A,B,C){return DOMOperations.arrGec(A,B,C)[0]};DOMOperations.arrGecRun=function(B,D,E,F){var A=DOMOperations.getElementsByClassName(B,D,E);for(var C=0;C<A.length;C++){F(A[C])}return A};DOMOperations.getMaxHeight4El=function(E,F){var D=F.childNodes;var B=F.offsetHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var A=document.defaultView.getComputedStyle(F,null);B-=parseInt(A.getPropertyValue("border-top-width"))||0;B-=parseInt(A.getPropertyValue("border-bottom-width"))||0;B-=parseInt(A.getPropertyValue("padding-top"))||0;B-=parseInt(A.getPropertyValue("padding-bottom"))||0}else{if(!skyscanner.snippets.core.Browser.isQuirkMode()){B-=parseInt(F.currentStyle.borderTopWidth)||0;B-=parseInt(F.currentStyle.borderBottomWidth)||0;B-=parseInt(F.currentStyle.paddingTop)||0;B-=parseInt(F.currentStyle.paddingBottom)||0}}if(D&&D.length>0){for(var C=0;C<D.length;C++){if(D[C].offsetHeight&&D[C]!=E){if(DOMOperations.getStyle(D[C],"position")!="absolute"){B-=D[C].offsetHeight}}}}return B};DOMOperations.removeElement=function(A){if(A.parentNode){A.parentNode.removeChild(A)}};DOMOperations.getPageScroll=function(){var A;var B;if(self.pageYOffset){A=self.pageYOffset;B=self.pageXOffset}else{if(document.documentElement&&document.documentElement.scrollTop){A=document.documentElement.scrollTop;B=document.documentElement.scrollLeft}else{if(document.body){A=document.body.scrollTop;B=document.body.scrollLeft}}}return{left:B,top:A}};DOMOperations.getMouseXY=function(C){if(!C){var C=window.event}if(C.pageX==null&&C.clientX!=null){var B=document.documentElement,A=document.body;C.pageX=C.clientX+(B&&B.scrollLeft||A&&A.scrollLeft||0)-(B.clientLeft||0);C.pageY=C.clientY+(B&&B.scrollTop||A&&A.scrollTop||0)-(B.clientTop||0)}return{left:C.pageX,top:C.pageY}};DOMOperations.isElementAreaClicked=function(D,B){var C=false;var A;if(!D){D=window.event}if(!A){A=D.target}if(!A){A=D.srcElement}while(A!=null){try{if(A==B){C=true;break}}catch(D){}try{A=A.parentNode}catch(D){A=null}}return C};DOMOperations.getElWidth=function(D,B){var C=D.offsetWidth;if(document.defaultView&&document.defaultView.getComputedStyle){var E=document.defaultView.getComputedStyle(D,null);C-=parseInt(E.getPropertyValue("padding-right"))||0;C-=parseInt(E.getPropertyValue("padding-left"))||0;var A=document.defaultView.getComputedStyle(B,null);C-=parseInt(A.getPropertyValue("border-left-width"))||0;C-=parseInt(A.getPropertyValue("border-right-width"))||0;C-=parseInt(A.getPropertyValue("padding-right"))||0;C-=parseInt(A.getPropertyValue("padding-left"))||0}else{if(!skyscanner.snippets.core.Browser.isQuirkMode()){var F=0;F+=parseInt(D.currentStyle.paddingLeft)||0;F+=parseInt(D.currentStyle.paddingRight)||0;F+=parseInt(B.currentStyle.borderLeftWidth)||0;F+=parseInt(B.currentStyle.borderRightWidth)||0;F+=parseInt(B.currentStyle.paddingLeft)||0;F+=parseInt(B.currentStyle.paddingRight)||0;C-=F}}return C};DOMOperations.getStyle=function(D,B){var B=skyscanner.$U.toCamel(B);if(D==null){return null}if(B==null||B==""){return null}if(typeof D.style=="undefined"){return null}if(document.defaultView&&document.defaultView.getComputedStyle){var C=document.defaultView.getComputedStyle(D,null);var F="";for(var A=0;A<B.length;A++){var E=B[A];if(!skyscanner.$U.isUpperCase(E)){F+=E}else{F+="-"+E.toLowerCase()}}return C.getPropertyValue(F)}else{return D.currentStyle[B]}};DOMOperations.getRegion=function(B){var A=DOMOperations.calcAbsPos(B);A.right=A.left+B.offsetWidth;A.bottom=A.top+B.offsetHeight;return A};DOMOperations.getWindowSize=function(){var A={width:0,height:0};if(typeof (window.innerWidth)=="number"){A.width=window.innerWidth;A.height=window.innerHeight}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){A.width=document.documentElement.clientWidth;A.height=document.documentElement.clientHeight}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){A.width=document.body.clientWidth;A.height=document.body.clientHeight}}}return A};exportSymbol("skyscanner.snippets.core.DOMOperations",DOMOperations);skyscanner.$D=skyscanner.snippets.core.DOMOperations;function JsDebug(){}JsDebug.prototype.error=function(){};JsDebug.prototype.warning=function(){};JsDebug.prototype.info=function(A){};JsDebug.prototype.register=function(A){};JsDebug.prototype.enableFromUrl=function(){};exportSymbol("skyscanner.diagnostic.InputUnit",function(){});exportSymbol("skyscanner.diagnostic.OutputUnit",function(){});exportSymbol("skyscanner.log",new JsDebug);function Utils(){}Utils.isDefined=function(variable){return eval("(typeof("+variable+') != "undefined");')};Utils.setCookie=function(C,E,B){var A=0;if(B!=null){A=Math.round((B.getTime()-new Date().getTime())/(1000*60*60));if(A<0){A=0}}var D=C+"="+escape(E);if(A||(0==A)){D+="; max-age="+(A*3600);var F=new Date();F.setHours(F.getHours()+A);D+="; expires="+F.toGMTString()}D+="; path=/";document.cookie=D};Utils.getCookie=function(B){var D=B+"=";var A=document.cookie.split(";");for(var C=0;C<A.length;C++){var E=A[C];while(E.charAt(0)==" "){E=E.substring(1,E.length)}if(E.indexOf(D)==0){return E.substring(D.length,E.length)}}return null};Utils.isNonLatinAlphLanguage=function(A){return"gr_ja_ru_zh_zw_ko".indexOf(A.toLowerCase())>-1};Utils.isNull=function(A){return A===null};Utils.setValueInSelectControl=function(A,C){for(var B=0;B<A.options.length;B++){if(C==A.options[B].value){A.selectedIndex=B;return }}};Utils.addOptionToSelectControl=function(A,B,D){var C=new Option(B,D);if(A.options.add){A.options.add(C)}else{A.appendChild(C)}return C};exportSymbol("skyscanner.snippets.core.Utils",Utils);skyscanner.$U=skyscanner.snippets.core.Utils;Utils.parseYMDate=function(F){if(F==null||F==""){return null}var E=new RegExp("^(\\d\\d)(\\d\\d)$");var A=E.exec(F);if(A!=null){if(A[1]!=null&&A[2]!=null){var D=parseInt(A[1],10)+2000;var C=parseInt(A[2],10)-1;var B=new Date(Date.UTC(D,C,1,0,0,0));return B}}else{return null}};Utils.parseYMDDate=function(C){if(C==null||C==""){return null}var G=new RegExp("^(\\d\\d)(\\d\\d)(\\d\\d)$");var A=G.exec(C);if(A!=null){if(A[1]!=null&&A[2]!=null){var F=parseInt(A[1],10)+2000;var E=parseInt(A[2],10)-1;var B=parseInt(A[3],10);var D=new Date(Date.UTC(F,E,B,0,0,0));return D}}return null};Utils.parseFullDateTime=function(A){if(A==null||A==""){return null}var E=new RegExp("^(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)$");var B=E.exec(A);if(B!=null){if(B[1]!=null&&B[2]!=null&&B[3]!=null&&B[4]!=null&&B[5]!=null){var H=parseInt(B[1],10)+2000;var F=parseInt(B[2],10)-1;var I=parseInt(B[3],10);var C=parseInt(B[4],10);var D=parseInt(B[5],10);var G=new Date(H,F,I,C,D,0);return G}}return null};Utils.DatetoYYMMDDHHMM=function(D){var C=Utils.DatetoYYMMDD(D);var B=D.getHours();var A=D.getMinutes();C+=Math.floor(B/10)+""+Math.floor(B%10);C+=Math.floor(A/10)+""+Math.floor(A%10);return C};Utils.DatetoYYMMDD=function(C){var B=Utils.DatetoYYMM(C);var A=C.getDate();B+=Math.floor(A/10)+""+Math.floor(A%10);return B};Utils.DatetoYYMM=function(C){var B="";var D=C.getFullYear()-2000;var A=C.getMonth()+1;B+=Math.floor(D/10)+""+Math.floor(D%10)+""+Math.floor(A/10)+""+Math.floor(A%10);return B};Utils.compareYM=function(B,A){if(B==null&&A==null){return true}if(B==null||A==null){return false}return(B.getFullYear()==A.getFullYear()&&B.getMonth()==A.getMonth())};Utils.compareYMD=function(B,A){if(B==null&&A==null){return true}if(B==null||A==null){return false}if(Utils.compareYM(B,A)){if(B!=null&&A!=null){return B.getDate()==A.getDate()}}else{return false}};Utils.isDate=function(A){return Utils.isYMDate(A)||Utils.isYMDDate(A)};Utils.isYMDate=function(B){var A=Utils.parseYMDate(B);return A!=null};Utils.isYMDDate=function(B){var A=Utils.parseYMDDate(B);return A!=null};Utils.getMonthDays4Year=function(A){var B=new Array(31,28,31,30,31,30,31,31,30,31,30,31);if(((A%4==0)&&(A%100!=0))||(A%400==0)){B[1]=29}return B};Utils.removeTime=function(A){return new Date(A.getFullYear(),A.getMonth(),A.getDate())};Utils.getServerTime=function(){if(skyscanner.loader.today!=undefined){return skyscanner.loader.today}return null};Utils.getDayOfWeek=function(A,B){var C=A-B;if(C>=7){C=C%7}if(C<0){C+=7}return C};Utils.utf8=function(B){var E,D,A="",C=0;while(C<B.length){E=B.charCodeAt(C++);if(E>=56320&&E<57344){continue}if(E>=55296&&E<56320){if(C>=B.length){continue}D=B.charCodeAt(C++);if(D<56320||E>=56832){continue}E=((E-55296)<<10)+(D-56320)+65536}if(E<128){A+=String.fromCharCode(E)}else{if(E<2048){A+=String.fromCharCode(192+(E>>6),128+(E&63))}else{if(E<65536){A+=String.fromCharCode(224+(E>>12),128+(E>>6&63),128+(E&63))}else{A+=String.fromCharCode(240+(E>>18),128+(E>>12&63),128+(E>>6&63),128+(E&63))}}}}return A};Utils.toHex=function(B){var A="0123456789ABCDEF";return A.charAt(B>>4)+A.charAt(B&15)};Utils.encodeURIComponentNew=function(C){var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";var C=Utils.utf8(C),E,A="";for(var B=0;B<C.length;B++){if(D.indexOf(C.charAt(B))==-1){A+="%"+Utils.toHex(C.charCodeAt(B))}else{A+=C.charAt(B)}}return A};Utils.makeValidJsName=function(C){var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";var C=Utils.utf8(C),E,A="";for(var B=0;B<C.length;B++){if(D.indexOf(C.charAt(B))==-1){A+=Utils.toHex(C.charCodeAt(B))}else{A+=C.charAt(B)}}return A};Utils.pad0=function(A){var A=""+A;return((A.length==1)?"0"+A:A)};Utils.isUpperCase=function(A){return(A>="A")&&(A<="Z")};Utils.substitute=function(D,G){var J=D;var H=[];var I=false;var F="";for(var B=0;B<D.length;B++){var C=D.charAt(B);if(I&&C!="}"){F+=C}if(C=="{"){if(I){F=""}I=true}if(C=="}"&&I){if(F.match(/[a-z0-9]+/gi)){var E=H.length;H[E]=F}F="";I=false}}for(var B=0;B<H.length;B++){var A=H[B];var F=typeof G[A]!="undefined"?G[A]:"{"+A+"}";J=J.replace("{"+A+"}",F)}return J};Utils.parseXML=function(C){var A=null;try{A=new ActiveXObject("Microsoft.XMLDOM");A.async="false";A.loadXML(C)}catch(B){try{parser=new DOMParser();A=parser.parseFromString(C,"text/xml")}catch(B){}}return A};Utils.toCamel=function(A){var B=function(D){var C=/(-[a-z])/i.exec(D);return D.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase())};while(A.indexOf("-")>-1){A=B(A)}return A};Utils.trim=function(B,A){return Utils.ltrim(Utils.rtrim(B,A),A)};Utils.ltrim=function(B,A){A=A||"\\s";return B.replace(new RegExp("^["+A+"]+","g"),"")};Utils.rtrim=function(B,A){A=A||"\\s";return B.replace(new RegExp("["+A+"]+$","g"),"")};exportSymbol("skyscanner.snippets.CSS.ISO.MAIN_CON","ss_isopc");exportSymbol("skyscanner.snippets.CSS.FSC.MAIN_CON","ss_fsc");exportSymbol("skyscanner.snippets.CSS.FSC.HEADER","ss_fsc_header");exportSymbol("skyscanner.snippets.CSS.FSC.HEADER1","ss_fsc_header_row1");exportSymbol("skyscanner.snippets.CSS.FSC.HEADER2","ss_fsc_header_row2");exportSymbol("skyscanner.snippets.CSS.FSC.CONTENT","ss_fsc_content");exportSymbol("skyscanner.snippets.CSS.FSC.NAV_PANE","ss_fsc_navigation");exportSymbol("skyscanner.snippets.CSS.FSC.NEXT","ss_fsc_navigation_next_cont");exportSymbol("skyscanner.snippets.CSS.FSC.NEXT_ANCHOR","ss_fsc_navigation_next_link");exportSymbol("skyscanner.snippets.CSS.FSC.ADVERT","ss_fsc_advert");exportSymbol("skyscanner.snippets.CSS.FSC.ADVERT_CONT","ss_fsc_advert_cont");exportSymbol("skyscanner.snippets.CSS.FSC.FOOTER","ss_fsc_footer");exportSymbol("skyscanner.snippets.CSS.FSC.AS_OUTBOUND_FIELD","ss_fsc_outbound_auto_suggest");exportSymbol("skyscanner.snippets.CSS.FSC.AS_INBOUND_FIELD","ss_fsc_inbound_auto_suggest");exportSymbol("skyscanner.snippets.CSS.COMMON.TABLE","ss_table");exportSymbol("skyscanner.snippets.CSS.COMMON.TABLE_CONTENT","ss_table_rows_cont");exportSymbol("skyscanner.snippets.CSS.COMMON.TABLE_ROWS","ss_table_rows");exportSymbol("skyscanner.snippets.CSS.SKYSCANNER_CSS_URL","/fly/style/snippets/snippet.css");exportSymbol("skyscanner.snippets.SNIPPET_PATH","ajax/snippets/snippets.js");exportSymbol("skyscanner.snippets.PARAMS.SNIPPET_ID","snippetid");exportSymbol("skyscanner.snippets.PARAMS.VERSION","version");exportSymbol("skyscanner.snippets.PARAMS.ACTION","action");exportSymbol("skyscanner.snippets.PARAMS.HIST","hist");exportSymbol("skyscanner.snippets.PARAMS.LOAD_TEXTS","load_texts");exportSymbol("skyscanner.snippets.PARAMS.SNIPPET_TYPE","snippettype");exportSymbol("skyscanner.snippets.PARAMS.VIEW","view");exportSymbol("skyscanner.snippets.PARAMS.CONF_ANCHOR","conf_anchor");exportSymbol("skyscanner.snippets.PARAMS.CONF_ANCHOR_ACCEPTED","conf_anchor_accepted");exportSymbol("skyscanner.snippets.PARAMS.SORT_FLIGHT_PLACE","sortfp");exportSymbol("skyscanner.snippets.PARAMS.SORT_FLIGHT_TIME","sortft");exportSymbol("skyscanner.snippets.PARAMS.IPRECOGN","iprecogn");exportSymbol("skyscanner.snippets.PARAMS.CULTURE_ID","cultureid");exportSymbol("skyscanner.snippets.PARAMS.CCY","ccy");exportSymbol("skyscanner.snippets.PARAMS.UCY","ss_ucy");exportSymbol("skyscanner.snippets.PARAMS.OPLACE","oplace");exportSymbol("skyscanner.snippets.PARAMS.IPLACE","iplace");exportSymbol("skyscanner.snippets.PARAMS.ODATE","odate");exportSymbol("skyscanner.snippets.PARAMS.IDATE","idate");exportSymbol("skyscanner.snippets.PARAMS.WIDTH","width");exportSymbol("skyscanner.snippets.PARAMS.HEIGHT","height");exportSymbol("skyscanner.snippets.PARAMS.OVERRIDE_CSS","overridecss");exportSymbol("skyscanner.snippets.PARAMS.OWFC","owfc");exportSymbol("skyscanner.snippets.PARAMS.IWFC","iwfc");exportSymbol("skyscanner.snippets.PARAMS.OPLACE_GIP","oplace_gip");exportSymbol("skyscanner.snippets.PARAMS.ASSOCIATEID","associateid");exportSymbol("skyscanner.snippets.PARAMS.CLICKURL","clickurl");exportSymbol("skyscanner.snippets.PARAMS.WIDGET_INT","wdgt_int");exportSymbol("skyscanner.snippets.PARAMS.DISABLE_TRACKING_PARAMETERS","dis_track");exportSymbol("skyscanner.snippets.PARAMS.RECOGN_CULTURE_FROM_IP","lng_from_ip");exportSymbol("skyscanner.snippets.PARAMS.BACKGROUND_COLOR","back_color");exportSymbol("skyscanner.snippets.ACTIONS.GET_VIEW","getview");exportSymbol("skyscanner.snippets.ACTIONS.GET_ADVERT","getadvert");exportSymbol("skyscanner.snippets.ACTIONS.GENERATE_CODE","generatecode");exportSymbol("skyscanner.snippets.ACTIONS.GENERATE_SKIN","prepareskin");exportSymbol("skyscanner.snippets.VIEW_DESTINATION_COUNTRIES","view_destination_countries");exportSymbol("skyscanner.snippets.VIEW_DESTINATION_CITIES","view_destination_cities");exportSymbol("skyscanner.snippets.VIEW_DEPARTURE_CITIES","view_departure_cities");exportSymbol("skyscanner.snippets.VIEW_YEAR","view_year");exportSymbol("skyscanner.snippets.VIEW_MONTH","view_month");exportSymbol("skyscanner.snippets.VIEW_DAY","view_day");exportSymbol("skyscanner.snippets.VIEW_SEARCH","view_search");exportSymbol("skyscanner.snippets.SORT_PLACE","place");exportSymbol("skyscanner.snippets.SORT_PRICE","price");exportSymbol("skyscanner.snippets.SORT_DATE","date");exportSymbol("skyscanner.snippets.SORT_ASC","1");exportSymbol("skyscanner.snippets.SORT_DESC","2");function SnippetUtlis(){}SnippetUtlis.isValidPlace=function(A){if(!A||A.length<=0){return false}if(A.length<2||A.length>4){return false}return true};SnippetUtlis.isCountry=function(A){if(!A||A.length<=0){return false}if(A&&A.length!=2){return false}return true};SnippetUtlis.isCityOrAirport=function(A){if(!A||A.length<=0){return false}if(A&&A.length!=3&&A.length!=4){return false}return true};exportSymbol("skyscanner.snippets.SnippetUtlis",SnippetUtlis);function CultureSupport(){}CultureSupport.getText=function(B,A){return CultureSupport.getTextWithDefault(B,null,A)};CultureSupport.getTextWithDefault=function(F,D,E){var B=skyscanner.texts[F];if(!B&&D!=null){B=skyscanner.texts[D]}if(!B){for(var C in skyscanner.texts){if(typeof skyscanner.texts[C]!="function"){B=skyscanner.texts[C];break}}}var A=B[E];return A};CultureSupport.getLongMonths=function(C){skyscanner.log.info("[CultureSupport] get month names for langId="+C);var A=new Array();for(var B=0;B<12;B++){A[B]=CultureSupport.getText(C,"txt_maMN_"+B)}return A};CultureSupport.getShortWeekDays=function(C){skyscanner.log.info("[CultureSupport] get week days names for langId="+C);var A=new Array();for(var B=0;B<7;B++){A[B]=CultureSupport.getText(C,"txt_maWD2_"+B)}return A};CultureSupport.hasTextsForLanguage=function(A){return skyscanner.texts[A]!=null&&skyscanner.texts[A]!=undefined};CultureSupport.getShortDateFormat=function(A){return skyscanner.cultureResources[A!="xx"?A:"en"].sd};exportSymbol("skyscanner.snippets.CultureSupport",CultureSupport);skyscanner.$CS=CultureSupport;function BaseSnippet(){}BaseSnippet.cloneParams=function(C,A){if(!A){A=[]}for(var B in C){A[B]=SnippetParam.clone(C[B])}return A};BaseSnippet.prototype.create=function(){this.snippetElement=null;this.cssName=null;this.userCssName=null;this.core=skyscanner.snippets.core;this.DOMOp=this.core.DOMOperations;this.Utils=this.core.Utils;this.cssConsts=skyscanner.snippets.CSS;this.log=skyscanner.log;this.loadingPaneEl=null;this.loadingConEl=null;this.loadingTextEl=null;this.lastSendedRequestID=null;this.lastLoadingTimerID=null;this.attemptNumber=0;this.snWidth=0;this.snHeight=0;this.snippetConfAnchor=null;this.adServerUrl=null;this.advertParams={contentType:"html",adServerUrl:""};this.advertParams.adServerUrl=this.preparelSSAdUrl();this.snippetID="s"+skyscanner.snippets.snippetsCount++;skyscanner.snippets.Snippets[this.snippetID]=this;this.params=[];this.setParam(skyscanner.snippets.PARAMS.SNIPPET_ID,this.snippetID,false);this.setParam(skyscanner.snippets.PARAMS.IPRECOGN,"1",false);this.setParam(skyscanner.snippets.PARAMS.RECOGN_CULTURE_FROM_IP,"0",false);this.setParam(skyscanner.snippets.PARAMS.CULTURE_ID,"nl",true);this.setParam(skyscanner.snippets.PARAMS.CCY,"",true);this.setParam(skyscanner.snippets.PARAMS.OPLACE,"",true);this.setParam(skyscanner.snippets.PARAMS.IPLACE,"",true);this.setParam(skyscanner.snippets.PARAMS.ODATE,"",true);this.setParam(skyscanner.snippets.PARAMS.IDATE,"",true);this.setParam(skyscanner.snippets.PARAMS.OWFC,"",true);this.setParam(skyscanner.snippets.PARAMS.IWFC,"",true);this.setParam(skyscanner.snippets.PARAMS.WIDTH,"",false);this.setParam(skyscanner.snippets.PARAMS.HEIGHT,"",false);this.setParam(skyscanner.snippets.PARAMS.UCY,"",true);this.setParam(skyscanner.snippets.PARAMS.OPLACE_GIP,"",false);this.setParam(skyscanner.snippets.PARAMS.WIDGET_INT,"",false);this.setParam(skyscanner.snippets.PARAMS.DISABLE_TRACKING_PARAMETERS,"",false);this.stateValidator=SnippetParam.equalStates;this.history=null;this.clickUrl=null;this.history_copy=null;this.params_copy=null;this.prevCultureId=null;this.openNewWindowOnSearch=true;this.adults=1;this.children=0;this.infants=0;skyscanner.log.register(new skyscanner.diagnostic.OutputUnit());skyscanner.log.register(new skyscanner.diagnostic.InputUnit());skyscanner.log.enableFromUrl()};BaseSnippet.prototype.setPassengers=function(A,B,D){var C=new RegExp("^[0-8]{1}$");(typeof A);if((typeof A=="number"||A.match(C))&&(typeof B=="number"||B.match(C))&&(typeof D=="number"||D.match(C))){if(A>8||A<1){return false}if(B>8||B<0){return false}this.adults=A;this.children=B;if(D>A){return false}this.infants=D;return true}return false};BaseSnippet.prototype.setSearchTargetWindow=function(A){this.openNewWindowOnSearch=A};BaseSnippet.prototype.setDisabledTrackingParameters=function(A){this.setParam(skyscanner.snippets.PARAMS.DISABLE_TRACKING_PARAMETERS,A?"1":"")};BaseSnippet.prototype.isDisabledTrackingParameters=function(){return this.getParamValue(skyscanner.snippets.PARAMS.DISABLE_TRACKING_PARAMETERS)=="1"};BaseSnippet.prototype.setWidgetInt=function(A){this.setParam(skyscanner.snippets.PARAMS.WIDGET_INT,A?"1":"")};BaseSnippet.prototype.isWidgetInt=function(){return this.getParamValue(skyscanner.snippets.PARAMS.WIDGET_INT)=="1"};BaseSnippet.prototype.prepareClickUrl=function(A){if(this.clickUrl!=null&&this.clickUrl!=""){A=this.Utils.encodeURIComponentNew(A);return this.clickUrl.replace("@@url@@",A)}else{return null}};BaseSnippet.prototype.updateClickAnchor=function(F,A){var E=skyscanner.$D.getElementsByClassName(F,"A",A);if(E!=null&&E.length>0){for(var D=0;D<E.length;D++){var B=E[D];var C=this.prepareClickUrl(B.href);if(C!=null){B.href=C}}}};BaseSnippet.prototype.updateAllClickAnchors=function(A,C){var B=skyscanner.$D.gec(this.snippetElement,A,C);if(B!=null){this.updateClickAnchor(B,"*")}};BaseSnippet.prototype.setClickUrl=function(A){this.clickUrl=A.replace(/@@url@@/gi,"@@url@@")};BaseSnippet.prototype.getClickUrl=function(){return this.clickUrl};BaseSnippet.prototype.setUcy=function(A){if(A==null||A.length==2||A==""){if(A==null){A=""}this.setParam(skyscanner.snippets.PARAMS.UCY,A)}};BaseSnippet.prototype.getUcy=function(){var A=this.getParamValue(skyscanner.snippets.PARAMS.UCY);if(A==""){A=skyscanner.loader.Ucy}return A};BaseSnippet.prototype.setDeparture=function(A){if(A==null||A.length>=2&&A.length<=4||A==""){if(A==null){A=""}this.setParam(skyscanner.snippets.PARAMS.OPLACE,A);this.setDepartureGuessedByGeoIp(false)}};BaseSnippet.prototype.setCultureFromIP=function(A){this.setParam(skyscanner.snippets.PARAMS.RECOGN_CULTURE_FROM_IP,A?"1":"0")};BaseSnippet.prototype.isCultureFromIP=function(){return this.getParamValue(skyscanner.snippets.PARAMS.RECOGN_CULTURE_FROM_IP)=="1"};BaseSnippet.prototype.setDepartureGuessedByGeoIp=function(A){this.setParam(skyscanner.snippets.PARAMS.OPLACE_GIP,A?"1":"0")};BaseSnippet.prototype.isDepartureGuessedByGeoIp=function(){return this.getParamValue(skyscanner.snippets.PARAMS.OPLACE_GIP)=="1"};BaseSnippet.prototype.getDeparture=function(){return this.getParamValue(skyscanner.snippets.PARAMS.OPLACE)};BaseSnippet.prototype.setDestination=function(A){if(A.length>=2&&A.length<=4||A==""||A==null){if(A==null){A=""}this.setParam(skyscanner.snippets.PARAMS.IPLACE,A)}};BaseSnippet.prototype.getDestination=function(){return this.getParamValue(skyscanner.snippets.PARAMS.IPLACE)};BaseSnippet.prototype.setIPRecognition=function(A){this.setParam(skyscanner.snippets.PARAMS.IPRECOGN,A?"1":"0")};BaseSnippet.prototype.isIPRecognition=function(){return this.getParamValue(skyscanner.snippets.PARAMS.IPRECOGN)=="1"};BaseSnippet.prototype.setCulture=function(A){if(A==null||typeof (A)=="undefined"){A=""}A=A.toLowerCase();this.setParam(skyscanner.snippets.PARAMS.CULTURE_ID,A)};BaseSnippet.prototype.getCulture=function(){return this.getParamValue(skyscanner.snippets.PARAMS.CULTURE_ID)};BaseSnippet.prototype.setCurrency=function(A){this.setParam(skyscanner.snippets.PARAMS.CCY,A)};BaseSnippet.prototype.getCurrency=function(){return this.getParamValue(skyscanner.snippets.PARAMS.CCY)};BaseSnippet.prototype.setODate=function(A){this.setParam(skyscanner.snippets.PARAMS.ODATE,A)};BaseSnippet.prototype.getODate=function(){return this.getParamValue(skyscanner.snippets.PARAMS.ODATE)};BaseSnippet.prototype.setIDate=function(A){this.setParam(skyscanner.snippets.PARAMS.IDATE,A)};BaseSnippet.prototype.getIDate=function(){return this.getParamValue(skyscanner.snippets.PARAMS.IDATE)};BaseSnippet.prototype.getWidth=function(){return this.getParamValue(skyscanner.snippets.PARAMS.WIDTH)};BaseSnippet.prototype.setWidth=function(A){this.setParam(skyscanner.snippets.PARAMS.WIDTH,A)};BaseSnippet.prototype.getHeight=function(){return this.getParamValue(skyscanner.snippets.PARAMS.HEIGHT)};BaseSnippet.prototype.setHeight=function(A){this.setParam(skyscanner.snippets.PARAMS.HEIGHT,A)};BaseSnippet.prototype.clearHistory=function(){this.history=new skyscanner.snippets.SnippetHistory(this.stateValidator)};BaseSnippet.prototype.setOWFC=function(A){this.setParam(skyscanner.snippets.PARAMS.OWFC,A)};BaseSnippet.prototype.getOWFC=function(){return this.getParamValue(skyscanner.snippets.PARAMS.OWFC)};BaseSnippet.prototype.setIWFC=function(A){this.setParam(skyscanner.snippets.PARAMS.IWFC,A)};BaseSnippet.prototype.getIWFC=function(){return this.getParamValue(skyscanner.snippets.PARAMS.IWFC)};BaseSnippet.prototype.setAdServer=function(A,B){this.advertParams.contentType=B;this.advertParams.adServerUrl=A};BaseSnippet.prototype.setUrlParam=function(A,B){this.setParam("up-"+A,B)};BaseSnippet.prototype.getAdServer=function(){return this.adServerUrl};BaseSnippet.prototype.getHistory=function(){return this.history};BaseSnippet.prototype.getSnippetEl=function(){return this.snippetElement};BaseSnippet.prototype.isFirstDraw=function(){return this.history.getHistoryPos()<=0};BaseSnippet.prototype.getText=function(A){return CultureSupport.getTextWithDefault(this.getCulture(),this.prevCultureId,A)};BaseSnippet.prototype.update=function(B){for(var A in B){if(B[A]){this.setParam(A,B[A])}}};BaseSnippet.prototype.preparelSSAdUrl=function(){var A=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;A+=skyscanner.snippets.SNIPPET_PATH;A+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GET_ADVERT;if(skyscanner.loader.KeyVerified){A+="&"+skyscanner.loader.PARAMS.KEY+"="+skyscanner.loader.ApiKey}A+="&"+skyscanner.loader.PARAMS.VERSION+"="+skyscanner.snippets.version;A+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;A=skyscanner.loader.addParameters(A);return A};BaseSnippet.prototype.prepareSkinUrl=function(C){var B=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;B+=skyscanner.snippets.SNIPPET_PATH;B+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GENERATE_SKIN;var A=skyscanner.snippets.PARAMS.SNIPPET_TYPE;B+="&"+A+"="+this.params[A].value;B+="&"+skyscanner.snippets.PARAMS.BACKGROUND_COLOR+"="+C;B+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;return B};BaseSnippet.prototype.prepareInitialCodeUrl=function(E,B,G){var C=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;C+=skyscanner.snippets.SNIPPET_PATH;C+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GENERATE_CODE;for(var D in this.params){var F=this.params[D];if(F&&F.value!==""&&F.value&&typeof F.value!="undefined"){C+="&"+D+"="+F.value}}C+="&"+skyscanner.snippets.PARAMS.WIDTH+"="+E;C+="&"+skyscanner.snippets.PARAMS.HEIGHT+"="+B;var A=skyscanner.loader.getOverrideCcssEl();if(A!=null){C+="&"+skyscanner.snippets.PARAMS.OVERRIDE_CSS+"="+Utils.encodeURIComponentNew(A.href)}C+="&"+skyscanner.loader.PARAMS.VERSION+"="+skyscanner.snippets.version;C+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;if(G!=null&&G!=""){C+="&"+skyscanner.loader.PARAMS.KEY+"="+G}return C};BaseSnippet.prototype.generateInitialCode=function(D,A,F,G){if(typeof G=="undefined"){G=null}var E=new skyscanner.loader.ScriptRequest();var C=this;E.onComplete=function(H,I){if(F){F(H.code,H.example,H.advert)}};var B=this.prepareInitialCodeUrl(D,A,G);E.send(B,true)};BaseSnippet.prototype.generateSkin=function(D,E){var C=new skyscanner.loader.ScriptRequest();var B=this;C.onComplete=function(F,G){if(E){E(F)}};var A=this.prepareSkinUrl(D);C.send(A,true)};BaseSnippet.prototype.prepareUrl=function(){var A=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;A+=skyscanner.snippets.SNIPPET_PATH;A+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GET_VIEW;for(var B in this.params){var C=this.params[B];if(C&&C.value!==""&&typeof C.value!="undefined"){A+="&"+B+"="+C.value}}A+="&"+skyscanner.snippets.PARAMS.HIST+"="+this.history.getHistoryPos();A+="&"+skyscanner.snippets.PARAMS.LOAD_TEXTS+"="+(skyscanner.$CS.hasTextsForLanguage(this.getCulture())?"0":"1");if(skyscanner.loader.KeyVerified){A+="&"+skyscanner.loader.PARAMS.KEY+"="+skyscanner.loader.ApiKey}if(this.snippetConfAnchor!=null){if(!this.snippetConfAnchor.anchorAccepted){A+="&"+skyscanner.snippets.PARAMS.CONF_ANCHOR+"="+Utils.encodeURIComponentNew(this.snippetConfAnchor.anchor)}else{A+="&"+skyscanner.snippets.PARAMS.CONF_ANCHOR_ACCEPTED+"=1"}}else{A+="&"+skyscanner.snippets.PARAMS.CONF_ANCHOR+"="}A+="&"+skyscanner.loader.PARAMS.VERSION+"="+skyscanner.snippets.version;A+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;var D={};for(var B in skyscanner.snippets.PARAMS){D[B]=skyscanner.snippets.PARAMS[B]}for(var B in skyscanner.loader.PARAMS){D[B]=skyscanner.loader.PARAMS[B]}A=skyscanner.loader.addParameters(A,D);return A};BaseSnippet.prototype.getParam=function(A){if(this.params[A]){return this.params[A]}else{return null}};BaseSnippet.prototype.getParamValue=function(B){var A=this.getParam(B);if(A){return A.value}else{return null}};BaseSnippet.makeRoute=function(C,A){var B={};if(C==""){C=null}if(A==""){A=null}B.departureID=C;B.destinationID=A;return B};BaseSnippet.prototype.geRoute=function(){return BaseSnippet.makeRoute(this.getDeparture(),this.getDestination())};BaseSnippet.routesEqual=function(B,A){return(B.departureID==A.departureID&&B.destinationID==A.destinationID)};BaseSnippet.prototype.setParam=function(E,A,C){var D=this.geRoute();if(this.params[E]){this.params[E].value=A;if(C!=undefined&&C!=null){this.params[E].changeState=C}}else{this.params[E]=new SnippetParam(E,A,C)}if(E==skyscanner.snippets.PARAMS.OPLACE||E==skyscanner.snippets.PARAMS.IPLACE){var B=this.geRoute();if(!BaseSnippet.routesEqual(D,B)){this.onRouteChanged(D,B)}}};BaseSnippet.prototype.copyStateForLoadCancel=function(){this.history_copy=SnippetHistory.clone(this.history);this.params_copy=BaseSnippet.cloneParams(this.params)};BaseSnippet.prototype.goTo=function(C,B){if(this.isLoading()){this.cancelLoading()}this.copyStateForLoadCancel();if(C){skyscanner.log.info(C,"goTo");this.update(C);if(C[skyscanner.snippets.PARAMS.OPLACE]!=null){this.setDepartureGuessedByGeoIp(false)}}if(B==null||B==false){this.addToHistory()}var A=this.prepareUrl();this.runLoading(A)};BaseSnippet.prototype.isLoading=function(){return this.lastSendedRequestID!=null};BaseSnippet.prototype.addToHistory=function(){this.history.add(this.params)};BaseSnippet.prototype.updateCurrentHistoryPosition=function(){this.history.update(this.params)};BaseSnippet.prototype.sendRequest=function(C){var B="";var A=0;for(var E in this.params){var G=this.params[E];if(G&&G.value!=""){if(B!=""){B+=","}B+=E+":'"+this.params[E].value+"'";if(A>2){B+="<br>";A=0}A++}}if(skyscanner.log){skyscanner.log.info("<b>Send Request</b><br>skyscanner.snippets.Snippets."+this.snippetID+".goTo({"+B+"});")}var F=new skyscanner.loader.ScriptRequest();var D=this;F.onComplete=function(H,I){if(D.lastSendedRequestID==I){skyscanner.log.info(H,"response");D.attemptNumber=0;if(D.lastLoadingTimerID!=null){clearTimeout(D.lastLoadingTimerID);D.lastLoadingTimerID=null}D.lastSendedRequestID=null;D.hideLoadingBox();D.display(H)}};this.lastSendedRequestID=F.send(C,true)};BaseSnippet.prototype.hideLoadingBox=function(){if(this.loadingPaneEl!=null){this.loadingPaneEl.style.display="none";DOMOperations.removeElement(this.loadingPaneEl)}this.loadingPaneEl=null;this.loadingTextEl=null;this.loadingConEl=null;this.cancelEl=null};BaseSnippet.prototype.runLoading=function(E){var C=this.snippetElement.offsetWidth;var F=this.snippetElement.offsetHeight;this.loadingPaneEl=document.createElement("div");this.loadingPaneEl.className="ss_loading_background";this.loadingPaneEl.style.position="absolute";this.loadingPaneEl.style.zIndex=this.snippetElement.style.zIndex+99;this.loadingConEl=document.createElement("div");this.loadingConEl.className="ss_loading_cont";this.loadingConEl.style.position="absolute";this.loadingConEl.style.zIndex=this.snippetElement.style.zIndex+100;var D=document.createElement("div");D.className="ss_loading_circle";this.loadingTextEl=document.createElement("div");this.loadingTextEl.className="ss_msg_loading";if(this.snippetElement.firstChild){this.snippetElement.insertBefore(this.loadingPaneEl,this.snippetElement.firstChild)}else{this.snippetElement.appendChild(this.loadingPaneEl)}this.loadingConEl.appendChild(D);this.loadingConEl.appendChild(this.loadingTextEl);this.loadingPaneEl.appendChild(this.loadingConEl);this.loadingPaneEl.style.display="block";this.loadingPaneEl.style.visibility="hidden";this.loadingPaneEl.style.width=C+"px";this.loadingPaneEl.style.height=F+"px";var H=this.loadingConEl.offsetWidth;var A=this.loadingConEl.offsetHeight;var B={};B.left=0;B.top=0;B.left=Math.floor(C/2)-Math.floor(H/2);B.top=Math.floor(F/2)-Math.floor(A/2);this.DOMOp.moveTo(this.loadingConEl,B);this.loadingPaneEl.style.visibility="visible";this.attemptNumber=0;if(E){this.cancelEl=document.createElement("a");this.cancelEl.href="#";var G=document.createElement("div");G.className="ss_loading_cancel_container";G.appendChild(this.cancelEl);this.loadingConEl.appendChild(G);this.runNextAttempt(E,null)}else{this.loadingTextEl.innerHTML=this.getText("txtSnLoading")}};BaseSnippet.prototype.cancelLoading=function(){this.attemptNumber=0;if(this.lastLoadingTimerID!=null){clearTimeout(this.lastLoadingTimerID);this.lastLoadingTimerID=null}this.lastSendedRequestID=null;this.hideLoadingBox();this.history=SnippetHistory.clone(this.history_copy);this.params=BaseSnippet.cloneParams(this.params_copy);this.onCancelLoading()};BaseSnippet.prototype.prepareLoadingText=function(C){var A="";if(C!=null){A='<span class="ss_msg_loading_failed">'+this.getText("txtSnLoadingFailed").replace("@@number_of_seconds@@",C)+"</span>"}else{A=this.getText("txtSnLoading")}this.cancelEl.innerHTML=this.getText("txtSnLoadingCancel");var B=this;this.cancelEl.onclick=function(){B.cancelLoading();return false};return A};BaseSnippet.prototype.runNextAttempt=function(A,D){var B=this;if(D>0){B.loadingTextEl.innerHTML=B.prepareLoadingText(D);B.lastLoadingTimerID=setTimeout(function(){B.runNextAttempt(A,--D)},1000);return null}if(D!=0&&B.attemptNumber>0){D=5;B.loadingTextEl.innerHTML=B.prepareLoadingText(D);B.lastLoadingTimerID=setTimeout(function(){B.runNextAttempt(A,--D)},1000);return null}B.loadingTextEl.innerHTML=B.prepareLoadingText(null);B.sendRequest(A);B.attemptNumber++;var C=10000*Math.pow(2,B.attemptNumber-1);this.lastLoadingTimerID=setTimeout(function(){B.runNextAttempt(A)},C);if(B.attemptNumber==1){if(skyscanner.log){skyscanner.log.info("loading ... ")}}else{if(skyscanner.log){skyscanner.log.warning("loading (attempt: "+B.attemptNumber+")")}}};BaseSnippet.prototype.display=function(jsonData){if(jsonData.errorMessage==undefined){this.setCssClass()}if(this.snWidth==0||this.snHeight==0){this.snWidth=this.snippetElement.offsetWidth;this.snHeight=this.snippetElement.offsetHeight}eval("var displayFunc = "+jsonData.display);displayFunc(jsonData,this);this.updateCurrentHistoryPosition();this.prevCultureId=this.getCulture();this.onDisplay(jsonData)};BaseSnippet.prototype.setCssClass=function(){if(this.snippetElement){if(this.userCssName==null){this.userCssName=this.snippetElement.className}this.snippetElement.className=this.snippetElement.className+" "+this.cssName+" ss_snippet_lang_"+this.getCulture()}};BaseSnippet.prototype.draw=function(A){this.history=new skyscanner.snippets.SnippetHistory(this.stateValidator);this.snippetElement=A;if(this.snippetElement){if(this.snippetConfAnchor==null||!this.snippetConfAnchor.anchorAccepted){this.snippetConfAnchor=null;this.getSnippetAnchor(this.snippetElement)}this.goTo()}};BaseSnippet.prototype.getSnippetAnchor=function(G){for(var D=0;D<G.childNodes.length;D++){var F=G.childNodes[D];if(F.tagName&&F.tagName.toLowerCase()=="a"){if(F.href.toLowerCase().length>=0){var E=new RegExp("http://.*skyscanner.[a-z]{2,3}");var A=E.exec(F.href);if(A){this.snippetConfAnchor={};this.snippetConfAnchor.anchorAccepted=false;var C="<a";var B=F.attributes;for(var D=0;D<B.length;D++){if(B[D].value!=null&&B[D].value!=""&&B[D].specified){C+=" "+B[D].name.toLowerCase();C+='="'+B[D].value.toLowerCase()+'"'}}C+=">"+F.innerHTML+"</a>";this.snippetConfAnchor.anchor=C;if(this.snippetElement==G){F.style.visibility="hidden";F.style.display="none"}return }}}}if(document.body==G){return }this.getSnippetAnchor(G.parentNode)};BaseSnippet.prototype.goBack=function(){this.copyStateForLoadCancel();if(this.history.goBack()){var C=this.history.getParams();if(C){var D=this.geRoute();this.params=BaseSnippet.cloneParams(C);var B=this.geRoute();if(!BaseSnippet.routesEqual(D,B)){this.onRouteChanged(D,B)}var A=this.prepareUrl();this.runLoading(A)}}};BaseSnippet.prototype.goRestart=function(){this.copyStateForLoadCancel();if(this.history.goFirst()){var C=this.history.getParams();if(C){var D=this.geRoute();this.params=BaseSnippet.cloneParams(C);var B=this.geRoute();if(!BaseSnippet.routesEqual(D,B)){this.onRouteChanged(D,B)}var A=this.prepareUrl();this.runLoading(A)}}};BaseSnippet.prototype.onDisplay=function(A){};BaseSnippet.prototype.onCancelLoading=function(){};BaseSnippet.prototype.onRouteChanged=function(B,A){};exportSymbol("skyscanner.snippets.BaseSnippet",BaseSnippet);function SnippetParam(A,C,B){this.name=A;this.value=C;if(B){this.changeState=B}else{this.changeState=false}}SnippetParam.clone=function(B){var A=new SnippetParam(B.name,B.value,B.changeState);return A};SnippetParam.equalStates=function(D,C){var B=true;if(B){for(var A in D){if(D[A].changeState){if(C[A]==null||D[A].value!=C[A].value){B=false;break}}}}return B};exportSymbol("skyscanner.snippets.SnippetParam",SnippetParam);function SnippetHistory(A){this.pos=0;if(A){this.stateValidator=A}else{this.stateValidator=SnippetParam.equalStates}this.histParams=new Array()}SnippetHistory.prototype.goBack=function(){var A=false;if(this.getHistoryPos()>0){this.pos--;A=true}return A};SnippetHistory.prototype.goFirst=function(){var A=false;if(this.getHistoryPos()>0){this.pos=1;A=true}return A};SnippetHistory.prototype.getParams=function(){var A=this.histParams[this.pos-1];return A};SnippetHistory.prototype.setLanguageForAllHistoryPosition=function(C){if(this.histParams!=null){for(var A=0;A<this.histParams.length;A++){var B=this.histParams[A][skyscanner.snippets.PARAMS.CULTURE_ID];if(B){B.value=C}}}};SnippetHistory.prototype.setCurrencyForAllHistoryPosition=function(A){if(this.histParams!=null){for(var B=0;B<this.histParams.length;B++){var C=this.histParams[B][skyscanner.snippets.PARAMS.CCY];if(C){C.value=A}}}};SnippetHistory.prototype.getHistoryPos=function(){return this.pos-1};SnippetHistory.prototype.update=function(A){if(this.pos>0){this.histParams[this.pos-1]=BaseSnippet.cloneParams(A)}};SnippetHistory.prototype.add=function(D){if(this.pos==this.histParams.length){var C=false;if(this.histParams.length>0){C=this.stateValidator(this.histParams[this.pos-1],D)}if(!C){this.histParams[this.pos]=BaseSnippet.cloneParams(D);this.pos++}else{this.update(D)}}else{if(!this.stateValidator(this.histParams[this.pos-1],D)){if(!this.stateValidator(this.histParams[this.pos],D)){var A=new Array();for(var B=0;B<this.pos;B++){A[B]=this.histParams[B]}this.histParams=A;this.histParams[this.pos]=BaseSnippet.cloneParams(D);this.pos++}else{D=BaseSnippet.cloneParams(this.histParams[this.pos],D);this.pos++}}else{this.update(D)}}};SnippetHistory.clone=function(A){var B=new SnippetHistory(A.stateValidator);B.pos=A.pos;for(var C=0;C<A.histParams.length;C++){B.histParams[C]=BaseSnippet.cloneParams(A.histParams[C])}return B};exportSymbol("skyscanner.snippets.SnippetHistory",SnippetHistory);function ToolTip(A,C,B){this.el=A;this.text=C;DOMOperations.stopPropagation(B);this.init();this.clearTimer();this.startTimer()}ToolTip.prototype.clearTimer=function(){if(this.el.tooltip.tID!=null){clearTimeout(this.el.tooltip.tID);this.el.tooltip.tID=null}};ToolTip.prototype.getToolTipEl=function(){var B=document.body;var A=skyscanner.snippets.core.DOMOperations.getElementsByClassName(B,"div","ss_tooltip");if(A!=null&&A.length>0){return A[0]}else{var C=document.createElement("div");C.className="ss_tooltip";C.style.position="absolute";C.style.display="none";C.style.visibility="hidden";B.appendChild(C);C.style.zIndex=this.el.style.zIndex+99;return C}};ToolTip.prototype.show=function(){var A=this.getToolTipEl();if(this.el.tooltip.pos){skyscanner.snippets.core.DOMOperations.moveTo(A,this.el.tooltip.pos);A.innerHTML=this.text;A.style.display="block";A.style.visibility="visible"}};ToolTip.prototype.hide=function(){var A=this.getToolTipEl();A.style.display="none";A.style.visibility="hidden";A.innerHTML=""};ToolTip.prototype.init=function(){if(this.el.tooltip==null){var A=this;this.el.tooltip={};this.el.onmouseout=function(){A.clearTimer();A.hide()};this.el.onmousemove=function(C){A.el.tooltip.pos=skyscanner.snippets.core.DOMOperations.getMouseXY(C)};var B=this.el.onclick;this.el.onclick=function(C){if(B){B(C)}A.clearTimer();A.hide()}}};ToolTip.prototype.startTimer=function(){var A=this;this.el.tooltip.tID=setTimeout(function(){A.onShow()},600)};ToolTip.prototype.onShow=function(){this.el.tooltip.tID=null;this.show()};exportSymbol("skyscanner.ToolTip",ToolTip);function FlowingMessage(B,A){this.text=A;this.dom=skyscanner.snippets.core.DOMOperations;this.parent=B}FlowingMessage.prototype.getToolTipEl=function(){var C=document.body;var A=this.dom.getElementsByClassName(C,"div","ss_tooltip");var D=this.dom.getElementsByClassName(C,"div","ss_tooltip_shadow");if(A!=null&&A.length>0&&D!=null&&D.length>0){return[A[0],D[0]]}else{A=this.dom.getElementsByClassName(C,"div","ss_tooltip");if(A.length==0){var E=document.createElement("div");E.className="ss_tooltip";E.style.position="absolute";E.style.display="none";E.style.visibility="hidden";C.appendChild(E);E.style.zIndex=C.style.zIndex+99}else{E=A[0]}D=this.dom.getElementsByClassName(C,"div","ss_tooltip_shadow");if(D.length==0){var B=document.createElement("div");B.className="ss_tooltip_shadow";B.style.position="absolute";B.style.display="none";B.style.visibility="hidden";C.appendChild(B);B.style.zIndex=C.style.zIndex+98}else{E=D[0]}return[E,B]}};FlowingMessage.prototype.show=function(B){var A=this.getToolTipEl();if(B){this.dom.moveTo(A[0],B);A[0].innerHTML=this.text;A[0].style.display="block";A[0].style.visibility="visible";this.dom.moveTo(A[1],B);A[1].style.width=A[0].offsetWidth+"px";A[1].style.height=A[0].offsetHeight+"px";A[1].style.display="block";A[1].style.visibility="visible"}};FlowingMessage.prototype.hide=function(){var A=this.getToolTipEl();A[0].style.display="none";A[0].style.visibility="hidden";A[0].innerHTML="";A[1].style.display="none";A[1].style.visibility="hidden";A[1].innerHTML=""};exportSymbol("skyscanner.FlowingMessage",FlowingMessage);function Calendar(G,E,F,D,C){if(typeof Calendar.count=="undefined"){Calendar.count=0;Calendar.cals=new Array()}var B=this;var A=skyscanner.$U.getServerTime();this.id=Calendar.count++;Calendar.cals[this.id]=this;this.langId=G;this.offset=F;this.monthsToDisplay=12;this.isInbound=!D;this.rendered=false;this.visible=false;this.dateSelected="D";this.selDay=skyscanner.$U.removeTime(A);this.y=A.getFullYear();this.m=A.getMonth();this.clearDateWhenOneWay=true;if(typeof C!=undefined){this.size=C}else{this.size=Calendar.LARGE}this.cEl=document.createElement("div");E.appendChild(this.cEl);this.mvEl=null;this.hdEl=null;this.monthSelect=null;this.bdEl=null;this.wyEl=null;this.prevEl=null;this.nxtEl=null;this.wmEl=null;this.whChBox=null;this.sdChBox=null;this.wyChBox=null;this.whLbl=null;this.wyLbl=null;this.sdLbl=null;skyscanner.$E.attachEventHandler(document,"mouseup",function(H){B.autoHidePopupListener(H)})}Calendar.SMALL="small";Calendar.LARGE="large";Calendar.prototype.onDateSelected=function(A){skyscanner.log.info("[Calendar] date selected")};Calendar.prototype.getMainCont=function(){return this.cEl};Calendar.prototype.autoHidePopupListener=function(A){if(!skyscanner.$D.isElementAreaClicked(A,this.cEl)){if(this.isVisible()){this.setVisible(false)}}};Calendar.prototype.setMonthsToDisplay=function(A){this.monthsToDisplay=A};Calendar.prototype.getMonthsToDisplay=function(){return this.monthsToDisplay};Calendar.prototype.getDate=function(){switch(this.dateSelected){case"D":return{date:new Date(this.selDay.getFullYear(),this.selDay.getMonth(),this.selDay.getDate()),isYM:false,isEmpty:false};break;case"M":return{date:new Date(this.y,this.m,1),isYM:true,isEmpty:false};break;case"Y":return{date:null,isYM:false,isEmpty:true};break;default:skyscanner.log.error("[Calendar] unsupported dateSelected : "+this.dateSelected);return null}};Calendar.prototype.setDate=function(B){var A=false;if(B==null){this.dateSelected="Y";A=true}else{if(typeof (B)=="object"){if(B.date==null){this.dateSelected="Y";A=true}else{if(B.isYM){this.y=B.date.getFullYear();this.m=B.date.getMonth();this.dateSelected="M";A=true}else{this.selDay=skyscanner.$U.removeTime(B.date);this.y=this.selDay.getFullYear();this.m=this.selDay.getMonth();this.dateSelected="D";A=true}}}else{if(skyscanner.$U.isYMDate(B)){var C=skyscanner.$U.parseYMDate(B);this.y=C.getFullYear();this.m=C.getMonth();this.dateSelected="M";A=true}else{if(skyscanner.$U.isYMDDate(B)){this.selDay=skyscanner.$U.removeTime(skyscanner.$U.parseYMDDate(B));this.y=this.selDay.getFullYear();this.m=this.selDay.getMonth();this.dateSelected="D";A=true}else{this.dateSelected="Y";A=true}}}}if(A){skyscanner.log.info("[Calendar] date changed (type: "+this.dateSelected+",y:"+this.y+",m:"+this.m+",day:"+skyscanner.$U.DatetoYYMMDD(this.selDay)+")");if(this.isVisible()){if(this.dateSelected=="D"){this.y=this.selDay.getFullYear();this.m=this.selDay.getMonth()}this.refreshNav();this.updateMonthSelection();this.refreshMonth()}}};Calendar.prototype.onClickDay=function(C){C=skyscanner.$U.removeTime(C);var B=skyscanner.$U.removeTime(skyscanner.$U.getServerTime()),A=new Date(B.getFullYear(),B.getMonth()+this.monthsToDisplay+1,0);if(C>=B&&C<=A){this.dateSelected="D";this.selDay=C;this.y=this.selDay.getFullYear();this.m=this.selDay.getMonth();this.onDateSelected(false);this.updateMonthSelection();this.setVisible(false)}};Calendar.prototype.onWholeYear=function(){this.dateSelected="Y";this.onDateSelected(false);this.updateMonthSelection();this.refreshMonth();this.setVisible(false)};Calendar.prototype.onWholeMonth=function(A){this.dateSelected=A?"M":"D";this.updateMonthSelection();this.onDateSelected(false);if(A){this.setVisible(false)}this.refreshMonth();this.refreshNav()};Calendar.prototype.render=function(){var E=this;if(!this.rendered){this.cEl.className="ss_calendar ";if(this.size==Calendar.SMALL){this.cEl.className+=" ss_calendar_small";this.cEl.className+=" ss_calendar_small_lang_"+this.langId}else{this.cEl.className+=" ss_calendar_lang_"+this.langId}this.cEl.onclick=function(H){skyscanner.$E.preventDefault(H)};skyscanner.$D.disableTextSelecting(this.cEl);this.hdEl=document.createElement("div");this.hdEl.className="ss_calendar_head";this.cEl.appendChild(this.hdEl);if(this.size!=Calendar.SMALL){this.prevEl=document.createElement("a");this.prevEl.className="ss_calendar_prev";this.prevEl.href="#";this.prevEl.innerHTML=" ";this.hdEl.appendChild(this.prevEl);this.prevEl.onclick=function(H){skyscanner.$E.preventDefault(H);E._onClickPrev();return false}}this.renderSelect();if(this.size!=Calendar.SMALL){this.nxtEl=document.createElement("a");this.nxtEl.className="ss_calendar_next";this.nxtEl.href="#";this.nxtEl.innerHTML=" ";this.hdEl.appendChild(this.nxtEl);this.nxtEl.onclick=function(H){skyscanner.$E.preventDefault(H);E._onClickNext();return false}}this.bdEl=document.createElement("div");this.bdEl.className="ss_calendar_body";this.cEl.appendChild(this.bdEl);var D=document.createElement("table");D.cellSpacing="0";D.cellPadding="0";D.className="ss_calendar_footer";this.cEl.appendChild(D);var B=document.createElement("tbody");D.appendChild(B);var F=document.createElement("tr");B.appendChild(F);var A;this.sdEl=document.createElement("td");F.appendChild(this.sdEl);this.sdEl.className="ss_calendar_range_input";this.sdChBox=document.createElement("input");this.sdChBox.type="radio";this.sdChBox.name="ds";this.sdChBox.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeMonth(false);return false};this.sdEl.appendChild(this.sdChBox);this.sdEl=document.createElement("td");F.appendChild(this.sdEl);this.sdEl.className="ss_calendar_single_day";this.sdLbl=document.createElement("a");this.sdLbl.href="#";this.sdLbl.innerHTML=skyscanner.$CS.getText(this.langId,"txt_flex_chart_date");this.sdLbl.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeMonth(false);return false};this.sdEl.appendChild(this.sdLbl);if(this.size==Calendar.SMALL){F=document.createElement("tr");B.appendChild(F)}this.wmEl=document.createElement("td");F.appendChild(this.wmEl);this.wmEl.className="ss_calendar_range_input";this.whChBox=document.createElement("input");this.whChBox.type="radio";this.whChBox.name="ds";this.whChBox.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeMonth(true);return false};this.wmEl.appendChild(this.whChBox);this.wmEl=document.createElement("td");this.wmEl.className="ss_calendar_whole_month";F.appendChild(this.wmEl);this.whLbl=document.createElement("a");this.whLbl.href="#";this.whLbl.innerHTML=skyscanner.$CS.getText(this.langId,"txt_flex_dates");this.whLbl.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeMonth(true);return false};this.wmEl.appendChild(this.whLbl);if(this.size==Calendar.SMALL){F=document.createElement("tr");B.appendChild(F)}this.wyEl=document.createElement("td");F.appendChild(this.wyEl);this.wyEl.className="ss_calendar_range_input";this.wyChBox=document.createElement("input");this.wyChBox.type="radio";this.wyChBox.name="ds";this.wyChBox.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeYear();return false};this.wyEl.appendChild(this.wyChBox);this.wyEl=document.createElement("td");this.wyEl.className="ss_calendar_whole_year";F.appendChild(this.wyEl);this.wyLbl=document.createElement("a");this.wyLbl.href="#";this.wyLbl.innerHTML=skyscanner.$CS.getText(this.langId,"txt_every_date");this.wyLbl.onclick=function(H){skyscanner.$E.preventDefault(H);E.onWholeYear();return false};this.wyEl.appendChild(this.wyLbl);this.mv=new skyscanner.snippets.CalendarMonthView(this.bdEl,this.y,this.m,this.offset,this.langId);this.mv.onClickDay=function(H){E.onClickDay(H)};var C=navigator.userAgent.toLowerCase();if((C.indexOf("msie")!=-1)&&(C.indexOf("opera")==-1)&&(C.indexOf("webtv")==-1)){var G=document.createElement("div");this._iFrameElement=document.createElement("iframe");this._iFrameElement.frameborder=0;this._iFrameElement.style.borderStyle="none";this._iFrameElement.style.zIndex=999999;this._iFrameElement.style.display="none";this._iFrameElement.style.position="absolute";this._iFrameElement.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";this._iFrameElement.style.width=this.cEl.offsetWidth+"px";this._iFrameElement.style.height=this.cEl.offsetHeight+"px";G.appendChild(this._iFrameElement);document.body.appendChild(G)}this.rendered=true}this.updateMonthSelection();this.refreshNav();this.refreshMonth()};Calendar.prototype._onClickPrev=function(){if(!this.prevEl.disabled){this.m--;if(this.m<0){this.y--;this.m=11}if(this.dateSelected=="Y"){this.dateSelected="M"}if(this.dateSelected=="M"){this.onDateSelected(false)}this.updateMonthSelection();this.refreshMonth();this.refreshNav()}};Calendar.prototype._onClickNext=function(){if(!this.nxtEl.disabled){this.m++;if(this.m>11){this.y++;this.m=0}if(this.dateSelected=="Y"){this.dateSelected="M"}if(this.dateSelected=="M"){this.onDateSelected(false)}this.updateMonthSelection();this.refreshNav();this.refreshMonth()}};Calendar.printDate=function(C,A,B){if(A==null){A="[Calendar]"}if(B==null){B="info"}if(C!=null){if(C.date==null||C.isEmpty){skyscanner.log[B](A+" selected date - whole year/one way")}else{if(C.isYM){skyscanner.log[B](A+" selected date - whole month y:"+C.date.getFullYear()+",m:"+C.date.getMonth())}else{skyscanner.log[B](A+" selected date y:"+C.date.getFullYear()+",m:"+C.date.getMonth()+",d:"+C.date.getDate())}}}else{skyscannerl.log[B](A+" selected date - null")}};Calendar.prototype.updateMonthSelection=function(){var C,B;C=B=null;if(this.dateSelected=="M"){C=B=new Date(this.y,this.m,1);var A=skyscanner.$U.getMonthDays4Year(this.y);if(A!=null&&A.length==12){B=new Date(this.y,this.m,A[this.m])}}else{if(this.dateSelected=="D"){C=B=this.selDay}}this.mv.select(C,B)};Calendar.prototype.refreshNav=function(){var B=new Date(skyscanner.$U.getServerTime());if(this.size!=Calendar.SMALL){if(this.y==B.getFullYear()&&this.m==B.getMonth()){this.prevEl.disabled=true;if(!skyscanner.$D.hasClass(this.prevEl,"ss_calendar_prev_disabled")){skyscanner.$D.addCSSClass(this.prevEl,"ss_calendar_prev_disabled")}}else{this.prevEl.disabled=false;if(skyscanner.$D.hasClass(this.prevEl,"ss_calendar_prev_disabled")){skyscanner.$D.removeCSSClass(this.prevEl,"ss_calendar_prev_disabled")}}var A=this.y*12+this.m-B.getFullYear()*12-B.getMonth();if(A==this.monthsToDisplay){this.nxtEl.disabled=true;if(!skyscanner.$D.hasClass(this.nxtEl,"ss_calendar_next_disabled")){skyscanner.$D.addCSSClass(this.nxtEl,"ss_calendar_next_disabled")}}else{this.nxtEl.disabled=false;if(skyscanner.$D.hasClass(this.nxtEl,"ss_calendar_next_disabled")){skyscanner.$D.removeCSSClass(this.nxtEl,"ss_calendar_next_disabled")}}}if(this.dateSelected!="Y"){this.monthSelect.value=this.y+"_"+this.m}else{this.monthSelect.value="wy"}this.sdChBox.checked=false;skyscanner.$D.removeCSSClass(this.sdLbl,"selected");this.wyChBox.checked=false;skyscanner.$D.removeCSSClass(this.whLbl,"selected");this.whChBox.checked=false;skyscanner.$D.removeCSSClass(this.wyLbl,"selected");if(this.dateSelected=="D"){this.sdChBox.checked=true;skyscanner.$D.addCSSClass(this.sdLbl,"selected")}if(this.dateSelected=="Y"){this.wyChBox.checked=true;skyscanner.$D.addCSSClass(this.wyLbl,"selected")}if(this.dateSelected=="M"){this.whChBox.checked=true;skyscanner.$D.addCSSClass(this.whLbl,"selected")}};Calendar.prototype.refreshMonth=function(){this.bdEl.innerHTML="";this.mv.y=this.y;this.mv.m=this.m;this.mv.render()};Calendar.prototype.renderSelect=function(){var C=this;var B=skyscanner.$CS.getLongMonths(this.langId);var D=document.createElement("div");D.className="ss_calendar_select";this.hdEl.appendChild(D);this.monthSelect=document.createElement("select");var F=document.createElement("option");F.value="wy";F.innerHTML=skyscanner.$CS.getText(this.langId,"txt_every_date");F.m=0;F.y=0;this.monthSelect.appendChild(F);var E=new Date(skyscanner.$U.getServerTime());for(i=0;i<=this.monthsToDisplay;i++){var A=E.getMonth()+i;var G=E.getFullYear();if(A>11){A=A-12;G++}var F=document.createElement("option");B[A]=B[A].replace(" ","");F.innerHTML=B[A]+" "+G;F.value=G+"_"+A;F.m=A;F.y=G;this.monthSelect.appendChild(F)}D.appendChild(this.monthSelect);this.monthSelect.onchange=function(J){skyscanner.$E.preventDefault(J);var I=this.options;var H=this.selectedIndex;C._onChangeMonth(I[H].y,I[H].m)}};Calendar.prototype._onChangeMonth=function(B,A){if(B!=0){this.y=B;this.m=A;if(this.dateSelected=="Y"){this.dateSelected="M"}}else{this.dateSelected="Y";this.setVisible(false)}this.onDateSelected(false);this.updateMonthSelection();this.refreshMonth();this.refreshNav()};Calendar.prototype.onShowHide=function(){};Calendar.prototype.setVisible=function(A){skyscanner.log.info("[Calendar] "+(A?"show":"hide"));if(A){this.render()}this.cEl.style.display=A?"block":"none";this.visible=A;if(A){for(var B=0;B<Calendar.count;B++){var D=Calendar.cals[B];if(B!=this.id&&D.isVisible()){D.setVisible(false)}}}this.onShowHide();if(this._iFrameElement){this._iFrameElement.style.display=A?"block":"none";if(A){var C=$D.getXY(this.cEl);if(C){this._iFrameElement.style.left=C[0]+"px";this._iFrameElement.style.top=C[1]+"px"}}}};Calendar.prototype.isVisible=function(){return this.visible};exportSymbol("skyscanner.snippets.Calendar",Calendar);function CalendarMonthView(F,E,A,C,D){this.langId=D;this.mcEl=F;this.t=null;this.offset=C;this.m=A;this.y=E;var B=new Date(skyscanner.$U.getServerTime());this.sdEnd=this.sdBg=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));this.dn=skyscanner.$CS.getShortWeekDays(this.langId)}CalendarMonthView.prototype.onClickDay=function(A){};CalendarMonthView.prototype.select=function(B,A){this.sdBg=B;if(A!=null&&A!=undefined){this.sdEnd=A}else{this.sdEnd=B}if(B!=null){B=skyscanner.$U.removeTime(B)}if(A!=null){A=skyscanner.$U.removeTime(A)}var D=this.mcEl.getElementsByTagName("td");if(D!=null&&D.length>0){for(var C=0;C<D.length;C++){var E=D[C];if(this.isSelectedDate(E.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){if(!skyscanner.$D.hasClass(E,"ss_month_selected")){skyscanner.$D.addCSSClass(E,"ss_month_selected")}}else{if(skyscanner.$D.hasClass(E,"ss_month_selected")){skyscanner.$D.removeCSSClass(E,"ss_month_selected")}}}}};CalendarMonthView.prototype.isSelectedDate=function(A){return(this.sdBg==null)||(A>=this.sdBg&&A<=this.sdEnd)};CalendarMonthView.prototype.renderHead=function(){var B=document.createElement("thead");var C=document.createElement("tr");B.appendChild(C);this.t.appendChild(B);for(i=0;i<7;i++){var D=document.createElement("td");var A=i-this.offset;if(A>=7){A=A%7}if(A<0){A+=7}D.innerHTML=this.dn[A].substring(0,1);C.appendChild(D)}};CalendarMonthView.prototype.render=function(){this.mcEl.innerHTML="";var I=this;var P=new Date(this.y,this.m,1).getDay()+this.offset;if(P>6){P=0}if(P<0){P=6}var H=skyscanner.$U.getMonthDays4Year(this.y);this.t=document.createElement("table");this.t.cellSpacing="0";this.t.cellPadding="0";this.t.className="ss_month";this.mcEl.appendChild(this.t);this.renderHead();var E=document.createElement("tbody");this.t.appendChild(E);var M=document.createElement("tr");if(P>0){var D=this.m-1;var O=this.y;if(D<0){D=11;O--}var A=H[D];for(var F=P;F>0;F--){var C=document.createElement("td");var K=(A-F+1);var J=new Date(O,D,K);var L=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));var B="ss_month_prev_month";if(J<L){B+=" ss_month_old"}if(skyscanner.$U.getDayOfWeek(P-F,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(P-F,this.offset)==6){B+=" ss_month_sat"}var C=document.createElement("td");var N=document.createElement("a");N.appendChild(document.createTextNode(K));N.href="#";C.date=J;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};C.appendChild(N);C.className=B;M.appendChild(C)}}rc=P;for(var F=1;F<=H[this.m];F++){var C=document.createElement("td");var B="";if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==6){B+=" ss_month_sat"}var L=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));if(this.y==L.getFullYear()&&this.m==L.getMonth()&&F<L.getDate()){B+=" ss_month_old"}var N=document.createElement("a");N.appendChild(document.createTextNode(F));N.href="#";C.appendChild(N);C.date=new Date(this.y,this.m,F);if(this.isSelectedDate(C.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){B+=" ss_month_selected"}C.className=B;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};M.appendChild(C);rc++;if(rc%7==0){E.appendChild(M);M=document.createElement("tr")}}if(rc%7>0||Math.round(rc/7)<6){var Q=this.m+1;var G=this.y;if(Q>11){Q=0;G++}for(var F=1;true;F++){var C=document.createElement("td");var B="ss_month_next_month";if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==6){B+=" ss_month_sat"}var N=document.createElement("a");N.appendChild(document.createTextNode(F));N.href="#";C.appendChild(N);C.date=new Date(G,Q,F);if(this.isSelectedDate(C.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){B+=" ss_month_selected"}C.className=B;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};M.appendChild(C);rc++;if(rc%7==0){E.appendChild(M);if(Math.round(rc/7)==6){break}M=document.createElement("tr")}}}};exportSymbol("skyscanner.snippets.CalendarMonthView",CalendarMonthView);function DateSelector(E,F,A,D,C){this.langId=F;this.cEl=E;this.outbound=D;this._return=true;this.enabled=true;this.positionToInput=false;this.inputEl=null;this.dateFormat=A;this.dateorder=this.dateFormat.replace(/[-/., ]/g,"").replace(/yyyy/g,"y").replace(/yy/g,"y").replace(/mm/g,"m").replace(/dd/g,"d");var B=new Date(skyscanner.$U.getServerTime());this.maxMonths=12;this.lastDateOfMaxMonth=new Date(B.getFullYear(),B.getMonth()+this.maxMonths+1,0);this.size=C;this.cal=new skyscanner.snippets.Calendar(this.langId,document.body,-1,this.outbound,C);this.cal.setMonthsToDisplay(this.maxMonths)}DateSelector.prototype.setPositionToInput=function(A){this.positionToInput=A};DateSelector.prototype.isOneWay=function(){return !this._return};DateSelector.prototype.setOneWay=function(A){this._return=!A;this.displayDate()};DateSelector.prototype.isEnabled=function(){return this.enabled};DateSelector.prototype.setEnabled=function(A){this.enabled=A;if(A){if(skyscanner.$D.hasClass(this.cEl,"ss_datesel_disabled")){skyscanner.$D.removeCSSClass(this.cEl,"ss_datesel_disabled")}}else{if(!skyscanner.$D.hasClass(this.cEl,"ss_datesel_disabled")){skyscanner.$D.addCSSClass(this.cEl,"ss_datesel_disabled")}if(this.cal.isVisible()){this.cal.setVisible(false)}}this.inputEl.readOnly=!A};DateSelector.prototype.positionCalendar=function(){var B=skyscanner.$D.calcAbsPos(this.positionToInput?this.inputEl:this.cEl);var F=this.cal.getMainCont();var E=skyscanner.$D.getWindowSize();E.width+=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft;E.height+=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;var A=F.offsetWidth;var D=F.offsetHeight;var C=skyscanner.$D.getStyle(F,"marginTop");D+=C.replace("px","")|0;if((A+B.left)>E.width){B.left=E.width-A;if(B.left<0){B.left=0}}if(D+B.top>E.height&&E.height>0){B.top=E.height-D;if(B.top<0){B.top=0}}skyscanner.$D.moveTo(F,B)};DateSelector.prototype.render=function(D){if(typeof (D)!="undefined"){this.inputEl=D;this.attachListeners();return }this.cEl.innerHTML="";if(!skyscanner.$D.hasClass(this.cEl,"ss_datesel")){skyscanner.$D.addCSSClass(this.cEl,"ss_datesel")}var C=document.createElement("div");C.className="ss_datesel_inp_cont";this.cEl.appendChild(C);var B=document.createElement("div");B.className="ss_datesel_inp_right_corner";C.appendChild(B);this.inputEl=document.createElement("input");this.inputEl.setAttribute("autocomplete","off");C.appendChild(this.inputEl);var A=document.createElement("div");A.className="ss_datesel_icon";this.cEl.appendChild(A);this.calClicked=false;this.attachListeners()};DateSelector.prototype.onShowHide=function(){};DateSelector.prototype.attachListeners=function(){var A=this;this.cal.onShowHide=function(){A.positionCalendar();A.onShowHide()};this.inputEl.onkeyup=function(B){if(B==null){B=window.event}A.onKeyUp(B)};this.inputEl.hasFocus=false;this.inputEl.onfocus=function(){if(A.enabled){var B=A.getDate();if(B.isEmpty&&this.value==skyscanner.$CS.getText(A.langId,"txt_every_date")){A.setText("",false)}else{this.select()}}if(!A.cal.isVisible()&&!A.isOneWay()){A.cal.setVisible(true)}this.hasFocus=true};skyscanner.$E.attachEventHandler(document,"mousedown",function(B){A.calClicked=false;if(skyscanner.$D.isElementAreaClicked(B,A.cal.getMainCont())){A.calClicked=true}});this.inputEl.onblur=function(B){setTimeout(function(){A.ValidateDateAndNotify()},200);if(!A.calClicked){if(A.enabled){var C=A.getDate();if(!C.isEmpty&&this.value==""){A.setDate(null);A.onDateSelected();C.isEmpty=true}if(C.isEmpty&&this.value==""){A.setWholeYearText()}if(A.cal.isVisible()){A.cal.setVisible(false)}}if(A.cal.isVisible()){A.cal.setVisible(false)}}A.calClicked=false;this.hasFocus=false};this.cEl.onmouseup=function(C){skyscanner.$E.preventDefault(C);var B=true;if(!C&&window.event&&window.event.srcElement&&window.event.srcElement.tagName){if(window.event.srcElement.tagName.toLowerCase()=="input"){B=false}}if(B){A.onClickSelector()}};this.cal.onDateSelected=function(B){if(B&&!A.outbound){A._return=false}else{A._return=true}A.displayDate();A.onDateSelected()}};DateSelector.prototype.ValidateDateAndNotify=function(){var B=this.parseDate(this.inputEl.value),A=true;if(this.enabled&&!B.date&&!B.isYM){if(this.inputEl.value!=""&&this.inputEl.value!=skyscanner.$CS.getText(this.langId,"txt_every_date")){this.displayDate();var C=skyscanner.$CS.getText(this.langId,"txt_not_recogn_date");A=false;if(C){C=C.replace("@@validdate@@",this.renderShortDate(new Date(skyscanner.$U.getServerTime())));alert(C);return true}}}return A};DateSelector.prototype.onDateSelected=function(){skyscanner.log.info("[DateSelector] date selected")};DateSelector.prototype.onKeyUp=function(C){var B=C.keyCode;if(B==0){B=C.charCode}if(B==40&&!this.cal.isVisible()){this.cal.setVisible(true)}if(B==27&&this.cal.isVisible()){this.cal.setVisible(false)}if((B>=35&&B<=37)||B==39||B==32){return }var A=this;entryTimeout=setTimeout(function(){A.parseManuallyEnteredDate()},250)};DateSelector.prototype.parseDate=function(E){var O=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));var J=skyscanner.$U.removeTime(new Date(O.getFullYear(),O.getMonth(),1));var B=new Object();B.date=null;B.isYM=false;E=E.replace(/[ .,/-]+/g," ").replace(/^ /,"").replace("/ $/","");var L=E.split(" ");if(L.length==1){var A=L[0];var Q=-1;if(A.length>0){for(var N=0;N<12;N++){if(A.toLowerCase()==skyscanner.$CS.getText(this.langId,"txt_maMN_"+N).toLowerCase()){Q=N;break}else{if(A.toLowerCase()==skyscanner.$CS.getText(this.langId,"txt_maMNS_"+N).toLowerCase()){Q=N;break}else{if(A.toLowerCase()==skyscanner.$CS.getText(this.langId,"txt_maMNAlt_"+N).toLowerCase()){Q=N;break}else{if(A.toLowerCase()==skyscanner.$CS.getText(this.langId,"txt_maMNNorm_"+N).toLowerCase()){Q=N;break}}}}}if(Q>-1){var F=new Date(O.getFullYear(),Q,1);B.isYM=true;if(skyscanner.$U.DatetoYYMM(F)<skyscanner.$U.DatetoYYMM(O)){B.date=new Date(O.getFullYear()+1,Q,1)}else{B.date=F}return B}}}else{if(L.length==2){var D=0,A="";var Q=-1,C=-1;if((L[1].length==2||L[1].length==4)&&!isNaN(parseInt(L[1],10))){D=L[1];A=L[0]}else{if((L[0].length==2||L[0].length==4)&&!isNaN(parseInt(L[0],10))){D=L[0];A=L[1]}}if(D!=""){C=parseInt(D,10);if(isNaN(C)){C=-2}if(C<100){C+=2000}}if(A.length>0&&C>0){for(var N=0;N<12;N++){var K=skyscanner.$CS.getText(this.langId,"txt_maMN_"+N).toLowerCase(),I=skyscanner.$CS.getText(this.langId,"txt_maMNS_"+N).toLowerCase(),H=skyscanner.$CS.getText(this.langId,"txt_maMNAlt_"+N).toLowerCase(),G=skyscanner.$CS.getText(this.langId,"txt_maMNNorm_"+N).toLowerCase();K=K.replace(".","");I=I.replace(".","");H=H.replace(".","");G=G.replace(".","");K=K.replace(" ","");I=I.replace(" ","");H=H.replace(" ","");G=G.replace(" ","");if(A.toLowerCase()==K){Q=N;break}else{if(A.toLowerCase()==I){Q=N;break}else{if(A.toLowerCase()==H){Q=N;break}else{if(A.toLowerCase()==G){Q=N;break}}}}}if(Q>-1&&C>=O.getFullYear()&&C<=O.getFullYear()+2){var F=new Date(C,Q,1);if(F>=J&&F<=this.lastDateOfMaxMonth){B.date=F;B.isYM=true}return B}}}}if(L.length!=3&&!(L.length==1&&(E.length==6||E.length==8))){return B}var C,Q,M;if(L.length==1){if(E.length==6){L=[E.substr(0,2),E.substr(2,2),E.substr(4,2)]}else{if(E.length==8){var R=[2,2,2];R[this.dateorder.indexOf("y")]=4;L=[E.substr(0,R[0]),E.substr(R[0],R[1]),E.substr(R[0]+R[1],R[2])]}else{return B}}}C=L[this.dateorder.indexOf("y")];if(C.length==3){return B}C=Number(C);if(isNaN(C)){return B}var Q=Number(L[this.dateorder.indexOf("m")]);if(isNaN(Q)){return B}var M=Number(L[this.dateorder.indexOf("d")]);if(isNaN(M)){return B}if(C<100){C=2000+C}var P=new Date(C,Q-1,M);if(P.getFullYear()!=C||P.getMonth()!=Q-1||P.getDate()!=M){return B}else{if(P<O){return B}else{if(P>this.lastDateOfMaxMonth){return B}else{B.date=P;return B}}}};DateSelector.prototype.parseManuallyEnteredDate=function(){var A=this.parseDate(this.inputEl.value);if(A.date){skyscanner.log.info("[DateSelector] recognized entered date "+A.date.getDate()+"/"+A.date.getMonth()+"/"+A.date.getFullYear());this.cal.setDate(A);this.displayDate();this.onDateSelected()}};DateSelector.prototype.setWholeYearText=function(){this.setText(skyscanner.$CS.getText(this.langId,"txt_every_date"),true)};DateSelector.prototype.setOneWayText=function(){this.setText(skyscanner.$CS.getText(this.langId,"txt_one_way"),true)};DateSelector.prototype.setText=function(A,B){if(this.inputEl.value!=A){if(skyscanner.snippets.core.Browser.isSafari()){this.inputEl.style.display="none";this.inputEl.value=A;this.inputEl.style.display="block"}else{this.inputEl.value=A}}if(B){if(!skyscanner.$D.hasClass(this.inputEl,"ss_empty")){skyscanner.$D.addCSSClass(this.inputEl,"ss_empty")}if(!skyscanner.$D.hasClass(this.inputEl,"ss_empty")){skyscanner.$D.addCSSClass(this.inputEl,"ss_empty")}}else{if(skyscanner.$D.hasClass(this.inputEl,"ss_empty")){skyscanner.$D.removeCSSClass(this.inputEl,"ss_empty")}}};DateSelector.prototype.displayDate=function(){var A=this.getDate();if(!this.outbound){if(this._return){if(A.isEmpty){this.setWholeYearText()}else{var B="";if(A.isYM){B=this.renderYMDate(A.date)}else{B=this.renderShortDate(A.date)}this.setText(B,false)}}else{this.setOneWayText()}}else{if(A.isEmpty){this.setWholeYearText()}else{var B="";if(A.isYM){B=this.renderYMDate(A.date)}else{B=this.renderShortDate(A.date)}this.setText(B,false)}}};DateSelector.prototype.renderShortDate=function(C){var E=this.dateFormat;var B=C.getFullYear();var D=C.getMonth()+1;var A=C.getDate();E=E.replace("yyyy",B).replace("yy",(B+"").substring(2)).replace("y",B-2000);E=E.replace("mm",skyscanner.$U.pad0(D)).replace("M",D).replace("m",D);E=E.replace("dd",skyscanner.$U.pad0(A)).replace("d",A);return E};DateSelector.prototype.renderYMDate=function(A){var B=skyscanner.$CS.getText(this.langId,"txt_maMNS_"+A.getMonth());B=B.replace(" ","");return B+" "+A.getFullYear()};DateSelector.prototype.renderFullDate=function(A){if((A+"").length==6){return""}var B="dddd dd mmmm yyyy";B=B.replace("yyyy",A.getFullYear());B=B.replace("dddd",skyscanner.$CS.getText(this.langId,"txt_maWD_"+A.getDay()));B=B.replace("dd",A.getDate());B=B.replace("mmmm",skyscanner.$CS.getText(this.langId,"txt_maMNS_"+(A.getMonth())));return B};DateSelector.prototype.getDescription=function(){var A="";var B=this.getDate();if(B.isEmpty){A=""}else{if(B.isYM){A=skyscanner.$CS.getText(this.langId,"txt_flex_dates")}else{A=this.renderFullDate(B.date)}}return A};DateSelector.prototype.getCodeForHidden=function(){var A="";var C=this.getDate();if(C.isEmpty){A=""}else{var B=C.date;A=(B.getFullYear()+"").substring(2)+skyscanner.$U.pad0(B.getMonth()+1)+skyscanner.$U.pad0(B.getDate())}return A};DateSelector.prototype.onClickSelector=function(){if(this.enabled){this.cal.setVisible(this.inputEl.hasFocus?true:!this.cal.isVisible())}};DateSelector.prototype.setDate=function(A){this.cal.setDate(A);this.displayDate()};DateSelector.prototype.getDate=function(){var A=this.cal.getDate();if(this.isOneWay()){A.isEmpty=true}return A};DateSelector.prototype.getDateAsString=function(){var A=this.cal.getDate();if(A.isYM){return skyscanner.$U.DatetoYYMM(A.date)}else{if(A.isEmpty){return""}else{return skyscanner.$U.DatetoYYMMDD(A.date)}}};exportSymbol("skyscanner.snippets.DateSelector",DateSelector);function CalendarsSupport(B,G,F,C,D,A){var E=this;this.usingRadioButtons=F==null;if(this.usingRadioButtons){this.rdbReturnOrOneWay=skyscanner.snippets.BaseRadioBox.create({0:D,1:C});this.rdbReturnOrOneWay.render();this.rdbReturnOrOneWay.select(1)}else{this.cbox=skyscanner.snippets.BaseCheckBox.create(F);this.cbox.render();this.cbox.setSelected(true)}this.oCal=B;this.iCal=G;if(A){this.iCal.setDate(null);this.oCal.setDate(null)}if(this.usingRadioButtons){this.rdbReturnOrOneWay.onClicked=function(I,H){E.refresh();E.validateDates(E.oCal,E.iCal,true);E.onDatesChanged()}}else{this.cbox.onClicked=function(I,H){E.refresh();E.validateDates(E.oCal,E.iCal,true);E.onDatesChanged()}}this.oCal.onDateSelected=function(){E.validateDates(this,E.iCal,true);E.onDatesChanged()};this.iCal.onDateSelected=function(){var H=E.iCal.getDate();if(this.isOneWay()){if(this.usingRadioButtons){E.rdbReturnOrOneWay.select(0)}else{E.cbox.setSelected(false)}E.refresh()}else{E.validateDates(this,E.oCal,false)}E.onDatesChanged()}}CalendarsSupport.prototype.setInitDates=function(B,A){if(typeof (B)=="undefined"||B==""){B=null}if(typeof (A)=="undefined"||A==""){A=null}var D,C;if(B!=null&&B.isYM){D={date:null,isYM:false,isEmpty:true};D.date=B.date;this.oCal.setDate(D)}if(A!=null&&A.isYM){C={date:null,isYM:false,isEmpty:true};C.date=A.date;this.iCal.setDate(C)}this.oCal.setDate(B);this.iCal.setDate(A);if(this.usingRadioButtons){this.rdbReturnOrOneWay.select(A==null&&B!=null?0:1)}else{this.cbox.setSelected(A==null&&B!=null?false:true)}if(B!=null||A!=null){this.refresh();this.onDatesChanged()}};CalendarsSupport.prototype.validateChangedDeparture=function(){this.validateDates(this.oCal,this.iCal,true)};CalendarsSupport.prototype.validateChangedReturn=function(){this.validateDates(this.iCal,this.oCal,false)};CalendarsSupport.prototype.validateDates=function(E,D,H){var F=E.getDate();var G=D.getDate();var A=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));if(!D.isOneWay()){if(!F.isEmpty&&!F.isYM&&F.date!=null&&(G.isYM||G.isEmpty)){if(!H&&G.date!=null){G.date=new Date(G.date.getFullYear(),G.date.getMonth(),1);if(G.date<A){G.date=A}G.isYM=false;G.isEmpty=false;D.setDate(G)}else{if(!G.isEmpty){var C=skyscanner.$U.removeTime(F.date);var B=skyscanner.$U.removeTime(G.date);if(C>B){B=C}G.date=B;G.isYM=false;D.setDate(G)}else{D.setDate(G)}}}else{if(F.isYM&&!G.isYM){var C,B;C=skyscanner.$U.removeTime(new Date(F.date.getFullYear(),F.date.getMonth(),1));B=!G.isEmpty?skyscanner.$U.removeTime(new Date(G.date.getFullYear(),G.date.getMonth(),1)):null;if(G.isEmpty||(C>B&&H)||(C<B&&!H)){B=C}G.date=B;G.isYM=true;D.setDate(G)}else{if(F.isEmpty&&!E.isOneWay()&&!G.isEmpty){D.setDate(null)}}}G=D.getDate();if(!F.isEmpty){if(G.date==null){D.setDate(F)}if(H){if(F.date>G.date){D.setDate(F)}}else{if(F.date<G.date){D.setDate(F)}}}}};CalendarsSupport.prototype.onDatesChanged=function(){};CalendarsSupport.prototype.setReturn=function(A){if(this.usingRadioButtons){this.rdbReturnOrOneWay.select(A?1:0)}else{this.cbox.setSelected(A)}this.refresh()};CalendarsSupport.prototype.refresh=function(){var A;if(this.usingRadioButtons){A=this.rdbReturnOrOneWay.isSelected(1)}else{A=this.cbox.isSelected()}this.iCal.setEnabled(A);this.iCal.setOneWay(!A)};exportSymbol("skyscanner.snippets.CalendarsSupport",CalendarsSupport);function BaseCheckBox(A){if(typeof A!="undefined"){this.contEl=A;var B=this;this.contEl.onclick=function(C){B.onClicked(C,B.contEl.checked)}}}BaseCheckBox.create=function(B){var A=B.tagName.toLowerCase();if(A=="input"){return new BaseCheckBox(B)}else{return new CheckBox(B)}};BaseCheckBox.prototype.onClicked=function(B,A){};BaseCheckBox.prototype.setSelected=function(A){this.contEl.checked=A};BaseCheckBox.prototype.isSelected=function(){return this.contEl.checked};BaseCheckBox.prototype.render=function(){};function CheckBox(A){this.contEl=A;this.sel=false;var B=this;this.contEl.onclick=function(C){B.sel=!B.sel;B.render();B.onClicked(C,B.sel)}}CheckBox.prototype=new BaseCheckBox();CheckBox.prototype.setSelected=function(A){this.sel=A;this.render()};CheckBox.prototype.isSelected=function(){return this.sel};CheckBox.prototype.render=function(){skyscanner.$D.disableTextSelecting(this.contEl);if(!skyscanner.$D.hasClass(this.contEl,"ss_check_box")){skyscanner.$D.addCSSClass(this.contEl,"ss_check_box")}if(this.sel){if(!skyscanner.$D.hasClass(this.contEl,"ss_check_box_selected")){skyscanner.$D.addCSSClass(this.contEl,"ss_check_box_selected")}}else{if(skyscanner.$D.hasClass(this.contEl,"ss_check_box_selected")){skyscanner.$D.removeCSSClass(this.contEl,"ss_check_box_selected")}}};exportSymbol("skyscanner.snippets.BaseCheckBox",BaseCheckBox);exportSymbol("skyscanner.snippets.CheckBox",CheckBox);function BaseComboBoxItem(){}BaseComboBoxItem.prototype.create=function(D,C,B){this.DOMOp=skyscanner.snippets.core.DOMOperations;this.cBoxObj=D;this.parentCont=C;this.valItemIdx=B;this.params=D.getValues()[this.valItemIdx];this.selected=false;this.labEl=null;this.labspanEl=null;var A=this;this.parentCont.onmouseover=function(E){if(A.params.ttip&&A.params.ttip!=""){new skyscanner.ToolTip(this,A.params.ttip,E)}A.onMouseOver(E)};this.parentCont.onmouseup=function(){var F=A.cBoxObj.getRegisteredItemStates();var E=true;if(A.params.state!=null&&A.params.state!=""){E=F[A.params.state].isClicked}if(E){A.onClick(A.valItemIdx)}}};BaseComboBoxItem.prototype.onMouseOver=function(A){};BaseComboBoxItem.prototype.renderLabel=function(A){this.labEl=document.createElement("td");this.labEl.className="ss_combo_item_label ss_combo_item_cont";this.labspanEl=document.createElement("span");this.labspanEl.className="ss_combo_item_label";this.labspanEl.innerHTML=this.params.l;this.labEl.appendChild(this.labspanEl);this.parentCont.appendChild(this.labEl);if(A){this.labEl.colSpan=A}};BaseComboBoxItem.prototype.setValIdx=function(A){this.valItemIdx=A};BaseComboBoxItem.prototype.getValIdx=function(){return this.valItemIdx};BaseComboBoxItem.prototype.onClick=function(A){};BaseComboBoxItem.prototype.setSelection=function(A){this.selected=A};BaseComboBoxItem.prototype.getParentCont=function(){return this.parentCont};BaseComboBoxItem.prototype.getParentWidth=function(){return this.parentCont.offsetWidth};BaseComboBoxItem.prototype.getParentHeight=function(){return this.parentCont.offsetHeight};BaseComboBoxItem.prototype.render=function(){this.renderLabel(2);this.refreshState()};BaseComboBoxItem.prototype.refreshState=function(){var F=this.cBoxObj.getRegisteredItemStates();var C=this.params.state;this.DOMOp.removeCSSClass(this.parentCont,"ss_combo_item_selected");for(var A in F){var E=F[A];this.DOMOp.removeCSSClass(this.parentCont,E.cssClassName);this.DOMOp.removeCSSClass(this.parentCont,E.cssClassNameHightlight)}if(C&&F&&F[C]){var B=F[C];if(B){this.DOMOp.addCSSClass(this.parentCont,(!this.selected?B.cssClassName:B.cssClassNameHightlight))}}else{if(this.selected){this.DOMOp.addCSSClass(this.parentCont,"ss_combo_item_selected")}}if(skyscanner.snippets.core.Browser.isIE()){var D=this.parentCont.parentNode.className;this.parentCont.parentNode.className=D}};BaseComboBoxItem.prototype.clone=function(A){var B=new BaseComboBoxItem();B.create(this.cBoxObj,A,this.valItemIdx);return B};exportSymbol("skyscanner.snippets.BaseComboBoxItem",BaseComboBoxItem);function ComboBoxItemState(){}ComboBoxItemState.prototype.create=function(D,B,A,C){this.stateName=D;this.cssClassName=B;this.cssClassNameHightlight=A;this.isClicked=C};exportSymbol("skyscanner.snippets.ComboBoxItemState",ComboBoxItemState);function BarComboBoxItem(){}BarComboBoxItem.prototype=new BaseComboBoxItem();BarComboBoxItem.prototype.create=function(C,B,D,A){BaseComboBoxItem.prototype.create.call(this,C,B,D,A);this.valEl=null;this.descEl=null;this.conEl=null;this.chartConEl=null;this.tddesc=null};BarComboBoxItem.prototype.render=function(){this.renderLabel();this.conEl=document.createElement("td");this.conEl.className="ss_combo_item_cont";this.chartConEl=document.createElement("table");this.chartConEl.cellPadding="0";this.chartConEl.cellSpacing="0";var B=document.createElement("tbody");this.chartConEl.appendChild(B);this.chartConEl.className="ss_combo_item_bar_cont";this.conEl.appendChild(this.chartConEl);var C=document.createElement("tr");B.appendChild(C);this.valEl=document.createElement("td");this.valEl.className="ss_combo_item_bar";if(this.params.bd){var A=document.createElement("span");A.className="ss_combo_bar_label";A.innerHTML=this.params.bd;this.valEl.appendChild(A)}C.appendChild(this.valEl);this.tddesc=document.createElement("td");this.descEl=document.createElement("span");this.descEl.innerHTML=this.params.d;this.tddesc.className="ss_combo_item_bar_description_cont";this.descEl.className="ss_combo_item_bar_description";this.tddesc.appendChild(this.descEl);C.appendChild(this.tddesc);this.parentCont.appendChild(this.conEl);this.refreshState()};BarComboBoxItem.prototype.getLabWidth=function(){return this.labspanEl.offsetWidth};BarComboBoxItem.prototype.getLabTDWidth=function(){return this.labEl.offsetWidth};BarComboBoxItem.prototype.setLabTDWidth=function(A){this.labEl.style.width=A+"px"};BarComboBoxItem.prototype.getDescWidth=function(){return this.descEl.offsetWidth};BarComboBoxItem.prototype.rescaleBar=function(A,D){var C=Math.round((this.params.v*1)/(A*1)*D);if(C>0&&this.params.v>0){this.valEl.style.width=C+"px"}else{this.valEl.style.width="0px";if(skyscanner.snippets.core.Browser.isSafari()){this.valEl.style.backgroundColor="transparent"}}var B=this.valEl.firstChild;if(this.params.bd&&B!=null){B.style.marginTop="-"+Math.floor(B.offsetHeight/2)+"px"}};BarComboBoxItem.prototype.clone=function(A){var B=new BarComboBoxItem();B.create(this.cBoxObj,A,this.valItemIdx);return B};exportSymbol("skyscanner.snippets.BarComboBoxItem",BarComboBoxItem);function BaseComboBoxPopup(){}BaseComboBoxPopup.prototype.create=function(B,A){this.DOMOp=skyscanner.snippets.core.DOMOperations;this.cBoxObj=A;this.popupEl=B;this.items=new Array();this.selItem=null;this.maxPopupHeight=null;this.blockItemClick=false;this.itemsHeight=null};BaseComboBoxPopup.prototype.render=function(){this.popupEl.style.position="absolute";this.popupEl.style.zIndex=this.cBoxObj.getMainConEl().style.zIndex+2;this.popupEl.style.display="";this.popupEl.style.visibility="hidden";var C=document.createElement("div");var D=document.createElement("table");D.style.width=(this.popupEl.offsetWidth-20)+"px";D.className="ss_combo_popup";D.cellPadding="0";D.cellSpacing="0";C.appendChild(D);this.popupEl.appendChild(C);var A=document.createElement("tbody");D.appendChild(A);this.initItems(A);this.popupEl.style.height=this.itemsHeight*this.cBoxObj.getNumberOfPopupItems()+20+"px";this.onRenderItems(D);this.addListeners();if(!this.maxPopupHeight){this.maxPopupHeight=this.itemsHeight*this.cBoxObj.getNumberOfPopupItems();this.popupEl.style.height=this.maxPopupHeight+"px"}if(D.offsetHeight<this.maxPopupHeight){var B=D.offsetHeight;if(skyscanner.snippets.core.Browser.isIE()&&skyscanner.snippets.core.Browser.isQuirkMode()){B+=parseInt(this.popupEl.currentStyle.borderTopWidth)||0;B+=parseInt(this.popupEl.currentStyle.borderBottomWidth)||0;B+=parseInt(this.popupEl.currentStyle.paddingTop)||0;B+=parseInt(this.popupEl.currentStyle.paddingBottom)||0}this.popupEl.style.height=B+"px"}this.hide()};BaseComboBoxPopup.prototype.initItems=function(C){var E=this;for(var A=0;A<this.cBoxObj.getValues().length;A++){var D=document.createElement("tr");D.className="ss_combo_item";C.appendChild(D);var F=this.createItem(D,A);this.items[A]=F;F.onMouseOver=function(G){E.onMouseOverItem(G,this.valItemIdx)};F.render();var B=this;F.onClick=function(G){B.onClickItem(G)};this.onInitItem(A);if(!this.itemsHeight||this.itemsHeight<F.getParentHeight()){this.itemsHeight=F.getParentHeight()}}};BaseComboBoxPopup.prototype.setSelItem=function(A,B){this.items[A].setSelection(B);this.items[A].refreshState();if(B){this.selItem=A}};BaseComboBoxPopup.prototype.getPopupEl=function(){return this.popupEl};BaseComboBoxPopup.prototype.setItem=function(A){if(this.selItem!=A&&this.selItem!=null){this.setSelItem(this.selItem,false)}this.selItem=A;this.setSelItem(this.selItem,true)};BaseComboBoxPopup.prototype.getItemCount=function(){return this.items.length};BaseComboBoxPopup.prototype.getItem=function(A){return this.items[A]};BaseComboBoxPopup.prototype.selectNextItem=function(){if(this.selItem!=null){this.setSelItem(this.selItem,false);this.selItem++}else{this.selItem=0}if(this.selItem>=this.items.length){this.selItem=this.items.length-1}this.setSelItem(this.selItem,true);this.scroll2Item(this.selItem);this.onSelect(this.selItem)};BaseComboBoxPopup.prototype.selectPrevItem=function(){if(this.selItem!=null){this.setSelItem(this.selItem,false);this.selItem--}else{this.selItem=0}if(this.selItem<0){this.selItem=0}this.setSelItem(this.selItem,true);this.scroll2Item(this.selItem);this.onSelect(this.selItem)};BaseComboBoxPopup.prototype.scroll2Item=function(A){var E=this.popupEl.offsetHeight;var F=this.popupEl.scrollTop;var H=A*this.itemsHeight;var G=this.items.length*this.itemsHeight;var C=H-F;if(C<0){this.blockItemClick=true;this.popupEl.scrollTop+=C}var D=E-(H-F);var B=E-this.cBoxObj.getNumberOfPopupItems()*this.itemsHeight;if(D<this.itemsHeight){var I=this.itemsHeight-D;I+=B;this.blockItemClick=true;this.popupEl.scrollTop+=I}};BaseComboBoxPopup.prototype.show=function(){this.popupEl.style.display="block";this.popupEl.style.visibility="visible";if(this.selItem>=0){this.setSelItem(this.selItem,true);this.scroll2Item(this.selItem)}};BaseComboBoxPopup.prototype.hide=function(){this.popupEl.style.display="none";this.popupEl.style.visibility="hidden"};BaseComboBoxPopup.prototype.isVisible=function(){var A=false;if(!this.popupEl){A=false}A=(this.popupEl.style.display!="none"&&this.popupEl.style.visibility=="visible");return A};BaseComboBoxPopup.prototype.createItem=function(B,A){var C=new BaseComboBoxItem();C.create(this.cBoxObj,B,A);return C};BaseComboBoxPopup.prototype.addListeners=function(){var A=this;var B=document.onmouseup;if(B!=null){document.onmouseup=function(C){B(C);A.autoHidePopupListener(C)}}else{document.onmouseup=function(C){A.autoHidePopupListener(C)}}};BaseComboBoxPopup.prototype.onHidePopup=function(A){this.hide()};BaseComboBoxPopup.prototype.onSelect=function(A){};BaseComboBoxPopup.prototype.onClickItem=function(A){if(!this.blockItemClick){this.hide();this.onSelect(A,true)}};BaseComboBoxPopup.prototype.onMouseOverItem=function(B,A){if(!this.blockItemClick){if(this.selItem!=null&&A!=this.selItem){this.setSelItem(this.selItem,false)}this.setSelItem(A,true)}this.blockItemClick=false};BaseComboBoxPopup.prototype.autoHidePopupListener=function(A){if(!this.DOMOp.isElementAreaClicked(A,this.popupEl)){if(this.isVisible()){this.onHidePopup(A)}}};BaseComboBoxPopup.prototype.onRenderItems=function(A){};BaseComboBoxPopup.prototype.onInitItem=function(A){};exportSymbol("skyscanner.snippets.BaseComboBoxPopup",BaseComboBoxPopup);function BarComboBoxPopup(){}BarComboBoxPopup.prototype=new BaseComboBoxPopup();BarComboBoxPopup.prototype.create=function(B,A){BaseComboBoxPopup.prototype.create.call(this,B,A);this.maxValBarWidth=null;this.minV=null;this.maxV=null;this.maxLabWidth=null;this.maxLabTdWidth=null;this.maxDescWidth=null;this.minConWidth=null};BarComboBoxPopup.prototype.onInitItem=function(A){if(this.cBoxObj.getValues()[A].v){this.cBoxObj.getValues()[A].v=parseFloat(this.cBoxObj.getValues()[A].v);if(this.minV>this.cBoxObj.getValues()[A].v||!this.minV){this.minV=this.cBoxObj.getValues()[A].v}if(this.maxV<this.cBoxObj.getValues()[A].v||!this.maxV){this.maxV=this.cBoxObj.getValues()[A].v}}};BarComboBoxPopup.prototype.onRenderItems=function(A){this.calculateAndRefreshItems();A.style.width="100%";this.calculateAndRefreshItems()};BarComboBoxPopup.prototype.calculateAndRefreshItems=function(){this.calculateItemSizes();this.refreshItems()};BarComboBoxPopup.prototype.calculateItemSizes=function(){for(var A=0;A<this.cBoxObj.getValues().length;A++){if(this.cBoxObj.getValues()[A].v){var B=this.items[A].getLabWidth();var C=this.items[A].getDescWidth();var D=this.items[A].getParentWidth();if(this.maxLabWidth<B||!this.maxLabWidth){this.maxLabWidth=B}if(this.maxDescWidth<C||!this.maxDescWidth){this.maxDescWidth=C}if(D<this.minConWidth||!this.minConWidth){this.minConWidth=D}}}};BarComboBoxPopup.prototype.createItem=function(B,A){var C=null;if(this.cBoxObj.getValues()[A].v){C=new BarComboBoxItem();C.create(this.cBoxObj,B,A)}else{C=BaseComboBoxPopup.prototype.createItem.call(this,B,A)}return C};BarComboBoxPopup.prototype.refreshItemsLabelWidth=function(){for(var A=0;A<this.cBoxObj.getValues().length;A++){var B=this.items[A];if(this.cBoxObj.getValues()[A].v){this.items[A].setLabTDWidth(this.maxLabTdWidth)}}};BarComboBoxPopup.prototype.refreshItems=function(){this.maxValBarWidth=this.minConWidth-this.maxDescWidth-this.maxLabWidth-10;this.maxLabTdWidth=null;for(var A=0;A<this.cBoxObj.getValues().length;A++){var B=this.items[A];if(B instanceof BarComboBoxItem){B.rescaleBar(this.maxV,this.maxValBarWidth);var C=this.items[A].getLabTDWidth();if(!this.maxLabTdWidth||this.maxLabTdWidth<C){this.maxLabTdWidth=C}}}};exportSymbol("skyscanner.snippets.BarComboBoxPopup",BarComboBoxPopup);function BaseComboBox(){}BaseComboBox.prototype.create=function(D,B){this.DOMOp=skyscanner.snippets.core.DOMOperations;this.mainConEl=D;this.tableConEl=null;this.textFieldEl=null;this.popup=null;this.optionEl=null;this.arrowEl=null;this.values=null;this.toolTipText=null;this.selItemOb=null;this.numberOfSelectedItem=null;this.numberOfPopupItems=B;if(this.numberOfPopupItems==null){this.numberOfPopupItems=10}this.registeredItemStates=new Array();var C=new ComboBoxItemState();C.create("disabled","ss_combo_item_disabled","ss_combo_item_disabled_selected",true);this.registerItemState(C);var A=new ComboBoxItemState();A.create("disabled_unclicked","ss_combo_item_disabled","ss_combo_item_disabled_selected",false);this.registerItemState(A)};BaseComboBox.prototype.registerItemState=function(A){this.registeredItemStates[A.stateName]=(A)};BaseComboBox.prototype.init=function(){this.renderMainContainer();this.renderPopup()};BaseComboBox.prototype.createPopupObject=function(B){var A=new BaseComboBoxPopup();A.create(B,this);return A};BaseComboBox.prototype.setValues=function(A){this.values=A};BaseComboBox.prototype.getValues=function(){return this.values};BaseComboBox.prototype.getMainConEl=function(){return this.mainConEl};BaseComboBox.prototype.getNumberOfPopupItems=function(){return this.numberOfPopupItems};BaseComboBox.prototype.getRegisteredItemStates=function(){return this.registeredItemStates};BaseComboBox.prototype.getPopupObj=function(){return this.popup};BaseComboBox.prototype.setToolTipText=function(A){this.toolTipText=A;this.addToolTipToArrowPane()};BaseComboBox.prototype.refreshStateOfAllItems=function(){for(var A=0;A<this.popup.getItemCount();A++){var B=this.popup.getItem(A);B.refreshState()}if(this.selItemOb){this.selItemOb.refreshState()}};BaseComboBox.prototype.getItemNumberByIdx=function(A){for(var B=0;B<this.values.length;B++){if(this.values[B].i==A){return B}}return -1};BaseComboBox.prototype.selectItemByIdx=function(A){var B=this.getItemNumberByIdx(A);if(B>=0){this.selectItem(B)}};BaseComboBox.prototype.getIdxOfSelectedItem=function(){if(this.numberOfSelectedItem>=0){return this.values[this.numberOfSelectedItem].i}else{return null}};BaseComboBox.prototype.getParamsForSelItem=function(){if(this.numberOfSelectedItem>=0){return this.values[this.numberOfSelectedItem]}else{return null}};BaseComboBox.prototype.getSelItem=function(){return this.selItemOb};BaseComboBox.prototype.refreshSelItem=function(){this.renderSelectedItem();this.onRenderSelectedItem();this.renderArrowPane()};BaseComboBox.prototype.selectItem=function(A){this.numberOfSelectedItem=A;this.refreshSelItem();this.onSelectItem(this.numberOfSelectedItem,this.values[this.numberOfSelectedItem])};BaseComboBox.prototype.addToolTipToArrowPane=function(){var A=this;if(this.arrowEl){this.arrowEl.onmouseover=function(B){if(A.toolTipText&&A.toolTipText!=""){new skyscanner.ToolTip(this,A.toolTipText,B)}else{DOMOperations.stopPropagation(B)}}}};BaseComboBox.prototype.renderArrowPane=function(){this.arrowEl=document.createElement("td");this.addToolTipToArrowPane();var A=document.createElement("div");this.arrowEl.appendChild(A);this.arrowEl.className="ss_combo_button";this.optionEl.appendChild(this.arrowEl)};BaseComboBox.prototype.renderMainContainer=function(){if(this.mainConEl.className!=""){this.mainConEl.className+=" ss_combo_main_cont"}else{this.mainConEl.className+="ss_combo_main_cont"}if(skyscanner.snippets.core.Browser.isSafari()){this.mainConEl.style.position="relative"}var A=document.createElement("div");A.className="ss_combo_elem";this.tableConEl=document.createElement("table");this.tableConEl.className="ss_combo_elem_cont";this.tableConEl.cellPadding="0";this.tableConEl.cellSpacing="0";var B=document.createElement("tbody");this.tableConEl.appendChild(B);A.appendChild(this.tableConEl);this.mainConEl.appendChild(A);if(skyscanner.snippets.core.Browser.isIE()&&skyscanner.snippets.core.Browser.isQuirkMode()){A.style.width=A.offsetWidth+"px"}this.textFieldEl=document.createElement("input");this.textFieldEl.type="text";this.textFieldEl.style.width="1px";this.textFieldEl.style.height="1px";this.textFieldEl.style.border="none";this.textFieldEl.style.margin="0px";this.textFieldEl.style.padding="0px";this.textFieldEl.readOnly=true;this.textFieldEl.style.zIndex=this.mainConEl.style.zIndex-1;this.textFieldEl.style.position="absolute";this.textFieldEl.onfocus=function(){C.DOMOp.addCSSClass(C.mainConEl,"ss_combo_focus");return false};this.textFieldEl.onblur=function(){if(!C.popup.isVisible()){C.DOMOp.removeCSSClass(C.mainConEl,"ss_combo_focus")}return false};var C=this;this.textFieldEl.onkeydown=function(D){if(D==null){D=window.event}return C.onKeyDown(D.keyCode)};A.appendChild(this.textFieldEl);this.optionEl=document.createElement("tr");this.optionEl.className="ss_combo_item ss_combo_current_selection";B.appendChild(this.optionEl);skyscanner.snippets.core.DOMOperations.disableTextSelecting(this.mainConEl)};BaseComboBox.prototype.renderPopup=function(){var A=skyscanner.snippets.core.DOMOperations.gec(this.mainConEl,"div","ss_combo_popup_main_cont");if(A!=null){skyscanner.snippets.core.DOMOperations.removeElement(A)}var D=document.createElement("div");D.className="ss_combo_popup_main_cont";D.position="absolute";D.style.display="block";this.mainConEl.appendChild(D);var C=skyscanner.snippets.core.DOMOperations.getElWidth(this.mainConEl,D);D.style.width=C+"px";skyscanner.snippets.core.DOMOperations.disableTextSelecting(D);this.popup=this.createPopupObject(D);var B=this;this.popup.onSelect=function(E){B.selectItem(E);B.textFieldEl.focus()};this.popup.onHidePopup=function(E){if(!B.DOMOp.isElementAreaClicked(E,B.mainConEl)){B.popup.hide()}B.textFieldEl.focus()};this.popup.render()};BaseComboBox.prototype.renderSelectedItem=function(){while(this.optionEl.childNodes[0]){this.optionEl.removeChild(this.optionEl.childNodes[0])}var B=this.values[this.numberOfSelectedItem];var A=this;this.selItemOb=this.popup.items[this.numberOfSelectedItem].clone(this.optionEl);this.selItemOb.parentCont.onmousedown=function(C){if(!A.popup.isVisible()){A.popup.setItem(A.numberOfSelectedItem);A.popup.show()}else{A.popup.hide()}A.textFieldEl.focus()};this.selItemOb.render()};BaseComboBox.prototype.onSelectItem=function(A,B){};BaseComboBox.prototype.onKeyDown=function(B){var A=false;if(!this.popup.isVisible()){switch(B){case 9:this.popup.hide();A=true;break;case 38:case 40:case 13:this.popup.setItem(this.numberOfSelectedItem);this.popup.show();break;case 27:this.textFieldEl.blur();A=false;break}}else{switch(B){case 9:this.popup.hide();A=true;break;case 27:this.popup.hide();A=false;break;case 38:this.popup.selectPrevItem();A=false;break;case 40:this.popup.selectNextItem();A=false;break;case 13:this.popup.hide();A=false;break}}return A};BaseComboBox.prototype.onRenderSelectedItem=function(){};exportSymbol("skyscanner.snippets.BaseComboBox",BaseComboBox);function BarComboBox(){}BarComboBox.prototype=new BaseComboBox();BarComboBox.prototype.create=function(B,A){BaseComboBox.prototype.create.call(this,B,A)};BarComboBox.prototype.createPopupObject=function(A){var B=new BarComboBoxPopup();B.create(A,this);return B};BarComboBox.prototype.onRenderSelectedItem=function(){if(this.selItemOb instanceof BarComboBoxItem){this.selItemOb.rescaleBar(this.popup.maxV,this.popup.maxValBarWidth);this.selItemOb.labEl.style.width=this.popup.maxLabTdWidth+"px";this.selItemOb.rescaleBar(this.popup.maxV,this.popup.maxValBarWidth)}};BarComboBox.rescaleComboBoxes=function(E,C){var F=Math.max(E.getPopupObj().maxV,C.getPopupObj().maxV);var B=Math.max(E.getPopupObj().maxLabWidth,C.getPopupObj().maxLabWidth);var A=Math.max(E.getPopupObj().maxDescWidth,C.getPopupObj().maxDescWidth);E.getPopupObj().maxLabWidth=B;C.getPopupObj().maxLabWidth=B;E.getPopupObj().maxDescWidth=A;C.getPopupObj().maxDescWidth=A;E.getPopupObj().maxV=F;C.getPopupObj().maxV=F;E.getPopupObj().getPopupEl().style.display="";E.getPopupObj().getPopupEl().style.visibility="hidden";C.getPopupObj().getPopupEl().style.display="";C.getPopupObj().getPopupEl().style.visibility="hidden";E.getPopupObj().refreshItems();C.getPopupObj().refreshItems();var D=Math.min(E.getPopupObj().maxLabTdWidth,C.getPopupObj().maxLabTdWidth);C.getPopupObj().maxLabTdWidth=D;E.getPopupObj().maxLabTdWidth=D;E.getPopupObj().refreshItemsLabelWidth();C.getPopupObj().refreshItemsLabelWidth();E.getPopupObj().hide();C.getPopupObj().hide()};exportSymbol("skyscanner.snippets.BarComboBox",BarComboBox);exportSymbol("skyscanner.snippets.AutoSuggestControl",AutoSuggestControl);exportSymbol("skyscanner.snippets.SuggestWindow",SuggestWindow);exportSymbol("skyscanner.snippets.SuggestionProvider",SuggestionProvider);exportSymbol("skyscanner.snippets.CrossDomainSuggestionProvider",CrossDomainSuggestionProvider);if(typeof (SS)=="undefined"||typeof (SS.util)=="undefined"||typeof (SS.util.encodeURL)=="undefined"){function encodeURL(A){if(A==""){return""}return(typeof encodeURIComponent=="function")?(encodeURIComponent(A)):(skyscanner.$U.encodeURIComponentNew(A))}exportSymbol("SS.util.encodeURL",encodeURL)}if(typeof ($D)=="undefined"||typeof ($D.getElementsByClassName)=="undefined"){if(typeof ($D)=="undefined"){$D={}}$D.getElementsByClassName=function(C,B,A){return DOMOperations.getElementsByClassName(A,B,C)}}if(typeof ($D)=="undefined"||typeof ($D.addClass)=="undefined"){if(typeof ($D)=="undefined"){$D={}}$D.addClass=function(B,A){return DOMOperations.addCSSClass(B,A)}}if(typeof ($D)=="undefined"||typeof ($D.removeClass)=="undefined"){if(typeof ($D)=="undefined"){$D={}}$D.removeClass=function(B,A){return DOMOperations.removeCSSClass(B,A)}}if(typeof ($D)=="undefined"||typeof ($D.getXY)=="undefined"){if(typeof ($D)=="undefined"){$D={}}$D.getXY=function(C){var A=DOMOperations.calcAbsPos(C);var B=new Array();B[0]=A.left;B[1]=A.top;return B}}if(typeof (maText)=="undefined"){var maText=new Array()};function FlightSearchControl(){this.create();this.cssName=skyscanner.snippets.CSS.FSC.MAIN_CON;this.oMonthCBox=null;this.rMonthCBox=null;this.oDayCBox=null;this.rDayCBox=null;this.setParam(skyscanner.snippets.PARAMS.SNIPPET_TYPE,"flightsearchcontrol");this.setParam(skyscanner.snippets.PARAMS.VIEW,"",true);this.setParam(skyscanner.snippets.PARAMS.ODATE,"",false);this.setParam(skyscanner.snippets.PARAMS.IDATE,"",false);this.setParam(skyscanner.snippets.PARAMS.OWFC,"",false);this.setParam(skyscanner.snippets.PARAMS.IWFC,"",false);this.setParam(skyscanner.snippets.PARAMS.SORT_FLIGHT_PLACE,"",false);this.setParam(skyscanner.snippets.PARAMS.SORT_FLIGHT_TIME,"",false);this.stateValidator=function(J,H){var K=skyscanner.snippets.core.Utils;if(SnippetParam.equalStates(J,H)){if(J[skyscanner.snippets.PARAMS.VIEW].value==skyscanner.snippets.VIEW_MONTH||J[skyscanner.snippets.PARAMS.VIEW].value==skyscanner.snippets.VIEW_DAY){var D=J[skyscanner.snippets.PARAMS.ODATE].value;var B=H[skyscanner.snippets.PARAMS.ODATE].value;var C=K.parseYMDate(D);if(C==null){C=K.parseYMDDate(D)}var A=K.parseYMDate(B);if(A==null){A=K.parseYMDDate(B)}var F=J[skyscanner.snippets.PARAMS.IDATE].value;var E=H[skyscanner.snippets.PARAMS.IDATE].value;var I=K.parseYMDate(F);if(I==null){I=K.parseYMDDate(F)}var G=K.parseYMDate(E);if(G==null){G=K.parseYMDDate(E)}if(J[skyscanner.snippets.PARAMS.VIEW].value==skyscanner.snippets.VIEW_MONTH){return K.compareYM(C,A)&&K.compareYM(I,G)}if(J[skyscanner.snippets.PARAMS.VIEW].value==skyscanner.snippets.VIEW_DAY){return K.compareYMD(C,A)&&K.compareYMD(I,G)}}return true}else{return false}};this.oDayCBox=null;this.rDayCBox=null;this.oFlightCBox=null;this.rFlightCBox=null;this.oASField=null;this.iASField=null;this.initialSorting={type:null,order:null}}FlightSearchControl.prototype=new BaseSnippet();FlightSearchControl.prototype.setView=function(A){this.setParam(skyscanner.snippets.PARAMS.VIEW,A)};FlightSearchControl.prototype.setSorting=function(B,A){if(A!=skyscanner.snippets.SORT_ASC&&A!=skyscanner.snippets.SORT_DESC){return }switch(B){case skyscanner.snippets.SORT_DATE:this.initialSorting.type=B;this.initialSorting.order=A;break;case skyscanner.snippets.SORT_PLACE:this.initialSorting.type=B;this.initialSorting.order=A;break;case skyscanner.snippets.SORT_PRICE:this.initialSorting.type=B;this.initialSorting.order=A;break}};FlightSearchControl.prototype.getView=function(){return this.getParamValue(skyscanner.snippets.PARAMS.VIEW)};FlightSearchControl.prototype.getConEl=function(){var A=this.DOMOp.getElementsByClassName(this.snippetElement,"div",this.cssConsts.FSC.CONTENT);if(A&&A.length>0){return A[0]}else{return null}};FlightSearchControl.prototype.getFooterEl=function(){var A=this.DOMOp.getElementsByClassName(this.snippetElement,"div",this.cssConsts.FSC.FOOTER);if(A&&A.length>0){return A[0]}else{return null}};FlightSearchControl.prototype.getNavEl=function(){var A=this.DOMOp.getElementsByClassName(this.snippetElement,"div",this.cssConsts.FSC.NAV_PANE);if(A&&A.length>0){return A[0]}else{return null}};FlightSearchControl.prototype.getNextEl=function(){var A=this.getNavEl();if(!A){return null}var B=this.DOMOp.getElementsByClassName(A,"div",this.cssConsts.FSC.NEXT);if(B&&B.length>0){return B[0]}else{return null}};FlightSearchControl.prototype.getAdvertContEl=function(){var A=this.getConEl();if(A){var B=this.DOMOp.getElementsByClassName(A,"table",this.cssConsts.FSC.ADVERT_CONT);if(B&&B.length>0){return B[0]}else{return null}}else{return null}};FlightSearchControl.prototype.prepareInitialCodeUrl=function(D,A,G){var B=this.getView();var F=this.getODate();var E=this.getIDate();try{this.setODate(null);this.setIDate(null);if(B==skyscanner.snippets.VIEW_MONTH){this.setView(skyscanner.snippets.VIEW_YEAR)}if(B==skyscanner.snippets.VIEW_DAY){this.setView(skyscanner.snippets.VIEW_YEAR)}var C=BaseSnippet.prototype.prepareInitialCodeUrl.call(this,D,A,G)}finally{this.setView(B);this.setODate(F);this.setIDate(E)}return C};FlightSearchControl.prototype.displayAdvert=function(){var E=this.getConEl();var I=this.getAdvertContEl();if(I){var C=this.DOMOp.getElementsByClassName(E,"td",this.cssConsts.FSC.ADVERT);var G=null;if(C){advertEl=C[0]}var H=this.DOMOp.getMaxHeight4El(I,E);I.style.height=H+"px";if(advertEl){if(this.advertParams.adServerUrl!=null){var A=this.advertParams.adServerUrl;for(var D in this.params){var B=this.params[D];if(B&&B.value!=""){if(A.indexOf("?")>=0){A+="&"}else{A+="?"}A+=D+"="+this.params[D].value}}A+="&"+skyscanner.snippets.PARAMS.WIDTH+"="+advertEl.offsetWidth;A+="&"+skyscanner.snippets.PARAMS.HEIGHT+"="+advertEl.offsetHeight;var F=A;if(this.advertParams.contentType.toLowerCase()=="js"){F=this.preparelSSAdUrl()+"&ad_url="+Utils.encodeURIComponentNew(A)}advertEl.innerHTML='<iframe allowTransparency="true" frameborder="0" style="border: none; display: block; width:100%;  height:'+advertEl.offsetHeight+'px; " src="'+F+'" marginwidth="0px" marginheight="0px" scrolling="no"></iframe>'}}}};FlightSearchControl.prototype.validateSorting=function(){if(this.initialSorting&&this.initialSorting.type&&this.initialSorting.order){var B=this.getView();var H=new Array(skyscanner.snippets.VIEW_YEAR,skyscanner.snippets.VIEW_MONTH,skyscanner.snippets.VIEW_DAY);var G=new Array(skyscanner.snippets.VIEW_DESTINATION_COUNTRIES,skyscanner.snippets.VIEW_DESTINATION_CITIES,skyscanner.snippets.VIEW_DEPARTURE_CITIES);var E=false;var F=false;for(var C=0;C<H.length;C++){if(H[C]==B){E=true;break}}for(var C=0;C<G.length;C++){if(G[C]==B){F=true;break}}var D=this.initialSorting.type;var A=this.initialSorting.order;if(F){this.setParam(skyscanner.snippets.PARAMS.SORT_FLIGHT_PLACE,D+A)}if(E){this.setParam(skyscanner.snippets.PARAMS.SORT_FLIGHT_TIME,D+A)}this.initialSorting={type:null,order:null}}};FlightSearchControl.prototype.display=function(C){BaseSnippet.prototype.display.call(this,C);this.resize();this.displayAdvert();var B=this;var A=skyscanner.snippets.core.Utils;if(this.getView()==skyscanner.snippets.VIEW_YEAR&&this.oMonthCBox!=null&&this.rMonthCBox!=null){this.oMonthCBox.onSelectItem=function(D,E){B.changeOutboundMonthEvent(E.i)};this.rMonthCBox.onSelectItem=function(D,E){B.changeInboundMonthEvent(E.i)}}if(this.getView()==skyscanner.snippets.VIEW_MONTH){if(this.oDayCBox!=null){this.oDayCBox.onSelectItem=function(D,E){B.changeOutboundDayEvent(E.i)}}if(this.rDayCBox!=null){this.rDayCBox.onSelectItem=function(D,E){B.changeInboundDayEvent(E.i)}}}if(this.getView()==skyscanner.snippets.VIEW_DAY){if(this.oFlightCBox!=null){this.oFlightCBox.refreshSelItem();this.oFlightCBox.onSelectItem=function(D,E){B.changeOutboundFlightEvent(E)}}if(this.rFlightCBox!=null){this.rFlightCBox.refreshSelItem();this.rFlightCBox.onSelectItem=function(D,E){B.changeInboundFlightEvent(E)}}}};FlightSearchControl.prototype.resize=function(){var F=this.getConEl();if(F){var E=this.DOMOp.getMaxHeight4El(F,this.snippetElement);F.style.height=E+"px";var G=this.getFooterEl();if(G){G.style.visibility="visible"}var B=this.getNavEl();if(B){B.style.visibility="visible"}var N=this.DOMOp.getElementsByClassName(F,"div",this.cssConsts.COMMON.TABLE);if(N.length>0){N[0].style.height=this.DOMOp.getMaxHeight4El(N[0],F)+"px";var H=this.DOMOp.getElementsByClassName(N[0],"div",this.cssConsts.COMMON.TABLE_CONTENT);H[0].style.height=this.DOMOp.getMaxHeight4El(H[0],N[0])+"px";H[0].style.display="block";var L=this.DOMOp.getElementsByClassName(F,"table",this.cssConsts.COMMON.TABLE_ROWS);L=L[0];if(L){if(skyscanner.snippets.core.Browser.isIE()){H[0].style.visibility="hidden";H[0].style.overflow="hidden";var J=H[0].clientWidth;H[0].style.overflow="scroll";var C=H[0].clientWidth;H[0].style.overflowX="hidden";H[0].style.overflowY="auto";var A=H[0].clientWidth;var K=J-C;if(A>C){K=0}L.style.width=(H[0].offsetWidth-K)+"px";H[0].style.visibility="visible"}else{L.style.width="100%"}}}var D=this.DOMOp.gec(F,"input",this.cssConsts.FSC.AS_OUTBOUND_FIELD);if(D){var I=this.DOMOp.getElWidth(D.parentNode,D);D.style.width=I+"px";D.style.visibility="visible"}var M=this.DOMOp.gec(F,"input",this.cssConsts.FSC.AS_INBOUND_FIELD);if(M){var I=this.DOMOp.getElWidth(M.parentNode,D);M.style.width=I+"px";M.style.visibility="visible"}}};FlightSearchControl.prototype.draw=function(A){if(A){if(!skyscanner.snippets.core.Browser.isIE()){A.style.position="relative"}if(A.offsetHeight<310){A.style.height="310px"}if(A.offsetWidth<200){A.style.width="200px"}}BaseSnippet.prototype.draw.call(this,A)};FlightSearchControl.prototype.goNext=function(){if(this.getView()==skyscanner.snippets.VIEW_YEAR){this.goNextFromYearViewEvent()}else{if(this.getView()==skyscanner.snippets.VIEW_MONTH){this.goNextFromMonthViewEvent()}}};exportSymbol("skyscanner.snippets.FlightSearchControl",FlightSearchControl);FlightSearchControl.prototype.updateUrlToBookingPageOnSkyscanner=function(){var G=this;if(skyscanner.log){skyscanner.log.info("update url to booking page")}var H=null;var F=null;if(this.oFlightCBox){H=this.oFlightCBox.getParamsForSelItem()}if(this.rFlightCBox){F=this.rFlightCBox.getParamsForSelItem()}var A=!this.Utils.isDate(this.getIDate());var C=this.getNextEl();if(C){var E=this.DOMOp.getElementsByClassName(C,"a",this.cssConsts.FSC.NEXT_ANCHOR);if(E!=null&&E[0]!=null){E=E[0];if(!A&&F&&(!F.v||!H.v)){E.onclick=function(){alert(G.getText("txtSnFsctrlSelectBothFlights"));return false};return }if(A&&H&&!H.v){E.onclick=function(){alert(G.getText("txtSnFsctrlSelectOutboundFlight"));return false};return }var J=Utils.parseFullDateTime(H.arrtime);var B=Utils.parseFullDateTime(F!=null?F.deptime:null);if(!A&&J&&B&&J>B){E.onclick=function(){alert(G.getText("txtSnFsctrlArrivalFlightIsLaterThanOutboundFlight"));return false};if(skyscanner.log){skyscanner.log.warning("arr time  out. flight ("+H.arrtime+") > dep time in. flight ("+F.deptime+")")}return }else{E.onclick=function(){return true};var K=this.bookViewLinkTemplate;if(H){var I=H.i;K=K.replace("@@owfc@@",I)}if(!A&&F){var D=F.i;K=K.replace("@@iwfc@@",D)}E.href=K;if(skyscanner.log){skyscanner.log.info('url to book pg="'+K+'"')}E.target="_blank";var G=this;if(!A&&J&&B){E.onclick=function(){var L=(B-J)/3600000;if(L>=0&&L<2){if(!confirm(G.getText("txtSnFsctrlTooShortDelay"))){return false}}}}}}}};FlightSearchControl.prototype.isProperFlightPair=function(B,A){if(B.sch&&A.sch){if(!B.airlid||!A.airlid||B.airlid.toLowerCase()!=A.airlid.toLowerCase()){return false}else{return true}}else{if(B.sch!=A.sch){return false}else{if(!B.sch&&!A.sch){return true}}}};FlightSearchControl.prototype.allFlightsFilter=function(B){var C=B.getValues();for(var A=0;A<C.length;A++){C[A].state="";C[A].ttip=C[A].ttipCopy}B.refreshStateOfAllItems()};FlightSearchControl.prototype.flightFilter=function(B,D){var C=B.getValues();for(var A=0;A<C.length;A++){if(C[A].v&&!this.isProperFlightPair(C[A],D)){C[A].state="disabled";C[A].ttip=B.notAvailableFlightText+C[A].ttipCopy}else{C[A].state="";C[A].ttip=C[A].ttipCopy}}B.refreshStateOfAllItems()};FlightSearchControl.prototype.changeFlightsEvent=function(D,C,B,A){if(D.v!=null&&C.v!=null){if(!this.isProperFlightPair(D,C)){A.selectItemByIdx(0);this.allFlightsFilter(B);this.flightFilter(A,D)}else{this.flightFilter(B,D);this.flightFilter(A,D)}}else{if(D.v==null&&C.v==null){this.allFlightsFilter(B);this.allFlightsFilter(A)}else{if(D.v!=null&&C.v==null){this.allFlightsFilter(B);this.flightFilter(A,D)}else{if(D.v==null&&C.v!=null){this.allFlightsFilter(A);this.flightFilter(B,C)}}}}};FlightSearchControl.prototype.changeOutboundFlightEvent=function(E){if(skyscanner.log){skyscanner.log.info("on change departure flight")}var D=E;var C=null;var B=this.oFlightCBox;var A=this.rFlightCBox;if(D!=null){this.setOWFC(D.i)}else{D=B.getParamsForSelItem()}if(A){C=A.getParamsForSelItem();this.changeFlightsEvent(D,C,B,A)}this.updateCurrentHistoryPosition();this.updateUrlToBookingPageOnSkyscanner()};FlightSearchControl.prototype.changeInboundFlightEvent=function(E){if(skyscanner.log){skyscanner.log.info("on change retutn flight")}var D=E;var C=null;var B=this.rFlightCBox;var A=this.oFlightCBox;if(D!=null){this.setIWFC(D.i)}else{D=B.getParamsForSelItem()}if(A){C=A.getParamsForSelItem();this.changeFlightsEvent(D,C,B,A)}this.updateCurrentHistoryPosition();this.updateUrlToBookingPageOnSkyscanner()};FlightSearchControl.prototype.changeOutboundDayEvent=function(B){var A=skyscanner.snippets.core.Utils;var C=this.getIDate();if(C==null){C=""}var D=null;if(C.length<6){D=A.parseYMDate(C)}var E=A.parseYMDate(B);if(D&&E&&E>D){this.setIDate(B);this.rDayCBox.selectItemByIdx(this.getIDate())}this.setODate(B);this.updateCurrentHistoryPosition()};FlightSearchControl.prototype.changeInboundDayEvent=function(A){var B=skyscanner.snippets.core.Utils;var D=this.getODate();if(D==null){D=""}var E=B.parseYMDate(D);var C=null;if(A.length<6){C=B.parseYMDate(A)}if(C&&E&&E>C){this.setODate(A);this.oDayCBox.selectItemByIdx(this.getODate())}this.setIDate(A);this.updateCurrentHistoryPosition()};FlightSearchControl.prototype.goNextFromMonthViewEvent=function(){var C=skyscanner.snippets.core.Utils;var F=this.getODate();var E=this.getIDate();var D=C.parseYMDDate(F);var B=C.parseYMDDate(E);if(D!=null&&B!=null&&D>B){alert(this.getText("txtSnFsctrlArrivalDayIsLaterThanOutboundDay"));return }var A={};A[skyscanner.snippets.PARAMS.VIEW]=skyscanner.snippets.VIEW_DAY;this.goTo(A)};FlightSearchControl.prototype.changeOutboundMonthEvent=function(B){this.setODate(B);var B=this.Utils.parseYMDate(B);var A=this.Utils.parseYMDate(this.getIDate());this.changeMonthsEvent(B,A)};FlightSearchControl.prototype.changeInboundMonthEvent=function(A){this.setIDate(A);var B=this.Utils.parseYMDate(this.getODate());var A=this.Utils.parseYMDate(A);this.changeMonthsEvent(B,A)};FlightSearchControl.prototype.changeMonthsEvent=function(D,F){var B=this.getNextEl();if(B){var E=this.DOMOp.getElementsByClassName(B,"a",this.cssConsts.FSC.NEXT_ANCHOR);if(E!=null&&E[0]!=null){E=E[0];var G=this;if(F&&D&&D>F){E.onclick=function(){alert(G.getText("txt_return_b4_depart"));return false}}else{E.onclick=function(){return true}}}}this.updateCurrentHistoryPosition();var A="";var I=this.rMonthCBox.getValues();if(D!=null){var H=this.oMonthCBox.getParamsForSelItem();if(H.sch){A="disabled_unclicked";if(F==null){var J=this.Utils.parseYMDate(this.getODate());for(var C=0;C<I.length;C++){if(this.Utils.compareYM(J,this.Utils.parseYMDate(I[C].i))){this.rMonthCBox.selectItemByIdx(I[C].i)}this.setIDate(I[C].i)}}}}if(I[0].state!=A){I[0].state=A;this.rMonthCBox.refreshStateOfAllItems()}};FlightSearchControl.prototype.goNextFromYearViewEvent=function(){var A={};A[skyscanner.snippets.PARAMS.VIEW]=skyscanner.snippets.VIEW_MONTH;this.goTo(A)};FlightSearchControl.prototype.onChangeOPlace=function(A){this.setDeparture(A);this.updateCurrentHistoryPosition()};FlightSearchControl.prototype.onChangeIPlace=function(A){this.setDestination(A);this.updateCurrentHistoryPosition()};FlightSearchControl.prototype.goSearch=function(){var D=null;var C=skyscanner.snippets.SnippetUtlis;var B=this.getDeparture();var E=this.getDestination();if(C.isCityOrAirport(B)){if(C.isCityOrAirport(E)){D=skyscanner.snippets.VIEW_YEAR}else{if(C.isCountry(E)){D=skyscanner.snippets.VIEW_DESTINATION_CITIES}else{D=skyscanner.snippets.VIEW_DESTINATION_COUNTRIES}}}else{if(C.isCountry(B)){if(C.isCityOrAirport(E)){D=skyscanner.snippets.VIEW_DEPARTURE_CITIES}else{if(C.isCountry(E)){D=skyscanner.snippets.VIEW_DESTINATION_CITIES}else{D=skyscanner.snippets.VIEW_DESTINATION_COUNTRIES}}}else{if(C.isValidPlace(E)){D=skyscanner.snippets.VIEW_DEPARTURE_CITIES}else{}}}if(D!=null){var A={};A[skyscanner.snippets.PARAMS.VIEW]=D;this.goTo(A)}else{alert(this.txtSnFsctrlPleaseFillPlaces)}};function IsopricesControl(){this.create();this.setParam(skyscanner.snippets.PARAMS.SNIPPET_TYPE,"isopricescontrol");this.setParam("cordx","10");this.YY=null;this.airports=null;this.airports_world=null;this.cssName=skyscanner.snippets.CSS.ISO.MAIN_CON;this.tooltip=new skyscanner.FlowingMessage();this.mousePos=null;this.imgIsoSize=null;this.listDepSize=null;this.listMaxDepHeight=null;this.dom=skyscanner.snippets.core.DOMOperations;this.lastImageHeight=0;this.contCoords=null}IsopricesControl.prototype=new skyscanner.snippets.BaseSnippet();IsopricesControl.prototype.setShowTitle=function(A){this.setParam("stit",A)};IsopricesControl.prototype.getShowTitle=function(){return this.getParamValue("stit")};IsopricesControl.prototype.setShowLegend=function(A){this.setParam("sleg",A)};IsopricesControl.prototype.getShowLegend=function(){return this.getParamValue("sleg")};IsopricesControl.prototype.gsec=function(A,B){var C=this.dom.getElementsByClassName(this.snippetElement,A,B);return C[0]};IsopricesControl.prototype.gec=function(D,A,B){var C=this.dom.getElementsByClassName(D,A,B);return C[0]};IsopricesControl.prototype.arrGec=function(D,A,B){var C=this.dom.getElementsByClassName(D,A,B);return C};IsopricesControl.prototype.onClick=null;IsopricesControl.prototype.onClickInternal=function(E,D,C){var B=this.findAirport(this.getClickedPos(E,D),C);if(B){var F=this.getClickedPos(E,D);var A=C?this.fragments.searchWorldUrl:this.fragments.searchUrl;if(A.indexOf("?")==-1){A=A+"?"}else{A=A+"&"}A=A+"posx="+(F.left)+"&posy="+(F.top)+"&mode=nearestsearch&outbound="+this.fragments.outbound;if(this.onClick){this.onClick({name:B.n,price:B.p,posX:B.x,posY:B.y,url:A})}else{document.location=A}}};IsopricesControl.prototype.getAnchor=function(){var C=new skyscanner.loader.ScriptRequest();var B=this;C.onComplete=function(D,E){B.onChangeDeparture(D.id,D.name,D.url)};var A=this.prepareUrl();A+="&get_anchor=1";C.send(A,true)};IsopricesControl.prototype.onChangeDeparture=function(B,C,A){alert(A)};IsopricesControl.prototype.getClickedPos=function(E,D){if(!D){var D=window.event}var C=this.getMouseCoords(D);var B=this.dom.calcAbsPos(E);var A=C.left-B.left;var F=C.top-B.top;return{left:A,top:F}};IsopricesControl.prototype.getMouseCoords=function(A){return this.dom.getMouseXY(A)};IsopricesControl.prototype.onMouseMove=function(D,C,B){var A=this.findAirport(this.getClickedPos(D,C),B);if(A){var E=this.getMouseCoords(C);this.tooltip.text=A.n+'<br /><span class="p">'+A.p+"</span>";this.tooltip.show(E);D.style.cursor="pointer"}else{this.tooltip.hide();D.style.cursor="default"}};IsopricesControl.prototype.findAirport=function(F,D){var B;if(D){B=this.airports_world}else{B=this.airports}var E=5;var J=F.left,I=F.top;var H,G;var A="";for(var C=0;C<B.length;C++){H=B[C].x;G=B[C].y;if(Math.abs(H-J)<E&&Math.abs(G-I)<E){A=B[C];break}}return A};IsopricesControl.prototype.OverlayIsopricesOpen=function(){this.hideConfilctElements();var D=this.gec(document.body,"div","ss_iso_ovr_background");var C=this.gec(document.body,"div","ss_iso_ovr_container_img");var B=this.gec(document.body,"div","ss_iso_ovr_container_head");D.style.display="block";C.style.display="block";B.style.display="block";var A=this;D.onclick=function(){A.OverlayIsopricesClose()};this.OverlayIsopricesSetSize();this.OverlayIsopricesPane()};IsopricesControl.prototype.OverlayIsopricesPane=function(){var A=this.gec(document.body,"div","ss_iso_ovr_container_img");if(A.scrollLeft<30&&A.scrollTop<30){A.scrollLeft=Math.max(this.contCoords.left-A.offsetWidth/2,0);A.scrollTop=Math.max(this.contCoords.top-A.offsetHeight/2,0)}};IsopricesControl.prototype.OverlayIsopricesSetSize=function(){var D=this.gec(document.body,"div","ss_iso_ovr_background");if(!D){return }var C=this.gec(document.body,"div","ss_iso_ovr_container_img");var B=this.gec(document.body,"div","ss_iso_ovr_container_head");var H=this.gec(document.body,"img","ss_iso_ovr_img");var A=this.getPageSize();var G=A.windowWidth-60;var I=A.windowHeight-70;var J=20;var F=H.width;var E=H.height;this.log.info(F);if(F<60){F=558;E=60}if(F<G){J=(G+40-(F))/2;G=F}if(E<I){I=E}D.style.height=A.pageHeight+"px";D.style.width=(A.pageWidth-20)+"px";C.style.top=(this.getPageScroll().top+45)+"px";C.style.width=G+"px";C.style.height=I+"px";C.style.left=J+"px";B.style.top=(this.getPageScroll().top+20)+"px";B.style.width=C.style.width;B.style.left=C.style.left};IsopricesControl.prototype.getPageSize=function(){var E,A;var D,B;if(window.innerHeight&&window.scrollMaxY){E=document.body.scrollWidth;A=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){E=document.body.scrollWidth;A=document.body.scrollHeight}else{E=document.body.offsetWidth;A=document.body.offsetHeight}}var C,F;if(self.innerHeight){C=self.innerWidth;F=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){C=document.documentElement.clientWidth;F=document.documentElement.clientHeight}else{if(document.body){C=document.body.clientWidth;F=document.body.clientHeight}}}if(A<F){D=F}else{D=A}if(E<C){B=C}else{B=E}return{pageWidth:B,pageHeight:D,windowWidth:C,windowHeight:F}};IsopricesControl.prototype.getPageScroll=function(){return this.dom.getPageScroll()};IsopricesControl.prototype.hideConfilctElements=function(A){var C=this.arrGec(document.body,"object embed select","");for(var B=0;B<C.length;B++){if(A){C[B].style.visibility="visible"}else{C[B].style.visibility="hidden"}}};IsopricesControl.prototype.onLoadWorldImage=function(){this.OverlayIsopricesSetSize();var A=this.gec(document.body,"img","ss_iso_ovr_img");this.assignIsoEvents(A,1);this.OverlayIsopricesPane();var B=this.gec(document.body,"div","ss_iso_ovr_loading");B.style.display="none"};IsopricesControl.prototype.onLoadImage=function(){var A=this.gsec("img","isoimg");var C=this.dom.calcAbsPos(A);this.imgIsoSize={width:A.offsetWidth,height:A.offsetHeight};var E=this.gsec("div","worldicon");E.style.display="block";E.style.visibility="visible";E.style.position="absolute";E.style.marginLeft=(A.offsetWidth-E.offsetWidth-5)+"px";var D=this;E.onclick=function(){D.loadWholeWorld()};var B=this.gsec("div","imgtitle");this.gec(B,"span","n").onclick=function(){D.openDepartureList()};this.assignIsoEvents(A,0);this.prepareDepartureList();if(this.imgIsoSize.width-20<B.offsetWidth+E.offsetWidth){var F=this.gec(B,"span","n").offsetWidth;B.style.width=Math.max(B.offsetWidth-F,F)+"px";DOMOperations.addCSSClass(B,"imgtitleCollision");if(B.offsetWidth*1.1>this.imgIsoSize.width){B.style.display="none"}}if(this.imgIsoSize.width-20<B.offsetWidth+E.offsetWidth){DOMOperations.addCSSClass(E,"worldiconCollision")}B.style.visibility="visible"};IsopricesControl.prototype.openDepartureList=function(){var H=this.gsec("div","imgtitle");el=this.gec(H,"span","n");var A=this.dom.calcAbsPos(el);var F=this.dom.calcAbsPos(this.snippetElement);var E=this.gsec("div","deplist");E.style.left=(el.offsetLeft+H.offsetLeft)+"px";E.style.top=(el.offsetTop+H.offsetTop+el.offsetHeight)+"px";var G=this.dom.calcAbsPos(E);this.listMaxDepHeight=(this.imgIsoSize.height-(G.top-F.top))*0.8;var B=this.gsec("img","isoimg");var E=this.gsec("div","deplist");if(this.IsDepListVisible()){this.hideDepartureList()}else{E.style.width=this.listDepSize.width;var D=Math.min(this.listDepSize.height,this.listMaxDepHeight);if(this.listDepSize.height>this.listMaxDepHeight){E.style.overflow="auto"}else{E.style.overflow="hidden"}E.style.display="block";E.style.height="0px";var C=this;setTimeout(function(){C.animeDepartures(D,D/(150/50))},50)}};IsopricesControl.prototype.IsDepListVisible=function(){return(this.gsec("div","deplist").style.visibility=="visible")};IsopricesControl.prototype.hideDepartureList=function(){this.gsec("div","deplist").style.visibility="hidden"};IsopricesControl.prototype.animeDepartures=function(B,C){el=this.gsec("div","deplist");if(el.clientWidth){el.style.width=(this.listDepSize.width+el.offsetWidth-el.clientWidth)+"px"}if(el.offsetHeight+C<B){el.style.height=(el.offsetHeight+C)+"px";var A=this;setTimeout(function(){A.animeDepartures(B,C)},50)}else{el.style.height=B+"px";el.style.overflow="auto"}el.style.visibility="visible"};IsopricesControl.prototype.prepareDepartureList=function(){var D=skyscanner.snippets.core.DOMOperations;var B=this.arrGec(this.snippetElement,"div","ln");var A=this;for(var C in B){B[C].onclick=function(){A.openDepartureList();var E=this.getAttribute("i");if(A.fragments.outbound){A.goTo({oplace:E})}else{A.goTo({iplace:E})}};B[C].onmouseover=function(E){DOMOperations.addCSSClass(this,"lnH")};B[C].onmouseout=function(E){DOMOperations.removeCSSClass(this,"lnH")}}};IsopricesControl.prototype.assignIsoEvents=function(A,C){var B=this;A.onmousemove=function(D){B.onMouseMove(A,D,C)};A.onclick=function(D){B.onClickInternal(A,D,C)};if(C){A.onmousedown=function(D){B.onMouseDown(A,D)};A.onmouseup=function(D){B.onMouseUp(A,D)};A.onmousemove=function(D){B.onDrag(A,D)};A.onmouseout=function(D){B.onMouseUp(A,D)}}};IsopricesControl.prototype.onMouseDown=function(A,B){if(!B){var B=window.event}this.posStart=this.getMouseCoords(B);var C=this.gec(document.body,"div","ss_iso_ovr_container_img");this.scrollStart={left:C.scrollLeft,top:C.scrollTop};this.isDraging=true;this.cancelEvent(B,true);A.style.cursor="pointer"};IsopricesControl.prototype.onMouseUp=function(A,B){this.isDraging=false};IsopricesControl.prototype.onDrag=function(C,E){if(this.isDraging){if(!E){var E=window.event}this.posEnd=this.getMouseCoords(E);var B=this.posEnd.left-this.posStart.left;var A=this.posEnd.top-this.posStart.top;var D=this.gec(document.body,"div","ss_iso_ovr_container_img");D.scrollLeft=this.scrollStart.left-B;D.scrollTop=this.scrollStart.top-A;this.cancelEvent(E,true)}else{this.onMouseMove(C,E,1)}};IsopricesControl.prototype.cancelEvent=function(A,B){A.returnValue=false;if(A.preventDefault){A.preventDefault()}if(B){A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}};IsopricesControl.prototype.OverlayIsopricesClose=function(){this.gec(document.body,"div","ss_iso_ovr_background").style.display="none";this.gec(document.body,"div","ss_iso_ovr_container_img").style.display="none";this.gec(document.body,"div","ss_iso_ovr_container_head").style.display="none";this.hideConfilctElements(true)};IsopricesControl.prototype.loadWholeWorld=function(){this.MakeOverlay();var B=this.gec(document.body,"img","ss_iso_ovr_img");var A=this.gec(document.body,"img","isoimg");this.OverlayIsopricesOpen();var C=this.gec(document.body,"div","ss_iso_ovr_container_head");B.src=this.fragments.imgWorldUrl};IsopricesControl.prototype.MakeOverlay=function(){var B=this;var C=this.arrGec(document.body,"div","ss_iso_ovr_background");if(C.length>0){document.body.removeChild(C[0]);C=this.dom.getElementsByClassName(document.body,"div","ss_iso_ovr_container_head");document.body.removeChild(C[0]);C=this.dom.getElementsByClassName(document.body,"div","ss_iso_ovr_container_img");document.body.removeChild(C[0])}var A;C=document.createElement("div");C.style.display="none";C.className="ss_iso_ovr_background";document.body.appendChild(C);C=document.createElement("div");C.style.display="block";C.className="ss_iso_ovr_container_head";C.innerHTML=this.fragments.ovrHeader;A=this.gec(C,"a","");A.onclick=function(){B.OverlayIsopricesClose()};document.body.appendChild(C);C=document.createElement("div");C.style.display="none";C.className="ss_iso_ovr_container_img";A=document.createElement("img");A.className="ss_iso_ovr_img";A.onload=function(){B.onLoadWorldImage()};C.appendChild(A);document.body.appendChild(C);A=C;C=document.createElement("div");C.className="ss_iso_ovr_loading";C.innerHTML=this.getText("txtSnLoading");A.insertBefore(C,A.firstChild);C.style.position="absolute";return C};IsopricesControl.prototype.display=function(D){skyscanner.snippets.BaseSnippet.prototype.display.call(this,D);var F=this.gsec("div","deplist");if(F){this.listDepSize={width:F.offsetWidth,height:F.offsetHeight};var C=Math.min(this.listDepSize.height,this.listMaxDepHeight);F.style.height=C+"px";F.style.overflow="hidden";if(this.getShowTitle("stit")=="0"){var B=this.gsec("div","imgtitle");B.style.display="none"}if(!this.getParamValue("nextcall")){this.setParam("nextcall","1");this.addListeners()}}else{var E=this.arrGec(this.snippetElement,"a","*");for(var A=0;A<E.length;A++){E[A].style.display="block";E[A].style.visibility="visible"}}};IsopricesControl.prototype.autoHidePopupListener=function(B){var A=this.gsec("div","imgtitle");A=this.gec(A,"span","n");if(!this.dom.isElementAreaClicked(B,this.gsec("div","deplist"))&&!this.dom.isElementAreaClicked(B,A)){this.hideDepartureList()}};IsopricesControl.prototype.addListeners=function(){var A=this;var B=document.onmouseup;if(B!=null){document.onmouseup=function(C){B(C);A.autoHidePopupListener(C)}}else{document.onmouseup=function(C){A.autoHidePopupListener(C)}}if(window.addEventListener){window.addEventListener("resize",function(){A.OverlayIsopricesSetSize()},true);if(!skyscanner.snippets.core.Browser.isMozilla()){window.addEventListener("scroll",function(){A.OverlayIsopricesSetSize()},true)}}else{if(window.attachEvent){window.attachEvent("onresize",function(){A.OverlayIsopricesSetSize()});window.attachEvent("onscroll",function(){A.OverlayIsopricesSetSize()})}}};exportSymbol("skyscanner.snippets.IsopricesControl",IsopricesControl);function WhoFliesControl(){this.create();this.setShape("leaderboard");this.setParam(skyscanner.snippets.PARAMS.SNIPPET_TYPE,"whofliescontrol");this.setParam("wf_action","view",false);this.oASField=null;this.iASField=null;this.setDepartureFixed(false);this.setDestinationFixed(false);this.airlineListCtrl=null;this.isDisplayed=false;this.AirlinesAreScrollingNow=false}WhoFliesControl.prototype=new BaseSnippet();WhoFliesControl.prototype.setShape=function(A){var B=false;if(A=="leaderboard"){this.cssName="ss_wf ss_wf_leaderboard";B=true}else{if(A=="box300x250"){this.cssName="ss_wf ss_wf_box ss_wf_box300x250";B=true}else{if(A=="box400x400"){this.cssName="ss_wf ss_wf_box ss_wf_box400x400";B=true}else{if(A=="skyscraper"){this.cssName="ss_wf ss_wf_skyscraper";B=true}}}}if(B){this.setParam("shape",A)}else{alert("Incorrect shape parameter")}if(A.substr(0,3)=="box"){if(this.getDepartureFixed()||this.getDestinationFixed()){this.cssName+=" ss_wf_box_fixed"}}if(A.substr(0,10)=="skyscraper"){if(this.getDepartureFixed()||this.getDestinationFixed()){this.cssName+=" ss_wf_skyscraper_fixed"}}};WhoFliesControl.prototype.getShape=function(){return this.getParamValue("shape")};WhoFliesControl.prototype.setDepartureFixed=function(A){this.setParam("oFix",A?"1":"0");this.setShape(this.getShape())};WhoFliesControl.prototype.getDepartureFixed=function(){return this.getParamValue("oFix")=="1"};WhoFliesControl.prototype.setDestinationFixed=function(A){this.setParam("iFix",A?"1":"0");this.setShape(this.getShape())};WhoFliesControl.prototype.getDestinationFixed=function(){return this.getParamValue("iFix")=="1"};WhoFliesControl.prototype.setDeparture=function(A,B){BaseSnippet.prototype.setDeparture.call(this,A);if(B!=undefined){this.setDepartureFixed(B)}if(this.getDeparture()!=A){this.getAirlines()}};WhoFliesControl.prototype.setDestination=function(B,A){BaseSnippet.prototype.setDestination.call(this,B);if(A!=undefined){this.setDestinationFixed(A)}if(this.getDestination()!=B){this.getAirlines()}};WhoFliesControl.prototype.onChangeOPlace=function(A){this.setDeparture(A)};WhoFliesControl.prototype.onChangeIPlace=function(A){this.setDestination(A)};WhoFliesControl.prototype.onASComplete=function(){this.getAirlines()};WhoFliesControl.prototype.prepareGetAirlinesUrl=function(){var A=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;A+=skyscanner.snippets.SNIPPET_PATH;A+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GET_VIEW;A+="&wf_action=airlines";for(var B in this.params){var C=this.params[B];if(C&&C.value!==""&&C.value&&B!="wf_action"){A+="&"+B+"="+C.value}}A+="&"+skyscanner.loader.PARAMS.VERSION+"="+skyscanner.snippets.version;A+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;A+="&"+skyscanner.loader.PARAMS.KEY+"="+skyscanner.loader.ApiKey;A=skyscanner.loader.addParameters(A);return A};WhoFliesControl.prototype.getAirlines=function(){if(!this.isDisplayed){return }var B=new skyscanner.loader.ScriptRequest();var A=this;B.onComplete=function(D,E){var C=A.DOMOp.gec(A.snippetElement,"DIV","ss_wf_air_list_content");if(C){C.innerHTML=D.content}C=A.DOMOp.gec(A.snippetElement,"DIV","ss_wf_air_count");if(C){C.innerHTML=D.number_of_airlines}C=A.DOMOp.gec(A.snippetElement,"A","ss_wf_bottom");if(C){C.href=D.show_flights_url;C.setAttribute("target",A.openNewWindowOnSearch?"_blank":"_top")}A.airlineListContent.scrollTop=0;A.updateClickAnchor(A.snippetElement,"ss_wf_bottom")};B.send(this.prepareGetAirlinesUrl(),true)};WhoFliesControl.prototype.onShowFlights=function(){};WhoFliesControl.prototype.display=function(jsonData){var oThis=this;skyscanner.snippets.BaseSnippet.prototype.display.call(this,jsonData);this.airlineListCtrl=this.DOMOp.gec(this.snippetElement,"div","ss_wf_air_list");this.airlineListContent=this.DOMOp.gec(this.snippetElement,"div","ss_wf_air_list_content");if(this.airlineListContent){this.addListeners();if(skyscanner.snippets.core.Browser.isIE()&&skyscanner.snippets.core.Browser.version==6&&this.getShape()=="leaderboard"){this.DOMOp.gec(this.snippetElement,"div","ss_wf_content").style.marginLeft="74px"}var sc=this.DOMOp.gec(this.snippetElement,"div","ss_wf_sc");var label=this.DOMOp.gec(this.snippetElement,"td","ss_label");var w;if(this.getShape()=="skyscraper"){w=sc.offsetWidth-12}else{w=sc.offsetWidth-14-label.offsetWidth}if(w>0){var o=this.DOMOp.gec(this.snippetElement,"input","ss_wf_outbound_as");if(o){o.style.width=w+"px"}o=this.DOMOp.gec(this.snippetElement,"input","ss_wf_inbound_as");if(o){o.style.width=w+"px"}var o=this.DOMOp.gec(this.snippetElement,"div","ss_wf_from_name");if(o){o.style.width=(w+8)+"px";o.style.fontSize="14px"}var o=this.DOMOp.gec(this.snippetElement,"div","ss_wf_to_name");if(o){o.style.width=(w+8)+"px";o.style.fontSize="14px"}}var langid=this.getCulture();if(langid=="gr"||langid=="nl"||langid=="ru"||langid=="fr"){o=this.DOMOp.gec(this.snippetElement,"div","ss_wf_show_flights");o.style.lineHeight="1.3em"}var jsonOField=jsonData.oASField;var jsonIField=jsonData.iASField;if(!this.getDepartureFixed()){eval("var initOutb="+jsonOField.initFun);var oAsField=initOutb(jsonOField,this);oAsField.onPlaceIDChange=function(sOldPlaceID,sNewPlaceID){oAsField.formatTextAfterChange(sNewPlaceID);if(sOldPlaceID!=sNewPlaceID){oThis.onChangeOPlace(sNewPlaceID)}};oAsField.onSuggestionComplete=function(){oThis.onASComplete()}}if(!this.getDestinationFixed()){eval("var initInb="+jsonIField.initFun);var iAsField=initInb(jsonIField,this);iAsField.onPlaceIDChange=function(sOldPlaceID,sNewPlaceID){iAsField.formatTextAfterChange(sNewPlaceID);if(sOldPlaceID!=sNewPlaceID){oThis.onChangeIPlace(sNewPlaceID)}};iAsField.onSuggestionComplete=function(){oThis.onASComplete()}}}else{this.snippetElement.className="";var anchors=this.DOMOp.arrGec(this.snippetElement,"a","*");for(var i=0;i<anchors.length;i++){anchors[i].style.display="block";anchors[i].style.visibility="visible"}}this.updateClickAnchor(this.snippetElement,"ss_wf_bottom");var searchContainer=oThis.DOMOp.gec(oThis.snippetElement,"A","ss_wf_bottom");if(searchContainer){searchContainer.setAttribute("target",this.openNewWindowOnSearch?"_blank":"_top")}this.isDisplayed=true};WhoFliesControl.prototype.onScrollUpClicked=function(B,A){this.airlineListContent.scrollTop-=A};WhoFliesControl.prototype.onScrollDownClicked=function(B,A){this.airlineListContent.scrollTop+=A};WhoFliesControl.prototype.onScrollMouseDown=function(C,A){var B=this;this.AirlinesAreScrollingNow=true;if(A){this.onScrollUpClicked(C,4);setTimeout(function(){if(B.AirlinesAreScrollingNow){B.onScrollMouseDown(null,true)}},20)}else{this.onScrollDownClicked(C,4);setTimeout(function(){if(B.AirlinesAreScrollingNow){B.onScrollMouseDown(null,false)}},20)}};WhoFliesControl.prototype.onScrollMouseUp=function(A){this.AirlinesAreScrollingNow=false};WhoFliesControl.prototype.setAitlineListInternalContent=function(){if(this.airlineListCtrl.offsetHeight>0){this.airlineListContent.style.height=(this.airlineListCtrl.offsetHeight-25)+"px"}};WhoFliesControl.prototype.airlinesResized=function(){this.setAitlineListInternalContent()};WhoFliesControl.prototype.addListeners=function(){var C=this;var D=this.DOMOp.gec(this.snippetElement,"a","ss_wf_scroll_corner");this.setAitlineListInternalContent();var A=new ResizeElement(this.airlineListCtrl,D,function(){C.airlinesResized()});A.maxHeight=400;A.minHeight=this.airlineListCtrl.offsetHeight;skyscanner.$E.attachEventHandler(this.DOMOp.gec(this.snippetElement,"div","ss_wf_scroll_down"),"mousedown",function(E){C.onScrollMouseDown(E,false)});skyscanner.$E.attachEventHandler(this.DOMOp.gec(this.snippetElement,"div","ss_wf_scroll_up"),"mousedown",function(E){C.onScrollMouseDown(E,true)});skyscanner.$E.attachEventHandler(document,"mouseup",function(E){C.onScrollMouseUp(E)});if(skyscanner.snippets.core.Browser.isIE()&&skyscanner.snippets.core.Browser.version==6){var B=this.DOMOp.gec(this.snippetElement,"div","ss_wf_show_flights");skyscanner.$E.attachEventHandler(B,"mouseout",function(E){B.style.zoom=0;B.style.zoom=1});B=this.DOMOp.gec(this.snippetElement,"div","ss_wf_air_list");skyscanner.$E.attachEventHandler(B,"mouseout",function(E){B.style.zoom=0;B.style.zoom=1})}};WhoFliesControl.prototype.addListeners_old=function(){var A=this};function ResizeElement(A,C,E,B){var D=this;this.isDragging=false;this.maxHeight=-1;this.minHeight=-1;this.activeObj=C;this.destObj=A;this.onResize=E;this.addActions()}ResizeElement.prototype.onMouseDown=function(A){if(!A){var A=window.event}this.posStart=DOMOperations.getMouseXY(A);this.startSize={width:this.destObj.offsetWidth,height:this.destObj.offsetHeight};this.isDragging=true;this.cancelEvent(A,true)};ResizeElement.prototype.onMouseUp=function(A){if(this.isDragging){this.isDragging=false;this.cancelEvent(A,true)}};ResizeElement.prototype.onMouseMove=function(C){if(this.isDragging){var B=DOMOperations.getMouseXY(C);var A=this.startSize.height+B.top-this.posStart.top;if(this.maxHeight>=0&&A>this.maxHeight){A=this.maxHeight}if(this.minHeight>=0&&A<this.minHeight){A=this.minHeight}this.destObj.style.height=A+"px";this.cancelEvent(C,true);if(this.onResize){this.onResize()}}};ResizeElement.prototype.addActions=function(){var A=this;skyscanner.$E.attachEventHandler(this.activeObj,"mousedown",function(B){A.onMouseDown(B)});skyscanner.$E.attachEventHandler(document,"mousemove",function(B){A.onMouseMove(B)});skyscanner.$E.attachEventHandler(document,"mouseup",function(B){A.onMouseUp(B)})};ResizeElement.prototype.cancelEvent=function(A,B){A.returnValue=false;if(A.preventDefault){A.preventDefault()}if(B){A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}};exportSymbol("skyscanner.snippets.WhoFliesControl",WhoFliesControl);exportSymbol("skyscanner.snippets.ResizeElement",ResizeElement);function SearchPanelControl(){this.create();this.setShape("leaderboard");this.setParam(skyscanner.snippets.PARAMS.SNIPPET_TYPE,"searchpanelcontrol");this.setParam("sp_action","view",false);this.oASField=null;this.iASField=null;this.oCal=null;this.iCal=null;this.oDateSel=null;this.iDateSel=null;this.iAdults=null;this.iChildren=null;this.iInfants=null;this.basicUrl=null;this.monthUrl=null;this.dayUrl=null;this.isDisplayed=false}SearchPanelControl.prototype=new BaseSnippet();SearchPanelControl.prototype.setShape=function(A){var B=false;if(A=="leaderboard"){this.cssName="ss_sp ss_sp_leaderboard";B=true}else{if(A=="box300x250"){this.cssName="ss_sp ss_sp_box ss_sp_box300x250";B=true}else{if(A=="box400x400"){this.cssName="ss_sp ss_sp_box ss_sp_box400x400";B=true}else{if(A=="skyscraper"){this.cssName="ss_sp ss_sp_skyscraper";B=true}}}}if(B){this.setParam("shape",A)}else{alert("Incorrect shape parameter")}};SearchPanelControl.prototype.getShape=function(){return this.getParamValue("shape")};SearchPanelControl.prototype.setDepartureFixed=function(A){this.setParam("oFix",A?"1":"0")};SearchPanelControl.prototype.getDepartureFixed=function(){return this.getParamValue("oFix")=="1"};SearchPanelControl.prototype.setDestinationFixed=function(A){this.setParam("iFix",A?"1":"0")};SearchPanelControl.prototype.getDestinationFixed=function(){return this.getParamValue("iFix")=="1"};SearchPanelControl.prototype.setDeparture=function(A,B){BaseSnippet.prototype.setDeparture.call(this,A);if(B!=undefined){this.setDepartureFixed(B)}if(this.getDeparture()!=A){this.getFlights()}};SearchPanelControl.prototype.setDestination=function(B,A){BaseSnippet.prototype.setDestination.call(this,B);if(A!=undefined){this.setDestinationFixed(A)}if(this.getDestination()!=B){this.getFlights()}};SearchPanelControl.prototype.onChangeOPlace=function(A){this.setDeparture(A)};SearchPanelControl.prototype.onChangeIPlace=function(A){this.setDestination(A)};SearchPanelControl.prototype.onASComplete=function(){this.getFlights()};SearchPanelControl.prototype.preparegetFlightsUrl=function(){var A=skyscanner.loader.ApiServer+"/"+skyscanner.loader.Path;A+=skyscanner.snippets.SNIPPET_PATH;A+="?"+skyscanner.snippets.PARAMS.ACTION+"="+skyscanner.snippets.ACTIONS.GET_VIEW;A+="&sp_action=flights";for(var B in this.params){var C=this.params[B];if(C&&C.value!==""&&C.value&&B!="sp_action"){A+="&"+B+"="+C.value}}A+="&"+skyscanner.loader.PARAMS.VERSION+"="+skyscanner.snippets.version;A+="&"+skyscanner.loader.PARAMS.V+"="+skyscanner.loader.v;A+="&"+skyscanner.loader.PARAMS.KEY+"="+skyscanner.loader.ApiKey;A=skyscanner.loader.addParameters(A);return A};SearchPanelControl.prototype.getFlights=function(){if(!this.isDisplayed||(this.getDeparture()==""&&this.getDestination()=="")){this.bulidSearchUrl();return }var B=new skyscanner.loader.ScriptRequest();var A=this;B.onComplete=function(C,D){A.updateView(C)};B.send(this.preparegetFlightsUrl(),true)};SearchPanelControl.prototype.display=function(jsonData){var oThis=this;skyscanner.snippets.BaseSnippet.prototype.display.call(this,jsonData);if(typeof jsonData.errorMessage=="undefined"){this.initScrollSize();this.startMarquee();if(skyscanner.snippets.core.Browser.isIE()&&skyscanner.snippets.core.Browser.version==6&&this.getShape()=="leaderboard"){this.DOMOp.gec(this.snippetElement,"div","ss_sp_content").style.marginLeft="69px"}var sc=this.DOMOp.gec(this.snippetElement,"div","ss_sp_sc");var label=this.DOMOp.gec(this.snippetElement,"td","ss_label");var w;if(this.getShape()=="skyscraper"){w=sc.offsetWidth-12}else{w=sc.offsetWidth-14-label.offsetWidth;if(this.getShape()=="leaderboard"){var dep=this.DOMOp.gec(this.snippetElement,"table","ss_sp_dates");w=w-dep.offsetWidth-18}}if(w>0&&this.getShape()){var o=this.DOMOp.gec(this.snippetElement,"input","ss_sp_outbound_as");if(o){o.style.width=w+"px"}o=this.DOMOp.gec(this.snippetElement,"input","ss_sp_inbound_as");if(o){o.style.width=w+"px"}var o=this.DOMOp.gec(this.snippetElement,"div","ss_sp_from_name");if(o){o.style.width=(w+8)+"px";o.style.fontSize="14px"}var o=this.DOMOp.gec(this.snippetElement,"div","ss_sp_to_name");if(o){o.style.width=(w+8)+"px";o.style.fontSize="14px"}}var jsonOField=jsonData.oASField;var jsonIField=jsonData.iASField;if(!this.getDepartureFixed()){eval("var initOutb="+jsonOField.initFun);this.oASField=initOutb(jsonOField,this);this.oASField.onPlaceIDChange=function(sOldPlaceID,sNewPlaceID){this.formatTextAfterChange(sNewPlaceID);if(sOldPlaceID!=sNewPlaceID){oThis.onChangeOPlace(sNewPlaceID)}};this.oASField.onSuggestionComplete=function(){oThis.onASComplete()}}if(!this.getDestinationFixed()){eval("var initInb="+jsonIField.initFun);this.iASField=initInb(jsonIField,this);this.iASField.onPlaceIDChange=function(sOldPlaceID,sNewPlaceID){this.formatTextAfterChange(sNewPlaceID);if(sOldPlaceID!=sNewPlaceID){oThis.onChangeIPlace(sNewPlaceID)}};this.iASField.onSuggestionComplete=function(){oThis.onASComplete()}}this.iAdults=skyscanner.$D.gec(this.snippetElement,"input","ss_sp_pass_adult");this.iChildren=skyscanner.$D.gec(this.snippetElement,"input","ss_sp_pass_child");this.iInfants=skyscanner.$D.gec(this.snippetElement,"input","ss_sp_pass_inf");this.iAdults.value=this.adults;this.iChildren.value=this.children;this.iInfants.value=this.infants;this.iAdults.onkeypress=this.onKeyPressPassangers;this.iChildren.onkeypress=this.onKeyPressPassangers;this.iInfants.onkeypress=this.onKeyPressPassangers;this.iAdults.onfocus=function(){oThis.savePassengers();this.select()};this.iChildren.onfocus=function(){oThis.savePassengers();this.select()};this.iInfants.onfocus=function(){oThis.savePassengers();this.select()};skyscanner.$E.attachEventHandler(this.iAdults,"blur",function(){oThis.checkPassengers()});skyscanner.$E.attachEventHandler(this.iChildren,"blur",function(){oThis.checkPassengers()});skyscanner.$E.attachEventHandler(this.iInfants,"blur",function(){oThis.checkPassengers()});this.basicUrl=jsonData.show_flights_url;this.monthUrl=jsonData.month_url;this.dayUrl=jsonData.day_url;this.monthOwUrl=jsonData.month_ow_url;this.dayOwUrl=jsonData.day_ow_url;this.initCalendars();this.bulidSearchUrl();this.isDisplayed=true}else{skyscanner.log.error("[SearchPanelControl.display] "+jsonData.errorMessage)}};SearchPanelControl.prototype.setPassengers=function(A,B,C){if(!BaseSnippet.prototype.setPassengers.call(this,A,B,C)){return false}if(this.iAdults&&this.iChildren&&this.iInfants){this.iAdults.value=this.adults;this.iChildren.value=this.children;this.iInfants.value=this.infants;this.bulidSearchUrl()}return true};SearchPanelControl.prototype.savePassengers=function(){this.iAdults.prevValue=this.iAdults.value;this.iChildren.prevValue=this.iChildren.value;this.iInfants.prevValue=this.iInfants.value};SearchPanelControl.prototype.initScrollSize=function(){var B=this.DOMOp.gec(this.snippetElement,"div","ss_sp_best_label");if(this.getShape()=="skyscraper"){var A=this.DOMOp.gec(this.snippetElement,"div","ss_marquee");A.style.height=(84-B.offsetHeight)+"px"}else{if(this.getShape()=="leaderboard"){var C=this.DOMOp.gec(this.snippetElement,"div","ss_sp_offers");C.style.width=(285-B.offsetWidth)+"px"}}};SearchPanelControl.prototype.onKeyPressPassangers=function(B){if(typeof B=="undefined"){B=window.event}var A=B.keyCode;if(A==0){A=B.charCode}if((A>=48&&A<=57)||(A==8)||(A==9)||(A==12)||(A==27)){return true}else{skyscanner.$D.stopPropagation(B);return false}};SearchPanelControl.prototype.checkPassengers=function(){var A=this.iAdults.prevValue;var F=this.iChildren.prevValue;var K=this.iInfants.prevValue;var B=this.iAdults.value;var G=this.iChildren.value;var D=this.iInfants.value;var I=typeof (A)!="undefined"&&A!=B||typeof (F)!="undefined"&&F!=G||typeof (K)!="undefined"&&K!=D;if(!I){return }var J=parseInt(B);var H=parseInt(G);var C=parseInt(D);if(J<1||J>8||J<C||H<0||H>8){if(J<C){alert(this.getText("txt_sc_tooManyInfants"));this.iInfants.value=J}else{if(J<1||J>8){alert(this.getText("txt_sc_wrongAdultsNumber"));this.iAdults.value=J<1?1:8}else{if(H<0||H>8){this.iChildren.value=H<0?0:8;var E=this.getText("txt_sc_tooManyChildren8");if(E){alert(E)}}}}}if(H>0){skyscanner.$D.removeCSSClass(this.iChildren,"ss_sp_gray")}else{skyscanner.$D.addCSSClass(this.iChildren,"ss_sp_gray")}if(C>0){skyscanner.$D.removeCSSClass(this.iInfants,"ss_sp_gray")}else{skyscanner.$D.addCSSClass(this.iInfants,"ss_sp_gray")}this.bulidSearchUrl()};SearchPanelControl.prototype.startMarquee=function(){var A=this.initMarquee(this.snippetElement);if(this.getShape()=="leaderboard"){A[0].direction=1}};SearchPanelControl.prototype.updateView=function(A){this.basicUrl=A.show_flights_url;this.monthUrl=A.month_url;this.dayUrl=A.day_url;this.monthOwUrl=A.month_ow_url;this.dayOwUrl=A.day_ow_url;var B=skyscanner.$D.gec(this.snippetElement,"div","ss_marquee_in").innerHTML=A.best_offers;this.bulidSearchUrl()};SearchPanelControl.prototype.bulidSearchUrl=function(){var A=this.basicUrl;if(this.getDeparture()&&this.getDestination()){var G=this.oDateSel.getDateAsString();var D=this.iDateSel.getDateAsString();if(G&&D&&G.length==D.length){if(G.length==4){A=this.monthUrl}else{A=this.dayUrl}}if(this.iDateSel.isOneWay()&&G.length>0){if(G.length==4){A=this.monthOwUrl}else{A=this.dayOwUrl}}var F=this.oDateSel.getDate().date;if(F){A=A.replace(/@@ddate@@/g,G);A=A.replace(/@@dmonth@@/g,this.getText("txt_maMNNorm_"+F.getMonth()));A=A.replace(/@@dyear@@/g,F.getFullYear());if(!this.iDateSel.isOneWay()){F=this.iDateSel.getDate().date;if(F){A=A.replace(/@@rdate@@/g,D);A=A.replace(/@@rmonth@@/g,this.getText("txt_maMNNorm_"+F.getMonth()));A=A.replace(/@@ryear@@/g,F.getFullYear())}}}}else{var G=this.oDateSel.getDateAsString();var D=this.iDateSel.getDateAsString();if(G){A+="&odate="+G}if(D&&!this.iDateSel.isOneWay()){A+="&idate="+D}}if(this.iAdults.value!=1||this.iChildren.value!=0||this.iInfants.value!=0){A+="&adults="+this.iAdults.value;A+="&children="+this.iChildren.value;A+="&infants="+this.iInfants.value}A+="&rtn="+(this.iDateSel.isOneWay()?0:1);if(this.getDeparture()==""&&this.getDestination()==""){A=skyscanner.loader.RootUrl}var E=skyscanner.$D.gec(this.snippetElement,"a","ss_sp_bottom");E.setAttribute("href",A);E.setAttribute("target",this.openNewWindowOnSearch?"_blank":"_top");var C=skyscanner.$D.gec(this.snippetElement,"div","ss_sp_offer_list_content");var B=this;skyscanner.$D.arrGecRun(C,"A","*",function(H){H.setAttribute("target",B.openNewWindowOnSearch?"_blank":"_top")});this.updateClickAnchor(this.snippetElement,"ss_sp_bottom");this.updateAllClickAnchors("div","ss_sp_offer_list_content");skyscanner.log.info("[SearchPanel.buildSearchUrl()] url="+A)};SearchPanelControl.prototype.initCalendars=function(){var A=skyscanner.snippets.Calendar.LARGE;var C=skyscanner.$D.getWindowSize();if(C!=null&&(C.height<225||C.width<200)){A=skyscanner.snippets.Calendar.SMALL}var B=skyscanner.$CS.getShortDateFormat(this.getCulture());var F=skyscanner.$D.gec(this.snippetElement,"div","ss_sp_dep_cal_container");this.oDateSel=new skyscanner.snippets.DateSelector(F,this.getCulture(),B,true,A);this.oDateSel.render();F=skyscanner.$D.gec(this.snippetElement,"div","ss_sp_dest_cal_container");this.iDateSel=new skyscanner.snippets.DateSelector(F,this.getCulture(),B,false,A);this.iDateSel.render();var G=skyscanner.$D.gec(this.snippetElement,"span","ss_sp_check");var E=new skyscanner.snippets.CalendarsSupport(this.oDateSel,this.iDateSel,G,null,null,false);var D=this;E.onDatesChanged=function(){D.bulidSearchUrl()};E.setInitDates(this.getODate(),this.getIDate())};SearchPanelControl.prototype.scrollMarquee=function(B,A){var C=B[A];C.actualheight=C.marquee.offsetHeight;C.actualwidth=C.marquee.offsetWidth;if(C.direction==0){if(parseFloat(C.marquee.style.top)>(C.actualheight*(-1)+8)){C.marquee.style.top=parseFloat(C.marquee.style.top)-(C.speed*C.isRunning)+"px"}else{C.marquee.style.top=parseFloat(C.offsetHeight)+8+"px"}}else{if(parseFloat(C.marquee.style.left)>(C.actualwidth*(-1)+8)){C.marquee.style.left=parseFloat(C.marquee.style.left)-(C.speed*C.isRunning)+"px"}else{C.marquee.style.left=parseFloat(C.offsetWidth)+8+"px"}}};SearchPanelControl.prototype.initMarquee=function(parent){var dom=skyscanner.snippets.core.DOMOperations;var el=dom.getElementsByClassName(parent?parent:document.body,"div","ss_marquee");for(i=0;i<el.length;i++){el[i].style.position="relative";el[i].style.overflow="hidden";var p=dom.gec(el[i],"div","*");p.style.top=0;p.style.left=0;p.style.position="absolute";var actualheight=p.offsetHeight;el[i].marquee=p;el[i].marqueeheight=el[i].offsetHeight;el[i].marqueewidth=el[i].offsetWidth;el[i].speed=2;el[i].direction=0;el[i].pause=1;el[i].isRunning=1;var a="("+el[i].getAttribute("attr")+")";var o=eval(a);if(o.speed!=undefined){el[i].speed=o.speed}if(o.direction!=undefined){el[i].direction=o.direction}if(o.pause!=undefined){el[i].pause=o.pause}var m=el[i];skyscanner.$E.attachEventHandler(el[i],"mouseout",function(e){if(m.pause){m.isRunning=1}});skyscanner.$E.attachEventHandler(el[i],"mouseover",function(e){if(m.pause){m.isRunning=0}});var delayed=0;if(o.delayed!=undefined){delayed=o.delayed}var oThis=this;if(i==0){setTimeout(function(){setInterval(function(){oThis.scrollMarquee(el,0)},50)},delayed)}if(i==1){setTimeout(function(){setInterval(function(){oThis.scrollMarquee(el,1)},50)},delayed)}if(i==2){setTimeout(function(){setInterval(function(){oThis.scrollMarquee(el,2)},50)},delayed)}if(i==3){setTimeout(function(){setInterval(function(){oThis.scrollMarquee(el,3)},50)},delayed)}}return el};exportSymbol("skyscanner.snippets.SearchPanelControl",SearchPanelControl);AutoSuggestControl.AutoSuggestControls=[];AutoSuggestControl.INDENT_PREFIX="&nbsp;&nbsp;";AutoSuggestControl.PATH="/as.ashx";AutoSuggestControl.prepareParams=function(F,E,B,A,C){var D="";if(F!=null){D+="&l="+F}if(E!=null){D+="&c="+E}D+="&d="+(B?"1":"0");if(C!=null){D+="&ucy="+C}return D};function AutoSuggestControl(E,I,H,D){if(H==null){H=false}this.txt_as_loading=maText.as_loading;this.txt_as_err_ret=maText.as_err_ret;this.txt_as_max_retry=maText.as_max_retry;this.txt_as_any=maText.as_any;this.txt_as_nomatches=maText.as_nomatches;this.txt_as_type_place=maText.as_type_place;this.txt_as_any=maText.as_any;this.txt_sc_DidYouMean=maText.sc_DidYouMean;this.txt_as_simple_any=maText.as_simple_any;this.txt_as_all_airports=maText.as_all_airports;this.txt_as_all_countries=maText.as_all_countries;this.txt_as_no_such_place=maText.as_no_such_place;this.txt_as_any_country=maText.sc_any_dst_c;this.txt_as_any_airport=maText.sc_any_dep_a;this.txt_as_everywhere=maText.as_everywhere;this.txt_as_everywhere2=maText.as_any;this.txt_as_everywhere3=maText.as_all;this.txt_as_everywhere_all=maText.as_everywhere_all;this.as_everywhere_options=[this.txt_as_everywhere,this.txt_as_everywhere2,this.txt_as_everywhere3,this.txt_as_nomatches,this.txt_as_type_place,this.txt_as_everywhere_all];if(D==null){D=false}this.alignSuggestWindowToRight=D;this.OppObj="";this.Dest=false;var A="";this.setPlaceID=function(O,Q){var P;P=A;A=O;this.onPlaceIDChange(P,O);if(!Q){this.refreshSubtitleBox()}};this.getPlaceID=function(){return A};var L="";this.getPlaceName=function(){return L};this.setPlaceName=function(O){var P;P=L;L=O;this.onPlaceNameChange(P,O)};var K="";this.getPlaceNameEN=function(){return K};this.setPlaceNameEN=function(O){var P;P=K;K=O;this.onPlaceNameENChange(P,O)};var B="";this.getCountryID=function(){return B};this.setCountryID=function(O,Q){var P;P=B;B=O;this.onCountryIDChange(P,O);if(!Q){this.refreshSubtitleBox()}};var F="";this.getCountryName=function(){return F};this.setCountryName=function(O,Q){var P;P=F;F=O;this.onCountryNameChange(P,O);if(!Q){this.refreshSubtitleBox()}};this.continentID="";this.setContinentID=function(O){var P;P=this.continentID;this.continentID=O;this.onContinentIDChange(P,O)};this.cityID="";this.setCityID=function(O){this.cityID=O};this.getCityID=function(){return this.cityID};this.params="";this.provider=I;this.textbox=E;this.haveFocus=false;this.suggestWindow=new SuggestWindow(E,H,this);this.subtitleBox=new SubtitleBox(this,E);this.createDropDownButton=function(O){var P=document.createElement("div");if(O){P.setAttribute("title",maText.sel_dep)}else{P.setAttribute("title",maText.sel_dest)}P.className="ss_dropdownlink";P.onmousedown=function(Q){J.onDropdownStateChangeRequested();J.suggestWindow.hide();return false};this.textbox.parentNode.appendChild(P);this.textbox.parentNode.style.position="relative"};this.setMaxRows=function(O){this.suggestWindow.maxRows=O};this.lastKeyCode=0;this.typedText="";var M="";this.cursorsBlurHandled=true;var C=false;var G=false;var N;this.textbox.autocomplete="off";this.configureToUseInSearchControls=function(O,R,Q,P){this.language=R;if(this.getTextBoxEl().value.toLowerCase()!=Q.toLowerCase()){this.convertIDToName(P)}if(O){this.suggestWindow.showEverywhereInList=false;this.showTypePlaceForEverywhereCase=true;this.showTypePlaceInsteadOfNoMatchesEntry=true}else{this.showNoMatchesEntry=false}};this.language="";this.showTypePlaceForEverywhereCase=false;this.showNoMatchesEntry=true;this.showTypePlaceInsteadOfNoMatchesEntry=false;var J=this;this.getTextBoxEl=function(){return this.textbox};this.suggestWindow.onAfterSelectionChanged=function(O){if(O){if(J.subtitleBox){J.subtitleBox.applyCuttedName(J.suggestWindow.selectedPlaceName)}else{J.textbox.value=J.suggestWindow.selectedPlaceName}if(J.textbox.setSelectionRange&&J.hasFocus){debug("FF or Safari");try{J.textbox.selectionStart=J.textbox.value.length}catch(P){}}}J.setCityID(J.suggestWindow.selectedCityID);J.setContinentID(J.suggestWindow.selectedContinentID);J.setCountryID(J.suggestWindow.selectedCountryID,true);J.setPlaceName(J.suggestWindow.selectedPlaceName);J.setPlaceNameEN(J.suggestWindow.selectedPlaceNameEN);J.setCountryName(J.suggestWindow.selectedCountryName,true);J.setPlaceID(J.suggestWindow.selectedPlaceID,true);J.refreshSubtitleBox()};this.suggestWindow.onMouseDown=function(){C=true};this.suggestWindow.onMouseUp=function(){C=false};this.suggestWindow.onMouseOut=function(){J.textbox.value=J.typedText;J.setPlaceID("",true);J.setPlaceName("");J.setPlaceNameEN("");J.setCountryID("",true);J.setCountryName("",true);J.setCityID("");J.refreshSubtitleBox()};this.textbox.onkeyup=function(O){if(!O){O=window.event}J.handleKeyUp(O)};this.textbox.onkeypress=function(O){if(!O){O=window.event}J.handleKeyPress(O)};this.textbox.onkeydown=function(O){if(!O){O=window.event}J.handleKeyDown(O)};this.textbox.onblur=function(O){if(!O){O=window.event}J.handleBlur(O)};this.textbox.onfocus=function(O){if(!O){O=window.event}J.handleFocus(O)};this._focusing=false;this.textbox.onmouseup=function(O){if(J._focusing){cancelEventPropagation(O)}J._focusing=false};this.textbox.onmousedown=function(O){if(!J.haveFocus){J._focusing=true}};attachEventHandler(window,"resize",function(){if(J.suggestWindow.visible){J.suggestWindow.resize()}});AutoSuggestControl.AutoSuggestControls[AutoSuggestControl.AutoSuggestControls.length]=J;this.convertIDToName=function(O){A=O;if(O==null||O==""){this.textbox.value="";A="";return }var Q=this;Q.provider.cancelRequests();var P=new Object();P.text=A.trim();P.params=Q.params;P.params+="&i="+A.trim();Q.provider.getSuggestions(function(R,T){var S=R.results!=null&&R.results.length>0;if(S){T.textbox.value=R.results[0].n}T.setPlaceNameEN(R.results[0].en);T.setCityID(R.results[0].cii);T.setCountryID(R.results[0].ci,true);T.setCountryName(R.results[0].cn,true);T.setPlaceName(R.results[0].n);T.formatTextAfterChange(S);T.refreshSubtitleBox()},P,Q)};this.requestSuggestions=function(){var Q=this;debug("requestSuggestions");var R=Q.typedText.replace("'"," ").trim();Q.typedText=R;M=Q.typedText;Q.lastKeyCode=0;if(R.length<=1){Q.provider.cancelRequests();return }var O=new Object();O.text=R;debug("oQuery.text='"+O.text+"'");O.params=Q.params;if(Q.OppObj!=""){var P=Q.OppObj.getPlaceID();if(P!=""){O.params+="&p="+P}}if(Q.continentID!=""){O.params+="&co="+Q.continentID}Q.provider.getSuggestions(Q.displaySuggestions,O,Q)};this.handleKeyPress=function(O){var P=this;var Q=O.keyCode;if(Q==0){Q=46}if(G){cancelEventPropagation(O);return false}};this.handleKeyDown=function(O){var P=this;var Q=O.keyCode;if(Q==0){Q=46}debug("keyDown:iKeyCode"+Q);P.lastKeyCode=Q;if(Q==38||Q==40){cancelEventPropagation(O)}switch(Q){case 13:case 3:if(P.suggestWindow.visible){cancelEventPropagation(O);G=true}else{this.onEnterPressed();cancelEventPropagation(O);return false}break;default:}if(Q==38||Q==40){if(!P.suggestWindow.visible){if(Q==40){P.typedText=P.textbox.value;P.requestSuggestions()}return }}switch(Q){case 40:P.suggestWindow.moveSelectionDown();return false;case 38:if(P.suggestWindow.selectedIndex!=-1){P.suggestWindow.moveSelectionUp();if(P.suggestWindow.selectedIndex==-1){P.suggestWindow.hide();P.textbox.focus();P.textbox.value=P.typedText;P.setCountryID("",true);P.setPlaceName("");P.setPlaceNameEN("");P.setCountryName("",true);P.setPlaceID("",true);P.setCityID("");P.refreshSubtitleBox()}}else{P.suggestWindow.hide()}return false;case 27:if(P.suggestWindow.visible){P.suggestWindow.hide();P.textbox.value=P.typedText;P.setCountryID("",true);P.setCountryName("",true);P.setPlaceName("");P.setPlaceNameEN("");P.setPlaceID("",true);P.setCityID("");P.refreshSubtitleBox();P.textbox.focus()}return ;case 13:case 3:debug("enter pressed");if(!P.suggestWindow.selectedPlaceName){P.suggestWindow.selectItem(0,true);P._previousTypedText=P.typedText;P.onSuggestionCompleteInternal();P.suggestWindow.hide();return }P.textbox.value=P.suggestWindow.selectedPlaceName;P.setContinentID(P.suggestWindow.selectedContinentID);P.setCountryID(P.suggestWindow.selectedCountryID,true);P.setPlaceName(P.suggestWindow.selectedPlaceName);P.setPlaceNameEN(P.suggestWindow.selectedPlaceNameEN);P.setCountryName(P.suggestWindow.selectedCountryName,true);P.setPlaceID(P.suggestWindow.selectedPlaceID,true);P.setCityID(P.suggestWindow.selectedCityID);P.suggestWindow.hide();J._previousTypedText=J.typedText;P.onSuggestionCompleteInternal();return ;case 9:J.onAfterTabPressed();break;default:}};this.handleKeyUp=function(O){var Q=O.keyCode;var P=this;if(Q==0){Q=46}P.lastKeyCode=Q;debug("keyup:iKeyCode="+Q);if(Q==38||Q==40){cancelEventPropagation(O)}if(G){G=false;cancelEventPropagation(O)}if(M!=""&&this.textbox.value==""){if(this.getPlaceID()!=""){this.setPlaceID("")}this.onSuggestionComplete()}switch(Q){case 38:if(P.textbox.setSelectionRange){debug("FF");P.textbox.selectionStart=P.textbox.value.length}break;case 8:case 46:if(M!=P.textbox.value){P.setCountryID("",true);P.setCountryName("",true);P.setPlaceName("");P.setPlaceNameEN("");P.setPlaceID("",true);P.setCityID("")}break;default:}if((Q<8)||(Q>8&&Q<32)||(Q>=33&&Q<46)||(Q>=112&&Q<=123)){}else{if(P.textbox.value.trim().charAt(0)=="%"){P.setCountryID("",true);P.setCountryName("",true);P.setPlaceName("");P.setPlaceNameEN("");P.setPlaceID("",true);P.setCityID("");if(P.showTypePlaceInsteadOfNoMatchesEntry){P.suggestWindow.showMessage(P.txt_as_type_place,2,P)}else{P.suggestWindow.showMessage(P.txt_as_nomatches,2,P)}}else{debug("typedtext="+P.textbox.value);_prssseviousTypedText=P.typedText;P.typedText=P.textbox.value;if(M!=P.typedText){P.setCountryID("",true);P.setCountryName("",true);P.setPlaceName("");P.setPlaceNameEN("");P.setPlaceID("",true);P.setCityID("");P.requestSuggestions()}}}if(P.textbox.value.length<=1){P.suggestWindow.hide()}this.refreshSubtitleBox();return };this.handleBlur=function(O){var P=this;if(P.lastKeyCode==38||P.lastKeyCode==40){if(!P.cursorsBlurHandled){P.cursorsBlurHandled=true;return false}}if(C){cancelEventPropagation();return false}P.suggestWindow.hide();P.haveFocus=false;P.refreshSubtitleBox();if(P.textbox.value==""){P.onSuggestionCompleteInternal()}if(P.textbox.value.trim().toLowerCase()==B.toLowerCase()||P.textbox.value.trim().toLowerCase()==A.toLowerCase()){P.textbox.value=L}else{P.typedText=P.textbox.value;if(P.suggestWindow.selectedPlaceName!=P.typedText&&!P.matchesEverywhere(P.typedText)){if((M!=P.typedText)||(A=="")){P.requestSuggestions()}}else{if(M!=P.typedText&&A!=""){P.onSuggestionCompleteInternal()}}}};this.handleFocus=function(O){var P=this;if(P.matchesEverywhere(P.textbox.value)){P.textbox.value=""}P.haveFocus=true;M=P.textbox.value;P.typedText=P.textbox.value;P.refreshSubtitleBox();P.textbox.select()};this.displaySuggestions=function(R,S){debug("displaySuggestions");var P=this;clearTimeout(N);if(R.text!=S.typedText){debug("Hiding because text doesn't match returned values");S.suggestWindow.hide();return }if(R.results){if((R.results.length>=1)){S.suggestWindow.fill(R.results,R.text,0,S);if(S.haveFocus){J.onBeforeSuggestionWindowShow();S.suggestWindow.show()}var Q=false;if(S.haveFocus){return }for(var O=0;O<R.results.length&&!Q;O++){if(R.results[O].i.toLowerCase()==R.text.toLowerCase()&&R.results[O].i.length!=4||(R.results[O].n.substr(0,R.text.length)).toLowerCase()==R.text.toLowerCase()){S.suggestWindow.selectItem(O,false);Q=true;if(!S.haveFocus){S.textbox.value=L;S._previousTypedText=S.typedText;S.onSuggestionCompleteInternal()}break}}if(!Q&&!S.haveFocus){if(R.results[0].n.toLowerCase().indexOf(R.text.toLowerCase())>-1){S.suggestWindow.selectItem(0,true);S._previousTypedText=S.typedText;S.onSuggestionCompleteInternal()}}return }if(S.haveFocus){if(S.showTypePlaceInsteadOfNoMatchesEntry){S.suggestWindow.showMessage(S.txt_as_type_place,2,S)}else{S.suggestWindow.showMessage(S.txt_as_nomatches,2,S)}}}};this.confirmPlaceSelection=function(){this.onSuggestionCompleteInternal()};this.onPlaceIDChange=function(P,O){debug("newPlaceID="+O)};this.onPlaceNameChange=function(P,O){debug("newPlaceName="+O)};this.onPlaceNameENChange=function(P,O){debug("newPlaceNameEN="+O)};this.onCountryIDChange=function(P,O){debug("newCountryID="+O)};this.onCountryNameChange=function(P,O){debug("newCountryName="+O)};this.onContinentIDChange=function(P,O){debug("sNewContinentID="+O)};this.onEnterPressed=function(){debug("onEnterPressed")};this.formatTextAfterChange=function(O){if(O){this.onCorrectPlaceDetected()}else{this.onIncorrectPlaceDetected()}};this.onIncorrectPlaceDetected=function(){$D.addClass(this.textbox,"ss_as_input_error")};this.onSuggestionComplete=function(){};this.onSuggestionCompleteInternal=function(){M=this.textbox.value;this.refreshSubtitleBox();this.onSuggestionComplete()};this.onCorrectPlaceDetected=function(){$D.removeClass(this.textbox,"ss_as_input_error");this.refreshSubtitleBox()};this.refreshSubtitleBox=function(){if(this.subtitleBox){this.subtitleBox.refresh();this.subtitleBox.show()}};this.removeSubtitleBox=function(O){if(this.subtitleBox){if(O){this.subtitleBox.showSubtitle=false}else{this.subtitleBox.remove();this.subtitleBox=null}}};this.matchesEverywhere=function(P){for(var O=0;O<this.as_everywhere_options.length;O++){if(P.trim().toLowerCase()==this.as_everywhere_options[O].toLowerCase()){return true}}return false};this.anyPlaceSubtitle=function(){if(this.language==""||this.language==null){return this.txt_as_all_countries}else{if("es_gr_ja_no_pt_tr".indexOf(this.language.toLowerCase())>-1){return this.txt_as_all_airports}else{return this.txt_as_any_country+" "+this.txt_as_any_airport}}};this.onDropdownStateChangeRequested=function(){};this.onBeforeSuggestionWindowShow=function(){};this.onAfterTabPressed=function(){}}function debug(A){if(!A){A="no debug message"}var B=(document.getElementById("debug"));if(B){B.innerHTML+="  "+A}}function attachEventHandler(A,B,D){if(A.addEventListener){A.addEventListener(B,D,false)}else{if(A.attachEvent){A.attachEvent("on"+B,D)}else{var C=A["on"+B];if(C!=null){A["on"+B]=joinFunctions([D,C])}A["on"+B]=D}}}function setStyleForElement(A,B){if(A){A.className=B}}String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"").replace("\xa0\xa0","")};function isWhitespace(A){switch(A){case" ":case"\t":case"\n":case"\r":case"(":case")":case"-":case"`":case"'":case";":case".":case"/":return true;default:return false}}function boldMatchingText(D,B){var G=D;var E=D.toLowerCase();var I=B.trim().toLowerCase();var K="";var H=", ";var C=I.length;if(B.length==0){return D}var J=E.lastIndexOf(H);if(J==-1){J=E.length}var A=0;var F=E.replace("'"," ").indexOf(I,A);while(F>=0){if((F+C)>J){break}if(F==0){A=F+C;K=K+"<span class='ss_as_matching_text'>"+G.substring(F,A)+"</span>"}else{if(isWhitespace(G.charAt(F-1))){K=K+G.substring(A,F);A=F+C;K=K+"<span class='ss_as_matching_text'>"+G.substring(F,A)+"</span>"}else{K=K+G.substring(A,F+C);A=F+C}}F=E.indexOf(I,A)}K=K+G.substring(A);return K}function SuggestionProvider(A){if(A){this.create(A)}}SuggestionProvider.prototype.create=function(A){this._path=A;this._handlesXHR=false;this._handlesXDAjaxRequest=false;this._oXHR=null;this._oXDAjaxReq=null;this._oXDAjaxLastReqId=null;this._requestTimer=null;this._retryTimer=null;this._serverCallTimer=null;this._cancelRequests=false;this._maxRetryCount=3;this._retryCounter=0;this._aCache=[];this._maxCacheEntries=100};SuggestionProvider.prototype.getSuggestions=function(D,A,G){var C=this;debug("requesting suggestions");G.suggestWindow.selectedPlaceName=null;if(this._retryCounter>this._maxRetryCount){debug("exit due to too many tries");this.cancelRequests();if(G.haveFocus){G.suggestWindow.showMessage(G.txt_as_max_retry,2,G)}this._retryCounter=0;return A}if(A.text.trim().length==0){return A}this._cancelRequests=false;var E=this._doCacheQuery(A);if(E.results){if(E.results!=""){debug("cache hit!");this.cancelRequests();D(E,G);return }}this.cancelRequests();this._initRequest(D,A,G);var B=SS.util.encodeURL(A.text.trim()).toLowerCase();var H=A.params.trim();var F=this._path+"?t="+B+H;this._serverCallTimer=setTimeout(function(){C._onServerCallTimer(G,F)},250)};SuggestionProvider.prototype.fnGetX=function(){var A=null;if(typeof ActiveXObject!="undefined"){A=new ActiveXObject("Microsoft.XMLHTTP")}else{if(typeof XMLHttpRequest!="undefined"){A=new XMLHttpRequest()}}return A};SuggestionProvider.prototype._initRequest=function(C,A,D){var B=this;this._oXHR=this.fnGetX();if(this._oXHR){this._handlesXHR=true}else{this._handlesXHR=false}if(!this._handlesXHR){alert("XMLHTTP not supported");return }if(!this._oXHR){this._oXHR=this.fnGetX()}if(this._oXHR.readyState!=0&&this._oXHR.readyState!=4){debug("CANCELLING REQUEST");this._cancelRequests=true;this._oXHR.abort();this._oXHR=null;this._oXHR=this.fnGetX()}this._requestTimer=setTimeout(function(){B._onRequestTimer(C,D,A)},5000);this._oXHR.onreadystatechange=function(){if(B._cancelRequests){return }if(B._oXHR.readyState!=4){return }debug("results coming");B.clearTimers();var F=200;try{F=B._oXHR.status}catch(G){debug("status error")}var E=false;debug("status="+F);switch(F){case 200:case 301:case 302:case 304:if(B._oXHR.responseText){if(B._oXHR.responseText.length>0){E=true}else{E=false}}else{E=false}break;default:}B._onDataLoaded(C,D,A,B._oXHR.responseText,E)}};SuggestionProvider.prototype._onDataLoaded=function(oCallbackFn,oParent,oQuery,jsonData,dataReturned){var oThis=this;if(dataReturned){debug("we have data!");oQuery.results=eval(jsonData);debug("saving to cache");this._addCacheElem(oQuery);this._retryCounter=0;oCallbackFn(oQuery,oParent)}else{debug("no correct data");if(oParent.haveFocus){oParent.suggestWindow.showMessage(oParent.txt_as_err_ret,2,oParent)}this._retryTimer=setTimeout(function(){oThis._onRetryTimer(oCallbackFn,oQuery,oParent)},2000);return }};SuggestionProvider.prototype._onRetryTimer=function(B,A,C){debug("retry because of data error");this._retryCounter++;this.getSuggestions(B,A,C)};SuggestionProvider.prototype._onServerCallTimer=function(B,A){this._cancelRequests=false;this.callServer(A)};SuggestionProvider.prototype._onRequestTimer=function(C,D,A){debug("timeout fired");this.cancelLastRequest();if(this._cancelRequests){return }if(D.haveFocus){D.suggestWindow.showMessage(D.txt_as_err_ret,2,D)}var B=this;this._retryTimer=setTimeout(function(){B._onRetryTimer(C,A,D)},2000)};SuggestionProvider.prototype._addCacheElem=function(B){var A=this._aCache;if(!A||!B||!B.text||!B.results){debug("_addCacheElem - invalid params");debug("aCache="+A);debug("oResult="+B);debug("oResult.text="+B.text);debug("oResult.results="+B.results);return }if(A.length>=this.maxCacheEntries){A.shift()}A.push(B)};SuggestionProvider.prototype._doCacheQuery=function(F){var B=false;var G=this._aCache;var I=(G)?G.length:0;if(this._maxCacheEntries>0||G||I>0){for(var C=I-1;C>=0&&!B;C--){var H=G[C];if(F.params!=H.params){continue}for(var A=F.text.length;A>=0&&!B;A--){var E=F.text.substr(0,A);if(H.text==E){var D=H.results;if(A==F.text.length){B=true;F.results=D}}}if(B){if(C!=I-1){G.splice(C,1);this._addCacheElem(H)}break}}}return F};SuggestionProvider.prototype.clearTimers=function(){clearTimeout(this._serverCallTimer);this._serverCallTimer=null;clearTimeout(this._requestTimer);this._requestTimer=null;clearTimeout(this._retryTimer);this._retryTimer=null};SuggestionProvider.prototype.callServer=function(A){this._oXHR.open("GET",A,true);debug(" sUrl ="+A);this._oXHR.send(null);debug("request sent")};SuggestionProvider.prototype.cancelLastRequest=function(){if(this._oXHR){this._oXHR.abort();this._oXHR=null}};SuggestionProvider.prototype.cancelRequests=function(){this._cancelRequests=true;this.clearTimers();this.cancelLastRequest();this._cancelRequests=true};function CrossDomainSuggestionProvider(A){this.create(A)}CrossDomainSuggestionProvider.prototype=new SuggestionProvider();CrossDomainSuggestionProvider.prototype.callServer=function(A){this._oXDAjaxLastReqId=this._oXDAjaxReq.send(A,true)};CrossDomainSuggestionProvider.prototype.cancelLastRequest=function(){this._oXDAjaxLastReqId=null};CrossDomainSuggestionProvider.prototype._initRequest=function(C,A,D){var B=this;this._handlesXDAjaxRequest=isDefined("skyscanner.loader.ScriptRequest");if(!this._handlesXDAjaxRequest){alert("Cross domain Ajax support is not available");return }if(this._oXDAjaxLastReqId!=null){debug("CANCELLING REQUEST");this._oXDAjaxLastReqId=null}var B=this;this._oXDAjaxReq=new skyscanner.loader.ScriptRequest();this._oXDAjaxReq.onComplete=function(E,F){debug("results coming");if(B._oXDAjaxLastReqId==F){B.clearTimers();B._onDataLoaded(C,D,A,E,true);B._oXDAjaxLastReqId=null}};this._requestTimer=setTimeout(function(){B._onRequestTimer(C,D,A)},5000)};function SuggestWindow(A,B,C){this.mainContainerEl=null;this._divElement=null;this._shadowElement=null;this._iFrameElement=null;this.apppendSuggestWindowToBody=B;this.asObj=C;this.maxRows=11;this.showEverywhereItem=true;this.showEverywhereInList=true;this._borderWidth=1;this._textbox=A;this._restoreProcedure;this.selectedIndex=-1;this.selectedDiv=null;this.selectedPlaceID=null;this.selectedPlaceName=null;this.selectedPlaceNameEN=null;this.selectedCountryID=null;this.selectedCountryName=null;this.selectedContinentID=null;this.selectedCityID=null;this.visible=false;this._messageDisplayed=false;this._messageType=0;this.suggestWindowMinWidth=0;this.init()}SuggestWindow.prototype.fill=function(T,F,K,M){this.mainContainerEl.style.display="";var O=this;var C=false;this._messageDisplayed=(K>0);while(this._divElement.childNodes.length>0){this._divElement.removeChild(this._divElement.childNodes[0])}this.selectedIndex=-1;this.selectedDiv=null;var G="";var E="";var J="";var D="";var R=0;var I=0;var P=O.maxRows;if(this.showEverywhereItem&&this.showEverywhereInList){if(T.length>0){if(T[T.length-1].i){T[T.length]={n:"<b>"+M.txt_as_everywhere+"<b/>",i:"",cn:M.anyPlaceSubtitle()}}}}for(var L=0;(L<T.length)&&(L<P);++L){if(K==3&&L==0){continue}if(L>0){K=0}if(!C&&K==0){if(T[L].t>2){C=true;P=P-1;var H=document.createElement("div");H.onmousedown=function(){O.onMouseDown();window.event.cancelBubble=true;return false};H.onmouseup=function(){O.onMouseUp();return false};H.onmouseover=function(){clearTimeout(O._restoreProcedure)};H.onmouseout=function(){O.highlightItem(-1);if(O.visible){O._restoreProcedure=setTimeout(function(){O.onMouseOut()},10)}};var N=this.createListItemValuesSpan("---",M.txt_sc_DidYouMean,"","","","","",3,M);H.appendChild(N);this.setAttributesToListItemEl(H,"---","","","","","","");H.className="ss_as_list_item";this._divElement.appendChild(H)}}var B=document.createElement("div");if(K==0){B.onmousedown=function(U){O.onMouseDown();cancelEventPropagation(U);return false};B.onmouseup=function(W){O.onMouseUp();if(!O.visible){return false}var U=this.parentNode;var V=-1;for(L=0;L<U.childNodes.length;L++){if(U.childNodes[L].innerHTML==this.innerHTML){V=L;break}}O.selectItem(V,true);debug("hiding on mouse up");O.hide();M.onSuggestionCompleteInternal();setTimeout(function(){O._textbox.focus();O._textbox.value=O._textbox.value},100)};B.onmouseover=function(){if(!O.visible){return }clearTimeout(O._restoreProcedure);var U=this.parentNode;var V=-1;for(L=0;L<U.childNodes.length;L++){if(U.childNodes[L].innerHTML==this.innerHTML){V=L;break}}O.highlightItem(V)};B.onmouseout=function(){if(!O.visible){return false}O.highlightItem(-1);if(this.visible){O._restoreProcedure=setTimeout(function(){O.onMouseOut()},10)}}}E=G;if(T[L].cii){G=T[L].cii}else{G=""}J=T[L].n;if(L>0){if(T[L].cii){if((E==G&&G.length>0)||(G==T[L-1].i)){J=AutoSuggestControl.INDENT_PREFIX+T[L].n}}}var Q=this.createListItemValuesSpan(T[L].i,J,T[L].ci,T[L].cn,F,K,M);B.appendChild(Q);this.setAttributesToListItemEl(B,T[L].i,T[L].n,T[L].en,T[L].ci,T[L].cn,T[L].co,G);B.className="ss_as_list_item";this._divElement.appendChild(B);var S=this.getPlaceNameWidth(B);if(S>=R){R=S}S=this.getCountryNameWidth(B);if(S>=I){I=S}}this.alignCountries(R);if(this.suggestWindowMinWidth<=0){this.suggestWindowMinWidth=this.mainContainerEl.offsetWidth||0}var A=I+R;if(A>this.suggestWindowMinWidth){this.mainContainerEl.style.width=A+"px"}else{this.mainContainerEl.style.width=this.suggestWindowMinWidth+"px"}this._iFrameElement.style.height=this.mainContainerEl.offsetHeight+"px";this.mainContainerEl.style.display="none"};SuggestWindow.prototype.setAttributesToListItemEl=function(F,C,H,A,B,G,E,D){F.setAttribute("placeID",C);F.setAttribute("placeName",H);F.setAttribute("placeNameEN",A);F.setAttribute("countryID",B);F.setAttribute("countryName",G);F.setAttribute("continentID",E);F.setAttribute("cityID",D)};SuggestWindow.prototype.getCountryNameWidth=function(D){var C=0;var A=$D.getElementsByClassName("ss_as_country_name","span",D);if(A!=null&&A.length>0){C=A[0].offsetWidth;if(document.defaultView&&document.defaultView.getComputedStyle){var B=document.defaultView.getComputedStyle(A[0],null);C+=parseInt(B.getPropertyValue("border-left-width"))||0;C+=parseInt(B.getPropertyValue("border-right-width"))||0;C+=parseInt(B.getPropertyValue("padding-left"))||0;C+=parseInt(B.getPropertyValue("padding-right"))||0;C+=parseInt(B.getPropertyValue("margin-left"))||0;C+=parseInt(B.getPropertyValue("margin-right"))||0}else{C+=parseInt(A[0].currentStyle.borderLeftWidth)||0;C+=parseInt(A[0].currentStyle.borderRightWidth)||0;C+=parseInt(A[0].currentStyle.paddingLeft)||0;C+=parseInt(A[0].currentStyle.paddingRight)||0;C+=parseInt(A[0].currentStyle.marginLeft)||0;C+=parseInt(A[0].currentStyle.marginRight)||0}}return C};SuggestWindow.prototype.getPlaceNameWidth=function(F){var E=0;var A=$D.getElementsByClassName("ss_as_country_name","span",F);if(A!=null&&A.length>0){var C=$D.getElementsByClassName("ss_as_place_name","span",F);if(C!=null&&C.length>0){E=C[0].offsetWidth;var D=$D.getElementsByClassName("ss_as_all_airports","span",F);if(D!=null&&D.length>0){E+=D[0].offsetWidth;if(document.defaultView&&document.defaultView.getComputedStyle){var B=document.defaultView.getComputedStyle(D[0],null);E+=parseInt(B.getPropertyValue("border-left-width"))||0;E+=parseInt(B.getPropertyValue("border-right-width"))||0;E+=parseInt(B.getPropertyValue("padding-left"))||0;E+=parseInt(B.getPropertyValue("padding-right"))||0}else{E+=parseInt(D[0].currentStyle.borderLeftWidth)||0;E+=parseInt(D[0].currentStyle.borderRightWidth)||0;E+=parseInt(D[0].currentStyle.paddingLeft)||0;E+=parseInt(D[0].currentStyle.paddingRight)||0}}}}return E};SuggestWindow.prototype.alignCountries=function(E){if(E>10){var F=0;if(document.defaultView&&document.defaultView.getComputedStyle){var B=document.defaultView.getComputedStyle(this._divElement,null);F=parseInt(B.getPropertyValue("border-left-width"))||0;F+=parseInt(B.getPropertyValue("padding-left"))||0}else{F=parseInt(this._divElement.currentStyle.borderLeftWidth)||0;F+=parseInt(this._divElement.currentStyle.paddingLeft)||0}var C=$D.getElementsByClassName("ss_as_ui_text","span",this._divElement);if(C!=null&&C.length>0){for(var D=0;D<C.length;D++){var A=$D.getElementsByClassName("ss_as_country_name","span",C[D]);if(A!=null&&A.length>0){A[0].style.left=E+"px"}}}}};SuggestWindow.prototype.showMessage=function(sMessage,iMessageType,asObj){debug("showMessage");var oResult=new Object();if(!this.asObj.showNoMatchesEntry&&sMessage==this.asObj.txt_as_nomatches){oResult.results=eval("[{i:'xx',n:'',ci:'',cn:'',co:'',d:'0',p:'',t:''}]");oResult.text="";iMessageType=3}else{oResult.results=eval("[{i:'xx',n:'"+sMessage.replace(/'/g,"\\'")+"',ci:'',cn:'',co:'',d:'0',p:'',t:''}]");oResult.text=""}this.asObj.onBeforeSuggestionWindowShow();this.fill(oResult.results,oResult.text,iMessageType,asObj);this.show();this.hide();this.show()};SuggestWindow.prototype.resize=function(){var G=this._textbox.offsetWidth||0;var E=this.mainContainerEl.offsetWidth;if(this.apppendSuggestWindowToBody){var A=$D.getXY(this._textbox);var D=this._textbox.offsetHeight||0;A[1]+=D;if(this.asObj.alignSuggestWindowToRight){if(G<E){A[0]+=G-E}}this.mainContainerEl.style.left=A[0]+"px";this.mainContainerEl.style.top=A[1]+"px";this._iFrameElement.style.left=A[0]+"px";this._iFrameElement.style.top=A[1]+"px";this._shadowElement.style.left=A[0]+"px";this._shadowElement.style.top=A[1]+"px"}else{if(this.asObj.alignSuggestWindowToRight){this.mainContainerEl.style.left="auto";this._iFrameElement.style.left="auto";this._shadowElement.style.left="auto";this.mainContainerEl.style.right="0px";this._iFrameElement.style.right="0px";this._shadowElement.style.right="0px"}}var C=0;var F=0;if(document.defaultView&&document.defaultView.getComputedStyle){var B=document.defaultView.getComputedStyle(this._shadowElement,null);C=parseInt(B.getPropertyValue("margin-left"))||0;F=parseInt(B.getPropertyValue("margin-top"))||0}else{if(this._shadowElement.style.visibility.toLowerCase()=="visible"){C=parseInt(this._shadowElement.currentStyle.marginLeft)||0;F=parseInt(this._shadowElement.currentStyle.marginTop)||0}}this._iFrameElement.style.width=E+C+"px";if(this.mainContainerEl.offsetHeight){this._iFrameElement.style.height=this.mainContainerEl.offsetHeight+F+"px"}this._shadowElement.style.width=E+"px";if(this.mainContainerEl.offsetHeight){this._shadowElement.style.height=this.mainContainerEl.offsetHeight+"px"}};SuggestWindow.prototype.hide=function(){this.mainContainerEl.style.visibility="hidden";this._shadowElement.style.visibility="hidden";this._iFrameElement.style.visibility="hidden";this.mainContainerEl.style.display="none";this._iFrameElement.style.display="none";this._shadowElement.style.display="none";this.selectedIndex=-1;this.visible=false};SuggestWindow.prototype.show=function(){var A=navigator.userAgent.toLowerCase();if((A.indexOf("konqueror")!=-1)){}else{this._iFrameElement.style.display=""}var A=navigator.userAgent.toLowerCase();if((A.indexOf("msie")!=-1)&&(A.indexOf("opera")==-1)&&(A.indexOf("webtv")==-1)){this._iFrameElement.style.visibility="visible"}this._shadowElement.style.visibility="visible";this.mainContainerEl.style.visibility="visible";this.mainContainerEl.style.display="";this._shadowElement.style.display="";this.visible=true;this.resize()};SuggestWindow.prototype.selectItem=function(B,A){this.onBeforeSelectionChanged(B);this.highlightItem(B);this.onAfterSelectionChanged(A)};SuggestWindow.prototype.moveSelectionDown=function(){var A=this.selectedIndex+1;if(this._messageDisplayed){A++}if(A+1>this._divElement.getElementsByTagName("div").length){return }if(this._divElement.getElementsByTagName("div").item(A).getAttribute("placeID").match("---")){A++}this.selectItem(A,true)};SuggestWindow.prototype.moveSelectionUp=function(){var A=this.selectedIndex-1;if(this._messageDisplayed){A--}if(A>=0){if(this._divElement.getElementsByTagName("div").item(A).getAttribute("placeID").match("---")){A--}}this.selectItem(A,true)};SuggestWindow.prototype.onAfterSelectionChanged=function(A){};SuggestWindow.prototype.onBeforeSelectionChanged=function(A){};SuggestWindow.prototype.onMouseOut=function(){};SuggestWindow.prototype.onMouseDown=function(){};SuggestWindow.prototype.onMouseUp=function(){};SuggestWindow.prototype.init=function(){var C=1000000;if(!this.apppendSuggestWindowToBody){var A=document.createElement("div");A.style.height="0px";A.style.position="relative";if(this._textbox.nextSibling!=null){this._textbox.parentNode.insertBefore(A,this._textbox.nextSibling)}else{this._textbox.parentNode.appendChild(A)}}else{var A=document.createElement("div");A.style.height="0px";document.body.appendChild(A)}var B=this._textbox.id;if(B!=null&&B!=""){A.id=B+"_as_cont"}this._iFrameElement=document.createElement("iframe");this._iFrameElement.frameborder=0;this._iFrameElement.style.display="none";this._iFrameElement.style.zIndex=(C+2);this._iFrameElement.style.visibility="hidden";this._iFrameElement.style.display="none";this._iFrameElement.style.position="absolute";this._iFrameElement.style.borderStyle="none";this._iFrameElement.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";this._iFrameElement.className="ss_as_iframe";this._shadowElement=document.createElement("div");this._shadowElement.style.zIndex=(C+1);this._shadowElement.style.visibility="hidden";this._shadowElement.style.display="none";this._shadowElement.style.position="absolute";this._shadowElement.className="ss_as_list_shadow";this.mainContainerEl=document.createElement("div");this.mainContainerEl.className="ss_as_list";this.mainContainerEl.style.position="absolute";this.mainContainerEl.style.display="none";this.mainContainerEl.style.visibility="hidden";this.mainContainerEl.style.zIndex=(C+3);this._divElement=document.createElement("div");this._divElement.className="ss_as_list_container";this._divElement.style.cursor="default";this.mainContainerEl.appendChild(this._divElement);this.resize();A.appendChild(this.mainContainerEl);A.appendChild(this._iFrameElement);A.appendChild(this._shadowElement)};SuggestWindow.prototype.highlightItem=function(A){var C=this._divElement.getElementsByTagName("div");if(!C||C.length<=0){return }var B=C.length;if(A>=B){A=B-1}if(this.selectedIndex!=-1&&A!=this.selectedIndex){C.item(this.selectedIndex).className="ss_as_list_item";this.selectedIndex=-1}if(A<0){this.selectedIndex=-1;return }C.item(A).className="ss_as_list_item ss_as_list_item_hightlighted";this.selectedIndex=A;this.selectedDiv=C.item(A);if(this.selectedDiv.getAttribute("placeID")){this.selectedCountryID=this.selectedDiv.getAttribute("countryID");this.selectedPlaceID=this.selectedDiv.getAttribute("placeID");this.selectedPlaceName=this.selectedDiv.getAttribute("placeName");this.selectedPlaceNameEN=this.selectedDiv.getAttribute("placeNameEN");this.selectedCountryName=this.selectedDiv.getAttribute("countryname");this.selectedCityID=this.selectedDiv.getAttribute("cityID")}else{this.selectedCountryID="";this.selectedPlaceID="";if(this.showEverywhereItem){this.selectedPlaceName=this.asObj.txt_as_everywhere}this.selectedPlaceNameEN="";this.selectedCountryName="";this.selectedCityID=""}};SuggestWindow.prototype.createListItemValuesSpan=function(G,E,J,I,B,M,A){var D=document.createElement("span");D.className="ss_as_list_item_values";var L=document.createElement("span");var H=document.createElement("span");switch(M){case 0:var F=boldMatchingText(E,B);switch(G.length){case 2:case 3:if(G.length==B.length){F=F+" ("+boldMatchingText(G,B)+")"}else{F=F+" ("+G+")"}break;default:}H.innerHTML=F;H.className="ss_as_place_name";L.className="ss_as_ui_text";break;case 1:H.innerHTML=E;H.className="ss_as_status_message";L.className="ss_as_ui_text_status_message";break;case 2:H.innerHTML=E;H.className="ss_as_place_name ss_as_error_message";L.className="ss_as_ui_text_error_message";break;default:}L.appendChild(H);if(G.length==4){var C=document.createElement("span");C.innerHTML=A.txt_as_any;C.className="ss_as_all_airports";L.appendChild(C)}var K=document.createElement("span");K.innerHTML="";if(M!=3){if(G.length!=2){K.innerHTML=I}}K.className="ss_as_country_name";L.appendChild(K);D.appendChild(L);return D};function SubtitleBox(B,A){this.textbox=A;this.measureBox=false;this.createLayout();this.as=B;this.showSubtitle=true;this.dotsMargin=65;this.regionInput=false;this.regionDD=false}SubtitleBox.prototype.createLayout=function(){var A=this;this.box=document.createElement("div");this.box.className="ss_subt_box";this.box.onmousedown=function(B){A.textbox.focus();cancelEventPropagation(B);return false};this.textbox.parentNode.appendChild(this.box);this.textbox.parentNode.style.position="relative";if($D.setStyle!=undefined&&$D.getRegion!=undefined&&$D.getStyle!=undefined){this.measureBox=document.createElement("span");$D.setStyle(this.measureBox,"paddingLeft",$D.getStyle(this.textbox,"paddingLeft"));$D.setStyle(this.measureBox,"paddingRight",$D.getStyle(this.textbox,"paddingRight"));$D.setStyle(this.measureBox,"position","absolute");$D.setStyle(this.measureBox,"whiteSpace","nowrap");$D.setStyle(this.measureBox,"left","0");$D.setStyle(this.measureBox,"visibility","hidden");this.textbox.parentNode.appendChild(this.measureBox)}};SubtitleBox.prototype.applyCuttedName=function(F){var E,C,B,D,A=true,G=F.length;if(!this.measureBox){if(this.textbox.value!=F){this.textbox.value=F}return }D=$D.getRegion(this.box);if(!this.regionDD||!this.regionDD.width){this.regionDD=$D.getRegion($D.getElementsByClassName("ss_dropdownlink","div",this.textbox.parentNode)[0])}if(!this.regionInput||!this.regionInput.width){this.regionInput=$D.getRegion(this.textbox)}E=Math.max(this.regionInput.width-D.width-this.regionDD.width,0);$D.setStyle(this.measureBox,"fontSize",$D.getStyle(this.textbox,"fontSize"));this.measureBox.innerHTML=F;while(A&&G>0&&E){C=$D.getRegion(this.measureBox);B=C.width;if(E<B){G-=1;this.measureBox.innerHTML=F.substring(0,G-1)+"..."}else{A=false}}if(this.textbox.value!=this.measureBox.innerHTML){this.textbox.value=this.measureBox.innerHTML}};SubtitleBox.prototype.show=function(){if(this.as.typedText.length!=0){this.box.style.display="block"}};SubtitleBox.prototype.hide=function(){if(this.as.matchesEverywhere(this.as.textbox.value)&&this.as.suggestWindow.showEverywhereItem){this.setText(this.as.anyPlaceSubtitle())}else{this.setText("")}};SubtitleBox.prototype.setText=function(A){if(this.showSubtitle){this.box.innerHTML=A}};SubtitleBox.prototype.setTitle=function(A){this.box.title=A};SubtitleBox.prototype.setSubtitle=function(C,D,E){$D.removeClass(this.as.textbox,"ss_as_input_everywhere");C=C.trim().toUpperCase();var B=C.length;if(B>=2&&B<=4){if(B==3){this.setText(C+", "+D);this.setTitle(E)}else{if(B==4){this.setText(this.as.txt_as_simple_any+", "+D);this.setTitle(E)}else{if(B==2){this.setText(this.as.txt_as_all_airports)}}}this.show()}else{if(this.as.suggestWindow.showEverywhereItem&&((B==0&&this.as.textbox.value.length==0)||this.as.matchesEverywhere(this.as.textbox.value))){var A=this.as.haveFocus;if(this.as.matchesEverywhere(this.as.textbox.value)&&this.as.haveFocus){this.setText("")}else{this.setText(this.as.anyPlaceSubtitle())}if(!this.as.haveFocus){$D.addClass(this.as.textbox,"ss_as_input_everywhere");if(this.as.showTypePlaceForEverywhereCase){this.as.textbox.value=this.as.txt_as_type_place;this.setText("");if(this.as.textbox.setSelectionRange&&navigator.userAgent.indexOf("Safari")==-1){this.as.textbox.selectionStart=0;this.as.textbox.selectionEnd=0}}else{this.as.textbox.value=this.as.txt_as_everywhere}}else{this.setText("")}}else{this.hide()}}this.applyCuttedName(this.as.textbox.value)};SubtitleBox.prototype.refresh=function(){this.setSubtitle(this.as.getPlaceID(),this.as.getCountryID(),this.as.getCountryName())};SubtitleBox.prototype.setStyle=function(){};SubtitleBox.prototype.remove=function(){this.textbox.parentNode.removeChild(this.box)};function cancelEventPropagation(A){if(!A){A=window.event}if(A.cancelBubble!=null){A.cancelBubble=true}if(A.preventDefault){A.preventDefault()}else{A.returnValue=false}if(A.stopPropagation){A.stopPropagation()}return false}function isDefined(variable){return eval("(typeof("+variable+') != "undefined");')};})()