jQuery(document).ready(function ($) {
	var base_path = Drupal.settings.basePath;
	// Window Scroll Behaviour
	//--------------------------------------------------------------------------
	window.onscroll = function () {
		scrollFunction();
	};

	function scrollFunction() {
		var scroll = $(window).scrollTop();
		// Reduce size Of Header on Scroll
		if (scroll >= 200) {
			$("#header-wrap").addClass("scroll");
		} else if ($("#header-wrap").hasClass("scroll") && scroll <= 100) {
			$("#header-wrap").removeClass("scroll");
		}
	}

	// Datepicker
	//--------------------------------------------------------------------------
	if ($(".datepicker").length) {
		$('.datepicker').datepicker({
			dateFormat: 'dd M yy',
			minDate: 0,
			onSelect: function (date) {
				if($(this).attr('name') === 'available_from'){
					var minNights = 1; // Set Global Minimum Nights
					var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
						"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
					console.log($(this).attr('name') + ' ' + date);
					var d = new Date(date);
					d.setDate(d.getDate() + minNights);
					minStay = d.getDate() + " " + monthNames[d.getMonth()] + " " + d.getFullYear();
					console.log("available_to " + minStay);
					$('.departure .datepicker').datepicker('option', 'minDate', minStay);
				} else {
					console.log($(this).attr('name') + ' ' + date);
				}
			}
		});
	}

	if($('#mobile-available-from').length) {
		var today = new Date();
		var month = ((today.getMonth()+1) < 10 ? '0' : '') + (today.getMonth()+1);
		var day = ((today.getDate()) < 10 ? '0' : '') + (today.getDate());
		var mindate = today.getFullYear()+'-'+month+'-'+day;
		var maxdate = (today.getFullYear()+2)+'-'+month+'-'+day;
		$('#mobile-available-from').attr('min', mindate);
		$('#mobile-available-to').attr('min', mindate);
		$('#mobile-available-from').attr('max', maxdate);
		$('#mobile-available-to').attr('max', maxdate);
	}
	$('#mobile-available-from').blur(function() {
		if ($("#mobile-available-from").val() < today){
			$("#mobile-available-from").val() = today;
		}
		$('#mobile-available-to').attr('min', $("#mobile-available-from").val());
		if ($("#mobile-available-to").val() < $("#mobile-available-from").val()) {
			$('#mobile-available-to').val($("#mobile-available-from").val());
		}
	});

	// Youtube Resize Script
	//--------------------------------------------------------------------------

	if ($(".tv").length) {
		function vidRescale() {
			var w = $(window).width(),
				h = $(".tv").height();
			if (w / h > 16 / 9) {
				$('.tv .screen').css({'left': '0px'});
			} else {
				console.log($('.tv .screen').outerWidth());
				$('.tv .screen').css({'left': -($('.tv .screen').outerWidth() - w) / 2});
			}
			vidRescaleAgain(w, h);
		}

		$(window).on('load', function () {
			setTimeout(function() {
				console.log('Resize on Load');
				var w = $(window).width(), h = $(".tv").height();
				vidRescaleAgain(w, h);
				vidRescale();
				$('.tv .screen').addClass('active');
			}, 1000);

		});

		$(window).on('resize', function () {
			vidRescale();
		});
	}

	// Check Availability Form
	//--------------------------------------------------------------------------
	$('.check_availability #park').change(function () {
		console.log("Park Selected");
		var park_name = $('#check_availability #park option[value="' + $(this).val() + '"]').text();
		$('.check_availability').attr('action', $(this).val());
		$('.check_availability #force_category_id option').each(function () {
			if ($(this).text() !== '- Please Select -')
				$('.check_availability #hidden_categories').append($(this).detach());
		});
		$('.check_availability #hidden_categories option').each(function () {
			if ($(this).attr('data-park') == park_name)
				$('.check_availability #force_category_id').append($(this).detach());
		});
	});
	$('.check_availability #park').trigger('change');

	// Activate mMenu
	//--------------------------------------------------------------------------
	if ($("#main-menu .content").length){
		var $menu = $("#main-menu .content").mmenu({
			//   options
			"extensions": [
				"pagedim-black", // Dims the Page when menu is open
				"position-right", // Puts the menu on the right as opposed to the the left, remove for left menu
				"theme-dark", // Sellects dark theme, remove for light theme
				"shadow-page", // Adds shadow for depth
				"shadow-panels" // Adds shadow for depth
			],
			"iconPanels": true
		}, {
			// configuration
			clone: true // This makes a copy of the menu inside the mHead object while leaving the original in its place
		});
		var $icon = $("#my-icon");
		var API = $menu.data("mmenu");

		$icon.on("click", function () {
			API.open();
		});

		API.bind("open:finish", function () {
			setTimeout(function () {
				$icon.addClass("is-active");
			}, 100);
		});
		API.bind("close:finish", function () {
			setTimeout(function () {
				$icon.removeClass("is-active");
			}, 100);
		});
	}
	// Activate mHead (Sticky Mobile Header Section)
	//--------------------------------------------------------------------------
	if ($("#my-header").length){
		$("#my-header").mhead({
			// options
			hide: 200,
			show: 20,
			tolerance: 5,
			menu: "#main-menu .content",
			animation: "spin"
		});
	}


	// Activate ScrollReveal
	//--------------------------------------------------------------------------
	// window.sr = ScrollReveal({duration: 1000});
	// sr.reveal('.scrollRevealOne', 200);
	// sr.reveal('.scrollRevealTwo', 200);
	// sr.reveal('.scrollRevealThree', 200);
	// sr.reveal('.scrollRevealFour', 200);
	// Initialise wow.js
	//--------------------------------------------------------------------------
	new WOW().init();

	// Social Share Bar on BLog Pages
	//--------------------------------------------------------------------------
	if ($("#share").length){
		$("#share").jsSocials({
			shares: ["facebook", "twitter", "linkedin", "pinterest", "email"]
		});
	}
	// Initialize MatchHeight
	//--------------------------------------------------------------------------
	if ($(".matchHeight").length){
		$(".matchHeight").matchHeight();
	}

	$('.ajax_click').click(function(e) {
		e.preventDefault();
		console.log($(this).attr('href').split('?')[1]+'&get_url=1');
		$(this).append('  <i class="fas fa-spin fa-circle-notch"></i>');
		$.ajax({
			type: 'GET',
			url: base_path+'ajax_functions.php',
			data: $(this).attr('href').split('?')[1]+'&get_url=1',
			dataType: 'json',
			success: function(response) {
				window.location.href = response.booking_url;
			},
			error: function(xhr, status, error_thrown) {
				console.log(xhr);
				console.log(status);
				console.log(error_thrown);
			}
		});
	});

	$('.ttd-slick').slick({
		slidesToShow: 1,
		slidesToScroll: 1,
		arrows: true,
		dots: false,
		fade: true
	});

	$('.cta-container .view-content').slick({
		slidesToShow: 1,
		slidesToScroll: 1,
		arrows: false,
		dots: false,
		fade: true
	});

	$('.cta-container .slick-prev').click(function(e){ 
	//e.preventDefault(); 
	$('.cta-container .view-content').slick('slickPrev');
	} );

	$('.cta-container .slick-next').click(function(e){
	//e.preventDefault(); 
	$('.cta-container .view-content').slick('slickNext');
	} ); 

	if($('.cta-container .view-content').length > 0) {
		let getSlick = $('.cta-container .view-content').slick('getSlick')['$slides']['length'];
		if(getSlick < 2) {
			$('.cta-container .slick-prev, .cta-container .slick-next').hide();
		}
	}

	if($(window).width() <= 991){
		$('.blog-list-slick').slick({
			dots: false,
			arrows: false,
			infinite: false,
			speed: 300,
			slidesToShow: 4,
			slidesToScroll: 4,
			responsive: [
				{
					breakpoint: 1920,
					settings: "unslick"
				},
				{
					breakpoint: 991,
					settings: {
						slidesToShow: 1,
						slidesToScroll: 1,
						infinite: true,
						dots: true
					}
				}
				// You can unslick at a given breakpoint now by adding:
				// settings: "unslick"
				// instead of a settings object
			]
		});
	}

	// Initialize Slick Sliders
	//--------------------------------------------------------------------------

	$('#slick-affiliates').slick({
		infinite: true,
		slidesToShow: 3,
		slidesToScroll: 1,
		autoplay: false,
		arrows:true,
		responsive: [
			{
				breakpoint: 1200,
				settings: {
					slidesToShow: 2,
					arrows:false,
					dots:true
				}
			},
			{
				breakpoint: 768,
				settings: {
					slidesToShow:1,
					arrows:false,
					dots:true
				}
			}
		]
	});

	$('.slick-facilities').slick({
		infinite: true,
		slidesToShow: 4,
		slidesToScroll: 1,
		autoplay: true,
		arrows:true,
		responsive: [
			{
				breakpoint: 1200,
				settings: {
					slidesToShow: 3,
					arrows:false,
					dots:true
				}
			},
			{
				breakpoint: 768,
				settings: {
					slidesToShow:2,
					arrows:false,
					dots:true
				}
			},
			{
				breakpoint: 579,
				settings: {
					slidesToShow:1,
					arrows:false,
					dots:true
				}
			}
		]
	});

	// Homepage Map Block
	//--------------------------------------------------------------------------
	window['markers'] = [];
	$(window).on('load', function() {
		if (typeof parks != 'undefined' && parks.length) {
			var map = new google.maps.Map(document.getElementById('google-map'), {
                                zoom: 7,
                                center: {lat: -36.834723, lng: 144.930568},
                                styles : [{
                                        "featureType" : "water",
                                        "elementType" : "geometry",
                                        "stylers" : [{
                                                "color" : "#69cbf8"
                                        }, {
                                                "lightness" : 17
                                        }]
                                }, {
                                        "featureType" : "landscape",
                                        "elementType" : "geometry",
                                        "stylers" : [{
                                                "color" : "#f3eddf"
                                        }, {
                                                "lightness" : 20
                                        }]
                                }]
                        });
			var infoWindow = new google.maps.InfoWindow({
	                        content: '',
        	                maxWidth: 290
                	});
			$.each(parks, function() {
				var parkicon = {
                                        url: this.iconpath, // url
                                        scaledSize: new google.maps.Size(200, 40), // scaled size
                                        origin: new google.maps.Point(0,0), // origin
                                        anchor: new google.maps.Point(20, 20) // anchor
                                };
				var longitude = this.longitude;
				if(this.park == 'Phillip Island Park Lane Holiday Park') {
					console.log(this.park);
					console.log(parseFloat(this.longitude) - 10);
					longitude = parseFloat(this.longitude) - 1.6;
				}
				var marker = new google.maps.Marker({
                                        position: new google.maps.LatLng(this.latitude,longitude),
                                        map: map,
                                        animation: google.maps.Animation.DROP,
                                        title: this.park,
                                        icon: parkicon,
                                        draggable: false,
                                        windowContent: '<div class="content">'+
                                                '<a href="'+this.url+'">'+
                                                '<h2 style="color:'+this.color+'">'+this.park+'</h2></a>'+
                                                '<p>'+this.address+'<br/><b>'+this.phone+'</b><br/>Distance from Melbourne CBD: '+this.distance+'</p>'+
                                                '<a href="'+this.url+'" class="button" style="background:'+this.color+'; border-color:'+this.color+';">View Park</a>'+
                                        '</div>'
                                });
				
				google.maps.event.addListener(marker, 'click', function() {
                                        infoWindow.setContent(marker.windowContent);
                                        infoWindow.open(map, this);
                                });

			});
		}
	});

	// Contact Page Map Block
	//--------------------------------------------------------------------------
	function single_map_initialize() {
		if (typeof google !== 'undefined') {
			var myLatlng = new google.maps.LatLng(contactLatitude, contactLongitude);
			var mapOptions = {
				zoom: 16,
				center: myLatlng,
				mapTypeId: google.maps.MapTypeId.ROADMAP,
				scrollwheel: false
			};
			var marker = new google.maps.Marker({
				position: myLatlng,
				title: contactTitle
			});
			if (document.getElementById('contact-map')) {
				var map = new google.maps.Map(document.getElementById('contact-map'), mapOptions);
				marker.setMap(map);
			}
		}
	}

	function multi_map_initialize() {
		if (typeof google !== 'undefined') {
			var multiMapCenter = new google.maps.LatLng(-37.542472, 145.074058);
			var multiMapOptions = {
				zoom: 7,
				center: multiMapCenter,
				mapTypeId: google.maps.MapTypeId.ROADMAP,
				scrollwheel: false
			};
			var multiMap = new google.maps.Map(document.getElementById('contact-map-multi'), multiMapOptions);

			$.each(contactParks, function() {
				var marker = new google.maps.Marker({
					position: new google.maps.LatLng(this.latitude,this.longitude),
					title: this.title,
					map: multiMap,
					animation: google.maps.Animation.DROP
				});
				marker.setMap(multiMap);
			});
		}
	}

	if ($('#contact-map').length) {
		single_map_initialize();
	}

	if (document.getElementById('contact-map-multi')) {
		multi_map_initialize();
	}
});




