var popupMakerOpenAutoExist = false; var popupMakerOpenAutoExecute = false; function popupMakerShow($popupMaker) { var popupMakerId = $popupMaker.attr('data-id'); var popupMakerVisibleEverySoOften = parseInt($popupMaker.attr('data-visible-every-so-often')); $popupMaker.modal('show'); if (popupMakerVisibleEverySoOften != 0) { fetch("https://www.sollevamentoverona.com/api/0.0/it_IT/popup_maker/set_session/"+popupMakerId, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer xxx` }, }) .then(response => { if (!response.ok) { console.error('Errore HTTP! Stato: ${response.status}'); } }) .catch(error => { console.error('Errore durante la fetch:', error); }); } } $(document).find('.popup-maker-modal').each(function() { var $popupMaker = $(this); var popupMakerOverlayBg = $popupMaker.attr('data-overlay-bgcolor'); var popupMakerType = $popupMaker.attr('data-type'); var popupMakerWithCookie = $popupMaker.attr('data-with-cookie'); $popupMaker[0].hasPopupMakerShow = false; switch (popupMakerType) { // apertura automatica case "0": popupMakerOpenAutoExist = true; var policyCookieConsent = getCookie('policyCookieConsent'); if ((popupMakerWithCookie == "1") && (policyCookieConsent != "1")) { $(window).on('eventCookieUpdate', function() { popupMakerShow($popupMaker); }); } else { var popupMakerDelay = $popupMaker.attr('data-delay'); setTimeout(function () { popupMakerShow($popupMaker); }, popupMakerDelay); } $popupMaker.on('hidden.bs.modal', function (e) { popupMakerOpenAutoExecute = true; }); break; // click button case "1": var popupMakerClickButton = '#'+$popupMaker.attr('data-click-button'); $(document).on('click', popupMakerClickButton, function() { if ($popupMaker[0].hasPopupMakerShow) return; if (popupMakerOpenAutoExist && !popupMakerOpenAutoExecute) return; var policyCookieConsent = getCookie('policyCookieConsent'); if ((popupMakerWithCookie == "1") && (policyCookieConsent != "1")) { $(window).on('eventCookieUpdate', function() { $popupMaker[0].hasPopupMakerShow = true; popupMakerShow($popupMaker); }); } else { $popupMaker[0].hasPopupMakerShow = true; popupMakerShow($popupMaker); } }); break; // uscita dal sito case "3": $(document).on('mouseout', function (e) { if (popupMakerOpenAutoExist && !popupMakerOpenAutoExecute) return; var policyCookieConsent = getCookie('policyCookieConsent'); if (e.clientY < 0 && !$popupMaker[0].hasPopupMakerShow && !sessionStorage.getItem($popupMaker[0].id)) { if ((popupMakerWithCookie == "1") && (policyCookieConsent != "1")) { $(window).on('eventCookieUpdate', function() { $popupMaker[0].hasPopupMakerShow = true; sessionStorage.setItem($popupMaker[0].id, 'true'); popupMakerShow($popupMaker); }); } else { $popupMaker[0].hasPopupMakerShow = true; sessionStorage.setItem($popupMaker[0].id, 'true'); popupMakerShow($popupMaker); } } }); break; // scrolling della pagina case "4": var popupMakerScrollPage = $popupMaker.attr('data-scroll-page'); $(window).on('scroll', function () { if (popupMakerOpenAutoExist && !popupMakerOpenAutoExecute) return; const scrollTop = $(window).scrollTop(); const windowHeight = $(window).height(); const docHeight = $(document).height(); const scrollPercent = (scrollTop + windowHeight) / docHeight * 100; if (!$popupMaker[0].hasPopupMakerShow && scrollPercent >= parseFloat(popupMakerScrollPage)) { var policyCookieConsent = getCookie('policyCookieConsent'); if ((popupMakerWithCookie == "1") && (policyCookieConsent != "1")) { $(window).on('eventCookieUpdate', function() { $popupMaker[0].hasPopupMakerShow = true; popupMakerShow($popupMaker); }); } else { $popupMaker[0].hasPopupMakerShow = true; setTimeout(function () { popupMakerShow($popupMaker); }, 500); // ritardo di 500ms } } }); break; } $popupMaker.on('shown.bs.modal', function (event) { var overlayBgcolor = $(this).attr('data-overlay-bgcolor') || 'rgba(0,0,0,0.5)'; // Modifica dinamicamente il colore del backdrop $('.modal-backdrop').last().addClass('popup-maker-backdrop').css('background-color', overlayBgcolor); }); $popupMaker.on('hidden.bs.modal', function (event) { $('.modal-backdrop').removeClass('popup-maker-backdrop').css('background-color', ''); }); });