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");
}
}
});
}
});
}
});
}
});