File: D:/HostingSpaces/SBogers10/kemi.komma.pro/wwwroot/js/site/app.js
var BrowserHandler={userAgent:"",browserInfo:"",init:function(){BrowserHandler.userAgent=window.navigator.userAgent,BrowserHandler.browserInfo=BrowserHandler.getBrowserInfo(),BrowserHandler.handleIE(),BrowserHandler.handleSafari()},handleIE:function(){var e=BrowserHandler.userAgent.indexOf("MSIE "),t=e>0,i=!!navigator.userAgent.match(/Trident.*rv\:11\./);if(t||i){var n="11";t&&(n=parseInt(BrowserHandler.userAgent.substring(e+5,BrowserHandler.userAgent.indexOf(".",e)))),document.body.classList.add("ie"),document.body.classList.add("v"+n)}},handleSafari:function(){"Safari"===BrowserHandler.browserInfo.name&&BrowserHandler.browserInfo.version<=10&&document.getElementsByTagName("html")[0].classList.add("ie")},getBrowserInfo:function(){var e,t=navigator.userAgent,i=t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(i[1])?{name:"IE ",version:(e=/\brv[ :]+(\d+)/g.exec(t)||[])[1]||""}:"Chrome"===i[1]&&null!=(e=t.match(/\bOPR\/(\d+)/))?{name:"Opera",version:e[1]}:(i=i[2]?[i[1],i[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=t.match(/version\/(\d+)/i))&&i.splice(1,1,e[1]),{name:i[0],version:i[1]})}};function FormHandler(e,t){this.formObject=document.getElementById(e),this.requiredFields=t,this.valid=!0,this.validate=function(){this.valid=!0;for(var e=this.requiredFields.slice(),t=this.formObject.querySelectorAll("input, textarea"),i=t.length,n=0;n<i;n++){var r=t[n];r.classList.remove("alert");var a=e.indexOf(r.getAttribute("name"));if(-1!==a){var o=r.value;null!==o&&""!==o||(r.classList.add("alert"),this.valid=!1),e.splice(a,1)}}0!==e.length&&(this.valid=!1,console.log("Not all required field are filled:"),console.log(e))},this.send=function(){this.formObject.submit()}}BrowserHandler.init();var Header={init:function(){document.documentElement.setAttribute("data-browser",navigator.userAgent);window.scrollY;$("header .primary-menu .menuToggle").bind("click",function(){$("header nav").toggleClass("visible"),$("header .menu-wrapper").toggleClass("open")}),$("header nav .nav-bg-overlay").bind("click",function(){$("header nav").removeClass("visible"),$("header .menu-wrapper").toggleClass("open")}),$("header .primary-menu .menu-cat ul li").hover(function(){$(this).addClass("active").siblings().removeClass("active");var e=$(this).find("span").attr("class");$("header .primary-menu .menu-cat ul ul.sub-"+e).addClass("open").siblings().removeClass("open"),"transportservice"===e&&$("header .primary-menu .menu-cat ul ul").removeClass("open")}),$(window).on("scroll",function(e){Header.last_known_scroll_position=window.pageYOffset||document.documentElement.scrollTop,Header.ticking||(window.requestAnimationFrame(function(){Header.changeHeader(Header.last_known_scroll_position),Header.ticking=!1}),Header.ticking=!0)}),Header.changeHeader(Header.last_known_scroll_position)},changeHeader:function(e){e>5?$("header").addClass("small"):$("header").removeClass("small")}};Header.init();var ImagePreloader={init:function(){$("img.preload").one("load",function(){$(this).removeClass("preload")}).each(function(){this.complete&&$(this).load()})}},MapsHandler={map:"",key:"AIzaSyCVGPUmRmQRxXvzzWu3Xyu77XebQxQ-f4Y",location:{lat:51.3547767,lng:5.3885969},styling:"",init:function(){MapsHandler.map=document.getElementById("map"),isset(MapsHandler.map)&&("undefined"==typeof google||void 0===google.maps?$.getScript("https://maps.googleapis.com/maps/api/js?key="+MapsHandler.key).done(function(e,t){MapsHandler.drawMap()}):MapsHandler.drawMap())},drawMap:function(){var e=new google.maps.Map(MapsHandler.map,{zoom:16,center:MapsHandler.location,disableDefaultUI:!0,styles:MapsHandler.styling});new google.maps.Marker({position:MapsHandler.location,map:e,icon:"/img/googleMarker.png",animation:google.maps.Animation.DROP})},setCustomStyling:function(){MapsHandler.styling=[{featureType:"water",elementType:"geometry",stylers:[{color:"#e9e9e9"},{lightness:17}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#f5f5f5"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#ffffff"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#ffffff"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#ffffff"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#ffffff"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#f5f5f5"},{lightness:21}]},{featureType:"poi.park",elementType:"geometry",stylers:[{color:"#dedede"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#ffffff"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#333333"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#f2f2f2"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#fefefe"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#fefefe"},{lightness:17},{weight:1.2}]}]}};MapsHandler.init();var NavigationHandler={navElement:"",scrolled:0,isActive:!1,init:function(){NavigationHandler.navElement=document.getElementById("mobile-navigation"),NavigationHandler.mobileMenuButton=document.getElementById("mobile-menu-trigger"),isset(NavigationHandler.mobileMenuButton)&&NavigationHandler.mobileMenuButton.addEventListener("click",NavigationHandler.open);var e=document.getElementById("mobile-shader");isset(e)&&e.addEventListener("click",function(){NavigationHandler.close()}),isset(NavigationHandler.navElement)&&setTimeout(function(){NavigationHandler.navElement.classList.add("allow-animation")},500)},open:function(){NavigationHandler.scrolled=window.pageYOffset,NavigationHandler.navElement.classList.add("active"),NavigationHandler.mobileMenuButton.classList.add("active"),NavigationHandler.navElement.classList.add("shader-active"),NavigationHandler.isActive=!0,NavigationHandler.mobileMenuButton.removeEventListener("click",NavigationHandler.open),NavigationHandler.mobileMenuButton.addEventListener("click",NavigationHandler.close),setTimeout(function(){document.body.classList.add("preventScroll")},400)},close:function(){NavigationHandler.navElement.classList.remove("active"),NavigationHandler.mobileMenuButton.classList.remove("active"),NavigationHandler.navElement.classList.remove("shader-active"),NavigationHandler.isActive=!1,document.body.classList.remove("preventScroll"),NavigationHandler.mobileMenuButton.addEventListener("click",NavigationHandler.open),NavigationHandler.mobileMenuButton.removeEventListener("click",NavigationHandler.close)}};NavigationHandler.init();var Product={init:function(){$("body.products .order-box .increase").bind("click",function(e){return Product.updateProductValue(1),e.preventDefault(),!1}),$("body.products .order-box .decrease").bind("click",function(e){return Product.updateProductValue(-1),e.preventDefault(),!1})},updateProductValue:function(e){var t=$("body.products .order-box .amount"),i=parseInt(t.val());i+e>0&&(i+=e,t.val(i))}};Product.init();var Reference={interval:null,init:function(){$("body.references .refBlock .left ul.refs li span").bind("click",function(e){Reference.showReference($(e.target).parent().data("refId")),$(e.target).parent().addClass("active").siblings().removeClass("active")}),this.interval=this.initInterval()},showReference:function(e){$("body.references .refBlock .right #refItem-"+e).addClass("active").siblings().removeClass("active"),$("body.references .refBlock .refItem.active .quote:first-child").addClass("active").siblings().removeClass("active"),clearInterval(this.interval),this.interval=this.initInterval()},initInterval:function(){return setInterval(function(){var e=$("body.references .refBlock .refItem.active .quote.active").next();0===e.length&&(e=$("body.references .refBlock .refItem.active .quote").first()),e.addClass("active").siblings().removeClass("active")},4e3)}};Reference.init();var ResizeHandler={time:Date.now(),timeout:null,waitThrottle:1e3,waitDebounce:500,init:function(){ResizeHandler.triggerOnInit(),window.addEventListener("resize",function(){ResizeHandler.time+ResizeHandler.waitThrottle-Date.now()<0&&(ResizeHandler.triggerThrottle(),ResizeHandler.time=Date.now())}),window.addEventListener("resize",function(){ResizeHandler.triggerSmooth()}),window.addEventListener("resize",function(){isset(ResizeHandler.timeout)&&clearTimeout(ResizeHandler.timeout),ResizeHandler.timeout=setTimeout(ResizeHandler.triggerDebounce,ResizeHandler.waitDebounce)})},triggerOnInit:function(){},triggerThrottle:function(){},triggerDebounce:function(){},triggerSmooth:function(){}};ResizeHandler.init();var ScrollHandler={time:Date.now(),timeout:null,waitThrottle:1e3,waitDebounce:300,lastScrollTopPosition:0,scrollDirectionDown:!0,scrollDirectionUp:!1,init:function(){ScrollHandler.triggerOnInit(),window.addEventListener("scroll",function(){ScrollHandler.time+ScrollHandler.waitThrottle-Date.now()<0&&(ScrollHandler.triggerThrottle(),ScrollHandler.time=Date.now())}),window.addEventListener("scroll",function(){ScrollHandler.triggerSmooth()}),window.addEventListener("scroll",function(){isset(ScrollHandler.timeout)&&clearTimeout(ScrollHandler.timeout),ScrollHandler.timeout=setTimeout(ScrollHandler.triggerDebounce,ScrollHandler.waitDebounce)})},triggerOnInit:function(){ScrollHandler.toggleStickyNavigation(),ScrollHandler.triggerElementInViewportAnimation()},triggerThrottle:function(){ScrollHandler.triggerElementInViewportAnimation()},triggerDebounce:function(){},triggerSmooth:function(){ScrollHandler.detectScrollDirection(),ScrollHandler.toggleStickyNavigation()},detectIfElementIsPartlyInViewport:function(e){if(isset(e)){var t=e.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,n=window.innerWidth||document.documentElement.clientWidth,r=t.top<=i&&t.top+t.height>=0,a=t.left<=n&&t.left+t.width>=0;return r&&a}},detectIfElementIsFullyInViewport:function(e){if(isset(e)){var t=e.getBoundingClientRect();return t.top>=0&&t.bottom<=window.innerHeight}},detectScrollDirection:function(){var e=window.pageYOffset||document.documentElement.scrollTop;e>=ScrollHandler.lastScrollTopPosition?(ScrollHandler.scrollDirectionDown=!0,ScrollHandler.scrollDirectionUp=!1):(ScrollHandler.scrollDirectionDown=!1,ScrollHandler.scrollDirectionUp=!0),ScrollHandler.lastScrollTopPosition=e},triggerElementInViewportAnimation:function(){for(var e=document.querySelectorAll(".element-in-viewport"),t=e.length,i=0;i<t;i++){var n=e[i];ScrollHandler.detectIfElementIsPartlyInViewport(n)&&n.classList.remove("element-in-viewport")}},toggleStickyNavigation:function(){var e=document.querySelector("body >header"),t=document.getElementById("sticky-navigation"),i=document.scrollingElement||document.documentElement;isset(t)&&isset(e)&&(i.scrollTop>0&&t.classList.add("active"),0===i.scrollTop&&t.classList.remove("active"))}};ScrollHandler.init();var ScrollToHandler={init:function(){$(".scroll-to-target").bind("click",function(){return ScrollToHandler.scrollToTarget($(this)),!1})},scrollToTarget:function(e,t,i){t=isset(t)?t:126,i=isset(i)?i:800;var n=e.prop("href");n=n.substr(n.indexOf("#")+1);var r=$("html,body");r.animate({scrollTop:$("#"+n).offset().top-t},i),r.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){r.stop()})}};ScrollToHandler.init();for(var imageSliders=[],imageSliderContainers=document.querySelectorAll(".image-slider"),imageSliderContainersLength=imageSliderContainers.length,i=0;i<imageSliderContainersLength;i++){var imageSlider=imageSliderContainers[i],imageSliderId=imageSlider.getAttribute("id");if(null!==imageSliderId){var imageSliderSetting=new SliderSetting({sliderId:imageSliderId,slideQuery:"#"+imageSliderId+" .placeholder figure",navigationButtons:"#"+imageSliderId+" .placeholder .controllers .nav-item",autoSlider:!0,sliderInterval:4e3});imageSliders.push(new Slider(imageSliderSetting.prepareParameters()).init())}else console.log("An image slider has no id...")}function SliderSetting(e){var t=this;return this.sliderId="",this.definedPreviousNext=!0,this.autoSlider=!1,this.sliderInterval=4e3,this.navigationButtons="",this.dots="",this.captions="",this.slideQuery="",this.setSliderId=function(e){return this.sliderId=e,this},this.setDefinedPreviousNext=function(e){return this.definedPreviousNext=e,this},this.setAutoSlider=function(e){return this.autoSlider=e,this},this.setSliderInterval=function(e){return this.sliderInterval=e,this},this.setSlideQuery=function(e){return this.slideQuery=e,this},this.setNavigationButtons=function(e){return this.navigationButtons=e,this},this.setDots=function(e){return this.dots=e,this},this.setCaptions=function(e){return this.captions=e,this},this.getSliderId=function(){return this.sliderId},this.getDefinedPreviousNext=function(){return this.definedPreviousNext},this.getAutoSlider=function(){return this.autoSlider},this.getSliderInterval=function(){return this.sliderInterval},this.getSlideQuery=function(){return this.slideQuery},this.getNavigationButtons=function(){return this.navigationButtons},this.getDots=function(){return this.dots},this.getCaptions=function(){return this.captions},this.prepareParameters=function(){return{sliderId:t.getSliderId(),definedPreviousNext:t.getDefinedPreviousNext(),autoSlider:t.getAutoSlider(),sliderInterval:t.getSliderInterval(),navigationButtons:t.getNavigationButtons(),dots:t.getDots(),captions:t.getCaptions(),slideQuery:t.getSlideQuery()}},this.fill=function(){for(var i=Object.keys(e),n=i.length,r=0;r<n;r++){var a=i[r];t[a]=e[a]}},this.fill(),{sliderId:t.setSliderId,definedPreviousNext:t.setDefinedPreviousNext,autoSlider:t.setAutoSlider,sliderInterval:t.setSliderInterval,navigationButtons:t.setNavigationButtons,dots:t.setDots,captions:t.setCaptions,slideQuery:t.setSlideQuery,prepareParameters:t.prepareParameters}}function Slider(e){var t=this;this.sliderObject="",this.activeSlideId=0,this.previousSlideId=0,this.nextSlideId=0,this.availableSlides=1,this.slides=[],this.autoSliderInterval=null,this.settings={},this.init=function(){this.settings=e,this.sliderObject=document.getElementById(this.settings.sliderId),this.slides=document.querySelectorAll(this.settings.slideQuery),this.availableSlides=this.slides.length,this.activeSlideId=0,t.settings.definedPreviousNext&&this.setPreviousAndNextSlide(),this.setSlide();var i=new Hammer(this.sliderObject);if(i.on("swipeleft",function(){t.resetAutoSlider(),t.nextSlide(),t.setSlide()}),i.on("swiperight",function(){t.resetAutoSlider(),t.previousSlide(),t.setSlide()}),""!==this.settings.navigationButtons)for(var n=document.querySelectorAll(this.settings.navigationButtons),r=n.length,a=0;a<r;a++){n[a].addEventListener("click",function(){t.clickNavigationButton(this)})}if(""!==this.settings.dots)for(var o=document.querySelectorAll(this.settings.dots),l=o.length,s=0;s<l;s++){o[s].addEventListener("click",function(){t.clickDot(this)})}t.autoSlider()},this.autoSlider=function(){null!==this.autoSliderInterval&&clearInterval(this.autoSliderInterval),this.settings.autoSlider&&Number.isInteger(this.settings.sliderInterval)&&(this.autoSliderInterval=setInterval(function(){t.nextSlide(),t.setSlide()},this.settings.sliderInterval))},this.resetAutoSlider=t.autoSlider,this.nextSlide=function(){this.activeSlideId++,this.activeSlideId>=this.availableSlides&&(this.activeSlideId=0),t.settings.definedPreviousNext&&this.setPreviousAndNextSlide()},this.previousSlide=function(){this.activeSlideId--,this.activeSlideId<0&&(this.activeSlideId=this.availableSlides-1),t.settings.definedPreviousNext&&this.setPreviousAndNextSlide()},this.setPreviousAndNextSlide=function(){this.nextSlideId=this.activeSlideId+1,this.nextSlideId>=this.availableSlides&&(this.nextSlideId=0),this.previousSlideId=this.activeSlideId-1,this.previousSlideId<0&&(this.previousSlideId=this.availableSlides-1)},this.setSlide=function(){for(var e=t.slides.length,i=0;i<e;i++){var n=t.slides[i],r=parseInt(n.getAttribute("data-order"));r!==t.activeSlideId?n.classList.remove("active"):n.classList.add("active"),t.settings.definedPreviousNext&&(r!==t.previousSlideId?n.classList.remove("previous"):n.classList.add("previous"),r!==t.nextSlideId?n.classList.remove("next"):n.classList.add("next"))}""!==t.settings.dots&&t.setActiveDot(),""!==t.settings.captions&&t.setActiveCaption()},this.clickNavigationButton=function(e){t.activeSlideId=parseInt(e.getAttribute("data-order")),t.settings.definedPreviousNext&&t.setPreviousAndNextSlide(),t.setSlide();var i=document.querySelector(t.settings.navigationButtons+".next"),n=document.querySelector(t.settings.navigationButtons+".previous");i.setAttribute("data-order",t.nextSlideId),n.setAttribute("data-order",t.previousSlideId),t.resetAutoSlider()},this.clickDot=function(e){t.activeSlideId=parseInt(e.getAttribute("data-order")),t.setSlide(),t.resetAutoSlider()},this.setActiveDot=function(){for(var e=document.querySelectorAll(this.settings.dots),i=e.length,n=0;n<i;n++){var r=e[n];dotOrder=parseInt(r.getAttribute("data-order")),dotOrder!==t.activeSlideId?r.classList.remove("active"):r.classList.add("active")}},this.setActiveCaption=function(){for(var e=document.querySelectorAll(this.settings.captions),i=e.length,n=0;n<i;n++){var r=e[n];captionOrder=parseInt(r.getAttribute("data-order")),captionOrder!==t.activeSlideId?r.classList.remove("active"):r.classList.add("active")}}}var Transport={init:function(){$("body.transportservice .transBlock .icon-holder .icon").bind("click",function(e){Transport.changeTransportBlock(e.target)})},changeTransportBlock:function(e){if(!$(e).hasClass("active")){var t=$(e).attr("class");$(e).addClass("active").siblings().removeClass("active");var i=t.split(" ")[1];$("body.transportservice .transBlock .bottom .service-block").removeClass("active"),console.log($(".service-block "+i)),$("body.transportservice .transBlock .bottom ."+i).addClass("active")}}};Transport.init();var YoutubeHandler={youtubeClass:".youtube-player",players:[],init:function(){for(var e=document.querySelectorAll(YoutubeHandler.youtubeClass),t=e.length,i=0;i<t;i++){var n=e[i];if(null!==n.getAttribute("id")){var r={id:n.getAttribute("id"),link:n.getAttribute("data-youtube-link"),autoPlay:parseInt(n.getAttribute("data-auto-play"))};YoutubeHandler.players.push(r)}else console.log("Element not include because there isn't a id on the player"),console.log(n)}t>=1&&YoutubeHandler.initYoutube()},initYoutube:function(){"undefined"==typeof YT||void 0===YT.Player?(window.onYouTubePlayerAPIReady=function(){YoutubeHandler.loadPlayers()},getScript("https://www.youtube.com/iframe_api")):YoutubeHandler.loadPlayers()},loadPlayers:function(){for(var e=[],t=YoutubeHandler.players.length,i=0;i<t;i++){var n=YoutubeHandler.players[i];n.player=new YT.Player(n.id,{height:200,width:200,videoId:n.link,host:"https://www.youtube-nocookie.com",playerVars:{modestbranding:0,showinfo:0,rel:0,disablekb:1,autoplay:n.autoPlay},events:{onStateChange:YoutubeHandler.onStateChange}}),e[n.id]=n}YoutubeHandler.players=e},onReady:function(e){var t=e.target.getIframe().getAttribute("id");YoutubeHandler.players[t].player},onStateChange:function(e){var t=e.target.getIframe().getAttribute("id"),i=YoutubeHandler.players[t].player;e.data;e.data===YT.PlayerState.ENDED&&i.playVideo()}};YoutubeHandler.init();