!function(){"use strict";function propertyEnquiryApi(api){return{postEnquiry:function(data){return api.post("/api/propertyenquiry/submit",function(data){var d={};return angular.copy(data,d),d.dateFrom=api.mapRequestDate(d.dateFrom),d.dateTo=api.mapRequestDate(d.dateTo),d}(data))},isSubscribedToNewsletter:function(email){return api.get("/api/propertyenquiry/issubscribedtonewsletter",{email:email})}}}angular.module("app").factory("propertyEnquiryApi",propertyEnquiryApi),propertyEnquiryApi.$inject=["cshApi"]}(),function(){"use strict";function PropertyEnquiryCtrl($scope,$location,service,calendarDates,occupationalRulesService,logger,util,gaEcommerceService){var vm=this;if(vm.data=service,vm.init=function(propertyId,siteId,shortlistId,seenOnLastMinutePage,dateFrom,dateTo,adults,children,infants,defaultPhoneCountry,referrer){service.init(propertyId,siteId,shortlistId,seenOnLastMinutePage,dateFrom,dateTo,adults,children,infants,defaultPhoneCountry,referrer),vm.data.adults=vm.data.enquiry.adults,vm.data.children=vm.data.enquiry.children,vm.data.isSubscribedToNewsletter=service.isSubscribedToNewsletter,vm.data.enquiry.shouldSubscribeToNewsletter=service.shouldSubscribeToNewsletter,vm.queryStringAdults>0&&(vm.data.adults=vm.queryStringAdults);0===vm.queryStringChildren.length&&(vm.data.children=vm.queryStringChildren);vm.queryStringChildren.length>0&&(vm.data.children=vm.queryStringChildren);""!==dateFrom&&void 0!==dateFrom&&""!==dateTo&&void 0!==dateTo&&calendarDates.getChangeoverTimesForProperty(propertyId,dateFrom,dateTo).then((function(data){vm.changeoverTimes=data.changeoverTimes}));$scope.$watch("vm.data.enquiry",(function(newValue,oldValue){$scope.form.dateFrom.$setValidity("required",!0),$scope.form.dateTo.$setValidity("required",!0),$scope.form.dateFrom.$setValidity("required",null!==newValue.dateFrom),$scope.form.dateTo.$setValidity("required",null!==newValue.dateTo),$scope.form.dateTo.$setValidity("min",!newValue.dateTo||!newValue.dateFrom||newValue.dateTo>newValue.dateFrom),$scope.form.emailConfirm.$setValidity("match",!newValue.emailConfirm||newValue.email.toUpperCase()===newValue.emailConfirm.toUpperCase()),newValue.email!==oldValue.email&&($scope.form.email.$setValidity("emailinvalid",!0),vm.data.enquiry.emailSuppressDomainWarning=!1)}),!0)},vm.isBusy=!1,vm.dateStates=calendarDates.dateStates,vm.changeoverTimes={},vm.occupationalRules=occupationalRulesService.rules,vm.minDateFrom=function(){return _minDateFromTo.getMinDateFrom()},vm.minDateTo=function(){return _minDateFromTo.getMinDateTo(vm.data.enquiry.dateFrom)},vm.showError=function(field,hasError){return!!hasError&&vm.showErrorForPristineFields},vm.showErrorSummary=function(){return vm.showErrorForPristineFields&&$scope.form.$invalid},vm.showErrorForPristineFields=!1,vm.submit=function(){if(vm.data.enquiry.adults=vm.data.adults,vm.data.enquiry.children=vm.data.children.length,vm.error="",vm.showErrorForPristineFields=!0,$scope.form.email.$setValidity("emailinvalid",!0),$scope.form.phone.$setValidity("invalidphone",!0),$scope.form.$invalid)return;vm.isBusy=!0,service.sendEnquiry(vm.data.enquiry).then((function(data){var enquiryData,callback,totalPrice,productVariant;enquiryData=data,callback=function(){document.location=data.href},totalPrice=9,productVariant=gaEcommerceService.createProductVariant(enquiryData.themes),dataLayer.push({event:"GAevent",eventCategory:"enquiryButton",eventAction:"GuestEnquiryButton",eventLabel:"Guest clicked enquiry button",eventValue:null,saleType:3}),dataLayer.push({event:"trackTrans",ecommerce:{purchase:{actionField:{id:"E-"+enquiryData.enquiryId,revenue:totalPrice},products:[{id:enquiryData.holidayHomeId,name:enquiryData.gtmHolidayHomeName,brand:enquiryData.ownerId,category:enquiryData.location,variant:productVariant,price:totalPrice,quantity:1,dimension7:"Enquiry"}]}},eventCallback:function(){setTimeout((function(){callback()}),200)},eventTimeout:2e3})}),(function(errors){var error;vm.isBusy=!1,function(errors){if(function(){var keys=Object.keys($scope.form.$error);for(var i in keys)for(var key=keys[i],value=$scope.form.$error[key],j=0;j0)for(var i=0;i<$location.search().children.length;i++)vm.queryStringChildren.push({number:i+1,age:$location.search().children[i]});$scope.$watch("vm.data.enquiry",(function(newValue,oldValue){void 0!==newValue.dateFrom&&""!==newValue.dateFrom&&void 0!==newValue.dateTo&&""!==newValue.dateTo&&(newValue.dateFrom.getTime()!=oldValue.dateFrom.getTime()||newValue.dateTo.getTime()!=oldValue.dateTo.getTime())&&newValue.dateFrom.getTime()<=newValue.dateTo.getTime()&&calendarDates.getChangeoverTimesForProperty(newValue.propertyId,newValue.dateFrom,newValue.dateTo).then((function(data){vm.changeoverTimes=data.changeoverTimes}))}),!0);var _minDateFromTo=util.createMinDateFromTo(0,1)}angular.module("app").controller("PropertyEnquiryCtrl",PropertyEnquiryCtrl),PropertyEnquiryCtrl.$inject=["$scope","$location","propertyEnquiry","calendarDates","occupationalRulesService","logger","util","gaEcommerceService"]}(),function(){"use strict";function propertyEnquiry($q,api,cookie,util){var service={adults:1,children:[],enquiry:{},init:function(propertyId,siteId,shortlistId,seenOnLastMinutePage,dateFrom,dateTo,adults,children,infants,defaultPhoneCountry,referrer){var data=getCookieData();(function(email){if(!email)return void(service.isSubscribedToNewsletter=!1);api.isSubscribedToNewsletter(email).then((function(value){service.isSubscribedToNewsletter=value}))})(data.email),data.propertyId=propertyId,data.siteId=siteId,data.shortlistId=shortlistId,data.seenOnLastMinutePage=seenOnLastMinutePage,data.dateFrom=dateFrom?moment(dateFrom).toDate():data.dateFrom?moment(data.dateFrom).toDate():null,data.dateTo=dateTo?moment(dateTo).toDate():data.dateTo?moment(data.dateTo).toDate():null,data.adults=adults?data.adults:2,data.children=children||data.children||[],data.infants=infants||data.infants||0,data.phoneCountry=data.phoneCountry||defaultPhoneCountry,data.referrer=referrer,service.enquiry=data},isSubscribedToNewsletter:!0,sendEnquiry:function(data){return setCookieData(data),api.postEnquiry(data).then((function(result){return result}))},isPrivacyAccepted:!1};return service;function getCookieData(){var result={adults:1,children:0,comment:"",dateFrom:null,dateFromFlexible:!1,dateTo:null,dateToFlexible:!1,email:"",emailConfirm:"",emailCookie:"",emailSuppressDomainWarning:!1,emailSpm:"",infants:0,name:"",shouldSubscribeToNewsletter:!1,phone:"",phoneCountry:null,uniqueId:null},cookieInfo=cookie.get("cookitHot");if(null==cookieInfo||0===cookieInfo.length)return result;for(var items=cookieInfo.split("&"),i=0;imoment().toDate()&&(result.dateFrom=date);break;case"departureCalendar":var date;(date=moment(value).toDate())>moment().toDate()&&(result.dateTo=date);break;case"howManyAdults":result.adults=value;break;case"howManyChildren":for(var childs=[],j=0;j0&&children.map((function(child){queryString+="children="+child.age+"&"}));var shortlistId=cookie.get("shortlistId")||-1,url=enquiryUrl.replace(/\[SHORTLIST\]/gi,shortlistId).replace(/\[LASTMINUTE\]/gi,0);dialog.open(url+queryString,"enquiry",1e3,Math.min(window.innerHeight,750),!0),propertyPriceBox.adwordsRemarketing.hrental_pagetype="conversionintent",dataLayer.push({google_tag_params:propertyPriceBox.adwordsRemarketing}),dataLayer.push({event:"remarketingPriceChange"})}}}angular.module("app").factory("propertyEnquiryDialog",propertyEnquiryDialog),propertyEnquiryDialog.$inject=["cookie","propertyPriceBox","dialog","util"]}();