9,2 uit 2.133 beoordelingen(2.133)tm-fc
function showError() { if (configuratorError) { configuratorIframe.style.display = 'none'; configuratorError.style.display = 'block'; } } function retryLoad() { if (retryCount < maxRetries) { retryCount++; configuratorIframe.style.display = 'block'; if (configuratorError) configuratorError.style.display = 'none'; configuratorIframe.src = configuratorIframe.src + '&retry=' + retryCount; } else { showError(); } } var iframeLoaded = false; configuratorIframe.addEventListener('load', function() { iframeLoaded = true; retryCount = 0; }); configuratorIframe.addEventListener('error', function() { retryLoad(); }); setTimeout(function() { if (!iframeLoaded) retryLoad(); }, 20000); if (retryButton) { retryButton.addEventListener('click', function() { retryCount = 0; retryLoad(); }); } var lastHeight = 0; var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 768; var minHeight = isMobile ? 1600 : 600; window.addEventListener('message', function(event) { if (event.origin.indexOf('hwatotaal.nl') === -1 && event.origin.indexOf('localhost') === -1) return; if (event.data && event.data.type === 'SCROLL_TO' && typeof event.data.offsetTop === 'number') { var requestedOffset = event.data.offsetTop; requestAnimationFrame(function() { var iframeTop = configuratorIframe.getBoundingClientRect().top + window.scrollY; var siteHeader = document.getElementById('header'); var headerOffset = siteHeader ? siteHeader.offsetHeight : 0; window.scrollTo({ top: iframeTop + requestedOffset - headerOffset, behavior: 'smooth' }); }); return; } var height = null; if (event.data && event.data.type === 'IFRAME_HEIGHT_UPDATE') { height = event.data.height; } else if (event.data && typeof event.data.height === 'number') { height = event.data.height; } if (height) { var newHeight = Math.max(height, minHeight); if (Math.abs(newHeight - lastHeight) > 50) { configuratorIframe.style.height = newHeight + 'px'; lastHeight = newHeight; } } if (event.data && event.data.type === 'LIGHTSPEED_PRODUCT_READY' && event.data.cartAddUrl) { window.location.href = event.data.cartAddUrl; } }); } function initializeSwiper() { if (typeof Swiper !== 'undefined' && document.querySelector('.main-images')) { var thumbSwiper = new Swiper('.thumb-images', { spaceBetween: 10, slidesPerView: 4, freeMode: true, watchSlidesProgress: true, breakpoints: { 320: { slidesPerView: 2 }, 480: { slidesPerView: 3 }, 640: { slidesPerView: 4 } } }); new Swiper('.main-images', { spaceBetween: 10, loop: true, thumbs: { swiper: thumbSwiper }, navigation: { nextEl: '.swiper-next', prevEl: '.swiper-prev', }, pagination: { el: '.swiper-pagination', clickable: true, } }); } else if (typeof Swiper === 'undefined') { setTimeout(initializeSwiper, 100); } } initializeSwiper(); });