1(function() { 2 function init() { 3 var isDemoRequestPage = document.querySelector('.page-template-demo-request'); 4 var isMarathonForesight2026 = !!document.querySelector('.marathon-webinars_foresight_2026'); 5 if (!isMarathonForesight2026) { 6 if (isDemoRequestPage) { 7 setTimeout(runLoadZendeskWidget, 2000); 8 } else { 9 window.addEventListener('scroll', runLoadZendeskWidget); 10 } 11 } 12 } 13 14 function runLoadZendeskWidget() { 15 window.requestAnimationFrame(function() { 16 loadZendeskWidget(); 17 window.removeEventListener('scroll', runLoadZendeskWidget); 18 }); 19 } 20 21 function loadZendeskWidget() { 22 var zendeskScript = document.createElement('script'); 23 zendeskScript.async = true; 24 zendeskScript.defer = true; 25 zendeskScript.id = 'ze-snippet'; 26 zendeskScript.src = 'https://static.zdassets.com/ekr/snippet.js?key=afd4c1f4-ec8b-4b18-b130-cf4045ea8dba'; 27 document.body.appendChild(zendeskScript); 28 if (window.innerWidth > 1279) { 29 zendeskScript.addEventListener('load', function() { 30 let timer = setInterval(() => { 31 const iframe = document.getElementById('launcher'); 32 if (iframe) { 33 initCloseButton(iframe); 34 clearInterval(timer); 35 } 36 }, 1000); 37 }); 38 } 39 } 40 41 function initCloseButton(iframe) { 42 var closeButtonWrapper = document.querySelector('.zendesk-close-button-wrapper'); 43 if (!closeButtonWrapper) { 44 return; 45 } 46 47 closeButtonWrapper.style.display = 'block'; 48 var closeButtonClass = '.zendesk-close-button'; 49 var closeButton = closeButtonWrapper.querySelector(closeButtonClass); 50 51 setCloseButtonWrapperStyles(closeButtonWrapper, iframe); 52 53 if (!document.querySelector('iframe[name="Messaging window"]')) { 54 iframe.addEventListener('mouseover', showCloseButton); 55 } 56 closeButtonWrapper.addEventListener('mouseout', function(event) { 57 if (event.relatedTarget && event.relatedTarget !== iframe && !event.relatedTarget.closest( 58 closeButtonClass)) { 59 closeButton.classList.remove('active'); 60 } 61 }); 62 closeButton.addEventListener('click', function() { 63 zE('messenger', 'hide'); 64 closeButtonWrapper.style.display = 'none'; 65 }); 66 zE('messenger:on', 'open', function() { 67 closeButton.classList.remove('active'); 68 iframe.removeEventListener('mouseover', showCloseButton); 69 }); 70 zE('messenger:on', 'close', function() { 71 iframe.addEventListener('mouseover', showCloseButton); 72 }); 73 74 function showCloseButton() { 75 closeButton.classList.add('active'); 76 iframe.classList.add('mouseover'); 77 } 78 79 function setCloseButtonWrapperStyles(closeButtonWrapper, iframe) { 80 var iframeSize = iframe.clientWidth; 81 var iframeBottomSpace = Number(iframe.contentWindow.getComputedStyle(iframe).bottom.slice(0, -2)); 82 var iframeRightSpace = Number(iframe.contentWindow.getComputedStyle(iframe).right.slice(0, -2)); 83 var extraSpace = 16; 84 85 closeButtonWrapper.style.setProperty('--height', iframeSize + 2 * extraSpace + 'px'); 86 closeButtonWrapper.style.setProperty('--width', iframeSize + 2 * extraSpace + 'px'); 87 closeButtonWrapper.style.setProperty('--right', iframeRightSpace - extraSpace + 'px'); 88 closeButtonWrapper.style.setProperty('--bottom', iframeBottomSpace - extraSpace + 'px'); 89 } 90 } 91 92 if (document.readyState !== 'loading') { 93 init(); 94 } else { 95 document.addEventListener('DOMContentLoaded', function() { 96 init(); 97 }); 98 } 99})();
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.