1$(document).ready(function () { 2 function initTimerBannerConditions(id, screen) 3 { 4 let closeElement = 'topbanner_close_icon'; 5 let mainElement = '#topbanner_' + screen + '_' + id; 6 7 if (window['stopShowingCondition_' + screen + '_' + id] === 'click' && screen === 'desktop') { 8 $(mainElement).on('click', function (event) { 9 let bannersNumber = getBannersNumber(screen); 10 if ($(mainElement).hasClass('active') || bannersNumber === 1) { 11 event.stopPropagation(); 12 if (($(event.target)[0] != document.getElementsByClassName(closeElement)[0]) && !$(event.target).is('a')) { 13 setCookie(id + '-topbannerId-' + screen, true, 365 * 10); 14 deleteBanner(screen, id); 15 $(mainElement).remove(); 16 } 17 } 18 }); 19 } 20 21 $(mainElement + ' .' + closeElement).on('click', function (event) { 22 let bannersNumber = getBannersNumber(screen); 23 if ($(mainElement).hasClass('active') || bannersNumber === 1) { 24 event.preventDefault(); 25 if (window['stopShowingCondition_' + screen + '_' + id] === 'close') { 26 setCookie(id + '-topbannerId-'+screen, true, 365 * 10); 27 } 28 deleteBanner(screen, id); 29 $(mainElement).remove(); 30 } 31 }); 32 33 if (window['stopShowingCondition_' + screen + '_' + id] === 'seen_x_times' && !window['timerBannerEvent_' + screen + '_' + id]) { 34 setSeenTimesValue(id, screen); 35 } 36 37 if (window['frequencyValue_' + screen] === 'days') { 38 setCookie(id + '-topbannerId-' + screen, true, window['frequency_number_' + screen + '_' + id]); 39 } 40 } 41 42 function setSeenTimesValue(id, screen) 43 { 44 let seenCurrentNew = window['seenCurrent_' + screen + '_' + id] + 1; 45 setCookie(id + '-topbannerId-seen-' + screen, seenCurrentNew, 365 * 10); 46 if (seenCurrentNew >= window['seen_x_times_' + screen + '_' + id]) { 47 setCookie(id + '-topbannerId-' + screen, true, 365 * 10); 48 } 49 } 50 51 function displayBannerWithTimeout(id, screen) 52 { 53 let banner = $('#topbanner_' + screen + '_' + id); 54 setTimeout(function () { 55 addBanner(screen, banner, window['timerBannerEventTiming_' + screen + '_' + id] > 0 ? true : false); 56 if (window['stopShowingCondition_' + screen + '_' + id] === 'seen_x_times') { 57 setSeenTimesValue(id, screen); 58 } 59 }, window['timerBannerEventTiming_' + screen + '_' + id] * 1000); 60 } 61 62 function displayBanner(id, screen) 63 { 64 displayBannerWithTimeout(id, screen); 65 } 66 67 function displayBannerOnScroll(id, screen) 68 { 69 $(window).scroll(function() { 70 displayBannerWithTimeout(id, screen); 71 }); 72 } 73 74 function displayBannerOnHover(id, screen) 75 { 76 if (screen !== 'desktop') { 77 return; 78 } 79 $('#' + window['timerBannerTriggerElement_' + screen + '_' + id]).on('mouseenter', function() { 80 displayBannerWithTimeout(id, screen); 81 }); 82 } 83 84 function displayBannerOnExit(id, screen) 85 { 86 if (screen !== 'desktop') { 87 return; 88 } 89 $(document).bind('mouseleave', function(e) { 90 if (e.pageY - $(window).scrollTop() <= 1) { 91 displayBannerWithTimeout(id, screen); 92 } 93 }); 94 } 95 96 function displayBannerOnClick(id, screen) 97 { 98 const oldTriggerElement = $(`a[href^="#${window[`timerBannerTriggerElement_${screen}_${id}`]}"]`); 99 oldTriggerElement.addClass('trigger_element').append('<div id="new_trigger_element"></div>'); 100 const newTriggerElement = $('#new_trigger_element'); 101 newTriggerElement.width(oldTriggerElement.width()); 102 newTriggerElement.height(oldTriggerElement.height()); 103 newTriggerElement.click(function (e) { 104 e.stopPropagation(); 105 e.preventDefault(); 106 displayBannerWithTimeout(id, screen); 107 oldTriggerElement.removeClass('trigger_element'); 108 $(this).remove(); 109 window.history.pushState({}, "", location.href.replace(location.hash,"")); 110 }); 111 } 112 113 let desktopBanners = []; 114 let mobileBanners = []; 115 116 function addBanner(screen, banner, toggleVisibility) 117 { 118 if (toggleVisibility) { 119 banner.addClass('visible'); 120 } 121 if (screen === 'desktop') { 122 addBannerToArray(desktopBanners, banner); 123 } else { 124 addBannerToArray(mobileBanners, banner); 125 } 126 } 127 128 function addBannerToArray(banners, banner) 129 { 130 for (let i = 0; i < banners.length; i++) { 131 if (banners[i].data('banner_id') === banner.data('banner_id')) { 132 return; 133 } 134 } 135 banners.push(banner); 136 } 137 138 function getBannersNumber(screen) 139 { 140 if (screen === 'desktop') { 141 return desktopBanners.length; 142 } else { 143 return mobileBanners.length; 144 } 145 } 146 147 function deleteBannerFromArray(banners, id) 148 { 149 for (let i = 0; i < banners.length; i++) { 150 if (banners[i].data('banner_id') == id) { 151 if (i === banners.length - 1) { 152 banners[0].addClass('active'); 153 } 154 else { 155 banners[i+1].addClass('active'); 156 } 157 banners.splice(i, 1); 158 } 159 } 160 } 161 162 function deleteBanner(screen, id) 163 { 164 if (screen === 'desktop') { 165 deleteBannerFromArray(desktopBanners, id); 166 } else { 167 deleteBannerFromArray(mobileBanners, id); 168 } 169 } 170 171 function displayNextBanner(screen) 172 { 173 let banners = (screen === 'desktop') ? desktopBanners : mobileBanners; 174 let bannerNumber = 0; 175 if (!banners.length) { 176 return; 177 } else { 178 let i; 179 let transformValue; 180 let last = false;
181 for (i = 0; i < banners.length; i++) { 182 183 if (banners[i].hasClass("active")) { 184 if (i === banners.length - 1) { 185 transformValue = `translateX(0%)`; 186 last = true; 187 } else { 188 transformValue = `translateX(-${(i + 1) * 100}%)`; 189 } 190 $('.topbanner_container .swiper-wrapper').css({ 191 '-webkit-transform': transformValue, 192 '-moz-transform': transformValue, 193 '-ms-transform': transformValue, 194 'transform': transformValue 195 }); 196 banners[i].removeClass("active"); 197 banners[last ? 0 : i + 1].addClass("active"); 198 break; 199 } 200 } 201 } 202 } 203 204 205 let processedIds = []; 206 let screen = ''; 207 $('.topbanner').each(function (index) { 208 let id = $(this).data('banner_id'); 209 if (processedIds.indexOf(id) === -1) { 210 processedIds.push(id); 211 if (window.innerWidth > 767 && $('#topbanner_desktop_' + id).length) { 212 screen = 'desktop'; 213 } else if (window.innerWidth < 768 && $('#topbanner_mobile_' + id).length) { 214 screen = 'mobile'; 215 } 216 217 if (screen) { 218 initTimerBannerConditions(id, screen); 219 220 switch (window['timerBannerEvent_' + screen + '_' + id]) { 221 case 'landing': 222 displayBanner(id, screen); 223 break; 224 case 'scroll': 225 displayBannerOnScroll(id, screen); 226 break; 227 case 'hover': 228 if (window['timerBannerTriggerElement_' + screen + '_' + id]) { 229 displayBannerOnHover(id, screen); 230 } 231 break; 232 case 'click': 233 if (window['timerBannerTriggerElement_' + screen + '_' + id]) { 234 displayBannerOnClick(id, screen); 235 } 236 break; 237 case 'exit': 238 displayBannerOnExit(id, screen); 239 break; 240 } 241 } 242 } 243 if (index === 0) { 244 $(`li#topbanner_${screen}_${id}`).addClass('active'); 245 } 246 $(this).css('display', 'block'); 247 }); 248 if (typeof slideDisplayTime !== 'undefined' && slideDisplayTime > 0) { 249 setInterval(function () { 250 displayNextBanner(screen); 251 }, slideDisplayTime * 1000); 252 } 253});
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.