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/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");
	
}