window._hmx=window._hmx||{};window._hmx.topWindowBridge=(function(){let topWindowDetails={scrollX:window.scrollX,scrollY:window.scrollY,innerWidth:window.innerWidth||document.documentElement.clientWidth,innerHeight:window.innerHeight||document.documentElement.clientHeight,iframeRect:{x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,},iframePos:{x:0,y:0},elapsedTimeSinceScriptStart:null,ts:null,};let isTopWindowDetailsInitialized=false;let isIframeWithHelperJSInTopWindow=window.ezVideoIframeWithHelperJSInTopWindow;let timeDelayBetweenTopWindowScriptInitAndDetailsSent=0;let firstTopWindowDetailsReceivedTime=0;scrollListeners={};scrollListenerCounter=0;function handleMessagesFromTopWindow(e){if(!e.data||!e.data.name){return;} switch(e.data.name){case 'topWindowUpdates':{topWindowDetails=e.data.topWindowDetails;if(!isTopWindowDetailsInitialized){isTopWindowDetailsInitialized=true;if(topWindowDetails.elapsedTimeSinceScriptStart&&topWindowDetails.ts){timeDelayBetweenTopWindowScriptInitAndDetailsSent=topWindowDetails.pnow-topWindowDetails.scriptStart+window.Date.now()-topWindowDetails.ts;firstTopWindowDetailsReceivedTime=0;} __ez.queue.markLoaded('topWindowReady');__ez.queue.processAll();}};break;case 'hmxBridge-scroll':{notifyScrollListeners(e.data.name);};break;}} function notifyScrollListeners(){window.dispatchEvent(new Event('hmxBridge-scroll'));} if(isIframeWithHelperJSInTopWindow){window.parent.postMessage({name:'topWindowRequest'},'*');window.addEventListener('message',handleMessagesFromTopWindow);}else{window.addEventListener('scroll',notifyScrollListeners);window.addEventListener('wheel',notifyScrollListeners);window.addEventListener('touchstart',notifyScrollListeners);} return{addScrollListener:function(fn,options){scrollListenerCounter+=1;scrollListeners[scrollListenerCounter]={fn:fn,options:options};window.addEventListener('hmxBridge-scroll',fn,options);return scrollListenerCounter;},removeScrollListener:function(key){if(typeof scrollListeners[key]!=="undefined"){window.removeEventListener('hmxBridge-scroll',scrollListeners[key].fn,scrollListeners[key].options);delete scrollListeners[key];}},getBoundingClientRectInTopWindow:function(el){if(isIframeWithHelperJSInTopWindow){const elementRect=el.getBoundingClientRect();const iframeRect=topWindowDetails.iframeRect;const adjustedRect={x:elementRect.x+iframeRect.x,y:elementRect.y+iframeRect.y,width:elementRect.width,height:elementRect.height,top:elementRect.top+iframeRect.top,right:elementRect.right+iframeRect.x,bottom:elementRect.bottom+iframeRect.y,left:elementRect.left+iframeRect.x};return adjustedRect;} return el.getBoundingClientRect();},getTopWindowInnerWidth:function(){if(isIframeWithHelperJSInTopWindow){return topWindowDetails.innerWidth;} return window.innerWidth||document.documentElement.clientWidth;},getTopWindowInnerHeight:function(){if(isIframeWithHelperJSInTopWindow){return topWindowDetails.innerHeight;} return window.innerHeight||document.documentElement.clientHeight;},getElementPosition:function(elm){var pos={x:0,y:0};while(elm&&!isNaN(elm.offsetLeft)&&!isNaN(elm.offsetTop)){pos.x+=elm.offsetLeft-elm.scrollLeft;pos.y+=elm.offsetTop-elm.scrollTop;elm=elm.offsetParent;} if(isIframeWithHelperJSInTopWindow){pos.x+=topWindowDetails.iframePos.x;pos.y+=topWindowDetails.iframePos.y;return pos;} return pos;},getElapsedTimeSinceIframeWasCreated:function(){return timeDelayBetweenTopWindowScriptInitAndDetailsSent+window.performance.now()-firstTopWindowDetailsReceivedTime;},reset:function(){for(let key in scrollListeners){if(scrollListeners.hasOwnProperty(key)){this.removeScrollListener(key);}}},};})();