﻿SS.entities.Airline=function(B,A){this.code=B||"";this.name=A||"";this.flightNumberCode=null};
(function(){SS.entities.Currency=function(G,E,F,D,B,C,A){this.id=G;this.symbol=E;this.thousandsSeparator=(F||",").replace("&apos;","'");this.decimalSeparator=(D||".").replace("&apos;","'");this.symbolOnLeft=B==null?true:B;this.spaceBetweenAmountAndSymbol=C==null?false:C;this.roundingCoefficient=A||new Number(1/100)};SS.entities.Currency.getCurrencyFromJsonObject=function(C){var B=C.currency,A=new SS.entities.Currency(B.id,B.symbol,B.thousandsSeparator,B.decimalSeparator,B.symbolOnLeft,B.spaceBetweenAmountAndSymbol,B.roundingCoefficient/1000);return A};SS.entities.Currency.prototype={formatPrice:function(G,A,C,J){var B="";if(!J){if(isNaN(G)||G==null||typeof (G)=="undefined"||isNaN(parseFloat(G))){return(G)}}var H=this.symbol||"";var D;if(!J){D=SS.util.roundByCoefficient(G,this.roundingCoefficient);B=SS.util.formatThousands(Math.floor(D))}else{B=G}if(!J){if(A>0){B+="."+SS.util.pad0(Math.round((D-Math.floor(D))*100)).substring(0,A)}B=B.replace(/\,/g,"!").replace(/\./g,"#").replace(/\!/g,this.thousandsSeparator).replace(/\#/g,this.decimalSeparator)}var F=(this.spaceBetweenAmountAndSymbol?" ":""),E=0;for(;E<5;E++){B=B.replace(" ","\u00a0");F=F.replace(" ","\u00a0")}var I;if(this.symbolOnLeft){I=H+""+F}else{I=F+H}if(I!=""&&C){I='<span class="symbol">'+I+"</span>"}if(this.symbolOnLeft){B=I+B}else{B=B+I}return(B)}}})();
(function(){SS.entities.Datecode=function(){};var A=SS.entities.Datecode;A.getDateFromDatecode=function(E){var C=E.substr(0,4);var D=E.substr(4,2);var B=E.length>6?E.substr(6,2):1;return(new Date(C,D-1,B,0,0,0))};A.getDatecodeFromDate=function(D){var C=D.getFullYear();var E=("0"+(D.getMonth()+1)).slice(-2);var B=("0"+D.getDate()).slice(-2);return(C+E+B)};A.getYYDatecodeFromDate=function(D){var C=D.getYear().toString().slice(-2);var E=("0"+(D.getMonth()+1)).slice(-2);var B=("0"+D.getDate()).slice(-2);return(C+E+B)};A.addMonthsToDatecode=function(F,B){var E=A.getDateFromDatecode(F);var C=new Date(E.getFullYear(),E.getMonth()+B,E.getDate(),E.getHours(),E.getMinutes(),E.getSeconds());var D=A.getDatecodeFromDate(C);if(6==F.length){D=D.substr(0,6)}return(D)};A.addDaysToDatecode=function(E,F){var D=A.getDateFromDatecode(E);var B=new Date(D.getFullYear(),D.getMonth(),D.getDate()+F,D.getHours(),D.getMinutes(),D.getSeconds());var C=A.getDatecodeFromDate(B);if(6==E.length){C=C.substr(0,6)}return(C)};A.getMonthYearStringFromDatecode=function(D,B){var C=A.getDateFromDatecode(D);var E=C.toString("y");return(E)};A.getMonthAbbrYearStringFromDatecode=function(D,B){var C=A.getDateFromDatecode(D);var E=C.toString("MMM yyyy");return(E)};A.getExpandedMonthBounds=function(F){var E=A.getDateFromDatecode(F);var D=E.clone().moveToFirstDayOfMonth();var C=null;switch(D.getDay()){case 0:C=D.addDays(-6);break;case 1:C=D;break;case 2:C=D.addDays(-1);break;case 3:C=D.addDays(-2);break;case 4:C=D.addDays(-3);break;case 5:C=D.addDays(-4);break;case 6:C=D.addDays(-5);break}var B=C.clone().addDays(41);return([C,B])};A.prototype={}}());
SS.entities.Filter=function(C,B,A){this.id=C;this.title=B;this.filterOptions=[];this.type=A};SS.entities.Filter.prototype={addFilterOption:function(A){if(A instanceof SS.entities.FilterOption){this.filterOptions[this.filterOptions.length]=A}},isMultiSelect:function(){return this.type=="checkboxlist"},getActiveFilterOption:function(){var B=0,D=this.filterOptions,A=D.length,C;for(;B<A;B++){C=D[B];if(C.isActive){return C}}return null},setActiveFilterOption:function(B){var C=0,E=this.filterOptions,A=E.length,D;for(;C<A;C++){D=E[C];D.isActive=(D.id===B)}},isOptionValid:function(A){if((A||[]).length==0){return false}var D,C=A[0],B=0;for(;B<this.filterOptions.length;B++){D=this.filterOptions[B];if(D.id==C){return true}}return false}};
SS.entities.FilterOption=function(H,F,E,C,D,A,B,G){this.id=H;this.text=F;this.description=E;this.isActive=C;this.price=D;this.hasDirectFlights=A;this.hasIndirectFlights=B;this.hasMixedAvailability=G};
(function(){SS.entities.FilterState=function(){this.directOnly=false;this.selectedAirlines=[""];this.selectedAirports=[""];this.selectedOutboundDepartureTimeWindows=[SS.departureTimeWindowsType.any];this.selectedInboundDepartureTimeWindows=[SS.departureTimeWindowsType.any];this.departureByTakeOff=true;this.departTakeOffTimeRange=[0,1440];this.departTakeOffTimeNormalizedRange=[0,1440];this.departLandingTimeRange=[0,1440];this.departLandingTimeNormalizedRange=[0,1440];this.departureTimeFilterEnabled=false;this.returnByTakeOff=true;this.returnTakeOffTimeRange=[0,1440];this.returnTakeOffTimeNormalizedRange=[0,1440];this.returnLandingTimeRange=[0,1440];this.returnLandingTimeNormalizedRange=[0,1440];this.returnTimeFilterEnabled=false;this.totalJourneyTimeRange=[0,99999];this.totalJourneyTimeFilterEnabled=false;this.totalJourneyTimeNormalizedRange=[0,99999];this.showDirects=true;this.showDirectsChangedManually=false;this.showIndirects=false;this.showIndirectsChangedManually=false;this.showMixedAirports=false;this.showMultiTicket=true;this.allAirlinesSelected=true;this.airlinesWithMixedAvailability=[];this.indirectAirlines=[];this.allAirlines=[];this.allAirportsSelected=true;this.airportsWithMixedAvailability=[];this.indirectAirports=[];this.allAirports=[];this.outboundAirportsFilterActive=false;this.inboundAirportsFilterActive=false};var A=function(B,D){var C=B.getHours(),E=false;switch(D){case (SS.departureTimeWindowsType.any):E=true;break;case (SS.departureTimeWindowsType.morning):E=(C<=12);break;case (SS.departureTimeWindowsType.afternoon):E=((C>=12)&&(C<=18));break;case (SS.departureTimeWindowsType.evening):E=(C>=18);break}return E};SS.entities.FilterState.prototype={matches:function(B){return(this.matchesByParameters(B.directOnly,B.selectedAirlines,B.selectedOutboundDepartureTimeWindows,B.selectedInboundDepartureTimeWindows))},matchesByParameters:function(H,I,G,D){var F=false;if(this.directOnly==H){var B=true;var E=true;var J=true;if(this.selectedAirlines.length==I.length){for(var C=0;C<I.length;C++){if(this.selectedAirlines[C]!=I[C]){B=false;break}}}if((B)&&(this.selectedOutboundDepartureTimeWindows.length==G.length)){for(var C=0;C<G.length;C++){if(this.selectedOutboundDepartureTimeWindows[C]!=G[C]){E=false;break}}}if((B)&&(E)&&(this.selectedInboundDepartureTimeWindows.length==D.length)){for(var C=0;C<D.length;C++){if(this.selectedInboundDepartureTimeWindows[C]!=D[C]){J=false;break}}}F=(B)&&(E)&&(J)}return(F)},isItineraryLegAcceptable:function(L,H,C,O,M,I){var B=true,D,R=(L.direction==SS.journeyDirectionType.outbound)?this.selectedOutboundDepartureTimeWindows[0]:this.selectedInboundDepartureTimeWindows[0],G=L.getUnifiedCarrierCode()||"",E=this.selectedAirlines.join("|").indexOf(G)>-1,F=this.selectedAirports.join("|"),S=((L.direction==SS.journeyDirectionType.outbound?L.originStation.i:L.destinationStation.i)||"").toUpperCase(),Q=((L.direction==SS.journeyDirectionType.inbound?L.originStation.i:L.destinationStation.i)||"").toUpperCase(),K=F.indexOf(S)>-1,N=F.indexOf(Q)>-1,P=E&&O,J=false;if(!C||(C&&(C.timeWindow||!$L.isBoolean(C.timeWindow)))){if(B){D=true;if(L.direction==SS.journeyDirectionType.outbound){if(this.departureTimeFilterEnabled){if(this.departureByTakeOff){D=this.isTimeWithinRange(L.departureDateTime,this.departTakeOffTimeNormalizedRange,true)}else{D=this.isTimeWithinRange(L.arrivalDateTime,this.departLandingTimeNormalizedRange,true)}}}else{if(this.returnTimeFilterEnabled){if(this.returnByTakeOff){D=this.isTimeWithinRange(L.departureDateTime,this.returnTakeOffTimeNormalizedRange,false)}else{D=this.isTimeWithinRange(L.arrivalDateTime,this.returnLandingTimeNormalizedRange,false)}}}if(!D){B=false}}}if(!C||(C&&(C.airlines||!$L.isBoolean(C.airlines)))){if(B){if(G!=""){if(!this.allAirlinesSelected&&!E){B=false}}}}if(!C||(C&&(C.airports||!$L.isBoolean(C.airports)))){if(B){if(S!=""){if(!this.allAirportsSelected&&!K&&this.outboundAirportsFilterActive){B=false}}if(Q!=""){if(!this.allAirportsSelected&&!N&&this.inboundAirportsFilterActive){B=false}}}}if(!C||(C&&(C.direct||!$L.isBoolean(C.direct)))){if(B){if(!this.showDirects&&L.isDirect()&&!P&&!E){B=false}}}if(!C||(C&&(C.indirect||!$L.isBoolean(C.indirect)))){if(B){if(!this.showIndirects&&!L.isDirect()&&!P&&!E){B=false}}}if(!C||(C&&(C.multiTicket||!$L.isBoolean(C.multiTicket)))){if(B){if(!this.showMultiTicket&&L.hasMultiTicket()){B=false}}}if(!C||(C&&(C.duration||!$L.isBoolean(C.duration)))){if(B&&!H&&this.totalJourneyTimeFilterEnabled){totalDuration=Math.max(L.durationMinutes,0);D=(this.totalJourneyTimeNormalizedRange[0]<=totalDuration)&&(totalDuration<=this.totalJourneyTimeNormalizedRange[1]);if(!D){B=false}}}return B},isTimeWithinRange:function(G,D,C){var B=SS.factories.ItineraryFactory.getItinerary(),F,E;if(C){F=SS.util.parseDateFromCode(B.oDatecode)}else{F=SS.util.parseDateFromCode(B.iDatecode)}E=(G.valueOf()-F.valueOf())/60000;return D[0]<=E&&E<=D[1]},isPricedItineraryAcceptable:function(I,D,Q){var B=true,H=I.getUnifiedCarrierCode(),O=this.selectedAirlines.join("|"),R=O.indexOf(I.outboundItineraryLeg.getUnifiedCarrierCode())>-1,L=O.indexOf(I.inboundItineraryLeg.getUnifiedCarrierCode())>-1,F=(O.indexOf(H)>-1)||(R&&L),G=this.selectedAirports.join("|"),M=(I.outboundItineraryLeg.originStation.i||"").toUpperCase(),K=(I.outboundItineraryLeg.destinationStation.i||"").toUpperCase(),J=(I.inboundItineraryLeg.originStation.i||"").toUpperCase(),C=(I.inboundItineraryLeg.destinationStation.i||"").toUpperCase(),N=(G.indexOf(M)>-1||G.indexOf(C)>-1),P=(G.indexOf(K)>-1||G.indexOf(J)>-1),E,S;if(!D||(D&&(D.airlines||!$L.isBoolean(D.airlines)))){if(B){if(H!=""){if(!this.allAirlinesSelected&&!F){B=false}}}}if(!D||(D&&(D.airports||!$L.isBoolean(D.airports)))){if(B){if(!this.allAirportsSelected&&!N&&this.outboundAirportsFilterActive){B=false}if(!this.allAirportsSelected&&!P&&this.inboundAirportsFilterActive){B=false}}}if(!D||(D&&(D.direct||!$L.isBoolean(D.direct)))){if(B){if(!this.showDirects&&I.isDirect()&&!F&&((!N&&this.outboundAirportsFilterActive)||!this.outboundAirportsFilterActive)&&((!P&&this.inboundAirportsFilterActive)||!this.inboundAirportsFilterActive)){B=false}}}if(!D||(D&&(D.indirect||!$L.isBoolean(D.indirect)))){if(B){if(!this.showIndirects&&!I.isDirect()&&(!F||(F&&!Q))){B=false}}}if(!D||(D&&(D.mixedAirports||!$L.isBoolean(D.mixedAirports)))){if(B){if(!this.showMixedAirports&&I.hasMixedAirports()){B=false}}}if(!D||(D&&(D.multiTicket||!$L.isBoolean(D.multiTicket)))){if(B){if(!this.showMultiTicket&&I.hasMultiTicket()){B=false}}}if(!D||(D&&(D.duration||!$L.isBoolean(D.duration)))){if(B){S=Math.max(I.getTotalDuration(),0);E=(this.totalJourneyTimeNormalizedRange[0]<=S)&&(S<=this.totalJourneyTimeNormalizedRange[1]);if(!E){B=false}}}return B},isFilteringApplied:function(D,C,E,B){return this.departureTimeFilterEnabled||this.returnTimeFilterEnabled||this.totalJourneyTimeFilterEnabled||!this.allAirlinesSelected||!this.allAirportsSelected||(!this.showMultiTicket&&E)||(!this.showIndirects&&C&&B)||(!this.showDirects&&D)},indirectPricedItineraryAcceptable:function(B){var G=B.outboundItineraryLeg,F=B.inboundItineraryLeg,H=G.getUnifiedCarrierCode(),K=F.getUnifiedCarrierCode(),I=H==K?H:"MULTI",C=this.allowIndirectAirlineForDirectFlights(I,false),D=G.isDirect()||this.allowIndirectAirlineForDirectFlights(H,false),E=F.isDirect()||this.allowIndirectAirlineForDirectFlights(K,false),J=C||(D&&E);return J},indirectPricedItineraryJourneyTimeRangeStatAcceptable:function(H,G,F,K,D,I){var B=this.allowIndirectAirlineForDirectFlights(G,false),C=D||this.allowIndirectAirlineForDirectFlights(F,false),E=I||this.allowIndirectAirlineForDirectFlights(K,false),J=B||(C&&E);return J},allowIndirectAirlineForDirectFlights:function(C,E){var D=this.selectedAirlines.join("|").toUpperCase(),B=this.airlinesWithMixedAvailability.join("|"),F=this.indirectAirlines.join("|");if(B.indexOf(C)>-1||F.indexOf(C)>-1){return E}else{return false}},getDirectAirlines:function(){var B=[],C=this.allAirlines,E=this.indirectAirlines,D=0;for(;D<C.length;D++){if(E.indexOf(C[D])==-1){B.push(C[D])}}return B},getDirectAirports:function(){var E=[],B=this.allAirports,D=this.indirectAirports,C=0;for(;C<B.length;C++){if(D.indexOf(B[C])==-1){E.push(B[C])}}return E},clone:function(){var B=new SS.entities.FilterState();for(i in this){B[i]=this[i]}return B},getHash:function(){var D="",B,C;for(B in this){C=this[B];if(typeof C=="function"){continue}if(C.toString()==""){continue}D+=(D!=""?"_":"")+C.toString()}return D}}})();
(function(){SS.entities.PassengerPrice=function(A,B,C){this.adultTaxPrice=A;this.childPriceFactor=B;this.infantPriceFactor=C};SS.entities.PassengerPrice.prototype={estimatedTotal:function(A,B,C){estimatedTotal=this.adultTaxPrice*A;estimatedTotal+=this.adultTaxPrice*this.childPriceFactor*B;estimatedTotal+=this.adultTaxPrice*this.infantPriceFactor*C;return estimatedTotal}}})();
SS.entities.Place=function(B,A){this.id=$L.isString(B)?B:null;this.name=$L.isString(A)?A:null};
(function(){var A=SS.entities.Query=function(D,G,L,E,F,I,K,H,C,M,B,J){this.queryType=D;this.queryStatus=SS.queryStatusType.notstarted;this.queryErrorMessage="";this.isReturn=G;this.originPlaceId=L;this.destinationPlaceId=E;this.oDatecode=F;this.iDatecode=I;this.filterState=K||new SS.entities.FilterState();this.adults=H||1;this.children=C||0;this.infants=M||0;this.currency=null;this.apiKey="";this.originAirports=(B||"").split(",").filter(function(N){return N.length==3});this.destinationAirports=(J||"").split(",").filter(function(N){return N.length==3});this.results=new SS.entities.QueryResults(this);this.isLongHaul=false;this.originCityId="";this.destinationCityId="";this.requestid="";this.gaCombinedPageName=null;this.gaSinglesPageName=null;this.hasDirectFlights=true;this.forceShowingIndirects=false};SS.entities.Query.getQueryFromJsonObject=function(B,D){var C=(B==SS.queryType.exactdates&&D==SS.data.dayview),G=(B==SS.queryType.selectedflights&&D==SS.data.selectedflightsview),F,I;if(C||G){var E,H;if(C){E=SS.data.dayview}else{if(G){E=SS.data.selectedflightsview}}I=E.q;F=new A(B,I.ret,I.dep,I.dst,"20"+I.ddate,"20"+I.rdate,null,I.adults,I.children,I.infants,null,null);F.originAirports=I.oairp.filter(function(J){return J.length==3});F.destinationAirports=I.iairp.filter(function(J){return J.length==3});F.isLongHaul=E.q.lh==1;F.originCityId=I.ocid;F.destinationCityId=I.icid;F.requestId=I.reqid;if(E.ga){F.gaCombinedPageName=E.ga.combined;F.gaSinglesPageName=E.ga.singles}F.hasDirectFlights=I.df;F.forceShowingIndirects=I.si;H=E.cur;F.currency=new SS.entities.Currency(H.i,H.symb,H.tsep,H.dsep,H.sleft,H.sbas,H.rcoef/1000);F.queryStatus=SS.queryStatusType.success}else{I=D.query;F=new A(B,I.isReturn,I.oPlaceId,I.iPlaceId,I.oDatecode,I.iDatecode,null,I.adults,I.children,I.infants,I.oAirports,I.iAirports);F.currency=SS.entities.Currency.getCurrencyFromJsonObject(D);F.apiKey=D.apiKey;F.queryStatus=SS.queryStatusType.success}return F};SS.entities.Query.prototype={matches:function(D,H,L,E,F,J,K,I,C,M){var B=false;if(K){B=this.filterState.matches(K)}else{B=true}var G=((this.queryType==D)&&(this.isReturn==H)&&(this.originPlaceId==L)&&(this.destinationPlaceId==E)&&(this.oDatecode==F)&&(this.iDatecode==J)&&(this.adults==I)&&(this.children==C)&&(this.infants==M)&&(B));return(G)},matchesRoute:function(C,B){if((C!=this.originPlaceId)&&(this.originAirports.indexOf(C)==-1)&&(C!=this.originCityId)){return false}return(B==this.destinationPlaceId)||(this.destinationAirports.indexOf(B)>-1)||(this.destinationCityId==B)},getDataApiUrl:function(){var H=this,B=SS.factories.ItineraryFactory.getItinerary(),C=SS.entities.Datecode,E=C.getYYDatecodeFromDate,G=C.getDateFromDatecode,I=E(G(H.oDatecode)).slice(0,4),F=H.isReturn?E(G(H.iDatecode)).slice(0,4):"",D=["/api.ashx?mode=Data&output=xml&method=flightsearch&rtn=",H.isReturn?"1":"0","&oplace=",H.originPlaceId,"&iplace=",H.destinationPlaceId,"&ddate=",I,H.isReturn?"&rdate="+F:"","&currency=",H.currency.id,"&adults=",H.adults,"&children=",H.children,"&infants=",H.infants,"&airlines=",H.filterState.selectedAirlines.join(","),"&otimeofday=",H.filterState.selectedOutboundDepartureTimeWindows.join(","),"&itimeofday=",H.filterState.selectedInboundDepartureTimeWindows.join(","),"&di=",B.directOnly?"1":"0","&key=",H.apiKey].join("");return D}}})();
(function(){SS.entities.QueryResults=function(C,A,B){this.query=C;this.timetableDates={};this.timetableDates[SS.journeyDirectionType.outbound]={};this.timetableDates[SS.journeyDirectionType.inbound]={};this.scheduledQuotes={}}})();
(function(){SS.entities.Quote=function(){};SS.entities.Quote.prototype={quoteRequestId:null,price:null,paxPrice:null,quoteDateTimeUTC:null,flightcode:null,isAvailable:true,isCurrent:false,unableToConfirm:false,getPrice:function(A){if(A===null||typeof (A)=="undefined"){return this.price}else{return this.paxPrice.estimatedTotal(A.adults,A.children,A.infants)}}}}());
(function(){SS.entities.ReturnQuote=function(){};$L.extend(SS.entities.ReturnQuote,SS.entities.Quote,{returnFlightCode:null})}());
(function(){SS.entities.Segment=function(){};SS.entities.Segment.prototype={segmentId:"",fromPlace:null,toPlace:null,departureLocalDateTime:null,arrivalLocalDateTime:null,airline:null,flightNumber:"",duration:0,mct:0,wfc:"",fromCyName:"",toCyName:""}}());
(function(){var A=SS.views.SearchControlsOptionsView=function(){};A.onScMinMaxPerformed=function(B){};A.prototype={name:"SearchControlsOptionsView",optionsPanelMainContainer:null,contentEl:null,ftContainer:null,previousEl:null,toogleEl:null,expanded:false,keepOpenOnCollapse:false,showHideText:"",onExpandCollpase:function(){this.expand(!this.expanded);this.refresh();var C=SS.factories.SessionFactory.getSession();if(C.view=="day"){var B=new SS.core.Cookie("scanner");B.dayviewfiltersopened=this.expanded?1:2;B.store(240,"/","",false)}},init:function(J,H){var E=this.optionsPanelMainContainer=$D.get(J);$D.setStyle(E,"display","block");var C=this.contentEl=$D.getElementsByClassName("content","div",E)[0];var D=this.ftContainer=$D.getElementsByClassName("sc_options_ft","div",E)[0];var B=$D.getElementsByClassName("toggle_inner","span",D)[0];if(H!=undefined&&H!=""){B.innerHTML=this.showHideText=H}else{var I=document.createElement("span");I.className="arrow";I.innerHTML="&nbsp;";B.appendChild(I)}var G=this.toogleEl=$D.getElementsByClassName("toggle","div",D)[0];$E.addListener(G,"click",this.onExpandCollpase,this,true);this.previousEl=this.getPreviousElement();var F=this;A.onScMinMaxPerformed=function(K){F.refresh()};this.viewSpecificInit()},viewSpecificInit:function(){},getPreviousElement:function(){var B=this.optionsPanelMainContainer.previousSibling;while(B.nodeType==3){B=B.previousSibling}return B},refresh:function(){var F=this.optionsPanelMainContainer,K=this.isSearchControlsBlockVisible(),G=this.keepOpenOnCollapse||this.expanded;if(G){if(K){$D.addClass(F,"sc_maximized_expanded")}else{$D.removeClass(F,"sc_maximized_expanded")}$D.removeClass(F,"sc_maximized")}else{if(K){$D.addClass(F,"sc_maximized")}else{$D.removeClass(F,"sc_maximized")}$D.removeClass(F,"sc_maximized_expanded")}if(this.expanded){$D.addClass(F,"expanded");$D.removeClass(F,"collapsed")}else{$D.addClass(F,"collapsed");$D.removeClass(F,"expanded")}var J=$D.getElementsByClassName("top_edge","div",F)[0];F.style.marginTop="";F.style.marginBottom="";var C="",L="";if(K){if(G){var B=$D.getRegion(J);C=-B.height;L=B.height-5}else{C=-5;L=5;if(YAHOO.env.ua.ie>0&&YAHOO.env.ua.ie<7){C=-4;L=4}}}else{var E=0;if(this.getPreviousElement()!=this.previousEl){var B=$D.getRegion(this.getPreviousElement());var D=$D.getRegion(this.previousEl);E=Math.abs(B.bottom-D.bottom);if(E>1){this.contentEl.style.paddingTop=E+"px"}else{E=0}}var H=$D.getRegion(this.previousEl);var I=$D.getRegion(F);C=-(I.top-H.bottom);L=-C;if(E>0){if(G){L-=E}else{L-=E;var B=$D.getRegion(this.toogleEl);L+=Math.round(B.height/2+0.1);L+=8}}}if(L!=""){L-=10;L=Math.max(0,L)}F.style.marginTop=C!=""?C+"px":"";F.style.paddingBottom=L!=""?L+"px":""},isSearchControlsBlockVisible:function(){var B=$D.get("searchcontrols");if(!B){return false}return $D.getStyle(B,"display")=="block"},updateContentElementVisibility:function(B){$D.setStyle(this.contentEl,"display",B?"block":"none")},expand:function(B){this.updateContentElementVisibility(B);this.expanded=B;this.refresh()}}}());
(function(){SS.views.SearchResultsOptionsView=function(D){this.model=D;this.changeFilterStateRequest=new YAHOO.util.CustomEvent("changeFilterStateRequest",this)};var C=SS.views.SearchResultsOptionsView,A=SS.views.SearchControlsOptionsView,B=SS.util.gettext;$L.extend(C,A,{name:"SearchResultsOptionsView",model:null,itinerary:null,optionsPanel:null,optionsPanelBodyInner:null,outboundDepartureTimeFilter:null,inboundDepartureTimeFilter:null,airlineFilter:null,_airlinesSelectionChanged:false,init:function(D){C.superclass.init.call(this,D,B("filter"));this.itinerary=SS.factories.ItineraryFactory.getItinerary();this.contentEl.innerHTML=this.buildScaffolding(this.itinerary.isReturn);this.previousEl=$D.getElementsByClassName("separator","div","sc_summary")[0];this.expand(false);this.optionsPanel=$D.get("searchresults_options");this.optionsPanelBodyInner=$D.get("searchresults_options_body_inner");this.renderFilters();this.initEventListeners()},renderFilters:function(){},initEventListeners:function(){$E.addListener(this.optionsPanelBodyInner,"click",this.onOptionsPanelBodyInnerClicked,this,true);var D=this.model.filtersVisibilityChangeRequest;if(D){D.subscribe(this.onFiltersVisibilityChangeRequest,this,true)}var E=this.model.filterStateChangeRequiringValidation;if(E){E.subscribe(this.onFilterStateChangeRequiringValidation,this,true)}},onFiltersVisibilityChangeRequest:function(H,E){var G=E[0],D=E[1],F;this.expand(G);if(D){F=$D.getXY(this.optionsPanel);window.scrollTo(F[0],F[1])}},onFilterStateChangeRequiringValidation:function(H,J){var I=J[0],F=J[1],D=J[2],G=J[3],L=J[4],E=J[5],K=this.filterStateIsValid(I,F);if(K){I=this.updateFilterStateDependencies(I,[D,G,L,E]);this.showFilterState(I);I=this.readFilterStateFromControls();this.changeFilterStateRequest.fire(I,false,false)}},updateFilterStateDependencies:function(E,D){return E},filterStateIsValid:function(F,D){var E=true;E=E&&(this.outboundDepartureTimeFilter&&this.outboundDepartureTimeFilter.isOptionValid(newFilterState.selectedOutboundDepartureTimeWindows));if(D){E=E&&(this.inboundDepartureTimeFilter&&this.inboundDepartureTimeFilter.isOptionValid(newFilterState.selectedInboundDepartureTimeWindows))}E=E&&(this.airlineFilter&&this.airlineFilter.isOptionValid(newFilterState.selectedAirlines));return E},onOptionsPanelBodyInnerClicked:function(E){var D=$E.getTarget(E);if(("INPUT"==D.nodeName.toUpperCase())&&($D.hasClass(D,"filteroption"))){if($D.getAncestorByClassName(D,"airlines_list")){this.removeAirlinesLock()}if($D.getAncestorByClassName(D,"airports_list")){this.removeAirportsLock()}this.raiseFilterChange(false,true)}},removeAirlinesLock:function(){this._airlinesSelectionChanged=true},removeAirportsLock:function(){this._airportsSelectionChanged=true},raiseFilterChange:function(F,D){var E=this.readFilterStateFromControls();this.changeFilterStateRequest.fire(E,F,D)},readFilterStateFromControls:function(){var D=new SS.entities.FilterState();D.selectedOutboundDepartureTimeWindows=[this.readSelectedFilterValue(this.outboundDepartureTimeFilter)];D.selectedInboundDepartureTimeWindows=[this.readSelectedFilterValue(this.inboundDepartureTimeFilter)];D.selectedAirlines=[this.readSelectedFilterValue(this.airlineFilter)];return(D)},readSelectedFilterValue:function(F){var G="",E=0,H=null,D=null;if(null!=F){for(E=0;E<F.filterOptions.length;E++){H=F.filterOptions[E];D=$D.get(F.id+"$"+H.id);if(D&&D.checked){G=H.id;break}}}return G},buildScaffolding:function(D){},createOutboundDepartureTimeFilter:function(){var D=null,E=null;E=new SS.entities.Filter("outboundDepartureTimeWindow",B("filter_depart_time"),"radio");E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.any,B("filtervalue_any_time"),"",true));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.morning,"00:00-12:59","",false));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.afternoon,"12:00-18:59","",false));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.evening,"18:00-23:59","",false));this.outboundDepartureTimeFilter=E;D=$D.get("filtergroup_dep");D.innerHTML=this.buildFilterHtml(E)},createInboundDepartureTimeFilter:function(){var D=null,E=null;E=new SS.entities.Filter("inboundDepartureTimeWindow",B("filter_return_time"),"radio");E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.any,B("filtervalue_any_time"),"",true));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.morning,"00:00-12:59","",false));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.afternoon,"12:00-18:59","",false));E.addFilterOption(new SS.entities.FilterOption(SS.departureTimeWindowsType.evening,"18:00-23:59","",false));this.inboundDepartureTimeFilter=E;D=$D.get("filtergroup_rtn");D.innerHTML=this.buildFilterHtml(E)},buildFilterHtml:function(E){var D=[];D.push("<div class='filter'>");D.push("<h5>"+E.title+"</h5>");this.buildFilterColumnsHtml(E,D);D.push("</div>");return D.join("")},buildFilterColumnsHtml:function(F,D){var E=F.filterOptions.length;col1Length=4;if(E>4){if(E>=8){col1Length=Math.ceil(E/2)}this.buildFilterColumn(D,F,0,col1Length-1,true,false,false);this.buildFilterColumn(D,F,col1Length,E-1,false,true,false)}else{this.buildFilterColumn(D,F,0,E-1,true,true,false)}},buildFilterColumn:function(L,D,P,E,F,J,I){var K=0,Q=(this.name=="DayViewOptionsView"),O,N=this.name=="DayViewOptionsView"?this.model.getCurrentQuery():this.model.currentQuery,H=false,G=false,M=null;L.push("<ul class='"+(F?" first":"")+(J?" last":"")+(I?" empty":"")+"'>");for(K=P;K<=E;K++){M=D.filterOptions[K];L.push("<li>");if(N){H=M.hasMixedAvailability;G=!M.hasDirectFlights}if(Q){L.push("<table class='"+(M.id=="multi"?"multi":"")+" "+(G?"indirect":"direct")+"'><tr>")}if(Q){L.push("<td class='cb'>")}L.push('<input type="'+(D.isMultiSelect()?"checkbox":"radio")+'" class="filteroption" name="'+D.id+'" id="'+(D.id+"$"+M.id)+'" value="'+M.id+'"'+(M.isActive?' checked="checked"':"")+" />");if(Q){L.push("</td>")}if(Q){L.push("<td class='a'>")}O=Q?"":M.description;L.push('<label for="'+(D.id+"$"+M.id)+'" title="'+O+'">');L.push("<span class='name'>"+M.text+"</span>");L.push("</label>");if(Q){L.push("</td>")}if(M.price){if(Q){L.push("<td class='px' align='right'>")}L.push('<label for="'+(D.id+"$"+M.id)+'" title="'+O+'">');L.push("<span class='price'>"+M.price+"</span>");L.push("</label>");if(Q){L.push("</td>")}}if(Q){L.push("</tr></table>")}if(N){L.push("<input type='hidden' id='"+D.id+"$"+M.id+"_mixed_avail' name='"+D.id+"$"+M.id+"_mixed_avail' value='"+(H?"1":"0")+"'/>");L.push("<input type='hidden' id='"+D.id+"$"+M.id+"_isindirect' name='"+D.id+"$"+M.id+"_isindirect' value='"+(G?"1":"0")+"'/>")}L.push("</li>")}L.push("</ul>")},showFilterState:function(D){this.setActiveFilterOption(this.outboundDepartureTimeFilter,D.selectedOutboundDepartureTimeWindows[0]);this.setActiveFilterOption(this.inboundDepartureTimeFilter,D.selectedInboundDepartureTimeWindows[0]);this.setActiveFilterOption(this.airlineFilter,D.selectedAirlines[0]);this.setSelectedOptionsAllFilters()},setActiveFilterOption:function(D,E){if(null!=D){D.setActiveFilterOption(E)}},setSelectedOptionsAllFilters:function(){this.setSelectedOptionsOneFilter(this.outboundDepartureTimeFilter);this.setSelectedOptionsOneFilter(this.inboundDepartureTimeFilter);this.setSelectedOptionsOneFilter(this.airlineFilter)},setSelectedOptionsOneFilter:function(D){if(null!=D){D.filterOptions.forEach(function(F){var E=$D.get(D.id+"$"+F.id);if(E){if(F.isActive){$D.addClass(E.parentNode,"selected");if(!E.checked){E.checked=true}}else{$D.removeClass(E.parentNode,"selected");if(E.checked){E.checked=false}}}})}}})}());
