!function(){"use strict";angular.module("lodge",["ui.bootstrap"]),angular.module("lodge").controller("lodge_SearchFormCtrl",["$scope","$http","$window","$location","$log","settings","lodgeQuery","$rootElement","$document",function(a,b,c,d,e,f,g,h,i){function j(){var b;a.date2&&(b=a.date2.split("--")),a.query&&(a.query.checkin=b[0],a.query.checkout=b[1])}function k(){var b;a.date1&&(b=a.date1.split("--")),a.query&&(a.query.checkin=m(b[0]),a.query.checkout=m(b[1]))}function l(b){var c=0;angular.forEach(a.query.rooms,function(a){c+=a.adults}),a.roomInput="chambres "+a.query.roomCount+" ,Adultes "+c+" ,Enfant "+a.query.childCount,a.roomDiv=!a.roomDiv}function m(a){var b=a.split("/");return new Date(b[2],b[1]-1,b[0]).toLocaleDateString("en-US")}function n(b,c){if(e.debug("roomCountUpdated",b,c),b!=c){for(var d=a.query.rooms;d.length<b;)d.push({adults:2,children:0,ages:[]});for(;d.length>b;)d.pop()}}function o(b){e.debug("childCountUpdated",b),console.log("---------","childCountUpdated",b,b.ages);var c=b.children,d=b.ages,f=d.length;for(a.query.childCount-=f;d.length<c;)d.push({});for(;d.length>c;)d.pop();a.query.childCount+=c}function p(a){return b.get(f.destinations.search.replace(":term",a)).then(function(a){return console.log(a),a.data})}function q(){var b=a.query;if(void 0!==b.destination){var e=g.toLocation(b);if(console.log("kdfjlkdjflkjdkfj",b,a),"search"===a.context){d.path("/recherche"+e.path);var h=d.search();h=angular.extend(h,e.search),d.search(e.search)}else{var i=[];angular.forEach(e.search,function(a,b){if("guests"==b)for(var c=0;c<e.search.guests.length;c++)i.push(b+"="+e.search.guests[c]);else i.push(b+"="+e.search[b])}),c.location.href=f.lodge.salesApp+"#!/recherche"+e.path+"?"+i.join("&")}}}function r(b,c){b.preventDefault(),b.stopPropagation(),a.toggleCalendars[c]=!a.toggleCalendars[c]}var s=moment().startOf("day"),t=angular.element(h.find("meta[name=description]")[0]);t.attr("content","hotel"),t.attr("charset","UTF-8");var u={adults:[1,2,3,4],children:[0,1,2,3,4],ages:[1,2,3,4,5,6,7,8,9,10,11],roomCount:[1,2,3,4,5,6],minCheckin:s.toDate(),maxCheckin:moment(s).add(12,"months").toDate(),checkin:{minDate:s.toDate(),minMonth:moment(s).startOf("month").toDate(),maxDate:moment(s).add(1,"years").toDate(),initDate:"options.checkin.minMonth"},checkout:{initDate:"options.checkout.minMonth"}};a.date1="",a.date2="",a.roomDiv=!1,a.roomInput="Chambre - Adultes ...",i.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())}),u.checkout.minDate=moment(s).add(1,"days").toDate(),u.checkout.minMonth=moment(u.checkout.minDate).startOf("month").toDate(),u.checkout.initDate="options.checkout.minMonth",u.checkout.maxDate=moment(u.checkout.minDate).add(1,"years").toDate(),a.context,f.lodge.standaloneSearchForm&&(a.query={childCount:0,roomCount:1,rooms:[{adults:2,children:0,ages:[]}],rating:[]}),a.$watch("query.roomCount",n),angular.extend(a,{destinations:p,SimplePickerChange:k,roomChange:l,options:u,search:q,childCountUpdated:o,toggleCalendar:r,toggleCalendars:{},changesDateSearch:j}),e.debug("lodge_SearchFormCtrl: done")}]),angular.module("lodge").factory("lodgeQuery",["$q","$http","settings",function(a,b,c){function d(a){var b=a.split(","),c=parseInt(b.shift(),10),d=b.map(function(a){return{v:parseInt(a,10)}});return{adults:c,ages:d,children:d.length}}function e(e){angular.isArray(e.guests)||(e.guests=[e.guests]);for(var f,g=moment(e.from||"invalid","YYYY-MM-DD"),h=moment(e.to||"invalid","YYYY-MM-DD"),i=e.guests.slice(),j=e.country,k=e.destination,l={rooms:[],roomCount:0,childCount:0},m=a.defer();i[0];)f=d(i.shift()),l.rooms.push(f),l.childCount+=f.children;return l.roomCount=l.rooms.length,g.isValid()&&h.isValid()&&g.isBefore(h)?(l.checkin=g.toDate(),l.checkout=h.toDate()):(l.noDates=!0,l.checkin=moment().add(7,"days").toDate(),l.checkout=moment().add(8,"days").toDate()),e.propertyCode?(l.property=e.propertyCode,m.resolve(l),m.promise):(l.rating=[],e.rating&&(l.rating=e.rating.split("+")),e.hotelName&&(l.hotelName=e.hotelName),l.sort=e.sort||"recommended",l.order=e.order||"desc",isNaN(e.bmin)||(l.bmin=parseInt(e.bmin,10),l.bmax=l.bmin+1e3),j&&k?(console.log("ehehehehehehehehehehehe",c.destinations.index),b.get(c.destinations.index+"&code="+k).success(function(a){l.destination=a,m.resolve(l)}).error(function(a){m.reject(new Error("Unknown Destination"))})):m.resolve(l),m.promise)}function f(a){return a.v}function g(a,b){var c=a.rooms.reduce(function(a,b){var c=[b.adults].concat(b.ages.map(f));return a.push(c.join(",")),a},[]),d=moment(a.checkin).format("YYYY-MM-DD"),e=moment(a.checkout).format("YYYY-MM-DD"),g={search:{guests:c,from:d,to:e}};return b||void 0===a.destination||(g.path="/"+(a.destination.country.code?a.destination.country.code:a.destination.country)+"/"+a.destination.code),g}function h(a){var b={currency:"MAD",from:moment(a.checkin).format("YYYY-MM-DD"),to:moment(a.checkout).format("YYYY-MM-DD"),guests:a.rooms.map(function(a){return[a.adults].concat(a.ages.map(f)).join(",")})};if(a.property)return b.property=a.property,b;var c=a.destination.country.toLowerCase();return angular.extend(b,{skip:a.skip||0,limit:a.limit||25,country:c,locality:a.destination.code,order:a.order||"desc",sort:a.sort||"recommended"}),a.rating&&a.rating.length&&(b.rating=a.rating.join("+")),angular.forEach(["bmin","bmax","hotelName"],function(c){a[c]&&(b[c]=a[c])}),b}return{fromStateParam:e,toLocation:g,toApi:h}}])}();