var thisLang = "en"; var pI = "12198"; var todaysDate = "01/05/2025"; var calendarTitle = "Please select a date range"; var bookedTitle = "Unavailable"; var availableTitle = "Available"; var unavailableUIAMDates = ["1-10-2025","10-1-2026","31-1-2026"]; var unavailableUIPMDates = ["31-12-2025","31-1-2026","27-3-2026"]; var unavailableUIDates = ["1-10-2025","2-10-2025","3-10-2025","4-10-2025","5-10-2025","6-10-2025","7-10-2025","8-10-2025","9-10-2025","10-10-2025","11-10-2025","12-10-2025","13-10-2025","14-10-2025","15-10-2025","16-10-2025","17-10-2025","18-10-2025","19-10-2025","20-10-2025","21-10-2025","22-10-2025","23-10-2025","24-10-2025","25-10-2025","26-10-2025","27-10-2025","28-10-2025","29-10-2025","30-10-2025","31-10-2025","1-11-2025","2-11-2025","3-11-2025","4-11-2025","5-11-2025","6-11-2025","7-11-2025","8-11-2025","9-11-2025","10-11-2025","11-11-2025","12-11-2025","13-11-2025","14-11-2025","15-11-2025","16-11-2025","17-11-2025","18-11-2025","19-11-2025","20-11-2025","21-11-2025","22-11-2025","23-11-2025","24-11-2025","25-11-2025","26-11-2025","27-11-2025","28-11-2025","29-11-2025","30-11-2025","1-12-2025","2-12-2025","3-12-2025","4-12-2025","5-12-2025","6-12-2025","7-12-2025","8-12-2025","9-12-2025","10-12-2025","11-12-2025","12-12-2025","13-12-2025","14-12-2025","15-12-2025","16-12-2025","17-12-2025","18-12-2025","19-12-2025","20-12-2025","21-12-2025","22-12-2025","23-12-2025","24-12-2025","25-12-2025","26-12-2025","27-12-2025","28-12-2025","29-12-2025","30-12-2025","31-12-2025","10-1-2026","11-1-2026","12-1-2026","13-1-2026","14-1-2026","15-1-2026","16-1-2026","17-1-2026","18-1-2026","19-1-2026","20-1-2026","21-1-2026","22-1-2026","23-1-2026","24-1-2026","25-1-2026","26-1-2026","27-1-2026","28-1-2026","29-1-2026","30-1-2026","31-1-2026","31-1-2026","1-2-2026","2-2-2026","3-2-2026","4-2-2026","5-2-2026","6-2-2026","7-2-2026","8-2-2026","9-2-2026","10-2-2026","11-2-2026","12-2-2026","13-2-2026","14-2-2026","15-2-2026","16-2-2026","17-2-2026","18-2-2026","19-2-2026","20-2-2026","21-2-2026","22-2-2026","23-2-2026","24-2-2026","25-2-2026","26-2-2026","27-2-2026","28-2-2026","1-3-2026","2-3-2026","3-3-2026","4-3-2026","5-3-2026","6-3-2026","7-3-2026","8-3-2026","9-3-2026","10-3-2026","11-3-2026","12-3-2026","13-3-2026","14-3-2026","15-3-2026","16-3-2026","17-3-2026","18-3-2026","19-3-2026","20-3-2026","21-3-2026","22-3-2026","23-3-2026","24-3-2026","25-3-2026","26-3-2026","27-3-2026"]; var unavailableAMDates = ["2025-10-01","2026-01-10","2026-01-31"]; var unavailablePMDates = ["2025-12-31","2026-01-31","2026-03-27"]; var unavailableDates = [["01/10/2025","02/10/2025","03/10/2025","04/10/2025","05/10/2025","06/10/2025","07/10/2025","08/10/2025","09/10/2025","10/10/2025","11/10/2025","12/10/2025","13/10/2025","14/10/2025","15/10/2025","16/10/2025","17/10/2025","18/10/2025","19/10/2025","20/10/2025","21/10/2025","22/10/2025","23/10/2025","24/10/2025","25/10/2025","26/10/2025","27/10/2025","28/10/2025","29/10/2025","30/10/2025","31/10/2025","01/11/2025","02/11/2025","03/11/2025","04/11/2025","05/11/2025","06/11/2025","07/11/2025","08/11/2025","09/11/2025","10/11/2025","11/11/2025","12/11/2025","13/11/2025","14/11/2025","15/11/2025","16/11/2025","17/11/2025","18/11/2025","19/11/2025","20/11/2025","21/11/2025","22/11/2025","23/11/2025","24/11/2025","25/11/2025","26/11/2025","27/11/2025","28/11/2025","29/11/2025","30/11/2025","01/12/2025","02/12/2025","03/12/2025","04/12/2025","05/12/2025","06/12/2025","07/12/2025","08/12/2025","09/12/2025","10/12/2025","11/12/2025","12/12/2025","13/12/2025","14/12/2025","15/12/2025","16/12/2025","17/12/2025","18/12/2025","19/12/2025","20/12/2025","21/12/2025","22/12/2025","23/12/2025","24/12/2025","25/12/2025","26/12/2025","27/12/2025","28/12/2025","29/12/2025","30/12/2025","31/12/2025"],["10/01/2026","11/01/2026","12/01/2026","13/01/2026","14/01/2026","15/01/2026","16/01/2026","17/01/2026","18/01/2026","19/01/2026","20/01/2026","21/01/2026","22/01/2026","23/01/2026","24/01/2026","25/01/2026","26/01/2026","27/01/2026","28/01/2026","29/01/2026","30/01/2026","31/01/2026"],["31/01/2026","01/02/2026","02/02/2026","03/02/2026","04/02/2026","05/02/2026","06/02/2026","07/02/2026","08/02/2026","09/02/2026","10/02/2026","11/02/2026","12/02/2026","13/02/2026","14/02/2026","15/02/2026","16/02/2026","17/02/2026","18/02/2026","19/02/2026","20/02/2026","21/02/2026","22/02/2026","23/02/2026","24/02/2026","25/02/2026","26/02/2026","27/02/2026","28/02/2026","01/03/2026","02/03/2026","03/03/2026","04/03/2026","05/03/2026","06/03/2026","07/03/2026","08/03/2026","09/03/2026","10/03/2026","11/03/2026","12/03/2026","13/03/2026","14/03/2026","15/03/2026","16/03/2026","17/03/2026","18/03/2026","19/03/2026","20/03/2026","21/03/2026","22/03/2026","23/03/2026","24/03/2026","25/03/2026","26/03/2026","27/03/2026"]]; var reserveURL = "https://www.coastalpropertiesmojacar.com/reservation.html"; $(document).ready(function() { var cHeight = $("#mainPhotos").height(); $("#mainPhotos li a").height(cHeight + "px"); $('[data-fancybox="gallery"]').fancybox({ loop: true, transitionEffect: "slide" }); $('#mainPhotos').slick({ centerMode: true, centerPadding:"0", slidesToShow: 1, infinite: true, arrows: false, adaptiveHeight:true, speed: 600 }); $('#thumbsCarousel').slick({ slidesToShow: 1, slidesToScroll: 1, dots: false, centerMode: true, focusOnSelect: true, arrows: false, infinite: false, asNavFor: '#mainPhotos' }); $(document).on("click", "#previousPhoto", function () { $('#mainPhotos').slick('slickPrev'); }); $(document).on("click", "#nextPhoto", function () { $('#mainPhotos').slick('slickNext'); }); $("#mainPhotos").on("afterChange", function(event, slick, currentSlide) { var slideCount = parseInt(currentSlide) + 1; $("#slideCount span").html(slideCount); var slideNo = parseInt(currentSlide); $("#thumbsCarousel").slick('slickGoTo', slideNo); }); $(document).on("click", "#propertyFeatureLinks a", function () { var scrollDownTo = $(this).data("lt"); if ($.trim(scrollDownTo) != "") { $("html,body").animate({ scrollTop:$("#" + scrollDownTo).offset().top - 60 },1000); } }); var sD = $("#propertyRentalDatesH").val(); $("#propertyRentalDates").dateRangePicker({ language:thisLang, separator: " - ", format: "DD/MM/YYYY", startOfWeek: "monday", startDate: todaysDate, customArrowPrevSymbol: '', customArrowNextSymbol: '', setValue: function(s,s1,s2) { $("#propertyRentalDates").val(s1 + ' - ' + s2); $("#propertyRentalDatesH").val(s1 + '|' + s2); var nD = s1 + '|' + s2; if (sD == nD) { } else { getBookingPrices(pI); sD = s1 + '|' + s2; } }, minDays: 1, autoClose: true, beforeShowDay: function(t) { var thisDate = moment(t).format("DD/MM/YYYY"); var isValid = true; var _class = ""; var _tooltip = ""; for (var ii = 0; ii < unavailableDates.length; ii++) { var thisBlock = unavailableDates[ii]; for (var iii = 0; iii < thisBlock.length; iii++) { if (thisDate == thisBlock[iii]) { if (_class == "bookedDateEnd") { _class = "bookedDate"; _tooltip = bookedTitle; isValid = false; } else if (iii == 0) { _class = "bookedDateStart"; } else if (iii == thisBlock.length - 1) { _class = "bookedDateEnd"; } else { _class = "bookedDate"; _tooltip = bookedTitle; isValid = false; } } } } return [isValid,_class,_tooltip]; } }); $(document).on("change", "#noGuests", function() { getBookingPrices(pI); }); $(document).on("click", ".showBookingBtn", function() { if ($("#propertyBookingColumn").hasClass("showBooking")) { $("body").removeClass("fixed"); $("#propertyBookingColumn").removeClass("showBooking"); } else { $("body").addClass("fixed"); $("#propertyBookingColumn").addClass("showBooking"); } }); $(document).on("click", "#closeBookingForm", function() { var screenHeight = $(window).height(); var titleHeight = $("#propertyBookingTitle").height() + 20; var closedOffset = screenHeight - titleHeight; $("body").removeClass("fixed"); $("#propertyBookingColumn").removeClass("showBooking"); }); $(document).on("click", "#pbSendEnq, #pSendIEnq", function() { $("body").addClass("fixed"); $("#enquiryBGContainer").addClass("unfold"); $("nav").removeClass("is-active"); $("#showMenu").removeClass("is-active"); }); $("#enquiryDates").dateRangePicker({ language:thisLang, separator: " - ", format: "DD/MM/YYYY", startOfWeek: "monday", startDate: todaysDate, customArrowPrevSymbol: '', customArrowNextSymbol: '', minDays: 1, setValue: function(s,s1,s2) { $("#enquiryDates").val(s1 + ' - ' + s2); $("#enquiryDatesH").val(s1 + '|' + s2); } }); /* $(document).on("click", "#propertyBookingButton", function() { var sVID = $("#sVID").val(); $("body").addClass("fixed"); $.ajax({ type:"GET", url: "/property-booking-darcy.php?lang=" + thisLang, data:"sVID=" + sVID, cache:false, success:function(popContent) { $("#bookingIFContainer").html(popContent); $("#bookingBGContainer").addClass("unfold"); $("nav").removeClass("is-active"); $("#showMenu").removeClass("is-active"); } }); }); */ $(document).on("click", "#sendContact", function() { $("#sendContact, #eFormError").slideUp("fast"); $("#eFormEError").css("display", "none"); $("#enquiryName").parents(".formInput").removeClass("formError"); $("#enquiryEmail").parents(".formInput").removeClass("formError"); $("#enquiryMessage").parents(".formInput").removeClass("formError"); var eN = $("#enquiryName").val(); var eE = $("#enquiryEmail").val(); var eT = $("#enquiryTel").val(); var eD = $("#enquiryDatesH").val(); var eM = $("#enquiryMessage").val(); var dCon; if ($("#dataConsent").is(":checked")) { dCon = "&consent=true"; } else { dCon = ""; } var formValid = true; if ($.trim(eN) == "") { formValid = false; $("#enquiryName").parents(".formInput").addClass("formError"); } if ($.trim(eE) == "") { formValid = false; $("#enquiryEmail").parents(".formInput").addClass("formError"); } if ($.trim(eM) == "") { formValid = false; $("#enquiryMessage").parents(".formInput").addClass("formError"); } if (formValid == true) { $("#contactWaiting").fadeIn('fast'); var dataVars = "pT=holiday&pI=" + pI + "&eN=" + encodeURIComponent(eN) + "&eE=" + encodeURIComponent(eE) + "&eT=" + encodeURIComponent(eT) + "&eD=" + encodeURIComponent(eD) + "&eM=" + encodeURIComponent(eM) + dCon; $.ajax({ url:"/property-enquiry.php?lang=" + thisLang, data: dataVars, type: "POST", dataType:"JSON", cache: false, success: function(data) { var responseType = data.responseType; if (responseType == 'valid') { $("#enquiryResponse").html(data.contactResponse); $("#enquiryFormInput").slideUp('slow', function(){ $("#contactWaiting").fadeOut('fast'); $("#enquiryResponse").slideDown("slow"); }); } else { $("#eFormEOError").html(data.contactResponse); $("#eFormEError").css("display", "none"); $("#eFormEOError").css("display", "block"); $("#sendContact").delay(600).fadeIn('slow', function(){ $("#contactWaiting").fadeOut('fast'); $("#eFormError").slideDown("slow"); }); } } }); } else { $("#eFormEOError").css("display", "none"); $("#eFormEError").css("display", "block"); $("#sendContact, #eFormError").slideDown("slow"); } return false; }); $(document).on("click", "#enquiryBG", function(e) { var thisID = $(e.target).attr('id'); if (thisID == "enquiryBG") { $("#enquiryBGContainer").addClass("out"); setTimeout(function() { $("#enquiryBGContainer").removeClass("unfold").removeClass("out"); $("body").removeClass("fixed"); }, 1200); } }); $(document).on("click", "#closeEnquiry", function() { $("#enquiryBGContainer").addClass("out"); setTimeout(function() { $("#enquiryBGContainer").removeClass("unfold").removeClass("out"); $("body").removeClass("fixed"); }, 1200); }); $(document).on("click", "#showMoreFeatures", function() { var isHidden = $("#moreFeatures").css("display"); if (isHidden == "none") { $("#moreFeatures").slideDown("slow", function() { $("#showMoreFeatures i").removeClass("fa-caret-down").addClass("fa-caret-up"); }); } else { $("#moreFeatures").slideUp("slow", function() { $("#showMoreFeatures i").removeClass("fa-caret-up").addClass("fa-caret-down"); }); } }); $(document).on("click", "#bookingBG", function(e) { var thisID = $(e.target).attr('id'); if (thisID == "bookingBG") { $("#bookingBGContainer").addClass("out"); setTimeout(function() { $("#bookingBGContainer").removeClass("unfold").removeClass("out"); $("body").removeClass("fixed"); }, 1200); } }); $(document).on("click", "#closeBooking", function() { $("#bookingBGContainer").addClass("out"); setTimeout(function() { $("#bookingBGContainer").removeClass("unfold").removeClass("out"); $("body").removeClass("fixed"); }, 1200); }); $(document).on("click", "#termsBtn", function() { if ($(this).hasClass("termsAccepted")) { $(this).removeClass("termsAccepted"); $("#tca").val("0"); } else { $(this).addClass("termsAccepted"); $("#tca").val("1"); } }); $(document).on("click", "#reservationSubmit", function() { var sVID = $("#sVID").val(); var bN = $("#bookingName").val(); var bT = $("#bookingTel").val(); var bE = $("#bookingEmail").val(); var uC = $("#userCode").val(); var tAC = $("#tca").val(); $("#rFormError").slideUp("fast"); $("#bookingName").parents(".formInput").removeClass("formError"); $("#bookingEmail").parents(".formInput").removeClass("formError"); $("#termsBtn").parents(".formInputW").removeClass("formError"); var formValid = true; if ($.trim(bN) == "") { formValid = false; $("#bookingName").parents(".formInput").addClass("formError"); } if ($.trim(bE) == "") { formValid = false; $("#bookingEmail").parents(".formInput").addClass("formError"); } if (tAC == "0") { formValid = false; $("#termsBtn").parents(".formInputW").addClass("formError"); } if (formValid == true) { $("#reservationSubmit").slideUp("fast"); $("#reservationWaiting").fadeIn('fast'); var dataVars = "rC=true&sVID=" + sVID + "&bN=" + encodeURIComponent(bN) + "&bT=" + encodeURIComponent(bT) + "&bE=" + encodeURIComponent(bE) + "&uC=" + encodeURIComponent(uC); $.ajax({ url:"/property-booking-darcy.php?lang=" + thisLang, data: dataVars, type: "POST", dataType:"JSON", cache: false, success: function(data) { var responseType = data.responseType; if (responseType == 'valid') { } else { $("#rFormError").html(data.contactResponse); $("#reservationSubmit").stop(); $("#reservationSubmit").delay(600).slideDown('slow', function(){ $("#reservationWaiting").fadeOut('fast'); $("#rFormError").slideDown("slow"); }); } } }); } }); getBookingPrices(pI); var screenWidth = $(window).width(); if ($("#availabilityCalendar").length) { setupCalendar(screenWidth); } var doIt; $(window).on("resize", function() { clearTimeout(doIt); doIt = setTimeout(resizedW, 100); }); function resizedW() { var screenDWidth = $(window).width(); if (screenDWidth != screenWidth) { $("#availabilityCalendar").datepicker("destroy"); setupCalendar(screenDWidth); screenWidth = $(window).width(); } } function setupCalendar(screenWidth) { var divW = $("#availabilityCalendar").width(); var noMonthsS = Math.floor(divW / 270); var noMonths; var noSteps; if (screenWidth < 1000) { noMonths = [3,noMonthsS]; noSteps = 3 * noMonthsS; } else if (screenWidth < 1400) { noMonths = [4,noMonthsS]; noSteps = 4 * noMonthsS; } else { noMonths = [3,4]; noSteps = 12; } $('#availabilityCalendar').datepicker({ numberOfMonths:noMonths, minDate: 0, firstDay:1, stepMonths: noSteps, beforeShowDay:bookedDates }); } function bookedDates(date) { dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); if ( ($.inArray(dmy, unavailableUIDates) == -1)) { return [true, "", "Available"]; } else { if (($.inArray(dmy, unavailableUIAMDates) != -1) && ($.inArray(dmy, unavailableUIPMDates) != -1)) { return [false,"datePickerChangeover", bookedTitle]; } else if ($.inArray(dmy, unavailableUIAMDates) != -1) { return [true,"datePickerAMAvailable", availableTitle]; } else if ($.inArray(dmy, unavailableUIPMDates) != -1) { return [true,"datePickerPMAvailable", availableTitle]; } else { return [false,"datePickerLT", bookedTitle]; } } } function getBookingPrices(propID) { $("#propertyBookingButton").slideUp("fast", function() { $("#propertyBookingResponse").slideUp("fast"); var setDates = $("#propertyRentalDatesH").val(); var noGuests =$("#noGuests").val(); if ( ($.trim(setDates) != "") && ($.trim(noGuests) != "") ) { $.ajax({ url:"/property-booking-darcy.php?lang=" + thisLang, data: "gV=true&pI=" + propID + "&bD=" + setDates + "&nG=" + noGuests, type: "POST", dataType: "JSON", cache: false, success: function(sessionData) { var sessionVar = sessionData.sessionVar; var dLink = sessionData.dLink; $("#sVID").val(sessionVar); if ($("#propertyBookingButton").hasClass("propertyBookingButtonDSB")) { } else { $("#propertyBookingButton").attr("href", dLink); } } }); $.ajax({ url:"/property-booking-darcy.php?lang=" + thisLang, data: "bC=true&pI=" + propID + "&bD=" + setDates + "&nG=" + noGuests, type: "POST", cache: false, success: function(bookingCost) { $("#propertyBookingResponse").html(bookingCost); $("#propertyBookingResponse").slideUp(); $("#propertyBookingResponse").slideDown("slow", function() { if ($("#bookingPriceWarning").length) { } else { if ($("#propertyBookingButton").hasClass("propertyBookingButtonDSB")) { } else { $("#propertyBookingButton").slideDown("slow"); } } }); } }); } }); } });