!function(){"use strict";function occupationalRulesApi(api){return{getOccupationalRulesForProperty:function(propertyId){return api.get("/api/property/"+propertyId+"/occupationalrules/get").then((function(result){return result}))}}}angular.module("app").factory("occupationalRulesApi",occupationalRulesApi),occupationalRulesApi.$inject=["cshApi"]}(),function(){"use strict";function occupationalRulesService(api){var service={rules:{},getOccupationalRulesForProperty:function(propertyId){return api.getOccupationalRulesForProperty(propertyId).then((function(data){var dataMapped={minimumStayPeriods:$.map(data.minimumStayPeriods,(function(e){return{from:moment(e.from).toDate(),to:moment(e.to).toDate(),minStay:e.minStay}})),changeOverDays:Object.keys(data.changeOverDays).reduce((function(obj,key){return obj[moment(key).toDate()]=data.changeOverDays[key],obj}),{}),availableUntil:moment(data.availableUntil).toDate(),texts:data.texts};return angular.copy(dataMapped,service.rules),dataMapped}))}};return service}angular.module("app").factory("occupationalRulesService",occupationalRulesService),occupationalRulesService.$inject=["occupationalRulesApi"]}(),function(){"use strict";function calendarDatesApi(api){return{getCalendarDatesForProperty:function(propertyId){return api.get("/api/property/"+propertyId+"/calendar/get").then((function(result){return result}))},getChangeoverTimesForProperty:function(propertyId,dateFrom,dateTo){return api.get("/api/property/"+propertyId+"/changeoverTimes/get",{dateFrom:dateFrom,dateTo:dateTo}).then((function(result){return result}))}}}angular.module("app").factory("calendarDatesApi",calendarDatesApi),calendarDatesApi.$inject=["cshApi"]}(),function(){"use strict";function calendarDates(api){var service={dateStates:{},getCalendarDatesForProperty:function(propertyId){return api.getCalendarDatesForProperty(propertyId).then((function(data){var returned=data.reduce((function(newArr,current){return newArr[moment(current.date).toDate()]=current.status,newArr}),{});if(returned.lastUnavailableDate=null,data&&data.length>0)for(var i=0;i=currentDate&&i=currentDate){returned.nextUnavailableDate[currentDate]=oneDayBooking?moment(data[i].momentDate).add(1,"d").toDate():data[i].momentDate;break}i>nextUnavailableIndex&&(nextUnavailableIndex=1)}currentDate=moment(currentDate).add(1,"d").toDate()}return angular.copy(returned,service.dateStates),data}))},getChangeoverTimesForProperty:function(propertyId,dateFrom,dateTo){return api.getChangeoverTimesForProperty(propertyId,dateFrom,dateTo).then((function(data){return data}))}};return service}angular.module("app").factory("calendarDates",calendarDates),calendarDates.$inject=["calendarDatesApi"]}(),function(){"use strict";angular.module("app").factory("siteCurrency",["$rootScope","currencies","cshLocalStorage",function($rootScope,currencies,localStorage){var storedCurrencyCode,currency,service={id:1,code:"EUR",all:currencies.all};return storedCurrencyCode=localStorage.get("site.currency"),currency=find(storedCurrencyCode||currencies.default.id),angular.extend(service,currency),$rootScope.$watch((function(){return service.id}),(function(){service.code=find(service.id).code,storeCurrencyCode(service.code)})),$rootScope.$watch((function(){return service.code}),(function(){service.id=find(service.code).id,storeCurrencyCode(service.code)})),service;function storeCurrencyCode(value){localStorage.set("site.currency",value)}function find(value){for(var i=0;i