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 ? "€ " : "" ) + 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("€ " + total.total);
$("#cart-tax").html("€ " + 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;
}
}