File: /var/www/vhosts/creativefellows.nl/kjs.creativefellows.nl/public/js/app.js
$(document).foundation().ready(function(){
// toggle navigation
$("#header .toggle-navigation").toggleSearchNavigation();
// open external links in new window
$(document.links).filter(function() {
return this.hostname != window.location.hostname;
}).attr('target', '_blank');
// cookie accept
$('#acceptCookie').on("click",function(event)
{
event.preventDefault();
var cookies = $(this).closest(".cookies");
$.ajax({
type: 'POST',
url: "/accept-cookies",
success: function (response) {
$("#cookies").slideUp("fast");
}
});
});
// check form response
$(".form-response").checkIsSent();
// fixed navigation
$("#header").fixednav();
$(".row-default .cell, .image-impression img").each(function(i, el) {
if(!$(el).hasClass("no-transition")){
if ($(el).visible(true)) {
$(el).addClass("already-visible");
}
}
});
$(window).scroll(function(event) {
$(".row-default .cell, .image-impression img").each(function(i, el){
if(!$(el).hasClass("no-transition")){
if ($(el).visible(true)) {
$(el).addClass("come-in");
}
}
});
});
googleMaps();
});
/*
* check if item is visible and on screen
*/
$.fn.visible = function(partial) {
var $t = $(this),
$w = $(window),
viewTop = $w.scrollTop(),
viewBottom = viewTop + $w.height(),
_top = $t.offset().top,
_bottom = _top + $t.height(),
compareTop = partial === true ? _bottom : _top,
compareBottom = partial === true ? _top : _bottom;
return ((compareBottom <= viewBottom) && (compareTop >= viewTop));
};
/*
* check if a form has been submitted
*/
$.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();
});
}
/*
* 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('navigation-open');
// create mask element if not exists
if( $(".shade-out").length == 0 ) createShadeOut();
else shadeout = $(".shade-out");
// hide shade-out
if( !$(this).hasClass("open") )shadeout.removeClass("is-open").fadeOut(1000);//.removeClass("white");
// show shade-out
else shadeout.addClass("is-open").hide().fadeIn("fast");//.addClass("white");
// copy nav
//if( navcopied == false ) copyNav();
//else deleteNav();
// stop sublinks
$("#responsive-menu > ul a").each(function(){
$(this).click(function(event){
$(this).toggleClass("is-active");
});
});
});
$(".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");
stopVideo(loaded_video_id);
}
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;
}
}
/*
* Navigation
*/
$.fn.fixednav = function(){
var shrinkHeader = $('#header').height();
var lastScrollTop = 0;
var elements = $('#header, .sticky-subnavigation');
$(window).scroll(function() {
//console.log($('#header').height());
var scrollYpos = getCurrentScroll();
if(scrollYpos >= shrinkHeader) elements.addClass('has-scrolled');
else elements.removeClass('has-scrolled');
// set scroll pos
lastScrollTop = scrollYpos;
});
function getCurrentScroll()
{
return window.pageYOffset;
}
function checkScrollPosition()
{
var scroll = getCurrentScroll();
if(scroll >= shrinkHeader) elements.addClass('has-scrolled');
}
checkScrollPosition();
}
var map;
var companyImage;
var companyMarker;
var markers = [];
var panorama;
var bounds;
var activeMarker = null;
var markerImage = null;
function googleMaps(){
// return if no map
if(!$("#school-locator").length ) return;
// get school locations
$.ajax({
url: "/locations" + filterLocation(),
method: "GET",
success: function(locations){
if(locations) mapLocations(locations);
}
});
}
function filterLocation()
{
return $("#school-locator").attr("data-filter");//.replace(/[^0-9\.]/g,'');
}
function mapLocations(locations)
{
var styles = [{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#e3edc5"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#dde6e8"},{"visibility":"on"}]}];
var lat_total = 0;
var long_total = 0;
var map_zoom = 12;
$.each( locations, function( i, location ) {
lat_total += location.lat;
long_total += location.long;
});
var lat_avg = (lat_total / locations.length);
var lng_avg = (long_total / locations.length);
if(lat_total == 0) var lat_avg = 52.1365119;
if(long_total == 0) var lng_avg = 4.6520323;
bounds = new google.maps.LatLngBounds();
// Google Map
var settings = {
zoom: map_zoom,
center: new google.maps.LatLng(lat_avg, lng_avg),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
scrollwheel: false,
draggable: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: false,
navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: styles,
};
map = new google.maps.Map(document.getElementById("school-locator"), settings);
google.maps.event.addDomListener(window, "resize", function()
{
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
$("#school-locator").append('<div class="location-info" id="location-details" style="display:none;"></div>');
// place default markers
$.each( locations, function( i, location ) {
var marker = addMarker(location.lat, location.long, location.name, location.intro, location.link, location.image,$("#school-locator").attr("data-themecolor"), i * 150, bounds,locations.length,i+1);
});
}
var activeMarker = null;
var markerImage = null;
function addMarker(latitude,longitude,name,intro,link,image,color,timeout,bounds,items_total,counter){
window.setTimeout(function() {
var url = 'https://www.google.nl/maps/vt/icon/name=assets/icons/poi/tactile/pinlet_shadow_v3-2-medium.png,assets/icons/poi/tactile/pinlet_outline_v3-2-medium.png,assets/icons/poi/tactile/pinlet_v3-2-medium.png&highlight=ff000000,ffffff,'+ color +',ffffff?scale=1.25';
var position = new google.maps.LatLng(latitude,longitude);
var background_img = new google.maps.MarkerImage(url);
var icon = {
path:
"M12,2A7,7,0,0,0,5,9c0,5.25,7,13,7,13s7-7.75,7-13A7,7,0,0,0,12,2Z",
fillColor: color,
fillOpacity: 1,
scale: 1.5,
// strokeColor: "gold",
// strokeWeight: 14,
};
//console.log(counter);
var bg_marker = new google.maps.Marker({
position: position,
map: map,
icon: background_img,
animation: google.maps.Animation.DROP,
// label: {text: counter.toString(), color: "white", fontSize:"12px",fontWeight:"bold"}
});
bounds.extend(bg_marker.position);
//zoom in
if(items_total == 1)
{
map.setZoom(14);
map.setCenter(bg_marker.getPosition());
}
else map.fitBounds(bounds);
google.maps.event.addListener(bg_marker, 'click', function() {
// html content
var html = '<h3>'+ name +'</h3>';
html += '<p>'+ intro +'</p>';
html += '<p><a href="'+ link +'">Meer informatie</a></p>';
// location contact
$("#location-details").html(html).show();
//zoom in
map.setZoom(14);
map.setCenter(bg_marker.getPosition());
});
markers.push(bg_marker);
}, timeout);
}
function getHTML(element){
return $("<div />").append($(element).clone()).html();
}
function showLocations(){
$(".locations a.show-inline").click(function(event) {
event.preventDefault();
var coords = this.attributes.position.value.split(",");
var location_type = this.attributes.locationtype.value;
var text = $(this).next();
var location_desc = getHTML(text)
var center = new google.maps.LatLng(coords[0],coords[1]);
// console.log(location_desc);
// hide markers
// hideMarkers(null);
// add marker on location
//addMarker(coords[0],coords[1],null,null,null,location_type);
// update desc
$("#location-details").html( location_desc ).show();
// scroll to map
$('html, body').animate({
scrollTop: $("#map-canvas").offset().top
}, 500);
// hide streetview
map.getStreetView().setVisible(false);
// pan to location
map.panTo(center);
map.setZoom(15);
});
}
function hideMarkers(map){
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
console.log("hide markers");
}