!function(){"use strict";angular.module("air",["ui.bootstrap","ui.select","ui.bootstrap.datepicker","daterangepicker"]),angular.module("air").config(["datepickerConfig","datepickerPopupConfig",function(a,b){a.showWeeks=!1,a.dayFormat="d",a.startingDay=1,a.minDate=newDate,a.maxDate=moment().add(18,"months").toDate(),a.maxMode="month",b.toggleWeeksText=null,b.showButtonBar=!1}]),angular.module("air").factory("airQueryCodec",["$http","settings","$log",function(a,b,c){functiond(){return{tripType:f,segments:[],adults:1,children:0,ages:[],cabin:"-",corpid:"",flags:e.reduce(function(a,b){returna[b]=!1,a},{})}}vare=["nonstop","direct","nap","npe","nr","rf","flexible"],f=2,g=1;return{ROUND_TRIP:f,ONE_WAY:g,MULTI_SEGMENTS:3,knownFlags:e,newQuery:d,fromStateParams:function(f){if(!f.flight)returnnull;varg={},h=d();angular.isArray(f.flight)||(f.flight=[f.flight]),h.segments=f.flight.map(function(a){varb=a.split(",");returng[b[0]]||(g[b[0]]={code:b[0],name:b[0]}),g[b[1]]||(g[b[1]]={code:b[1],name:b[0]}),{from:g[b[0]],to:g[b[1]],date:b[2]}}),h.tripType=Math.min(3,h.segments.length),2===h.tripType&&h.segments[0].from!==h.segments[1].to&&(h.tripType=3),f.travellers=f.travellers||"1";vari=f.travellers.split(",");if(h.adults=parseInt(i.shift(),10)||1,console.log("travellers",i),h.ages=i.map(function(a){return{v:parseInt(a,10)}}).filter(function(a){returna.v>=0}),h.children=h.ages.length,f.flags&&f.flags.split(",").filter(function(a){returne.indexOf(a)>-1}).reduce(function(a,b){returna.flags[b]=!0,a},h),h.cabin=f.cabin||"-",h.corpid=f.corpid,f.airlines){varj=f.airlines.split("_");h.preferredAirline={code:j[0],name:j[1]}}returna.get(b.air.airportsResolve.replace(":codes",Object.keys(g).join(","))).then(function(a){returnangular.forEach(a.data,function(a){angular.extend(g[a.code],a)}),c.debug("decoded query",h),h},function(){returnh})},toApi:function(a){varb=a.cabin||"-",c="",d=a.preferredAirline?a.preferredAirline.code:"YY";angular.forEach(a.segments,function(a){c+="&itinerary="+d+".."+a.from.code+a.to.code+moment(a.date).format("YYYYMMDD")+b});varf=a.ages.map(function(a){returna.v});f.unshift(a.adults),c+="&travellers="+f.join(",");varg=Object.keys(a.flags).filter(function(b){returna.flags[b]&&e.indexOf(b)>-1}).join(",");return["M","C","F"].indexOf(a.cabin)>-1&&(c+="&cabin="+a.cabin),g&&(c+="&flags="+g),a.corpid&&(c+="&corpid="+a.corpid),c},toStateParams:function(a){varb=[];console.log("aaaa",a),a.tripType===f&&(a.segments[1].from=a.segments[0].to,a.segments[1].to=a.segments[0].from,a.segments.length=2),a.tripType===g&&(a.segments.length=1),angular.forEach(a.segments,function(a){b.push("flight="+a.from.code+","+a.to.code+","+moment(a.date).format("YYYY-MM-DD"))});vard=(a.ages||[]).map(function(a){returna.v});d.unshift(a.adults),b.push("travellers="+d.join(",")),a.cabin&&b.push("&cabin="+a.cabin),a.preferredAirline&&b.push("&airlines="+a.preferredAirline.code+"_"+a.preferredAirline.name),a.corpid&&b.push("&corpid="+a.corpid);varh=e.filter(function(b){returna.flags[b]}).join(",");returnh&&b.push("flags="+h),c.debug("toStateParams",a,b),b.join("&")}}}]),angular.module("air").controller("air_SearchFormCtrl",["$scope","settings","$window","$http","$log","airQueryCodec","$sce","$document",function(a,b,c,d,e,f,g,h){functioni(){a.roomInput="Adultes "+a.query.adults+" ,Enfant "+a.query.children,a.roomDiv=!a.roomDiv}functionj(a){varb=a;if(b!==s.tripType){varc,d=s.segments,e=0;for(console.log("---- length setSegmentCount ----",s),0===s.segments.length&&d.push({options:{minDate:r.minDeparture,minMonth:moment(r.minDeparture).startOf("month"),initDate:"query.segments[0].options.minMonth"}}),e=d.length;d.length<b;)c=s.segments[d.length-1],d.push({from:c.to,options:{minDate:c.date?c.date:c.minDate,minMonth:c.date?moment(c.date).startOf("month"):c.minMonth,initDate:"query.segments["+e+"].options.minMonth"}}),e++;2===b&&(d[1].from=d[0].to,d[1].to=d[0].from),s.tripType=b}}functionk(){vara=s.segments.length;if(!(a>=6)){varb=s.segments[a-1];s.segments.push({from:b.to,options:{minDate:b.date?b.date:b.minDate,minMonth:b.date?moment(b.date).startOf("month"):b.minMonth,initDate:"query.segments["+a+"].options.minMonth"}})}}functionl(a){varb=s.segments.indexOf(a);b>-1&&s.segments.splice(b,1)}functionm(c){returna.airports=[],c.length<1?[]:d.get(b.air.airportsSearch.replace(":term",c)).then(function(b){returna.airports=b.data||[],a.airports})}functionn(c){returna.airlines=[],c.length<1?[]:d.get(b.air.airlinesSearch.replace(":term",c)).then(function(b){returna.airlines=b.data||[],a.airlines})}functiono(a,b){varc="cal"+b,d=t[c];for(vareint)t[e]=!1;t[c]=!d}functionp(){s.tripType===f.ROUND_TRIP&&(s.segments[1].from=s.segments[0].to,s.segments[1].to=s.segments[0].from);vara=f.toStateParams(s);b.air&&b.air.standaloneSearchForm?c.location.href=b.air.salesApp+"?"+a:c.location.href=b.links.search+"?"+a}functionq(a){varb,c,d=s.segments,e=s.segments.length;if(d[a])for(c=s.segments[a].date,moment(c).startOf("month").toDate(),a++;a<e;)b=d[a],b.options=d.options||{initDate:"$parent.$parent.options.minMonth"},b.options.minDate=c,b.options.minMonth=moment(c).startOf("month").toDate(),b.date&&moment(b.date).isBefore(c)&&(b.date=c),a++}e.info("air_SearchFormCtrl:airQueryCodec",a.query),a.rangeDatePicker={picker:null,options:{pickerClasses:"custom-display",buttonClasses:"btn",applyButtonClasses:"btn-primary",cancelButtonClasses:"btn-danger",minDate:moment(),locale:{applyLabel:"valider",cancelLabel:"annuler",customRangeLabel:"Custom range",separator:" - ",format:"DD/MM/YYYY",weekLabel:"S",daysOfWeek:["Di","Lu","Ma","Me","Je","Ve","Sa"],monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre"],firstDay:1},eventHandlers:{"apply.daterangepicker":function(b,c){a.query.segments[0].date=a.rangeDatePicker.date.startDate,a.query.segments[1].date=a.rangeDatePicker.date.endDate}}}},void0!==a.query&&2==a.query.tripType&&a.query.segments[0].date&&a.query.segments[1].date?a.rangeDatePicker.date={startDate:a.query.segments[0].date,endDate:a.query.segments[1].date}:a.rangeDatePicker.date={startDate:moment().subtract(1,"days"),endDate:moment()},a.singleDatePicker={picker:null,options:{singleDatePicker:!0,pickerClasses:"custom-display",buttonClasses:"btn",applyButtonClasses:"btn-primary",cancelButtonClasses:"btn-danger",minDate:moment(),locale:{applyLabel:"valider",cancelLabel:"annuler",customRangeLabel:"Custom range",separator:" - ",format:"DD/MM/YYYY",weekLabel:"S",daysOfWeek:["Di","Lu","Ma","Me","Je","Ve","Sa"],monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre"],firstDay:1},eventHandlers:{"apply.daterangepicker":function(b,c){a.query.segments[0].date=a.singleDatePicker.date}}}},void0!==a.query&&1==a.query.tripType&&a.query.segments[0].date?a.singleDatePicker.date=a.query.segments[0].date:a.singleDatePicker.date=moment();varr={minDeparture:moment().startOf("day").toDate(),maxDeparture:moment().add(1,"years").toDate(),maxAdults:9,maxChildren:9,maxPax:9,adults:[1,2,3,4,5,6,7,8,9],children:[0,1,2,3,4,5,7,8,9],ages:[0,1,2,3,4,5,6,7,8,9,10,11],tripTypes:[{code:1,label:"Direct flight"},{code:2,label:"Round trip"},{code:3,label:"Multi-segments/open-jaw"}]};a.roomDiv=!1,a.roomInput="Adultes - Enfant ...",h.bind("click",function(b){"inputDivRooms"===b.target.id||"guests__inputs divRooms ng-scope"===b.target.className||!0!==a.roomDiv||b.target.classList.contains("divRoomsInputs")||b.target.nextSibling.classList.contains("divRoomsInputs")||(a.roomDiv=!a.roomDiv,a.$apply())});vars,t={};a.query&&!b.air.standaloneSearchForm?(s=angular.copy(a.query),console.log("------- query if existe with setting air -----",s)):(s=f.newQuery(),s.tripType=0,j(2),console.log("------- query if not existe -----",s)),a.$watch("query.children",function(a,b){if(a!==b){for(;s.ages.length<a;)s.ages.push({});for(;s.ages.length>a;)s.ages.pop()}}),s.tripType||j(2),angular.extend(a,{airports:[],airlines:[],query:s,calendars:t,setTripType:j,addSegment:k,removeSegment:l,toggleCalendar:o,searchAirports:m,searchAirlines:n,search:p,dateChanged:q,maxSegments:6,options:r,trustAsHtml:g.trustAsHtml,roomChange:i})}])}();