
varCalendarPositionLeft21562 = 0;
varCalendarPositionRight21562 = 0; 
var varCalendarState21562 = 1;
var varTempStartDateYear21562;
var varTempStartDateMonth21562;
var varTempStartDateDay21562;
var varTempEndDateYear21562;
var varTempEndDateMonth21562;
var varTempEndDateDay21562;
var varAccommodationTypeID21562;

varTempCalendarDate21562 = new Date(2025, 2, 01);	

jQueryCode = function(){
	jQuery(document).ready(function($){

		if (jQuery('#widget-21562').length == 0){
			console.error("CampManager Widget DIV element not found (widget-21562).");
			return;
		}

		varCalendarTxtColour = jQuery('#widget-21562').data("calendar_txt_colour");
		varCalendarBgColour = jQuery('#widget-21562').data("calendar_bg_colour");
		
		varBookButtonTxtColour = jQuery('#widget-21562').data("book_button_txt_colour");
		varBookButtonBgColour = jQuery('#widget-21562').data("book_button_bg_colour");
		varBookButtonRadius = jQuery('#widget-21562').data("book_button_radius");
		varLabelColour = jQuery('#widget-21562').data("label_text_colour");		
		varResponsive = jQuery('#widget-21562').data("responsive");		
		varAlignCalendar = jQuery('#widget-21562').data("calendar_align");
		
		var js_mobile = jQuery("<script>", {type: "text/javascript", href: "https://resipole.campmanager.com/Js/jquery.mobile.custom.min.js"});
	   	js_mobile.appendTo('head');  
		
		varString = "ContainerID=21562&ctx=" + encodeURIComponent(varCalendarTxtColour) + "&cbg=" + encodeURIComponent(varCalendarBgColour) + "&btc=" + encodeURIComponent(varBookButtonTxtColour) + "&bbc=" + encodeURIComponent(varBookButtonBgColour) + "&br=" + encodeURIComponent(varBookButtonRadius) + "&lc=" + encodeURIComponent(varLabelColour) + "&r=" + varResponsive + "&ac=" + encodeURIComponent(varAlignCalendar);
		var css_link = jQuery("<link>", {rel: "stylesheet", type: "text/css", href: "https://resipole.campmanager.com/21562/External-Widget-Css/?" + varString});
	   	css_link.appendTo('head');  
		fnLoadWidget21562();	
	});
}
		
if(window.jQuery) jQueryCode();
else{   
    var script = document.createElement('script'); 
    document.head.appendChild(script);  
    script.type = 'text/javascript';
    script.src = "https://resipole.campmanager.com/Js/jquery-3.3.1.min.js";
    script.onload = jQueryCode;
}

var xmlHttpLoadWidget21562;
function fnLoadWidget21562()
{
	try{
		xmlHttpLoadWidget21562.abort();
	}catch(error){}

	if (jQuery('#widget-21562').length == 0){
		console.error("CampManager Widget DIV element not found (widget-21562).");
		return;
	}
	
	varDefaultBookingType = jQuery('#widget-21562').data("default_booking_type");
	varBookButtonText = jQuery('#widget-21562').data("book_button_text");
	
	try{xmlHttpLoadWidget21562.abort();}catch(error){}try{xmlHttpLoadWidget21562=new XMLHttpRequest();}catch (e){try{xmlHttpLoadWidget21562=new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{xmlHttpLoadWidget21562=new ActiveXObject("Microsoft.XMLHTTP");}catch (e){alert("Your browser does not support AJAX!");return false;}}}xmlHttpLoadWidget21562.onreadystatechange=function(){if(xmlHttpLoadWidget21562.readyState==4){
		document.getElementById('widget-21562').innerHTML 		= xmlHttpLoadWidget21562.responseText;
		
		fnSetAccommodation21562();
		fnBindEvents21562();
		try{
			fnUpdateGuestsText21562();
		}catch(e){}
		
						
	}}
	xmlHttpLoadWidget21562.open("GET","https://resipole.campmanager.com/21562/External-Widget/?ContainerID=21562&type=" + varDefaultBookingType + "&bbt=" + encodeURIComponent(varBookButtonText) + "&btx=" + encodeURIComponent(varBookButtonTxtColour) + "&bbg=" + encodeURIComponent(varBookButtonBgColour) + "&d=" + Math.random(),true);
	xmlHttpLoadWidget21562.send(null); 
}

function fnBindEvents21562()
{
	jQuery("input").bind('keyup click', function(){		
		if (jQuery(this).val() != "")
		{
			jQuery(this).addClass('active');
			jQuery(this).parent().find('label').addClass('active');
		}
		else
		{
			jQuery(this).removeClass('active');
			jQuery(this).parent().find('label').removeClass('active');
		}
	});
	
	function focusAndCursor(selector)
	{
  		var input = jQuery(selector);
  		setTimeout(function() {
    		tmp = input.val(); input.focus().val("").blur().focus().val(tmp);
  		}, 200);
	}
	
	jQuery(document).keydown(function(event){
		if (event.keyCode == 13 && jQuery('#widget-date-container-21562').is(":focus"))
		{	
			jQuery('#guests-container-21562').hide();			
			jQuery('#calendar-container-21562').show();			
		}
		if (event.keyCode == 13 && jQuery('#widget-guests-container-21562').is(":focus"))
		{	
			jQuery('#calendar-container-21562').hide();
			jQuery('#guests-container-21562').show();			
		}
		if (event.keyCode == 27)
		{
			jQuery('#calendar-container-21562').hide();
			jQuery('#guests-container-21562').hide();		
		}
		if (event.keyCode == 13 && jQuery('#calendar-button-left-21562').is(":focus"))
		{		
			fnCalendarSlideLeft21562();
		}
		if (event.keyCode == 13 && jQuery('#calendar-button-right-21562').is(":focus"))
		{	
			fnCalendarSlideRight21562();
		}
		if (event.keyCode == 13 && jQuery('#calendar-container-21562 .calendar-date').is(":focus"))
		{
			fnCalendarChangeState21562(event.target.id);
		}	
		if (event.keyCode == 39 && jQuery('#calendar-container-21562 .calendar-date').is(":focus"))
		{
			if (!jQuery('#' + event.target.id).next('div').hasClass("calendar-date"))
			{
				if (jQuery('#calendar-button-right-21562').is(':visible'))
				{		
					fnCalendarSlideRight21562();
					jQuery('.calendar-date').attr('tabindex',-1);					
					jQuery('#' + event.target.id).parent().parent().parent().next('.calendar-slide').children('.calendar-slide-inner').children('.calendar-slide-inner-days').find('.calendar-date').first().attr('tabindex',5);
					varNextID = jQuery('#' + event.target.id).parent().parent().parent().next('.calendar-slide').children('.calendar-slide-inner').children('.calendar-slide-inner-days').find('.calendar-date').first().attr('id');
					setTimeout(function(){ 
						jQuery("#" + varNextID).focus(); 
					}, 100);
				}				
			}
			else
			{
				jQuery('.calendar-date').attr('tabindex',-1);
				jQuery('#' + event.target.id).next('.calendar-date').attr('tabindex',5);
				jQuery('#' + event.target.id).next('.calendar-date').focus();	
			}
		}
		if (event.keyCode == 37 && jQuery('#calendar-container-21562 .calendar-date').is(":focus"))
		{
			if (!jQuery('#' + event.target.id).prev('div').hasClass("calendar-date"))
			{
				if (jQuery('#calendar-button-left-21562').is(':visible'))
				{
					fnCalendarSlideLeft21562();
					jQuery('.calendar-date').attr('tabindex',-1);					
					jQuery('#' + event.target.id).parent().parent().parent().prev('.calendar-slide').children('.calendar-slide-inner').children('.calendar-slide-inner-days').find('.calendar-date').last().attr('tabindex',5);
					varPrevID = jQuery('#' + event.target.id).parent().parent().parent().prev('.calendar-slide').children('.calendar-slide-inner').children('.calendar-slide-inner-days').find('.calendar-date').last().attr('id');
					setTimeout(function(){
						jQuery("#" + varPrevID).focus();
					}, 100);
				}		
			}
			else
			{
				jQuery('.calendar-date').attr('tabindex',-1);
				jQuery('#' + event.target.id).prev('.calendar-date').attr('tabindex',5);
				jQuery('#' + event.target.id).prev('.calendar-date').focus();	
			}
		}		
		if (event.keyCode == 38 && jQuery('#calendar-container-21562 .calendar-date').is(":focus")) // up
		{
			varTempID = jQuery('#' + event.target.id).attr('id').split('-');
			varTempDate = new Date(varTempID[0], varTempID[1]-1, varTempID[2]);
			varTempDate.setDate(varTempDate.getDate()-7);
					
			varID = varTempDate.getFullYear() + '-' + (varTempDate.getMonth()+1) + '-' + varTempDate.getDate();    
				
			if (jQuery('#calendar-button-left-21562').is(':visible') && ((varTempDate.getMonth()) != (varTempID[1]-1)))
			{
				fnCalendarSlideLeft21562();
				jQuery('.calendar-date').attr('tabindex',-1);
				jQuery('#' + varID + '-21562').attr('tabindex',5);
				setTimeout(function(){
					jQuery('#' + varID + '-21562').focus();
				}, 100);
			}
			else
			{
				if (varTempDate.getMonth() == (varTempID[1]-1))
				{
					jQuery('.calendar-date').attr('tabindex',-1);
					jQuery('#' + varID + '-21562').attr('tabindex',5);
					setTimeout(function(){
						jQuery('#' + varID + '-21562').focus();
					}, 100);
				}
			}	
		}		
		if (event.keyCode == 40 && jQuery('#calendar-container-21562 .calendar-date').is(":focus")) // down
		{
			varTempID = jQuery('#' + event.target.id).attr('id').split('-');
			varTempDate = new Date(varTempID[0], varTempID[1]-1, varTempID[2]);
			varTempDate.setDate(varTempDate.getDate()+7);
					
			varID = varTempDate.getFullYear() + '-' + (varTempDate.getMonth()+1) + '-' + varTempDate.getDate();    
								
			if (jQuery('#calendar-button-right-21562').is(':visible') && ((varTempDate.getMonth()) != (varTempID[1]-1)))
			{
				fnCalendarSlideRight21562();
				jQuery('.calendar-date').attr('tabindex',-1);
				jQuery('#' + varID + '-21562').attr('tabindex',5);
				setTimeout(function(){
					jQuery('#' + varID + '-21562').focus();
				}, 100);
			}
			else
			{
				if (varTempDate.getMonth() == (varTempID[1]-1))
				{
					jQuery('.calendar-date').attr('tabindex',-1);
					jQuery('#' + varID + '-21562').attr('tabindex',5);
					setTimeout(function(){
						jQuery('#' + varID + '-21562').focus();
					}, 100);
				}
			}	
		}				
		if (event.keyCode == 13 && jQuery('#calendar-clear-button21562').is(":focus"))
		{	
			fnResetDates21562();
		}
		if (event.keyCode == 13 && jQuery('#calendar-apply-button21562').is(":focus"))
		{	
			fnApplyDateRange21562();
		}		
		if (event.keyCode == 13 && jQuery('#widget-adults-minus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-adults-21562','idtxtBookingAdults-21562','1','8',-1);
		}
		if (event.keyCode == 13 && jQuery('#widget-adults-plus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-adults-21562','idtxtBookingAdults-21562','1','8',1);
		}
		if (event.keyCode == 13 && jQuery('#widget-children-minus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-children-21562','idtxtBookingChildren-21562','0','8',-1);
		}
		if (event.keyCode == 13 && jQuery('#widget-children-plus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-children-21562','idtxtBookingChildren-21562','0','8',1);
		}
		if (event.keyCode == 13 && jQuery('#widget-infants-minus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-infants-21562','idtxtBookingInfants-21562','0','8',-1);
		}
		if (event.keyCode == 13 && jQuery('#widget-infants-plus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-infants-21562','idtxtBookingInfants-21562','0','8',1);
		}
		if (event.keyCode == 13 && jQuery('#widget-pets-minus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-pets-21562','idtxtBookingPets-21562','0','2',-1);
		}
		if (event.keyCode == 13 && jQuery('#widget-pets-plus-21562').is(":focus"))
		{	
			fnUpdateGuestsValue21562('widget-pets-21562','idtxtBookingPets-21562','0','2',1);
		}
		if (event.keyCode == 13 && jQuery('#guests-apply-button21562').is(":focus"))
		{	
			fnCloseGuests21562();
		}
	});	
	
	jQuery(".calendar-container-header-close").bind('click', function(){		
		jQuery('#calendar-container-21562').hide();
	});
	
	jQuery(".guests-header-close").bind('click', function(){		
		jQuery('#guests-container-21562').hide();
	});
		
	jQuery(document).mouseup(function(e) 
	{
	    var container = jQuery('#calendar-container-21562');
	    if (!container.is(e.target) && container.has(e.target).length === 0) 
	    {
	        container.hide();
	    }
	    
	    var container2 = jQuery('#guests-container-21562');
	    if (!container2.is(e.target) && container2.has(e.target).length === 0) 
	    {
	        container2.hide();
	    }
	});
}

function fnSetAccommodation21562()
{		
	try{
		document.getElementById('idBookingVehicleLength-21562').style.display 			= 'none';
		document.getElementById('idtxtBookingVehicleLength-21562').disabled 				= true; 
	}catch(e){}

	try{
		document.getElementById('idBookingAdults-21562').style.display 					= 'none';
		document.getElementById('idtxtBookingAdults-21562').disabled 					= true; 
	}catch(e){}

	try{
		document.getElementById('idBookingChildren-21562').style.display 				= 'none';
		document.getElementById('idtxtBookingChildren-21562').disabled 					= true; 
	}catch(e){}

	try{
		document.getElementById('idBookingInfants-21562').style.display 					= 'none';
		document.getElementById('idtxtBookingInfants-21562').disabled 					= true; 
	}catch(e){}

	try{
		document.getElementById('idBookingPets-21562').style.display 					= 'none';
		document.getElementById('idtxtBookingPets-21562').disabled 						= true; 
	}catch(e){}
		
	try{
		document.getElementById('idBookingAwning-21562').style.display 					= 'none';
		document.getElementById('idtxtBookingAwning-21562').disabled 					= true; 
	}catch(e){}
	
	try{
		document.getElementById('idBookingAwning23-21562').style.display 				= 'none';
		document.getElementById('idtxtBookingAwning23-21562').disabled 					= true; 
	}catch(e){}
	
	try{
		document.getElementById('idBookingElectric-21562').style.display 				= 'none';
		document.getElementById('idtxtBookingElectric-21562').disabled 					= true; 
	}catch(e){}
	
	try{
		document.getElementById('idBookingElectric23-21562').style.display 				= 'none';
		document.getElementById('idtxtBookingElectric23-21562').disabled 				= true; 
	}catch(e){}
	
	if(document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[0] == 23)
	{
		try{
			document.getElementById('idBookingAwning23-21562').style.display 			= '';
			document.getElementById('idtxtBookingAwning23-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingElectric23-21562').style.display 			= '';
			document.getElementById('idtxtBookingElectric23-21562').disabled 			= false; 
		}catch(e){}
		
		try{
			document.getElementById('idBookingAdults-21562').style.display 				= '';
			document.getElementById('idtxtBookingAdults-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingChildren-21562').style.display 			= '';
			document.getElementById('idtxtBookingChildren-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingInfants-21562').style.display 				= '';
			document.getElementById('idtxtBookingInfants-21562').disabled 				= false; 
		}catch(e){}

		try{
			document.getElementById('idBookingPets-21562').style.display 				= '';
			document.getElementById('idtxtBookingPets-21562').disabled 					= false; 
		}catch(e){}
		
		
		jQuery('#widget-21562 .widget-container').addClass('widget-container-touring');
		jQuery('#widget-21562 .widget-container').removeClass('widget-container-rental');		
	}
	else if (document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[0] == 1)
	{		
		if (document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[1] != 5)
		{
									
		}
		else
		{				
						
		}
		
		try{
			document.getElementById('idBookingAwning-21562').style.display 				= '';
			document.getElementById('idtxtBookingAwning-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingElectric-21562').style.display	 			= '';
			document.getElementById('idtxtBookingElectric-21562').disabled 				= false; 
		}catch(e){}
		
		try{
			document.getElementById('idBookingAdults-21562').style.display 				= '';
			document.getElementById('idtxtBookingAdults-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingChildren-21562').style.display 				= '';
			document.getElementById('idtxtBookingChildren-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingInfants-21562').style.display 				= '';
			document.getElementById('idtxtBookingInfants-21562').disabled 				= false; 
		}catch(e){}

		try{
			document.getElementById('idBookingPets-21562').style.display 				= '';
			document.getElementById('idtxtBookingPets-21562').disabled 					= false; 
		}catch(e){}
		
		jQuery('#widget-21562 .widget-container').addClass('widget-container-touring');
		jQuery('#widget-21562 .widget-container').removeClass('widget-container-rental');
	}
	else
	{
		try{
			document.getElementById('idBookingAdults-21562').style.display 				= '';
			document.getElementById('idtxtBookingAdults-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingChildren-21562').style.display 			= '';
			document.getElementById('idtxtBookingChildren-21562').disabled 				= false; 
		}catch(e){}
	
		try{
			document.getElementById('idBookingInfants-21562').style.display 				= '';
			document.getElementById('idtxtBookingInfants-21562').disabled 				= false; 
		}catch(e){}
		
		try{
			document.getElementById('idBookingPets-21562').style.display 				= '';
			document.getElementById('idtxtBookingPets-21562').disabled 					= false; 
		}catch(e){}
		
		jQuery('#widget-21562 .widget-container').addClass('widget-container-rental');
		jQuery('#widget-21562 .widget-container').removeClass('widget-container-touring');
	}	
	
	if (document.getElementById('idtxtBookingRentalTypeID-21562').value != "")
	{	
		varAccommodationTypeID21562 = document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[0];
	}
	else
	{
		varAccommodationTypeID21562 = 0;
	}
	
	fnPopulateCalendar21562();
	
	try{
		if (document.getElementById('idtxtBookingStartDateDay-21562').value != "" && document.getElementById('idtxtBookingStartDateMonth-21562').value != "" && document.getElementById('idtxtBookingStartDateYear-21562').value != "")
		{
			varDate = document.getElementById('idtxtBookingStartDateYear-21562').value + "/" + document.getElementById('idtxtBookingStartDateMonth-21562').value + "/" + document.getElementById('idtxtBookingStartDateDay-21562').value;
			fnLoadDays21562(varDate, 0);
		}
	}catch(e){}
}
		
var xmlHttpPopulateCalendar21562;
function fnPopulateCalendar21562()
{
	try{
		xmlHttpPopulateCalendar21562.abort();
	}catch(error){}

	try{xmlHttpPopulateCalendar21562.abort();}catch(error){}try{xmlHttpPopulateCalendar21562=new XMLHttpRequest();}catch (e){try{xmlHttpPopulateCalendar21562=new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{xmlHttpPopulateCalendar21562=new ActiveXObject("Microsoft.XMLHTTP");}catch (e){alert("Your browser does not support AJAX!");return false;}}}xmlHttpPopulateCalendar21562.onreadystatechange=function(){if(xmlHttpPopulateCalendar21562.readyState==4){
		jQuery('#calendar-container-inner-21562').css({'left':'0%'});
		
		document.getElementById('calendar-container-inner-21562').innerHTML 		= xmlHttpPopulateCalendar21562.responseText;
		
		varCalendarPositionLeft21562 = 0;
		varCalendarPositionRight21562 = -1 * ((jQuery('.widget-calendar-slide').length-2) * 50);
				
		//fnResetDates21562();
		jQuery('#calendar-button-left-21562').hide();		
	}}
	xmlHttpPopulateCalendar21562.open("GET","https://resipole.campmanager.com/21562/External-Widget-Calendar/?ContainerID=21562&BookingTypeID=" + varAccommodationTypeID21562 + "&d=" + Math.random(),true);
	xmlHttpPopulateCalendar21562.send(null); 
}

function fnCalendarSlideLeft21562()
{
	if (jQuery('#calendar-button-left-21562').is(':visible'))
	{
		if (jQuery(':animated').length){
	       	return false;
	   	}
	   		
		if (jQuery('#calendar-container-middle-21562').width() / jQuery('#calendar-container-middle-21562').parent().width() * 100 == 100)
		{
			varTempMove = 50;
			varTempMove2 = 50;
		}
		else
		{
			varTempMove = 50;
			varTempMove2 = 0;
		}
		
		var position = jQuery('#calendar-container-inner-21562').position();			
		var percentLeft = Math.round(position.left/jQuery('#calendar-container-inner-21562').width() * 100);			
		jQuery('#calendar-container-inner-21562').animate({'left': (percentLeft+varTempMove) + '%'},150);	
			
		
		if ((percentLeft+varTempMove) == varCalendarPositionLeft21562)
		{
			jQuery('#calendar-button-left-21562').hide();
		} 
		else
		{
			jQuery('#calendar-button-left-21562').show();
		}
		jQuery('#calendar-button-right-21562').show();
		/*	
		if ((percentLeft+varTempMove2) == varCalendarPositionRight21562)
		{
			jQuery('#calendar-button-right-21562').hide();
		}
		else
		{
			jQuery('#calendar-button-right-21562').show();
		}		
		*/
		jQuery('.calendar-date').attr('tabindex',-1);			
		varTempCalendarDate21562 = fnAddMonths21562(varTempCalendarDate21562, -1)	
		jQuery('#' + varTempCalendarDate21562.getFullYear() + '-' + (varTempCalendarDate21562.getMonth()+1) + '-' + varTempCalendarDate21562.getDate() + '-21562').attr('tabindex',5);		
	}
}

function fnCalendarSlideRight21562()
{
	if (jQuery('#calendar-button-right-21562').is(':visible'))
	{
		if (jQuery(':animated').length){
	       	return false;
	   	}
	
		if (jQuery('#calendar-container-middle-21562').width() / jQuery('#calendar-container-middle-21562').parent().width() * 100 == 100)
		{
			varTempMove = 50;
			varTempMove2 = 50;
		}
		else
		{
			varTempMove = 50;
			varTempMove2 = 0;
		}
		
		var position = jQuery('#calendar-container-inner-21562').position();			
		var percentLeft = Math.round(position.left/jQuery('#calendar-container-inner-21562').width() * 100);			
		jQuery('#calendar-container-inner-21562').animate({'left': (percentLeft-varTempMove) + '%'},150);
	
		/*
		if ((percentLeft-varTempMove) == varCalendarPositionLeft21562)
		{
			jQuery('#calendar-button-left-21562').hide();
		} 
		else
		{
			jQuery('#calendar-button-left-21562').show();
		}		
		*/
		jQuery('#calendar-button-left-21562').show();
		if ((percentLeft-varTempMove2) == varCalendarPositionRight21562)
		{
			jQuery('#calendar-button-right-21562').hide();
		}
		else
		{
			jQuery('#calendar-button-right-21562').show();
		}		
		
		jQuery('.calendar-date').attr('tabindex',-1);			
		varTempCalendarDate21562 = fnAddMonths21562(varTempCalendarDate21562, 1)	
		jQuery('#' + varTempCalendarDate21562.getFullYear() + '-' + (varTempCalendarDate21562.getMonth()+1) + '-' + varTempCalendarDate21562.getDate() + '-21562').attr('tabindex',5);	
	}
}

function fnOpenCalendar21562()
{
	if (document.getElementById('idtxtBookingRentalTypeID-21562').value == "")
	{
		document.getElementById('idtxtBookingRentalTypeID-21562').focus();
		alert('Please select an accommodation type first');	
		return false;
	}
	jQuery('#calendar-container-21562').show();
	jQuery('.calendar-date').attr('tabindex',-1);			
	jQuery('#' + varTempCalendarDate21562.getFullYear() + '-' + (varTempCalendarDate21562.getMonth()+1) + '-' + varTempCalendarDate21562.getDate() + '-21562').attr('tabindex',5);	
	
	
	var position = jQuery('#calendar-container-inner-21562').position();			
	var percentLeft = Math.round(position.left/jQuery('#calendar-container-inner-21562').width() * 100);			

	if ((percentLeft) == varCalendarPositionRight21562)
	{
		jQuery('#calendar-button-right-21562').hide();
	}
	else
	{
		jQuery('#calendar-button-right-21562').show();
	}	
	
	if ((percentLeft) == varCalendarPositionLeft21562)
	{
		jQuery('#calendar-button-left-21562').hide();
	} 
	else
	{
		jQuery('#calendar-button-left-21562').show();
	}
}

function fnAddMonths21562(varDate, varCount)
{
	if (varDate && varCount)
	{
    	var m, d = (varDate = new Date(+varDate)).getDate();
		varDate.setMonth(varDate.getMonth() + varCount, 1);
	    m = varDate.getMonth();
    	varDate.setDate(d);
    	if (varDate.getMonth() !== m) varDate.setDate(0)
  	}
  	return varDate;
}

function fnCalendarChangeState21562(varDateClicked)
{
	if (varCalendarState21562 == 1)
	{		
		if (jQuery('#' + varDateClicked).hasClass('arrival'))
		{
			jQuery('#calendar-apply-button21562').removeClass('calendar-apply-button-enabled');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date1');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date2');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date2');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date3');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-inbetween-date');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('arrival2');
			jQuery('#calendar-container-21562 .calendar-date').addClass('calendar-date-disabled');  
			jQuery('#' + varDateClicked).addClass('calendar-start-date1');		
		   
			jQuery('#calendar-duration-text-21562').html('Select departure date');	
					
			arrDateClicked = varDateClicked.split("-")
			varTempStartDateDay21562 = arrDateClicked[2];
			varTempStartDateMonth21562 = arrDateClicked[1];
			varTempStartDateYear21562 = arrDateClicked[0];
		
	  		varCalendarState21562 = 2;	  		
	  		
	  		fnLoadCalendarDurations21562(varTempStartDateYear21562 + '-' + varTempStartDateMonth21562 + '-' + varTempStartDateDay21562);
		}  		
	}
	
	if (varCalendarState21562 == 2)
	{
		if (!jQuery('#' + varDateClicked).hasClass('calendar-date-disabled'))
		{
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date1');
			jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-date-disabled');
			
			arrDateClicked = varDateClicked.split("-")
			varTempEndDateDay21562 = arrDateClicked[2];
			varTempEndDateMonth21562 = arrDateClicked[1];
			varTempEndDateYear21562 = arrDateClicked[0];	
			
			if (varDateClicked == varTempStartDateYear21562 + "-" + varTempStartDateMonth21562 + "-" + varTempStartDateDay21562 + '-21562')
			{
				jQuery('#' + varDateClicked).addClass('calendar-end-date3');			
			}
			else
			{
				jQuery('#' + varTempStartDateYear21562 + '-' + varTempStartDateMonth21562 + '-' + varTempStartDateDay21562 + '-21562').addClass('calendar-start-date2');
				jQuery('#' + varDateClicked).addClass('calendar-end-date2');			
			
				varTempStart = new Date(varTempStartDateYear21562, varTempStartDateMonth21562-1, varTempStartDateDay21562);
				varTempEnd = new Date(varTempEndDateYear21562, varTempEndDateMonth21562-1, varTempEndDateDay21562);	
				
				for (var d = varTempStart; d <= varTempEnd; d.setDate(d.getDate()+1))
				{	
					varTemp = new Date(d.getFullYear(), d.getMonth(), d.getDate());
					jQuery('#' + d.getFullYear() + '-' + (d.getMonth()+1) + '-' + d.getDate() + '-21562').addClass('calendar-inbetween-date');    
				}	
			}
	  		varCalendarState21562 = 1;	  		
			jQuery('#calendar-apply-button21562').removeClass('calendar-apply-button-disabled');	
			
			varTempStart = new Date(varTempStartDateYear21562, varTempStartDateMonth21562-1, varTempStartDateDay21562);
			varTempEnd = new Date(varTempEndDateYear21562, varTempEndDateMonth21562-1, varTempEndDateDay21562);	
	
			varTimeDifference = varTempEnd.getTime() - varTempStart.getTime();
			varDaysDifference = varTimeDifference / (1000 * 3600 * 24);
			varDurationText = (varDaysDifference.toFixed(0) == 1) ? " night" : " nights";
			
			jQuery('#calendar-duration-text-21562').html(varDaysDifference.toFixed(0) + varDurationText);	
	  	}	
	}
}	
	
var xmlHttpCalendarDurations21562;
function fnLoadCalendarDurations21562(varDateClicked)
{
	try{
		xmlHttpCalendarDurations21562.abort();
	}catch(error){}

	try{xmlHttpCalendarDurations21562.abort();}catch(error){}try{xmlHttpCalendarDurations21562=new XMLHttpRequest();}catch (e){try{xmlHttpCalendarDurations21562=new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{xmlHttpCalendarDurations21562=new ActiveXObject("Microsoft.XMLHTTP");}catch (e){alert("Your browser does not support AJAX!");return false;}}}xmlHttpCalendarDurations21562.onreadystatechange=function(){if(xmlHttpCalendarDurations21562.readyState==4){

		varResponse = xmlHttpCalendarDurations21562.responseText;

		arrDepartureDates = varResponse.split(",");

		for (i = 0; i < arrDepartureDates.length; i++)
		{
		    jQuery('#' + arrDepartureDates[i] + '-21562').removeClass('calendar-date-disabled');
		    jQuery('#' + arrDepartureDates[i] + '-21562').addClass('arrival2');
		}

	}}
	xmlHttpCalendarDurations21562.open("GET","https://resipole.campmanager.com/21562/External-Widget-Durations/?ContainerID=21562&BookingTypeID=" + varAccommodationTypeID21562 + "&StartDate=" + varDateClicked + "&d=" + Math.random(),true);
	xmlHttpCalendarDurations21562.send(null); 
}

function fnCalendarSelectArrivalDate21562(varDateClicked)
{
	if (jQuery('#' + varDateClicked).hasClass('arrival'))
	{
		arrDateClicked = varDateClicked.split("-")
		varTempStartDateDay21562 = arrDateClicked[2];
		varTempStartDateMonth21562 = arrDateClicked[1];
		varTempStartDateYear21562 = arrDateClicked[0];	
		
		jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date1');
		jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date2');
		jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date2');
		jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date3');
		jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-inbetween-date');
		jQuery('#calendar-container-21562 .calendar-date').removeClass('arrival2');
		jQuery('#calendar-apply-button21562').removeClass('calendar-apply-button-disabled');	
		jQuery('#' + varDateClicked).addClass('calendar-start-date1');				
				
		document.getElementById('idtxtBookingStartDateDay-21562').value = varTempStartDateDay21562;
		document.getElementById('idtxtBookingStartDateMonth-21562').value = varTempStartDateMonth21562;
		document.getElementById('idtxtBookingStartDateYear-21562').value = varTempStartDateYear21562;
		
		fnLoadDays21562(varTempStartDateYear21562 + '-' + varTempStartDateMonth21562 + '-' + varTempStartDateDay21562, 1);
		
		jQuery('#widget-start-date-text-21562').html(varTempStartDateDay21562 + '/' + varTempStartDateMonth21562 + '/' + varTempStartDateYear21562);	
		jQuery('#calendar-container-21562').hide();
	}
}

var xmlHttpDays21562;
function fnLoadDays21562(varDateClicked, varInit)
{
	try{
		xmlHttpDays21562.abort();
	}catch(error){}

	try{xmlHttpDays21562.abort();}catch(error){}try{xmlHttpDays21562=new XMLHttpRequest();}catch (e){try{xmlHttpDays21562=new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{xmlHttpDays21562=new ActiveXObject("Microsoft.XMLHTTP");}catch (e){alert("Your browser does not support AJAX!");return false;}}}xmlHttpDays21562.onreadystatechange=function(){if(xmlHttpDays21562.readyState==4){	
		
		jQuery('#idtxtTempBookingDuration-21562').empty().append('<option value="">Select duration</option>');
		
		varResponse = xmlHttpDays21562.responseText;
		arrDays = varResponse.split(",");

		if (varResponse != "" && arrDays.length > 0)
		{
			for (i = 0; i < arrDays.length; i++)
			{				
				varLabel = "night";
				varDaysString = (arrDays[i] == 1) ? " " + varLabel : " " + varLabel + "s";
			    jQuery('#idtxtTempBookingDuration-21562').append('<option value="' + arrDays[i] + '">' + arrDays[i] + varDaysString + '</option>');
			}
			
			if (jQuery('#idtxtBookingDuration-21562').val() != "" && varInit == 0)
			{
				if (jQuery("#idtxtTempBookingDuration-21562 option[value='" + jQuery('#idtxtBookingDuration-21562').val() + "']").length > 0)
				{	
					jQuery('#idtxtTempBookingDuration-21562').val(jQuery('#idtxtBookingDuration-21562').val());
				}
			}
			else
			{
				jQuery('#idtxtBookingDuration-21562').val('');
			}		
		}
		else
		{
			jQuery('#idtxtBookingDuration-21562').val('');
		}
	}}
	xmlHttpDays21562.open("GET","https://resipole.campmanager.com/21562/External-Widget-Days/?ContainerID=21562&BookingTypeID=" + varAccommodationTypeID21562 + "&StartDate=" + varDateClicked + "&d=" + Math.random(),true);
	xmlHttpDays21562.send(null);
}

function fnUpdateDuration21562()
{
	jQuery('#idtxtBookingDuration-21562').val(jQuery('#idtxtTempBookingDuration-21562').val());
}

function fnResetDates21562()
{
	document.getElementById('idtxtBookingStartDateDay-21562').value = "";
	document.getElementById('idtxtBookingStartDateMonth-21562').value = "";
	document.getElementById('idtxtBookingStartDateYear-21562').value = "";
	document.getElementById('idtxtBookingDuration-21562').value = "";
		
	jQuery('#calendar-apply-button21562').addClass('calendar-apply-button-disabled');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date1');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-start-date2');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date2');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-end-date3');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-inbetween-date');
	jQuery('#calendar-container-21562 .calendar-date').removeClass('arrival2');
	jQuery('#calendar-container-21562 .calendar-date').addClass('calendar-date-disabled');  
	jQuery('#calendar-container-21562 .calendar-date').removeClass('calendar-date-disabled');  
	
	jQuery('#widget-start-date-text-21562').html('Add dates');	
	jQuery('#widget-end-date-text-21562').html('Add dates');	
	jQuery('#calendar-duration-text-21562').html('Select arrival date');	
	
	varCalendarState21562 = 1;
}

function fnApplyDateRange21562()
{
	if (!jQuery('#calendar-apply-button21562').hasClass('calendar-apply-button-disabled'))
	{
		varTempStart = new Date(varTempStartDateYear21562, varTempStartDateMonth21562-1, varTempStartDateDay21562);
		varTempEnd = new Date(varTempEndDateYear21562, varTempEndDateMonth21562-1, varTempEndDateDay21562);	

		varTimeDifference = varTempEnd.getTime() - varTempStart.getTime();
		varDaysDifference = varTimeDifference / (1000 * 3600 * 24);

		document.getElementById('idtxtBookingStartDateDay-21562').value = varTempStartDateDay21562;
		document.getElementById('idtxtBookingStartDateMonth-21562').value = varTempStartDateMonth21562;
		document.getElementById('idtxtBookingStartDateYear-21562').value = varTempStartDateYear21562;
		document.getElementById('idtxtBookingDuration-21562').value = varDaysDifference.toFixed(0);
	
		jQuery('#widget-start-date-text-21562').html(varTempStartDateDay21562 + '/' + varTempStartDateMonth21562 + '/' + varTempStartDateYear21562);	
		jQuery('#widget-end-date-text-21562').html(varTempEndDateDay21562 + '/' + varTempEndDateMonth21562 + '/' + varTempEndDateYear21562);	
		
		jQuery('#calendar-container-21562').hide();
	}
	else
	{
		return false;
	}
}

function fnOpenGuests21562()
{
	jQuery('#guests-container-21562').show();
}

function fnCloseGuests21562()
{
	jQuery('#guests-container-21562').hide();
}

function fnUpdateGuestsValue21562(varTextID,varFieldID,varMinValue,varMaxValue,varDirection)
{
	varTempValue = parseInt(document.getElementById(varFieldID).value);
	
	if (varDirection == -1)
	{
		varTempValue = varTempValue - 1;
	}
	
	if (varDirection == 1)
	{
		varTempValue = varTempValue + 1;
	}
	
	if (varTempValue < varMinValue)	
	{
		varTempValue = varMinValue;
	}
	
	if (varTempValue > varMaxValue)	
	{
		varTempValue = varMaxValue;
	}
	
	document.getElementById(varFieldID).value = varTempValue;
	jQuery('#' + varTextID).html(varTempValue);
	
	fnUpdateGuestsText21562();
}

function fnUpdateGuestsText21562()
{
	varGuests = "";
	
	if (document.getElementById('idtxtBookingAdults-21562').value > 0)
	{
		if (document.getElementById('idtxtBookingAdults-21562').value == 1)
		{
			if (varGuests == "")
			{
				varGuests = "1 adult";
			}
			else
			{
				varGuests = varGuests + ", 1 adult";
			}
		}
		else
		{
			if (varGuests == "")
			{
				varGuests = document.getElementById('idtxtBookingAdults-21562').value + " adults";
			}
			else
			{
				varGuests = varGuests + ", " + document.getElementById('idtxtBookingAdults-21562').value + " adults";
			}
		}
	}	
	
	try{			
		if (document.getElementById('idtxtBookingChildren-21562').value > 0)
		{
			if (document.getElementById('idtxtBookingChildren-21562').value == 1)
			{
				if (varGuests == "")
				{
					varGuests = "1 child";
				}
				else
				{
					varGuests = varGuests + ", 1 child";
				}
			}
			else
			{
				if (varGuests == "")
				{
					varGuests = document.getElementById('idtxtBookingChildren-21562').value + " children";
				}
				else
				{
					varGuests = varGuests + ", " + document.getElementById('idtxtBookingChildren-21562').value + " children";
				}
			}
		}	
	}catch(e){}

	try{			
		if (document.getElementById('idtxtBookingInfants-21562').value > 0)
		{
			if (document.getElementById('idtxtBookingInfants-21562').value == 1)
			{
				if (varGuests == "")
				{
					varGuests = "1 infant";
				}
				else
				{
					varGuests = varGuests + ", 1 infant";
				}
			}
			else
			{
				if (varGuests == "")
				{
					varGuests = document.getElementById('idtxtBookingInfants-21562').value + " infants";
				}
				else
				{
					varGuests = varGuests + ", " + document.getElementById('idtxtBookingInfants-21562').value + " infants";
				}
			}
		}	
	}catch(e){}

	try{			
		if (document.getElementById('idtxtBookingPets-21562').value > 0)
		{
			if (document.getElementById('idtxtBookingPets-21562').value == 1)
			{
				if (varGuests == "")
				{
					varGuests = "1 pet";
				}
				else
				{
					varGuests = varGuests + ", 1 pet";
				}
			}
			else
			{
				if (varGuests == "")
				{
					varGuests = document.getElementById('idtxtBookingPets-21562').value + " pets";
				}
				else
				{
					varGuests = varGuests + ", " + document.getElementById('idtxtBookingPets-21562').value + " pets";
				}
			}
		}	
	}catch(e){}
	
	if (varGuests != "")
	{
		jQuery('#widget-guests-text-21562').html(varGuests);
	}
	else
	{
		jQuery('#widget-guests-text-21562').html('Add guests/pets');
	}	
}

function fnValidateCheckAvailability21562()
{
	if(fnCheckAvailability21562())
	{
		jQuery('#overlay-21562').css({'background-color':'rgba(200,200,200,0.3)'});
		jQuery('#overlay-21562').show();
		jQuery('#booking-summary-loading-outer-21562').show();

		GetLink221562();
	
		document.forms['frmCheckAvailability-21562'].submit();
	}
	else
	{
		jQuery('#overlay-21562').hide();
		jQuery('#booking-summary-loading-outer-21562').hide();
	}
}
		
function fnCheckAvailability21562()
{
	var varBookingDuration	 			= parseInt(document.getElementById('idtxtBookingDuration-21562').value);
	var varBookingStartDateDay 			= parseInt(document.getElementById('idtxtBookingStartDateDay-21562').value);
	var varBookingStartDateMonth 		= parseInt(document.getElementById('idtxtBookingStartDateMonth-21562').value);
	var varBookingStartDateYear 		= parseInt(document.getElementById('idtxtBookingStartDateYear-21562').value);
	
	var varBookingStartDate 			= new Date(varBookingStartDateYear,(varBookingStartDateMonth-1),varBookingStartDateDay,00,00,00);
	var varCurrentDate		 			= new Date(2025,2,16,00,00,00);	
	var varMinDaysInAdvanceRental		= new Date(2025,2,16,00,00,00);		
	var varMinDaysInAdvanceTouring		= new Date(2025,2,16,00,00,00);		

	if(document.getElementById('idtxtBookingRentalTypeID-21562').value == ""){
		alert('Please select a booking type');
		document.getElementById('idtxtBookingRentalTypeID-21562').focus();
		return (false);
	}
	
	if (document.getElementById('idtxtBookingStartDateDay-21562').value == ""){
		fnOpenCalendar21562();
		alert('Please select your dates');
		return (false);  
	}
	
	if (document.getElementById('idtxtBookingStartDateMonth-21562').value == ""){
		fnOpenCalendar21562();
		alert('Please select your dates');
		return (false);  
	}
	
	if (document.getElementById('idtxtBookingStartDateYear-21562').value == ""){
		fnOpenCalendar21562();
		alert('Please select your dates');
		return (false);  
	}
		
	if(document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[0] == 1){
		try{
			if(document.getElementById('idtxtBookingRentalTypeID-21562').value.split(":")[1] != 5){
				if(!(Number(document.getElementById('idtxtBookingVehicleLength-21562').value))){
					alert('Please enter vehicle length');
					document.getElementById('idtxtBookingVehicleLength-21562').focus();
					return (false);
				}
			}
		}catch(e){}
		
		
		
		try{
			if(document.getElementById('idtxtBookingElectric-21562').value == "")
			{
				alert('Please select if you require electric');
				document.getElementById('idtxtBookingElectric-21562').focus();
				return (false);
			}
		}catch(e){}
		
		if (varBookingStartDate < varMinDaysInAdvanceTouring){
			alert('You must book at least 0 day(s) in advance.');
			return (false);
		}
	}
	else
	{
		if (varBookingStartDate < varMinDaysInAdvanceRental){
			alert('You must book at least 0 day(s) in advance.');
			return (false);
		}
	}  			
	
	if(document.getElementById('idtxtBookingDuration-21562').value == ""){
		alert('Please select a duration');
		document.getElementById('idtxtBookingDuration-21562').focus();
		return (false);
	}

	
			varAdultsString = " adult";
		
		
		if(document.getElementById('idtxtBookingAdults-21562').value < 1){
			fnOpenGuests21562();
			alert('Please select a minimum of 1' + varAdultsString);
			return (false);  
		}
		
		if(document.getElementById('idtxtBookingAdults-21562').value == 0){
			fnOpenGuests21562();
			alert('Please select at least 1 adult');
			return (false);  
		}

	
			varChildrenString = " children";		
		
		
		if(document.getElementById('idtxtBookingChildren-21562').value < 0){
			fnOpenGuests21562();
			alert('Please select a minimum of 0' + varChildrenString);
			return (false);  
		}
	
			varInfantString = " infants";		
		
		
		if(document.getElementById('idtxtBookingInfants-21562').value < 0){
			fnOpenGuests21562();
			alert('Please select a minimum of 0' + varInfantString);
			return (false);  
		}
	
			varPetString = " pets";		
		
		
		if(document.getElementById('idtxtBookingPets-21562').value < 0){
			fnOpenGuests21562();
			alert('Please select a minimum of 0' + varPetString);
			return (false);  
		}
	
	
	return (true);
}			

function GetLink221562(){
  if(typeof ga !== 'undefined' && typeof ga.getAll === 'function') {
    trackers = ga.getAll();
    if(trackers.length) {
      uaLinker = new window.gaplugins.Linker(trackers[0]);      
	  document.getElementById('frmCheckAvailability-21562').action = uaLinker.decorate(document.getElementById('frmCheckAvailability-21562').action);
    } 
  }
  //alert(document.getElementById('frmCheckAvailability-21562').action );
}

