String.prototype.replaceAll = function( token, newToken, ignoreCase ) { var _token; var str = this + ""; var i = -1; if ( typeof token === "string" ) { if ( ignoreCase ) { _token = token.toLowerCase(); while( ( i = str.toLowerCase().indexOf( token, i >= 0 ? i + newToken.length : 0 ) ) !== -1 ) { str = str.substring( 0, i ) + newToken + str.substring( i + token.length ); } } else { return this.split( token ).join( newToken ); } } return str; }; bShowSub = false; sFormUrl = ''; myWindow = null; iMaxScrollTo = null; function HandleMenu() { if($(window).scrollTop() > 650) { if($('#Header').hasClass('HeaderSmall') == false) { $('#Header').addClass('HeaderSmall'); $('.ScrollToTop').removeClass('Hidden'); } } else { if($('#Header').hasClass('HeaderSmall')) { $('#Header').removeClass('HeaderSmall'); $('.ScrollToTop').addClass('Hidden'); } } if($(window).scrollTop() > 170) { // Perform to header button if($('.TemplateHeaderButton .Button').hasClass('Fixed') == false) { $('.TemplateHeaderButton .Button').addClass('Fixed'); } $('#IdHeaderPanel').addClass('HeaderFixedButton'); } else { // Perform to header button if($('.TemplateHeaderButton .Button').hasClass('Fixed')) { $('.TemplateHeaderButton .Button').removeClass('Fixed'); } $('#IdHeaderPanel').removeClass('HeaderFixedButton'); } if($(window).scrollTop() > 500) { // Perform to home header button if($('.HeaderIntro .Button').hasClass('Fixed') == false) { $('.HeaderIntro .Button').addClass('Fixed'); } } else { // Perform to header button if($('.HeaderIntro .Button').hasClass('Fixed')) { $('.HeaderIntro .Button').removeClass('Fixed'); } } } function Smoothscroll(e) { e.preventDefault(); if(iMaxScrollTo == null) { iMaxScrollTo = $(document).height() - $(window).height(); } var target = $('#' + $(this).attr('uri')); var iScrollTo = target.offset().top; if(iScrollTo > iMaxScrollTo) { iScrollTo = iMaxScrollTo; } if(iScrollTo < 0) { iScrollTo = 0; } if (target.length) { $('html,body').stop().animate({ scrollTop: iScrollTo }, 750); return false; } } function SupportSVG() { return !! document.createElementNS && !! document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect } function CheckSVG() { if(SupportSVG() == false) { $('img[src*="svg"]').attr('src', function() { return $(this).attr('src').replace('.svg', '.png'); }); } } /* popup */ iOldScrollTop = 0; function ScrollTo(iScroll) { if($(window).scrollTop() != iScroll) { $('html,body').stop().animate({ scrollTop: iScroll }, 750, ""); } } function ShowLoader() { $('#Loader').show(); } function HideLoader() { $('#Loader').hide(); } function ShowBlockLoader(sMessage) { $('#OverLayer').fadeIn(function(){ ShowLoader(); }); } function HideBlockLoader() { $('#OverLayer').fadeOut(function(){ HideLoader(); }); } function InitPopup() { $('
').click(HidePopup).hide().appendTo("body"); $('
').hide().appendTo("body"); $('').hide().appendTo("body"); } function HidePopup(e) { if(e !== undefined) e.preventDefault(); HideLoader(); $('#Popup').hide(); $('#OverLayer').fadeOut(); ScrollTo(iOldScrollTop); } function ShowPopup(sUrl, callback) { iOldScrollTop = $(window).scrollTop(); ScrollTo(0); $('#OverLayer').fadeIn(function(){ ShowLoader(); $('#Popup').load(sUrl, function(response, status, xhr){ HideLoader(); if ( status == "error" ) { console.log('ShowPopup: fout op pagina: ' + sUrl + '. ' + xhr.status + " " + xhr.statusText); HidePopup(e); } else { $('a.PopupClose').click(HidePopup); if(callback !== undefined) { callback.apply(); } $('#Popup').show(); } }); }); } // G.A. function GARegisterPageview(sUrl) { var sTempUrl = sUrl; sUrl = sTempUrl.replace("http://www.hoogwolde.nl/", ""); sUrl = sTempUrl.replace("https://www.hoogwolde.nl/", ""); if (typeof dataLayer != 'undefined') { dataLayer.push({ 'event':'VirtualPageview', 'virtualPageURL':sUrl }); }else if (typeof ga != 'undefined') { ga('send', 'pageview', sUrl); } } // GTM function GARegisterEvent(sCategory, sActie) { if (typeof dataLayer != 'undefined') { dataLayer.push({ 'event': 'GaEventtrigger', 'GaEventCatagorie': sCategory, 'GaEventActie': sActie, 'GaEventLabel': sCategory }); }else if (typeof ga != 'undefined') { ga('send', { hitType: 'event', eventCategory: sCategory, eventAction: sActie, eventLabel: sCategory }); } } function BindGARegisterEvent() { GARegisterEvent($(this).attr('ga_category'), $(this).attr('ga_actie')); } function OpenPopup(e) { if(e.metaKey || e.ctrlKey) { e.preventDefault(); } else { e.preventDefault(); var sUrl = $(this).attr('url'); sFormUrl = $(this).attr('href'); if(sUrl != '') { // Registreer voor GA de page ShowPopup(sUrl, function(){ GARegisterPageview(sFormUrl); $('a.ApplyForm').click(ApplyForm); }); } } } function ApplyForm(e) { e.preventDefault(); var sForm = $(this).attr('form'); var oForm = $('#' + sForm); var bApplyForm = true; SetMessage(''); $("input,textarea", oForm).each(function(){ var req = $(this).attr('req'); var format = $(this).attr('format'); if(req == "1") { if($(this).val() == '') { SetMessage('Het veld ' + $(this).attr('name') + ' is nog niet gevuld.'); $(this).focus(); bApplyForm = false; return false; } } if(format == "email") { if(StringIsEmail($(this).val()) == false) { SetMessage('Het veld ' + $(this).attr('name') + ' bevat geen geldig emailadres.'); $(this).focus(); bApplyForm = false; return false; } } }); if(bApplyForm == true && sForm != '') { SetMessage(' Uw aanvraag wordt verzonden.') var sCategory = $(this).attr('category'); var sUrl = $(this).attr('href'); var sApply = $(this).attr('apply'); $.post("post.php", { 'form' : sForm, 'data' : oForm.serializeArray() }, function(r){ if(sCategory != '') { GARegisterEvent(sCategory, sApply); } if(sUrl != '') { GARegisterPageview(sUrl); } ScrollTo(0); $('#IdFormPanel').html(r); }); } else { // alert('No apply'); } } function StringIsEmail(sString) { var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (filter.test(sString)) return true; return false; } function SetMessage(sMessage) { $('#IdFormMessage').html(sMessage); } function HideMenu() { } // MobileMenu : begin function MobileMenu(e) { e.preventDefault(); if($('#HeaderMenu').hasClass('Collapsed') == true) { MobileMenuClose(); } else { MobileMenuOpen(); } } function MobileMenuOpen() { $('#HeaderMenu').addClass('Collapsed'); // Necessary for mobile portrait //$('body').addClass('MainMenuCollapsed'); $('#MobileMenuHolder div.icon').attr("data-icon","a"); } function MobileMenuClose() { $('#HeaderMenu').removeClass('Collapsed'); // Necessary for mobile portrait //$('body').removeClass('MainMenuCollapsed'); //$("div.MenuHolder").css("margin-top","-800px"); $('#MobileMenuHolder div.icon').attr("data-icon","b"); } // MobileMenu : end function ApplySearch(e) { e.preventDefault(); var sSearch = $('#IdSearch').val(); var sUrl = $(this).attr('url'); if(sSearch == '') { alert('Vul eerst uw zoekopdracht in.'); $('#IdSearch').focus(); return; } if(sSearch.length < 3) { alert('Uw zoekopdracht moet minimaal bestaat uit 3 karakters.'); $('#IdSearch').focus(); return; } location.href = sUrl + '/' + encodeURIComponent(sSearch); } function PlayYoutubeInline(e) { e.preventDefault(); if(e.metaKey || e.ctrlKey) { } else { // https://www.youtube.com/watch?v=Np4L6Zc9JmI var videoId = $(this).attr('href'); if(videoId.startsWith("https://www.youtube.com/watch?v=")) { var videoId = videoId.replaceAll('https://www.youtube.com/watch?v=',''); } var oParent = $(this).parent(); var width = oParent.width(); var height = width / 1.77; var panelheight = (height + parseInt(oParent.css("padding-top")) + parseInt(oParent.css("padding-bottom"))); oParent.animate({height: panelheight, opacity: 0}, function(){ oParent.html(''); setTimeout(function(){ oParent.animate({opacity: 1}); }, 1000); }); } } function ShowFilter(e) { e.preventDefault(); $('div.ProductSidebarFilter').toggle(); $('a.ShowFilter').hide(); $('a.HideFilter').show(); } function HideFilter(e) { e.preventDefault(); $('div.ProductSidebarFilter').toggle(); $('a.ShowFilter').show(); $('a.HideFilter').hide(); } function ProductImageZoom(e) { e.preventDefault(); $('#PDIZoom').css("background-image", $(this).css("background-image")); } function ResizeWindow(e) { e.preventDefault(); var width = parseInt($(this).attr('window-width')); var height = parseInt($(this).attr('window-height')); openWin(width, height); } function openWin(w, h) { if(myWindow != null) { myWindow.resizeTo((w + 33), h); // Resizes the new window myWindow.focus(); } else { myWindow = window.open(location.href,"myWindow","width=" + (w + 17) + ",height=" + h); // Opens a new window } } var iFilterClicked = 0; var iTimeout = 1000; function FilterClick(e) { e.preventDefault(); iFilterClicked++; var check = iFilterClicked; if($(this).hasClass('FilterItemChecked') == true) { $(this).removeClass('FilterItemChecked'); } else { $(this).addClass('FilterItemChecked'); } setTimeout(function(){ if(iFilterClicked == check) { LoadProducts(); } }, iTimeout); } function BuildFilterUrl() { var sMerk = ''; $('div.fiMerk a.FilterItemChecked').each(function(){ if(sMerk != '') sMerk += ','; sMerk += $(this).attr('data-id'); }); var sProductgroep = ''; $('div.fiProductgroep a.FilterItemChecked').each(function(){ if(sProductgroep != '') sProductgroep += ','; sProductgroep += $(this).attr('data-id'); }); var sTags = ''; $('div.fiTag a.FilterItemChecked').each(function(){ if(sTags != '') sTags += ','; sTags += $(this).attr('data-id'); }); return 'dataloader.php?part=reloadproducts&admin=' + GetAdmin() + '&merken=' + sMerk + '&productgroepen=' + sProductgroep + '&tags=' + sTags; } function LoadProducts() { var sUrl = BuildFilterUrl(); $('#IdProductMain').animate({ opacity: 0.5 }, function(){ $('#IdProductMain').html('
De gegevens worden geladen
'); $('#IdProductMain').load(sUrl); $('#IdProductMain').animate({opacity: 1}); }) } function GetAdmin() { return $('#admin').val(); } function LazyLoad() { $('img[data-src]').each(function(){ $(this).attr('src', $(this).attr('data-src')); }); } // Check for old code above... // CollapseSubMenu : necessary for mobile & tablet clicks on menu var menuCollapsed = false; function CollapseSubMenu(e) { $item = $(this); $subMenu = $item.parent().find('ul'); if($subMenu.is(':visible')) { //alert(1); $subMenu.removeClass("Collapsed"); }else { //alert(2); $subMenu.addClass("Collapsed"); e.preventDefault(); } //$subMenu.addClass("Collapsed"); //e.preventDefault(); } // CloseMenuOnOutsideClick : Close menu if click is outside the menu function CloseMenuOnOutsideClick(e) { e = e || window.event; e = e.target || e.srcElement; if(!$(e).parents().hasClass('HeaderMenu') && !$(e).parents().hasClass('Header')) { //MobileMenuClose(); } } /* Close Header MENU : end */ function PreventClick(e) { e.preventDefault(); } function toggleMenu(e) { e.preventDefault(); $(e.currentTarget).parent().parent().find("ul.Collapsed").removeClass("Collapsed"); $(e.currentTarget).parent().find("ul").addClass("Collapsed"); } function clearSubmenuState(e) { $(e.currentTarget).parent().parent().find("ul.Collapsed").removeClass("Collapsed"); } $(document).ready(function() { /* Header MENU : begin */ $("#MobileMenuHolder a.icon").click(MobileMenu); //$( ".MobileMenu" ).css('display','table-cell'); $('.ScrollToTop').click(function() { $("html, body").animate({ scrollTop: "0px" }); }); $( ".HasChild > a" ).bind( "click", toggleMenu); $( ".HasChild > a" ).hover(clearSubmenuState); $(window).scroll(function(x,y) {HandleMenu();}); HandleMenu(); InitPopup(); $('a.OpenPopup').click(OpenPopup); CheckSVG(); $('.Resize').click(ResizeWindow); $('a.PlayYoutubeInline').click(PlayYoutubeInline); // Don't apply CoverMyImage in CMS $('body:not(".CMS") .CoverMyImage > img').cover(); // Bind buttons for Google Analytics $(".BindEvent").click(BindGARegisterEvent); });