HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/test.creativefellows.nl/vanlierop/js/app.js
Foundation.Abide.defaults.validators['min_checked_one'] = function($el, required, $parent) { 
	
	var $group 	= $parent.closest(".form-field-group")
	var $error  = $group.find(".form-error");
	
	var checked_options = $group.find('input:checkbox:checked').length;
	
	if( checked_options == 0){
		$error.addClass("is-visible");
		return false;
	}
	else{
		$error.removeClass("is-visible");
		return true;
	}
	
			
};

$(document).foundation().ready(function(){
	

	$(".form__inspectie").toggleFields();
		
	// accordeon	
	$(".slider-groups").doAccordeon();
	
	// vertical align middle	
	$('.vertical-align-columns-middle').verticalMiddle();
	
	// toggle navigation
	$(".toggle-navigation").toggleSearchNavigation();
	
	//showcases
	$('.vanlierop-diensten').slick({
	  	pauseOnHover:true,
		autoplay: true,
		autoplaySpeed: 4000,
		dots: true,
		infinite: true,
		speed: 500,
		fade: true,
		arrows: false,
		cssEase: 'linear'/*,
		customPaging: function(slick,index) {
            var text = slick.$slides.eq(index).find('h2').html()
            return '<div class="'+ text.replace(" ","").toLowerCase() +'">'+ text +'</div>';
		}*/		
	});
	
	$("#nieuwsberichten").browseNews();
	
	$('.multifileupload').each(function (id,element) {
		
		var progress_bar= $(this).attr("data-progress");
		var files		= $(this).attr("data-files");
		var uploadname	= $(this).attr("data-org-name");
		var form_btn	= $(this).closest(".form").find(".button");
		
		$(this).fileupload({
		    url: "uploadfiles",
		    dataType: 'json',
		    add: function (e, data) {
				
			    data.context = $('<p/>').text('Uploading...').appendTo(document.body);
				data.submit();
				form_btn.attr('disabled', true);
				
			},
		    done: function (e, data) {
				console.log($('#files-'+uploadname));
				$.each(data.result.files, function (index, file) {

					var link = $('<a>')
				  	.attr('target', '_blank')
				  	.prop('href', file.url)
					.prop('class',"pdf-link")
				  	.text(file.name);
					
					var inp = $('<input type="hidden" name="'+ uploadname +'[]">').attr("value",file.url);
				
					var del = $('<a>')
				  	.prop('class','delete-file')
					.prop('href', file.deleteUrl)
				  	.html("<i class='fa fa-trash'></i>");
				
					var span = $('<span class="file-row">').append(link).append(del).append(inp);		
					
					//console.log('#files-'+uploadname);
					$('#files-'+uploadname).append(span);
					
					// delete the file
					del.deleteFile();
				
	            });
				
		    },
			complete: function(){
				
				var activeUploads = $('#files').fileupload('active');
				if(activeUploads == 0) form_btn.attr('disabled', false);
				
			},
		    progressall: function (e, data) {
		        var progress = parseInt(data.loaded / data.total * 100, 10);
		        $('#'+ progress_bar +' .progress-meter').css(
		            'width',
		            progress + '%'
		        );
				
		    }
		}).prop('disabled', !$.support.fileInput)
		    .parent().addClass($.support.fileInput ? undefined : 'disabled');
		
	});
	

	var startDate;
    var endDate;

    var selectCurrentWeek = function() {
        window.setTimeout(function () {
            $('.calendar').find('.ui-datepicker-current-day a').addClass('ui-state-active')
        }, 1);
    }

    $('.calendar').datepicker( {
		minDate: "+7D",
        showOtherMonths: true,
        selectOtherMonths: true,
		beforeShowDay: $.datepicker.noWeekends,
        onSelect: function(dateText, inst) { 
            var date = $(this).datepicker('getDate');
			
            startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay()+1);
            endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 5);
			
            var dateFormat = inst.settings.dateFormat || $.datepicker._defaults.dateFormat;
          	
			var weekstart 	= $.datepicker.formatDate( dateFormat, startDate, inst.settings )
			var weekend 	= $.datepicker.formatDate( dateFormat, endDate, inst.settings )    
			
			$(this).val( weekstart+" tot "+ weekend );
			//$('#startDate').text();
            //$('#endDate').text();
        
            selectCurrentWeek();
        },
        onChangeMonthYear: function(year, month, inst) {
            selectCurrentWeek();
        }
    });

	$("#header").fixednav();
	
	// accept cookies
	$('#acceptCookie').on("click",function(event)
	{
		event.preventDefault();
		var cookies = $(this).closest(".cookies");
		$.ajax({
			type: 'POST',
			url: "accept-cookies",
			success: function (response) {
				$("#cookies").slideUp("fast");	
			}	
		});
	});
	
	$("#inspectie_postcode,#object_postcode").getAddress();
	
});


$.fn.getAddress = function(){
	
	return this.each(function(){

		var plugin 		= $(this);
		var city		= $(this).data("city-field");	
		var street		= $(this).data("street-field");
	
		plugin.init = function()
		{			
			plugin.blur(plugin.get);
		}	
		
		plugin.get = function(){
			var pc = $(this).val();
			$.ajax({
				url: "/vanlierop/postcode",
				method: "POST",
				data:{
					postcode: pc
				},
				success: function(data)
				{	

					$(city).val(data.city);
					$(street).val(data.street);
					
				}
			});
			
		}

	
	    plugin.init();	
		
	});
}



$.fn.toggleFields = function(){
	
	return this.each(function(){

		var plugin 		= $(this);
		
		var $toggler 	= $("#onderwerp_inspectie").find("input[type=checkbox]");
		
		plugin.settings = {
			0: $("#houtinsecten"),
			1: $("#epoxytechniek"),
			2: $("#zwamaantasting"),
			3: $("#vochtproblemen"),
			4: $("#bodemisolatie"),
		}
	
		plugin.init = function()
		{	
			//$hide.hide();
			
			$toggler.change( plugin.showGroups );
			
			$toggler.each(function(){
				
				var toggle = plugin.settings[ $(this).val() ];
				
				if( $(this).prop( "checked" ) ) toggle.removeClass("hide");
				else toggle.addClass("hide");
				
			});
			
		}	
		
		plugin.showGroups = function()
		{
	
			var toggle = plugin.settings[ $(this).val() ];

			if( $(this).prop( "checked" ) ) toggle.removeClass("hide");
			else toggle.addClass("hide");

		}
		
		plugin.toggleName = function(string)
		{
			return string.replace(/\s+/g, '_').toLowerCase();
		}
	
	
	    plugin.init();	
		
	});
}


/*
 * Do slider
 */
$.fn.doAccordeon = function()
{
	var $this = $(this);		
	
	var group_headers 	= $this.find("h4");
	var hidden 			= $this.find(".hidden-content");
//	var sub_headers 	= hidden.find("h4");
	
	hidden.hide().addClass("inited");
		
	group_headers.on("click",function(event){

		var group 	= $(this).closest(".group");
		var content = group.children(".hidden-content");
		
		group.toggleClass("open");
		content.slideToggle("fast");

	});
	
/*	sub_headers.on("click",function(event){

		var content	= $(this).next(".hidden-content");
		var group 	= $(this).closest(".group");
		
		$(this).toggleClass("open");
		
		group.toggleClass("open");
		content.slideToggle("fast");

	});*/

}

/* 
 * Delete file
 */
$.fn.deleteFile  = function()
{
	
	$(this).click(function(event){
		
		event.preventDefault();
			
		var $link = $(this);
		var req = $.ajax({
			dataType: 'json',
			url: $(this).attr("href"),
			data:{
				test : "test"
			},
			type: 'DELETE',
			success: function(){
				$link.closest('span').remove();
			}
		});
		
	});
}
	
	
/* 
 * news browser
 */
$.fn.browseNews = function()
{
	var timer 		= null;
	var duration 	= 4000;
	var effectspeed = 500;
	var items		= $(this).find("li");
	var total		= items.length;
	var counter		= 0;
	var current_item= items[counter];
	var next_item	= items[counter+1];

	doTimer();
		
	function doTimer()
	{
		timer = setTimeout(showItem,duration);		
	}

	function showItem()
	{
		$(current_item).fadeOut(effectspeed);
		$(next_item).delay(effectspeed).fadeIn(effectspeed);
		
		counter++;
		if(counter == total) counter = 0;
		
		setTimeout(function(){
			current_item	= next_item;
			next_item		= items[counter];
			doTimer();			
		},effectspeed);
		
	}

}


$.fn.verticalMiddle = function(){
	
	var row = $(this);
	var columns = row.find(".columns");
		
	row.height( row.height() );	
		
	$(window).resize(function() {
		$('.vertical-align-columns-middle').css('height','auto');
		row.height( row.height() );	
	});
	
	setTimeout(function(){
	
		columns.each(function(){
		
			if( !$(this).hasClass("no-vertical-align") ){
				$(this).addClass("vertical-align-middle");
			};
	
		});
		
	},500);
	

	
}


/*
 * fixed navigation
 */
$.fn.fixednav = function(){
	
	var shrinkHeader = 48;
	$(window).scroll(function() {
		var scroll = getCurrentScroll();
		if(scroll >= shrinkHeader)
		{
			$('#header').addClass('with-background');
		//	$('.header-spacer').addClass('shrink');
			
		}
		else
		{
			$('#header').removeClass('with-background');
		//	$('.header-spacer').removeClass('shrink');
		}
	});
	function getCurrentScroll() {
    	return window.pageYOffset;
    }
	
	function checkScrollPosition(){
		var scroll = getCurrentScroll();
		if(scroll >= shrinkHeader)
		{
			$('#header').addClass('with-background');
			//$('.header-spacer').addClass('shrink');
			
		}
	}
	
	checkScrollPosition();	
	
}


/*
 * show video on click
 */
$.fn.showVideo = function()
{
	$(this).on("click",function(){
		
		var el 		= $(this)
		var options = {};
		var video 	= el.attr("data-video");
		var wrapper = $("#gmb-video").find(".video-iframe");
		

		wrapper.attr("src",video);
		
		var elem 	= new Foundation.Reveal( $("#gmb-video"),{"speed":500});
		elem.open();
		
	});
}


/*
 * toggle navigation
 */
$.fn.toggleSearchNavigation = function()
{
	var shadeout	= null; 
	var fadeDelay 	= 500; 
	var menu_el		= new Foundation.ResponsiveToggle('.toggle-menu');
	var toggle_nav	= $(this);
	
	var close_search	= $('.close-search');
	var search 			= $('#search-products');
	
	$(this).on("click",function(event) 
	{	
		// toggle open class
		$(this).toggleClass('open');
		$("#header").toggleClass('open');
		
		// create mask element if not exists
		if( $(".shade-out").length == 0 ) createShadeOut();
		
		// open
		if( !$(this).hasClass("open") )
		{
			// hide shade-out
			shadeout.removeClass("is-open").delay(fadeDelay).fadeOut("fast");	
		}
		else
		{	
			// show shade-out
			shadeout.addClass("is-open").hide().fadeIn("fast");	
		}
					
	});
	
	$(".toggle-search").on("click",function(event) 
	{	
		
		$("#header").toggleClass('navigation-open');
		setTimeout(function(){
			$("#q").focus();			
		},500);
		
	});
	
	$('.close-search').on("click",function(event)
	{	
	
		$("#header").toggleClass('navigation-open');
		
	});
	
	var createShadeOut = function()
	{
		shadeout = $('<div class="shade-out"></div>').hide();
		shadeout.insertAfter("#header");
		shadeout.on("click",function(event)
		{	
			// fade shade
			hideShadeOut();
			
			// close menu
			menu_el.toggleMenu('close');
			
			//	
			toggle_nav.toggleClass('open');
			
		});	
	}
	
	var hideShadeOut = function()
	{
		// hide shade-out
		shadeout.removeClass("is-open").delay(fadeDelay).fadeOut("fast");				
	}
	
}

function toggleNav(event){
	Event.stop(event);
	var el = event.element();
	el.toggleClassName("open");
	
	if($("main-navigation-list").hasClassName("hide-on-mobile")){
		$("main-navigation-list").removeClassName("hide-on-mobile");
	}
	else{
		$("main-navigation-list").addClassName("hide-on-mobile");
	}
}

var globalTimer;
var loadedVideo 	= [];

function onYouTubeIframeAPIReady() {
	
	$(".youtube").each(function(){
	
		// add play button
		var circle = $("<div>").addClass("play");  
		$(this).append(circle);
		
		
		
		$(this).on("click",function(event){
			
			// video id
			var video_id 		= $(this).attr("id");
			var video_wrapper 	= $(this).next();
			
			//video_wrapper.hide();
		
			loadedVideo[video_id] = new YT.Player( video_wrapper.attr("id"), {
				width: '700',
				height: '394',
				videoId: video_id,
		        playerVars: { 'rel': 0, 'color': 'white','controls':0,'showinfo':0,'autohide':1, 'autoplay':1 },
				events: {
					'onReady': onPlayerReady,
					'onStateChange': onPlayerStateChange
				}
			});
			
			$(this).hide();
			
			//wrapper.show();
			loadedVideo[video_id].playVideo();	

			
		});
		
	});
	/*
	$(".youtube").on("click",function(event){
		
		event.preventDefault();
		
		// hide poster image
		$(this).hide();
		
		// stop showcase timer
		clearInterval(globalTimer);
		globalTimer = null;
		
	});*/
		

}

function onPlayerReady(){
	//console.log("ready");
}

var done = false;

function onPlayerStateChange(event){
	
		
	if(event.data === 0) {          		
		console.log("done");
		loadedVideo.f.previous().show();
		
		// remove video
		loadedVideo.destroy();
		
	}
	if(event.data === 2){
		console.log("pause");
	}
}

function stopVideo() {
	player.stopVideo();
}


function preloadYoutube(){
	var videos = document.getElementsByClassName("youtube"); 

	for (var i=0; i<videos.length; i++) {

	  var youtube = videos[i];

	  // Based on the YouTube ID, we can easily find the thumbnail image
	//  var img = document.createElement("img");
	  //img.setAttribute("src", "http://i.ytimg.com/vi/" 
	    //                      + youtube.id + "/hqdefault.jpg");
	  //img.setAttribute("class", "thumb");


	  // Overlay the Play icon to make it look like a video player
	  var circle = document.createElement("div");
	  circle.setAttribute("class","play");  

	  //youtube.appendChild(img);
	  youtube.appendChild(circle);

	  // Attach an onclick event to the YouTube Thumbnail
	  youtube.onclick = function() {

		clearInterval(globalTimer);
		globalTimer = null;
			
	    // Create an iFrame with autoplay set to true
	    var iframe = document.createElement("iframe");
	    iframe.setAttribute("src",
	          "https://www.youtube.com/embed/" + this.id 
	        + "?rel=0&color=white&controls=0&showinfo=0&autohide=1&autoplay=1"); 

	    // The height and width of the iFrame should be the same as parent
	    iframe.style.width  = this.style.width;
	    iframe.style.height = this.style.height;
		iframe.style.border = 0;
	    // Replace the YouTube thumbnail with YouTube HTML5 Player
	    this.parentNode.replaceChild(iframe, this);

	  }; 
	}
	
}


// datepicker settings
(function( factory ) {
	if ( typeof define === "function" && define.amd ) {

		// AMD. Register as an anonymous module.
		define([ "../jquery.ui.datepicker" ], factory );
	} else {

		// Browser globals
		factory( jQuery.datepicker );
	}
}(function( datepicker ) {
	datepicker.regional['nl'] = {
		closeText: 'Sluiten',
		prevText: 'Vorige',
		nextText: 'Volgende',
		currentText: 'vandaag',
		monthNames: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni','Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
		monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
		dayNamesShort: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
		dayNamesMin: ['z','m','d','w','d','v','z'],
		weekHeader: 'Week',
		dateFormat: 'dd-mm-yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	datepicker.setDefaults(datepicker.regional['nl']);

	return datepicker.regional['nl'];

}));