var thisLang = "en"; var pI = "12224"; var todaysDate = "23/02/2025"; var calendarTitle = "Please select a date range"; var bookedTitle = "Unavailable"; var availableTitle = "Available"; var unavailableUIAMDates = []; var unavailableUIPMDates = []; var unavailableUIDates = []; var unavailableAMDates = []; var unavailablePMDates = []; var unavailableDates = []; 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"); } } }); } }); } }); } });