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'];
}));