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/tekenmappen/public/js/app.js
$(document).foundation().ready(function(){
	
	$(".toggle-navigation").toggleSearchNavigation();
	
	$("#header").fixednav();
	
	
	$('#acceptCookie').on("click",function(event)
	{
		event.preventDefault();

		var cookies = $(this).closest(".cookies");
		
		$.ajax({
			type: 'POST',
			url: "accept-cookies",
			success: function (response) {
				$("#cookies").slideUp("fast");	
			}	
		});
	});
	
	// open external links in new window
	$(document.links).filter(function() {
	  return this.hostname != window.location.hostname;
	}).attr('target', '_blank');
	
		
	$(".form-response").checkIsSent();
	
	var showcase = $('.image-showcase').slick({
	  	pauseOnHover:true,
		autoplay: true,
		autoplaySpeed: 4000,
		dots: false,
		infinite: true,
		speed: 500,
		fade: true,
		cssEase: 'linear',
		arrows: true		
	});
	
	//$("img").showAltDescription();
	
	$(".fake-input").fakeInput();
	
	$(".shopping-cart").shoppingCart();	
	
	$(".check-product").validateSelection();

	
});

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

		var button = $(this);
		var missed = false;
		
		button.init = function()
		{	
			
			button.on("click",button.checkColor);
			
			
		}
		
		button.checkColor = function(){
			
			var check_el = $(this).attr("data-select");
			var feedback = $("#"+ check_el ).attr("data-msg");

			
			missed = $("#"+ check_el ).val() == 0 ? true : false;
			
			if(missed == true){

				if($("#orderfeedback").length === 0)
				{
					var msg = $('<p id="orderfeedback"></p>');
					button.after(msg);	
				}
			
				$("#orderfeedback").html(feedback).show();
			
				setTimeout(function(){
					$("#orderfeedback").fadeOut("fast");
				},5000)
			
				return false;
		
			}	
		}
		
		// init 
	    button.init();
		
	});
	
}


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

		var cart		= $(this);
		var removeItem  = cart.find("a.delete");
		var amounts		= cart.find("select.change-amount");
		
		cart.init = function()
		{	
			
			removeItem.on("click",cart.removeFromBasket);
			amounts.on("change",cart.updateAmount);
			
		}
		
		
		cart.updateAmount = function()
		{
			var row 	= $(this).closest(".item");
			var uid		= cart.getUid( $(this) );
			var price	= cart.getPrice( $(this) );
			var amount 	= $(this).val();
			
			$.ajax({
			    dataType: "json",
				type: 'PATCH',
			    url: "winkelwagen",
			    data: {
			    	uid: uid,
					amount: amount
			    },
			    success: function(json)
				{				
					cart.updateTotals(json);
					cart.updateRow(row,amount,price);
			    }
			});
		
		}
		
		cart.updateRow = function(row,amount,price)
		{
			row.find(".product-total").html( cart.formatPrice((amount * price)) );
		}
		
		
		cart.formatPrice = function(number,sign)
		{
			return (sign === true ? "&euro; " : "" ) + number.toFixed(2).replace(".",",");
		}
		
		cart.getUid = function(element)
		{
			return element.closest(".item").attr("data-uid");
		}
		
		
		cart.getPrice = function(element)
		{
			return element.closest(".item").attr("data-price");
			
		}
		
		
		cart.removeFromBasket = function()
		{
			var product = $(this)
			var uid 	= product.attr("data-id");
			
			$.ajax({
			    dataType: "json",
				type: 'DELETE',
			    url: "winkelwagen",
			    data: {
			    	uid: uid
			    },
			    success: function(json)
				{				
					cart.deleteRow(product);
					cart.updateTotals(json);
			    }
			});
			
		}
		
		
		cart.updateTotals = function(total)
		{
						
			$("#cart-subtotal").text(total.subtotal);
			$("#cart-delivery").text(total.delivery);
			$("#cart-total").html("&euro; " + total.total);
			$("#cart-tax").html("&euro; " + total.tax);
			
		}
		
		
		cart.deleteRow = function(product)
		{
			product.closest(".item").slideUp();
		}
		
				
		// init the plugin
	    cart.init();
		
		
	});
}


$.fn.fakeInput = function()
{
	var clickcount 	= null;
	var maxcount	= 1;
	var clicked_el 	= null
	var chosen		= false;
	
	$(".fake-input").on("click",function(event){
		event.preventDefault();
	
		var clicked 	= $(this);
		var dropdown	= $(this).next();
		var par			= $(this).parent();
		clicked_el 		= dropdown;
		maxcount		= $(this).attr("data-select");

		par.toggleClass("active");
		dropdown.toggleClass("hidden");
	
		// hide open selects
		$(".fake-input-values").not(dropdown).addClass("hidden");
		
	});	

	$("a.option").on("click",function(event){
	
		event.preventDefault();
	
		var label	= $(this).text();
		var img		= $(this).find("img").attr('src');
		var input	= $(this).attr('data-input');
		var insert	= $(this).attr('data-return');

		// update label
		$("#"+insert).html(label);

		// set hidden input value
		$("#"+input).val(label);	
		
		$("img.material").attr("src",img);

		// hide deopdowns
		$(".fake-input-values").addClass("hidden");	
	
	
		$("#article_img").val( $(this).find("img").attr("src") );
	
	});
	
}


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

		var plugin 		= $(this);
		var img_wrapper	= $('<figure class="image-border"></figure>');


		plugin.init = function()
		{	
			//var img = plugin.clone();
			if(!plugin.getAltText()) return;
			
			//plugin.wrap(img_wrapper);
			plugin.parent().after("<div class=\"img-caption\"><figcaption>"+ plugin.getAltText() +"</figcaption></div>");
		}
		
	
		plugin.getAltText = function(){
			return plugin.attr("alt");
		}
			
		// init the plugin
	    plugin.init();
		
		
	});
}


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

		var form	= $(this);
		
		
		form.init = function()
		{	
			var s 	= form.getUrlParameter("s");
			var id 	= form.getUrlParameter("id");
			var h 	= form.getUrlParameter("h");
			
			if(s == 1)
			{	

				$('html, body').animate({
					scrollTop: form.offset().top -200
				}, 1000);
									
			}

		}
		
		
		form.getUrlParameter = function(sParam){
			
		    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
		        sURLVariables = sPageURL.split('&'),
		        sParameterName,
		        i;

		    for (i = 0; i < sURLVariables.length; i++) {
		        sParameterName = sURLVariables[i].split('=');

		        if (sParameterName[0] === sParam) {
		            return sParameterName[1] === undefined ? true : sParameterName[1];
		        }
		    }
			
		};
				
		// init the plugin
	    form.init();
		
		
	});
}


/*
 * fixed navigation
 */
$.fn.fixednav = function(){
	
	var shrinkHeader 	= $('#header').height();
	var lastScrollTop	 = 0;
	
	$(window).scroll(function() {

		var scrollYpos = getCurrentScroll();

		if(scrollYpos >= shrinkHeader) $('#header').addClass('has-scrolled');
		else $('#header').removeClass('has-scrolled');
		
		// scrolling up
		if (scrollYpos < lastScrollTop) $('#header').removeClass('has-scrolled');
		 
		// set scroll pos
		lastScrollTop =  scrollYpos;
		
	});
	
	function getCurrentScroll()
	{
    	return window.pageYOffset;
    }
	
	function checkScrollPosition()
	{
		var scroll = getCurrentScroll();
		if(scroll >= shrinkHeader) $('#header').addClass('has-scrolled');
	}
	
	checkScrollPosition();	
	
}


/*
 * toggle navigation
 */
$.fn.toggleSearchNavigation = function()
{
	var shadeout		= null; 
	var fadeDelay 		= 500; 
	var menu_el			= new Foundation.ResponsiveToggle('.toggle-menu');
	var toggle_nav		= $(this);
	var navcopied		= false;
	
	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");	
		}
		
		// copy nav
		if( navcopied == false ) copyNav();
		else deleteNav();
					
	});
	
	$(".toggle-search").on("click",function(event) 
	{	
		
		$("#header").toggleClass('navigation-open');
		
		if($("#header").hasClass('navigation-open')){
			setTimeout(function(){
				$("#q").focus();
			},100)

		}
			
	});
	
	$('.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");				
	}
	
	var copyNav = function()
	{
		//var html = $('<li class="hide-for-large"><a href="agenda">Evenementenkalender</a></li>\
		//				<li class="hide-for-large"><a href="bezoekersinformatie">Bezoekersinformatie</a></li>\
		//				<li class="hide-for-large"><a href="tel:+31307210601" class="show-inline"><i class="fal fa-phone" aria-hidden="true"></i></a> <a href="mailto:info@slotzeist.nl" class="show-inline"><i class="fal fa-envelope"></i></a></li>');
		
		if( navcopied == false )
		{	
		//	html.insertBefore( $("#search-site") );
			navcopied = true;
		}
	}
	
	var deleteNav = function()
	{
		// delete inserted navs
		//$(".sub-items").remove();
		///navcopied = false; 	
	}
	
}