var thisLang = "es";
var pI = "12225";
var todaysDate = "11/04/2025";
var calendarTitle = "Por favor selecciona un rango de fechas";
var bookedTitle = "No disponible";
var availableTitle = "Disponible";

var unavailableUIAMDates = ["6-8-2025"];
var unavailableUIPMDates = ["13-8-2025"];
var unavailableUIDates = ["6-8-2025","7-8-2025","8-8-2025","9-8-2025","10-8-2025","11-8-2025","12-8-2025","13-8-2025"];
var unavailableAMDates = ["2025-08-06"];
var unavailablePMDates = ["2025-08-13"];
var unavailableDates = [["06/08/2025","07/08/2025","08/08/2025","09/08/2025","10/08/2025","11/08/2025","12/08/2025","13/08/2025"]];

var reserveURL = "https://www.coastalpropertiesmojacar.com/es/reservacion.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: '<i class="fas fa-arrow-circle-left"></i>',
		customArrowNextSymbol: '<i class="fas fa-arrow-circle-right"></i>',
		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: '<i class="fas fa-arrow-circle-left"></i>',
		customArrowNextSymbol: '<i class="fas fa-arrow-circle-right"></i>',
		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");
								}
							}
						});
					}
				});
			}
		});
	}
});