!function(){"use strict";function propertySearchMapApi(api,propertySearchApi){return{getMapLocationsFromSearchCriteria:function(searchCriteria){return api.get("/api/propertysearchmap/result/get",function(searchCriteria){var d={};return angular.copy(searchCriteria,d),d.dateFrom=api.mapRequestDate(d.dateFrom),d.dateTo=api.mapRequestDate(d.dateTo),d}(searchCriteria))},getProperty:function(propertyId){return api.get("/api/propertysearchmap/property/get",{propertyId:propertyId})},getSearchCriteriaFromSearchId:propertySearchApi.getSearchCriteriaFromSearchId}}angular.module("app").factory("propertySearchMapApi",propertySearchMapApi),propertySearchMapApi.$inject=["cshApi","propertySearchApi"]}(),function(){"use strict";function PropertySearchMapCtrl($scope,$rootScope,propertySearchMap,locationHash,siteCurrency){var vm=$scope.vm=this;vm.$scope=$scope,vm.init=function(searchCriteria){initialSearchCriteria={locationId:searchCriteria.locationId,themeId:searchCriteria.themeId,lastMinute:searchCriteria.lastMinute},(currentSearchCriteria=searchCriteria).currencyId=siteCurrency.id},vm.data=propertySearchMap.data,vm.propertyId=null,vm.initializing=!1,vm.loading=!1;var initialSearchCriteria={},currentSearchCriteria={},initialized=!1;function doInit(searchCriteria){vm.initializing=!0,propertySearchMap.init(searchCriteria).then((function(data){return vm.initializing=!1,data}))}$scope.$on("class:add:panel-map",(function(){initialized||(currentSearchCriteria.currencyId=siteCurrency.id,doInit(currentSearchCriteria),initialized=!0)})),$scope.$watch((function(){return locationHash.get("searchid")||0}),(function(){var searchId=locationHash.get("searchid")||0;propertySearchMap.getSearchCriteriaFromSearchId(searchId).then((function(searchCriteria){(currentSearchCriteria=$.extend(searchCriteria,initialSearchCriteria)).currencyId=siteCurrency.id,initialized&&doInit(currentSearchCriteria)}))})),$rootScope.$watch((function(){return siteCurrency.id}),(function(){currentSearchCriteria.currencyId=siteCurrency.id})),$scope.$watch("vm.propertyId",(function(newValue,oldValue){newValue&&(vm.loading=!0,propertySearchMap.getProperty(newValue).then((function(data){vm.loading=!1})))}))}angular.module("app").controller("PropertySearchMapCtrl",PropertySearchMapCtrl),PropertySearchMapCtrl.$inject=["$scope","$rootScope","propertySearchMap","locationHash","siteCurrency"]}(),function(){"use strict";function propertySearchMap(api){var service={init:function(searchCriteria){return api.getMapLocationsFromSearchCriteria(searchCriteria).then((function(data){return service.data.airports=data.airports,service.data.properties=data.properties,data}))},getProperty:function(propertyId){return service.data.property=null,api.getProperty(propertyId).then((function(data){return service.data.property=data,data}))},getSearchCriteriaFromSearchId:api.getSearchCriteriaFromSearchId,data:{properties:[],airports:[],property:null}};return service}angular.module("app").factory("propertySearchMap",propertySearchMap),propertySearchMap.$inject=["propertySearchMapApi"]}();