1jQuery(function($) { 2 setInterval(function() { 3 $('.model-opened:not(.appeared)') 4 .addClass('appeared') 5 .each(function() { 6 special_offer_layer(); 7 }); 8 }, 500); 9 10 11 12 let scrollPosition = $(window).scrollTop(); 13 let firstScrollRevealed = false; 14 let modalOpenedOnce = false; 15 16 17 if( !firstScrollRevealed ){ 18 $(window).scroll(function() { 19 let scrolled = $(window).scrollTop(); 20 if(scrolled > scrollPosition) { 21 firstScrollReveal = true; 22 23 if( $('.custom-model-main').hasClass("show-instantly") && !$('.custom-model-main').hasClass("opened-once") ){ 24 25 console.log('show-instantly'); 26 $('body').addClass('mod-opened'); 27 openCheckoutModal(); 28 } 29 } 30 }); 31 } 32 33 //TODO: refactor: re-use this function all over instead of repeating 34 function openCheckoutModal(){ 35 let modalEl = $('.custom-model-main'); 36 if ( !modalEl.hasClass("opened-once") && !$("body").hasClass('checkout-modal-open') && !modalEl.hasClass('model-open') && !modalOpenedOnce) { 37 console.log('open dispatch'); 38 modalEl.addClass('model-open model-opened opened-once'); 39 document.dispatchEvent(openEvent); 40 modalOpenedOnce = true; 41 } 42 } 43 44 45 document.addEventListener("modalOpen", function(e) { 46 let vidElement = jQuery('#json-video'); 47 let videoUrl = vidElement.data('video-url'); 48 49 if( ! vidElement.hasClass('on-load-loaded')){ 50 var animItem = bodymovin.loadAnimation({ 51 container: document.getElementById('json-video'), 52 renderer: 'svg', 53 loop: false, 54 autoplay: false, 55 path: videoUrl 56 }); 57 58 jQuery(vidElement).on('click', function(){ 59 animItem.play(); 60 let buttonAppearDelay = $(vidElement).data('delay'); 61 let buttonEl = $('#popup-button-main'); 62 let closeButtonEl = $('#offer-modal-close'); 63 setTimeout(function() { 64 if( !buttonEl.hasClass('enable') ){ 65 buttonEl.addClass('enable'); 66 } 67 if( !closeButtonEl.hasClass('enable') ){ 68 closeButtonEl.addClass('enable'); 69 } 70 }, buttonAppearDelay * 1000); 71 72 }) 73 } 74 }); 75 76 var openEvent = new CustomEvent("modalOpen", {}); 77 78 let prev_link = document.referrer; 79 if ($(window).width() < 800) { 80 if (!$('.custom-model-main').hasClass('opened-once') && !modalOpenedOnce) { 81 setTimeout( 82 function() { 83 if (!$("body").hasClass('wfacp_overflow_hide') && !$("body").hasClass('checkout-modal-open') && !modalOpenedOnce) { 84 $(".custom-model-main").addClass('model-open model-opened'); 85 modalOpenedOnce = true; 86 console.log('mobile open 82'); 87 document.dispatchEvent(openEvent); 88 } 89 },25000); 90 } 91 $(".wfacp_modal_close").click(function () { 92 if (!$('.custom-model-main').hasClass('opened-once') && !$("body").hasClass('checkout-modal-open') && !modalOpenedOnce) { 93 $(".custom-model-main").addClass('model-open model-opened'); 94 document.dispatchEvent(openEvent); 95 modalOpenedOnce = true; 96 } 97 }); 98 var lastScrollTop = 0; 99 $(window).scroll(function(event){ 100 var st = $(this).scrollTop(); 101 if (!$('.custom-model-main').hasClass("opened-once") && !$("body").hasClass('checkout-modal-open') && !modalOpenedOnce) { 102 if( !$("body").hasClass('show-instantly') ){ 103 if ( st < lastScrollTop ) { 104 modalOpenedOnce = true; 105 setTimeout( 106 function() { 107 $(".custom-model-main").addClass('model-open model-opened'); 108 console.log('mobile open 101'); 109 document.dispatchEvent(openEvent); 110 },2000); 111 } 112 } 113 } 114 lastScrollTop = st; 115 }); 116 117 } else { 118 var mY = 0; 119 $(document).mousemove(function(e) { 120 $(".checkout-sticky-header").hover(function(){ 121 if (!$(".custom-model-main").hasClass('model-opened') && !modalOpenedOnce ) { 122 123 $(".custom-model-main").addClass('model-open model-opened'); 124 document.dispatchEvent(openEvent); 125 } 126 }); 127 mY = e.pageY; 128 }); 129 130 131 $(".wfacp_modal_close").click(function () { 132 if (!$(".custom-model-main").hasClass('model-opened') && !modalOpenedOnce ) { 133 $(".custom-model-main").addClass('model-open model-opened'); 134 document.dispatchEvent(openEvent); 135 } 136 }); 137 } 138 139 $(".close-btn").click(function () { 140 $(".custom-model-main").removeClass('model-open'); 141 $(".custom-model-main").addClass('opened-once'); 142 $(".custom-model-main").remove(); 143 $('body').removeClass('mod-opened'); 144 });
145 146 $('.custom-model-main a').click(function(){ 147 $(".custom-model-main").removeClass('model-open model-opened'); 148 $('body').removeClass('mod-opened'); 149 document.dispatchEvent(openEvent); 150 $(".custom-model-main").remove(); 151 }); 152 153 function special_offer_layer() { 154 window.dataLayer = window.dataLayer || []; 155 window.dataLayer.push({ 156 'event': 'auto_event_reached_special_offer', 157 'user_id': popup_params.quiz_submit, 158 'language': 'english', 159 'angle': popup_params.angle, 160 'event_GA4': 'reached_special_offer', 161 'event_category': 'special_offer', 162 'event_action': 'page_view', 163 'event_label': popup_params.current_url, 164 'plan_language_type': popup_params.plan_language_type 165 }); 166 } 167 168 jQuery(document).ready(function($) { 169 let vidElement = jQuery('#json-video'); 170 let videoUrl = vidElement.data('video-url'); 171 if(vidElement && videoUrl){ 172 var animItem = bodymovin.loadAnimation({ 173 container: document.getElementById('json-video'), 174 renderer: 'svg', 175 loop: false, 176 autoplay: false, 177 path: videoUrl 178 }); 179 vidElement.addClass('on-load-loaded'); 180 181 jQuery(vidElement).on('click', function(){ 182 animItem.play(); 183 let buttonAppearDelay = $(vidElement).data('delay'); 184 let buttonEl = $('#popup-button-main'); 185 let closeButtonEl = $('#offer-modal-close'); 186 setTimeout(function() { 187 if( !buttonEl.hasClass('enable') ){ 188 buttonEl.addClass('enable'); 189 } 190 if( !closeButtonEl.hasClass('enable') ){ 191 closeButtonEl.addClass('enable'); 192 } 193 }, buttonAppearDelay * 1000); 194 195 }) 196 } 197 }); 198 199}); 200
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.