var Event_Handler=function(){var _events=new Object();var _isDispatching=false;var _opQueue=[];var _addEvent=function(__event){if((__event in _events)===false){_events[__event]=new Array();return true;}else{return false;}};var _deleteEvent=function(__event){if((__event in _events)===true){_events[__event]=null;}};var _debugDispatchEvent=function(__event,a,currentEvent,scope,funct,eventObject){} var _debugAddEventListener=function(__event,__scope,__callback){try{var listenersActive=_getEvent(__event).length;}catch(e){var listenersActive=0;}};var _debugEventContainsObject=function(__event,__scope,__callback){} var _eventContainsObject=function(__event,__scope,__callback){for(var a=0;a<_events[__event].length;a++){if((__scope===_events[__event][a][0]||__scope===window||__scope===undefined)&&__callback===_events[__event][a][1]){return a;}} return false;};var _registerObjectToEventListener=function(__event,__callback,__scope){if(_eventContainsObject(__event,__scope,__callback)===false){_events[__event].push([__scope,__callback]);}else{}};var _unregisterObjectFromEventListener=function(__event,__scope,__callback){var indexObjectToRemove=_eventContainsObject(__event,__scope,__callback);if(indexObjectToRemove!==false){_events[__event].splice(indexObjectToRemove,1);return true;} return false;};var _getEvent=function(__event){if(__event in _events){return _events[__event];}else{return false;}};this.name="EventHandler";this.hasEventListener=function(__event,__callback,__scope){if(__scope===undefined){__scope=window;} return _eventContainsObject(__event,__scope,__callback);};this.addEventListener=function(__event,__callback,__scope){if(__scope===undefined){__scope=window;} _addEvent(__event);if(this.hasEventListener(__event,__callback,__scope)===true){return;} _registerObjectToEventListener(__event,__callback,__scope);};this.removeEventListener=function(__event,__callback,__scope){if(_isDispatching===true){_opQueue.push([__event,__callback,__scope]);return;} try{var prevListenersCount=_getEvent(__event).length;}catch(e){var prevListenersCount=0;} if(__scope===undefined){__scope=window;} _unregisterObjectFromEventListener(__event,__scope,__callback);try{var postListenersCount=_getEvent(__event).length;}catch(e){var postListenersCount=0;} try{if(_getEvent(__event).length<1){}else{}}catch(e){}};this.removeEvent=function(__event){this._deleteEvent(__event);};this.removeAllListeners=function(){this._events=new Object();this._events={};};this.dispatchEvent=function(__event,__evtdata){_isDispatching=true;var currentEvent=_getEvent(__event);if(currentEvent!==false){var eventObject={type:__event,caller:this.dispatchEvent.caller,data:__evtdata};try{var evtLength=currentEvent.length;}catch(e){var evtLength=0;} for(var a=0;a0){for(var t=0;t<_opQueue.length;t++){if(_isDispatching===false){this.removeEventListener(_opQueue[t][0],_opQueue[t][1],_opQueue[t][2]);}else{return;}} _opQueue=[];}};this.showActiveListeners=function(event){for(var a in _events){for(var b in _events[a]){}}};};; var iframe_controller={name:"iframe_controller",iframes:{},eventHandler:new Event_Handler()} iframe_controller.registerIframe=function(element,config,state){if(!element||!config){kw_iframe_handler.log(this.name,"ERROR \r missing Configuration Object or Element reference => Aborting Initialization");return;} kw_iframe_handler.log(this.name,"Adding Iframe");kw_iframe_handler.log(this.name,element);kw_iframe_handler.log(this.name,config);kw_iframe_handler.log(this.name,state);if(!iframe_controller.checkAlreadyInitialized(config.iframeDivId)){return false;} if(!iframe_controller.checkDiv(config)){return false;} var newIframe={"htmlelement":element,"configuration":config,"state":state};iframe_controller.iframes[config.iframeDivId]=newIframe;} iframe_controller.checkDiv=function(_iframeConfDivId){if(document.getElementById(_iframeConfDivId)){kw_iframe_handler.log(this.name,"ERROR \r No html div with ID: "+_iframeConf.iframeDivId+" found in page => missing div container");return false;} return true;} iframe_controller.checkAlreadyInitialized=function(div){if(iframe_controller.iframes.hasOwnProperty(div)===true){kw_iframe_handler.log(this.name,"ERROR \r Element already initialized => Aborting Initialization");return false;} return true;} iframe_controller.playerStateChange=function(el,newstate,oldstate){if(newstate=="PLAYED"){return;} kw_iframe_handler.log(this.name,"Player "+el+" asked for state change request || OLD(internal):"+iframe_controller.iframes[el].state+" ## OLD(from event): "+oldstate+" ## NEW: "+newstate);if(iframe_controller.iframes[el].state!==newstate){var _oldState=iframe_controller.iframes[el].state;iframe_controller.iframes[el].state=newstate;kw_iframe_handler.log(this.name,"Player "+el+" changed its state || OLD(internal): "+_oldState+" ## OLD(from event): "+oldstate+" ## NEW: "+newstate);var stateChange=iframe_controller.stateHandler(newstate,_oldState) switch(stateChange){case"playerready":iframe_controller.playerReady(el);break case"playerpaused":break;case"playstarted":iframe_controller.playerStartedPlaying(el);break;case"playended":iframe_controller.playerEndedPlaying(el);break;} if((_oldState==="PAUSED"||_oldState==="READY"||_oldState==="PLAYING")&&newstate==="ADV"){iframe_controller.advStartedPlaying(el);}else if(stateChange==="advended"){iframe_controller.advEndedPlaying(el);}}} iframe_controller.stateHandler=function(newstate,oldstate){kw_iframe_handler.log(this.name,"STATE HANDLER INVOKED || OLD: "+oldstate+" ## NEW: "+newstate);switch(true){case((oldstate==="PLAYING")&&newstate==="PAUSED"):return"playerpaused";break;case((oldstate==="ADV"||oldstate==="ADVRESUME"||oldstate==="PAUSED"||oldstate==="COMPLETED"||oldstate==="ADVPAUSE")&&newstate==="ADVEND"):return"advended";break;case(newstate==="COMPLETED"&&oldstate==="PAUSED"||newstate==="COMPLETED"&&oldstate==="PLAYING"):return"playended";break;case(newstate==="YTLOADING"):case((oldstate!=="PLAYING"&&oldstate!="ADV")&&newstate==="PLAYING"):case((oldstate==="READY"||oldstate==="COMPLETED")&&newstate==="ADV"):case(oldstate==="ADVPAUSE"&&newstate==="ADVRESUME"):return"playstarted";break;case((oldstate==="INIT"||oldstate==="idle")&&newstate==="READY"):return"playerready";break;}} iframe_controller._playerInfoGetter=function(el,property,value){iframe_controller.eventHandler.dispatchEvent("playerInfoGetter",{id:el,property:property,value:value});} iframe_controller.getPlayerAudioState=function(playerId,callback){kw_iframe_handler.log(this.name,"Going to pause player "+playerId);iframe_controller.sendMsgToIframe(playerId,"gelepmv:2,player:audiostate,el:"+playerId);iframe_controller.eventHandler.addEventListener("playerInfoGetter",function(e){if(typeof callback==="function"&&e.hasOwnProperty("data")&&e.data.hasOwnProperty("value")){callback(e.data.value);}});} iframe_controller.sendSnapEvent=function(_event){kw_iframe_handler.log(this.name,"Sending Snap Event to iframe ID "+_event.data.iframeId);iframe_controller.sendMsgToIframe(_event.data.iframeId.replace("_ifr_","_ex_"),"gelepmv:2,internal:snapevent,el:"+_event.data.iframeId);} iframe_controller.sendCloseSnapEvent=function(_event){kw_iframe_handler.log(this.name,"Sending Snap Event to iframe ID "+_event.data.iframeId);iframe_controller.sendMsgToIframe(_event.data.iframeId.replace("_ifr_","_ex_"),"gelepmv:2,internal:closesnapevent,el:"+_event.data.iframeId);} iframe_controller.sendDesnapEvent=function(_event){kw_iframe_handler.log(this.name,"Sending Desnap Event to iframe ID "+_event.data.iframeId);iframe_controller.sendMsgToIframe(_event.data.iframeId.replace("_ifr_","_ex_"),"gelepmv:2,internal:desnapevent,el:"+_event.data.iframeId);} iframe_controller.playerOutOfScope=function(_event){kw_iframe_handler.log(this.name,"Player Out Of Scope.....going to pause "+_event.data.iframeId);iframe_controller.sendMsgToIframe(_event.data.iframeId.replace("_ifr_","_ex_"),"gelepmv:2,player:pause,el:"+_event.data.iframeId);} iframe_controller.playerEndedPlaying=function(el){kw_iframe_handler.log(this.name,"Player "+el+" ended playing");iframe_controller.eventHandler.dispatchEvent("player_ended_playing",{"iframeId":iframe_controller.iframes[el].configuration.iframeId,"activateSnapping":iframe_controller.iframes[el].configuration.playerSnap,"activateViewability":iframe_controller.iframes[el].configuration.viewability});} iframe_controller.playerStartedPlaying=function(el){kw_iframe_handler.log(this.name,"Player "+el+" started playing");iframe_controller.eventHandler.dispatchEvent("player_started_playing",{"requestingIframeId":iframe_controller.iframes[el].configuration.iframeId,"activateSnapping":iframe_controller.iframes[el].configuration.playerSnap,"activateViewability":iframe_controller.iframes[el].configuration.viewability});iframe_controller.pauseAnyPlayerPlaying(el);} iframe_controller.pauseAnyPlayerPlaying=function(el){if(el===undefined){el="";} kw_iframe_handler.log(this.name,"Trying to pause all players playing except "+el);for(var a in iframe_controller.iframes){kw_iframe_handler.log(this.name,a+" -> "+iframe_controller.iframes[a].state);if((iframe_controller.iframes[a].state==="PLAYING"||iframe_controller.iframes[a].state==="ADV"||iframe_controller.iframes[a].state==="ADVRESUME")&&(el!=a||el=="")){kw_iframe_handler.log(this.name,"Pausing player "+a);iframe_controller.pausePlayerPlaying(a);}}} iframe_controller.playerReady=function(el){kw_iframe_handler.log(this.name,"Player "+el+" is READY");iframe_controller.eventHandler.dispatchEvent("player_ready",{"requestingIframeId":iframe_controller.iframes[el].configuration.iframeId,"activateSnapping":iframe_controller.iframes[el].configuration.playerSnap,"activateViewability":iframe_controller.iframes[el].configuration.viewability});} iframe_controller.pausePlayerPlaying=function(playerId){kw_iframe_handler.log(this.name,"Going to pause player "+playerId);iframe_controller.sendMsgToIframe(playerId,"gelepmv:2,player:pause,el:"+playerId);} iframe_controller.advStartedPlaying=function(el){kw_iframe_handler.log(this.name,"Adv"+el+" started playing");iframe_controller.eventHandler.dispatchEvent("adv_started_playing",{"requestingIframeId":iframe_controller.iframes[el].configuration.iframeId,"activateSnapping":iframe_controller.iframes[el].configuration.playerSnap,"activateViewability":iframe_controller.iframes[el].configuration.viewability});} iframe_controller.advEndedPlaying=function(el){kw_iframe_handler.log(this.name,"Adv"+el+" ended playing");iframe_controller.eventHandler.dispatchEvent("adv_ended_playing",{"requestingIframeId":iframe_controller.iframes[el].configuration.iframeId,"activateSnapping":iframe_controller.iframes[el].configuration.playerSnap,"activateViewability":iframe_controller.iframes[el].configuration.viewability});} iframe_controller.getPlayerState=function(_a){var a=_a.replace("_ifr_","_ex_");try{return iframe_controller.iframes[a].state;}catch(e){return"noplayer";}} iframe_controller.checkPlayersState=function(){for(var a in iframe_controller.iframes){kw_iframe_handler.log(this.name,"Player "+a+" -> "+iframe_controller.iframes[a].state);}} iframe_controller.isAnyPlayerPlaying=function(el){var arrayPlayersPlaying=[];for(var a in iframe_controller.iframes){if((iframe_controller.iframes[a].state==="PLAYING"||iframe_controller.iframes[a].state==="ADV"||iframe_controller.iframes[a].state==="ADVRESUME")&&(a!=el||el=="")){arrayPlayersPlaying.push(a);}} return((arrayPlayersPlaying.length>0)?arrayPlayersPlaying:false);} iframe_controller.sendMsgToIframe=function(iframeId,message){kw_iframe_handler.log(this.name,"MESSAGE TO BE SENT TO IFRAME");kw_iframe_handler.log(this.name,iframeId);kw_iframe_handler.log(this.name,message);kw_iframe_handler.log(this.name,"Iframe ID: "+iframe_controller.iframes[iframeId].configuration.iframeId);var iframe=document.getElementById(iframe_controller.iframes[iframeId].configuration.iframeId).contentWindow;if(iframe.postMessage){iframe.postMessage(message,"*");}else{try{iframe.iframeMessage(message);}catch(e){kw_iframe_handler.log(this.name,"ERROR SENDING MSG TO IFRAME");kw_iframe_handler.log(this.name,e);}}}; var kw_iframe_handler=window.kw_iframe_handler;var iframe_controller=window.iframe_controller;var Point=function(_x,_y,_position){var formatData=function(val){if(typeof val==="string"){return val.replace("px","");} return val;} this.x=formatData(_x);this.y=formatData(_y);this.position=_position;};var viewability_handler={name:"viewability_handler",scrollListener:null,reduceWhenSnapped:true,active:false,iframeId:undefined,snapIframe:undefined,desnapWhenEnded:true,pauseWhenManuallyDesnapped:true,skinSecureSnapOption:true,hideCloseButtonDuringAdv:true,imageId:undefined,element:undefined,elementTop:undefined,elementHeight:undefined,margin:[0,0,20,0],mobileMargin:[0,0,5,0],originalElemWidth:0,originalElemHeight:0,originalAttrWidth:"",originalAttrHeight:"",snappedPlayerWidth:400,snappedPlayerHeight:225,headerHeight:60,advActive:false,stickyHeight:0,mobileHeightRatio:30,mobilePreloadOffset:150,preloadOffset:50,storePlayerIdSnapTimeout:true,notActivePlayerId:false,notActivePlayerIdRetry:0,snappedPlayerScrollDirection:null,playerSnapTimeout:1800,scope:window,upperView:false,origPos:undefined,currentPos:undefined,scrollPrevValue:undefined,isSnapped:false,isInScope:false,callbackAdded:false,bodyElement:null,bodyElementWidth:null,eventHandler:new Event_Handler(),endedPlayerInterval:0,endedPlayerTimeout:0,fadingProcess:false,revertModalVisibility:false,mobileTopMenuEl:document.getElementById("rep-slim-header"),main:function(_bodyElement){console.log("[STICKY_PLAYER]","*VIEWABILITY* MAIN INVOKED v 0.1a - arg: "+_bodyElement);if(viewability_handler.callbackAdded!==false){console.log("[STICKY_PLAYER]","*DISCARDED MAIN* *VIEWABILITY* MAIN INVOKED v 0.1a - arg: "+_bodyElement);return;} if(_bodyElement==""||_bodyElement==undefined||_bodyElement==null){console.log("[STICKY_PLAYER]","ERROR - NO MAIN CONTAINER SET - "+_bodyElement);_bodyElement=".rep-container";} var tempBodyElementInfo=false;try{tempBodyElementInfo=viewability_handler.getBodyElement(_bodyElement);}catch(e){console.log("[STICKY_PLAYER]","ERROR GETTING BODY ELEMENT INFO");throw new Error("ERROR GETTING BODY ELEMENT INFO => info passed = "+_bodyElement);return;} iframe_controller.callbackAdded=true;document.addEventListener("sticky_active",function(e){viewability_handler.viewabilityActivated(e);});document.addEventListener("sticky_released",function(e){viewability_handler.viewabilityReleased(e);});viewability_handler.bodyElement=tempBodyElementInfo[0];viewability_handler.bodyElementWidth=tempBodyElementInfo[1];iframe_controller.eventHandler.addEventListener("player_ready",viewability_handler.playerReady);iframe_controller.eventHandler.addEventListener("player_started_playing",viewability_handler.playerStartedPlayingCallback);iframe_controller.eventHandler.addEventListener("player_ended_playing",viewability_handler.playerEndedPlayingCallback);iframe_controller.eventHandler.addEventListener("adv_ended_playing",viewability_handler.advEndedPlayingCallback);iframe_controller.eventHandler.addEventListener("adv_started_playing",viewability_handler.advStartedPlayingCallback);viewability_handler.eventHandler.addEventListener("sendSnapEvent",iframe_controller.sendSnapEvent);viewability_handler.eventHandler.addEventListener("sendCloseSnapEvent",iframe_controller.sendCloseSnapEvent);viewability_handler.eventHandler.addEventListener("sendDesnapEvent",iframe_controller.sendDesnapEvent);},init:function(_iframeId,_snapIframe){viewability_handler.collectData(_iframeId,_snapIframe);viewability_handler.checkModalPresence();viewability_handler.setScrollListener();viewability_handler.addPlayerBackgroundToDOM();viewability_handler.addResizeListener();viewability_handler.active=true;},setNotActivePlayerId:function(playerId){try{if(window.kw_tlh_isWebView===true){console.log("[viewability_handler]","STICKYK PLAYER DISABLED BECAUSE WE ARE IN WEBVIEW");return;}}catch(e){console.log("[viewability_handler]","ERROR DISABLING PLAYER VIDEO IN WEBVIEW",e);} try{if(window.kw_tlh_adSetupAvailable===false){console.log("[viewability_handler]","AUTOPLAY MUTE STICKY DISABLED BECAUSE ADBLOCK is suspected to be active");return;}}catch(e){} try{if(playerId!==""){viewability_handler.notActivePlayerId=playerId;} if(viewability_handler.notActivePlayerId===false){console.log("[viewability_handler]","AUTOPLAY MUTE STICKY IGNORED => not requested");return;} if(window.wt_device_type==="tablet"&&document.getElementsByClassName("adv-ipad")[0].innerHTML!==""){console.log("[viewability_handler]","AUTOPLAY MUTE STICKY IGNORED => adv ipad is present");return;} if(document.getElementsByClassName("has_overlay").length>0){console.log("[viewability_handler]","AUTOPLAY MUTE STICKY IGNORED => OVERLAY present in page");return;} viewability_handler.desnapWhenEnded=true;}catch(e){console.log("[viewability_handler] Error General Setting Monitor Not Active Player ID",e);} var _setNotActivePlayerId=function(){document.removeEventListener("viewability_handler_player_ready",_setNotActivePlayerId);try{if(viewability_handler.storePlayerIdSnapTimeout===true){console.log("[viewability_handler]","AUTOPLAY MUTE STICKY ACTIVE => checking cookie for frequency control");var name=viewability_handler.hashCode("kw_autoplaymuted_")+"_"+viewability_handler.hashCode(window.location.href.toString().split("?")[0]+"_"+viewability_handler.notActivePlayerId);if(document.cookie.indexOf(name)===-1){console.log("[viewability_handler]","COOKIE NOT EXISTING => doing player viewability");viewability_handler.monitorNotActivePlayer();}else{console.log("[viewability_handler]","COOKIE EXISTING => no player Sticky until cookie lives! ");setTimeout(function(){viewability_handler.disableMutePlay();},500);}}else{console.log("[viewability_handler]","AUTOPLAY MUTE STICKY ACTIVE => doing player viewability (no cookie needed)");viewability_handler.monitorNotActivePlayer();}}catch(e){console.log("[viewability_handler] Error General Setting Monitor Not Active Player ID",e);}} var isPlayerReady=false;if(iframe_controller.hasOwnProperty("iframes")&&iframe_controller.iframes.hasOwnProperty("player_ex_"+playerId)){isPlayerReady=true;} if(isPlayerReady){_setNotActivePlayerId(playerId)} else{document.addEventListener("viewability_handler_player_ready",_setNotActivePlayerId);}},monitorNotActivePlayer:function(){viewability_handler.snappedPlayerScrollDirection=null;if(window.kw_isBigPlayerInAutoplay){viewability_handler.monitorActivePlayerToBeSnapped();} else{document.addEventListener("scroll",viewability_handler.monitorActivePlayerToBeSnapped);}},monitorActivePlayerToBeSnapped:function(){if(window.kwdnt===1||window.kwdnt===0){var playerContainer=document.getElementById("player_ex_"+viewability_handler.notActivePlayerId);if(playerContainer===null){console.log("[STICKY_PLAYER]","Iframe To Monitor Still Not Available");return;} var anyPlayerActive=viewability_handler.active;var anyPlayerSnapped=viewability_handler.isSnapped;if(anyPlayerActive||anyPlayerSnapped){return;} if(window.kw_isBigPlayerInAutoplay){iframe_controller.sendMsgToIframe("player_ex_"+viewability_handler.notActivePlayerId,"gelepmv:2,internal:manualstart,el:player_ex_"+viewability_handler.notActivePlayerId);} else{if(playerContainer.getBoundingClientRect().top(viewability_handler.preloadOffset-50)){iframe_controller.sendMsgToIframe("player_ex_"+viewability_handler.notActivePlayerId,"gelepmv:2,internal:manualstart,el:player_ex_"+viewability_handler.notActivePlayerId);document.removeEventListener("scroll",viewability_handler.monitorActivePlayerToBeSnapped);}} viewability_handler.snappedPlayerScrollDirection=document.getElementById("player_ex_"+viewability_handler.notActivePlayerId).getBoundingClientRect().top;}},disableMutePlay:function(){try{console.log("[viewability_handler]","############");iframe_controller.sendMsgToIframe("player_ex_"+viewability_handler.notActivePlayerId,"gelepmv:2,internal:setplayerparam,param:mustPlayMute,value:false,el:player_ex_"+viewability_handler.notActivePlayerId);}catch(e){console.log("[viewability_handler]","Iframe to monitor still not avilable. Retrying after 500 ms");if(viewability_handler.notActivePlayerIdRetry<5){setTimeout(viewability_handler.disableMutePlay,500);viewability_handler.notActivePlayerIdRetry++;}}},snapTo:function(_point){console.log("[STICKY_PLAYER]","Snapping to... X:"+_point.x+" - Y: "+_point.y+" - Pos: "+_point.position);viewability_handler.element.style.position=_point.position;viewability_handler.element.style.left=(_point.x==="auto")?"":_point.x+"px";viewability_handler.element.style.top=(_point.y==="auto")?"":_point.y+"px";console.log("[STICKY_PLAYER]","Element snapped to... X:"+viewability_handler.element.style.position+" - Y: "+viewability_handler.element.style.top+" - Pos: "+viewability_handler.element.style.left);return true;},movePlayerToOriginalPosition:function(){if(viewability_handler.isSnapped===false){console.log("[STICKY_PLAYER]","=> movePlayerToOriginalPosition == Element was NOT snapped");return;} console.log("[STICKY_PLAYER]","=> movePlayerToOriginalPosition == Element was snapped");viewability_handler.snapTo(viewability_handler.origPos);viewability_handler.playerSnappedBackgroundEl.style.display="none";try{viewability_handler.playerSnappedBackgroundFixedEl.style.display="none";}catch(e){} viewability_handler.isSnapped=false;viewability_handler.hidePlaceHolderAtOriginalPlace();viewability_handler.element.width=viewability_handler.originalAttrWidth;viewability_handler.element.height=viewability_handler.originalAttrHeight;viewability_handler.element.style.zIndex='2';viewability_handler.element.style.width=viewability_handler.originalElemWidth+"px";viewability_handler.element.style.height=viewability_handler.originalElemHeight+"px";viewability_handler.element.style.outline="none";try{if(viewability_handler.revertModalVisibility===true){document.getElementById("modal").style.display='block';}}catch(e){} try{console.log("[STICKY_PLAYER]","Sending Desnap Event");viewability_handler.eventHandler.dispatchEvent("sendDesnapEvent",{"iframeId":viewability_handler.iframeId});}catch(e){console.log("[STICKY_PLAYER]","Unable to send Desnap Event to Webtrekk");console.log("[STICKY_PLAYER]",e);} viewability_handler.bigPlayerHandleCreativityVisibility(".widget-assistant","block");},movePlayerToSnapPosition:function(){console.log("[STICKY_PLAYER] Element wasn't snapped");try{document.getElementById("adv-Piede-sticky").classList.remove("is-sticky");}catch(e){} if(window.wt_device_type==="mobile"){console.log("[STICKY_PLAYER]","PRE MOBILE CHECK ");viewability_handler.snappedPlayerHeight=Math.ceil((window.innerHeight / 100)*viewability_handler.mobileHeightRatio);viewability_handler.snappedPlayerWidth=Math.ceil((viewability_handler.snappedPlayerHeight / 9)*16);if(viewability_handler.snappedPlayerWidth>=window.innerWidth-70){viewability_handler.snappedPlayerWidth=Math.ceil((window.innerWidth-70));viewability_handler.snappedPlayerHeight=Math.ceil((viewability_handler.snappedPlayerWidth / 16)*9);} viewability_handler.preloadOffset=viewability_handler.mobilePreloadOffset;viewability_handler.margin=viewability_handler.mobileMargin;if(window.pageType.indexOf("homepage")===-1&&viewability_handler.mobileTopMenuEl&&window.kw_isBigPlayerInAutoplay){viewability_handler.snappedXpos=0;viewability_handler.snappedYpos=viewability_handler.mobileTopMenuEl.offsetHeight;viewability_handler.playerSnappedBackgroundEl.style.left=(viewability_handler.mobileTopMenuEl.offsetWidth-37)+"px";viewability_handler.playerSnappedBackgroundEl.style.top=viewability_handler.mobileTopMenuEl.offsetHeight+5+"px";viewability_handler.resetPlayerPositionInFocus=true;viewability_handler.reduceWhenSnapped=false;if(viewability_handler.advActive){viewability_handler.closeButtonTimeout=setTimeout(function(){viewability_handler.playerSnappedBackgroundEl.style.display="block";},10000);} else{viewability_handler.playerSnappedBackgroundEl.style.display="block";}} else{viewability_handler.snappedXpos=(window.innerWidth-(viewability_handler.snappedPlayerWidth+viewability_handler.margin[3]))/ 2;viewability_handler.snappedYpos=window.innerHeight-(viewability_handler.snappedPlayerHeight+viewability_handler.margin[2]);viewability_handler.playerSnappedBackgroundEl.style.left=-19+(viewability_handler.snappedXpos+viewability_handler.snappedPlayerWidth)+"px";viewability_handler.playerSnappedBackgroundEl.style.top=-13+(viewability_handler.snappedYpos)+"px";if(viewability_handler.advActive===false){viewability_handler.closeButtonTimeout=setTimeout(function(){viewability_handler.playerSnappedBackgroundEl.style.display="block";},2000);}} viewability_handler.playerSnappedBackgroundFixedEl.style.top=viewability_handler.snappedYpos+"px";viewability_handler.playerSnappedBackgroundFixedEl.style.height=(viewability_handler.snappedPlayerHeight+(2*viewability_handler.padding))+"px";viewability_handler.playerSnappedBackgroundFixedEl.style.display="block";}else{if(viewability_handler.snappedPlayerHeight<225){viewability_handler.snappedPlayerWidth=400;viewability_handler.snappedPlayerHeight=225;} var rightBody=parseInt((viewability_handler.bodyElement.getBoundingClientRect().width+viewability_handler.bodyElement.getBoundingClientRect().left)-8);if(document.getElementsByClassName("has_domination").length>0){viewability_handler.snappedXpos=(rightBody-(viewability_handler.snappedPlayerWidth+8));}else{viewability_handler.snappedXpos=(rightBody-((viewability_handler.snappedPlayerWidth / 2)));if((window.innerWidth-50)<(viewability_handler.snappedXpos+viewability_handler.snappedPlayerWidth)){viewability_handler.snappedXpos-=((viewability_handler.snappedXpos+viewability_handler.snappedPlayerWidth)-(window.innerWidth-50));}} viewability_handler.snappedYpos=(window.innerHeight-viewability_handler.snappedPlayerHeight)-viewability_handler.margin[2];viewability_handler.playerSnappedBackgroundEl.style.top=5+viewability_handler.snappedYpos+"px";viewability_handler.playerSnappedBackgroundEl.style.left=-37+(viewability_handler.snappedXpos+viewability_handler.snappedPlayerWidth)+"px";if(viewability_handler.advActive===false){viewability_handler.closeButtonTimeout=setTimeout(function(){viewability_handler.playerSnappedBackgroundEl.style.display="block";},2000);}} viewability_handler.element.style.zIndex='1000';var snapPoint=new Point(viewability_handler.snappedXpos,viewability_handler.snappedYpos,"fixed");viewability_handler.isSnapped=viewability_handler.snapTo(snapPoint);if(viewability_handler.reduceWhenSnapped===true){viewability_handler.element.style.width=viewability_handler.snappedPlayerWidth+'px';viewability_handler.element.style.height=viewability_handler.snappedPlayerHeight+'px';viewability_handler.element.width=viewability_handler.snappedPlayerWidth;viewability_handler.element.height=viewability_handler.snappedPlayerHeight;}else{viewability_handler.element.style.width=viewability_handler.originalElemWidth+'px';viewability_handler.element.style.height=viewability_handler.originalElemHeight+'px';viewability_handler.element.width=viewability_handler.originalElemWidth;viewability_handler.element.height=viewability_handler.originalElemHeight;} viewability_handler.element.style.outline="5px solid #303030";viewability_handler.showPlaceHolderAtOriginalPlace();try{if(viewability_handler.revertModalVisibility===true){document.getElementById("modal").style.display='none';}}catch(e){} try{console.log("[STICKY_PLAYER]","Sending WT Snap Event");viewability_handler.eventHandler.dispatchEvent("sendSnapEvent",{"iframeId":viewability_handler.iframeId});}catch(e){console.log("[STICKY_PLAYER]","Unable to send Snap Event to Webtrekk");console.log("[STICKY_PLAYER]",e);} viewability_handler.bigPlayerHandleCreativityVisibility(".widget-assistant","none");},moveBackPlayerWhenEnded:function(){console.log("[STICKY_PLAYER]","Interval for opacity after player ended...."+viewability_handler.element.style.opacity);if(viewability_handler.fadingProcess===false){console.log("[STICKY_PLAYER]","Fading process disabled externally - ABORTED");return;} if(viewability_handler.element.style.opacity==""){viewability_handler.element.style.opacity="1";} if(parseFloat(viewability_handler.element.style.opacity)>=0.1){viewability_handler.element.style.opacity=(parseFloat(viewability_handler.element.style.opacity)-0.1).toString();}else{console.log("[STICKY_PLAYER]","Element invisible....moving it back to its original position opacity: "+viewability_handler.element.style.opacity);clearInterval(viewability_handler.endedPlayerInterval);viewability_handler.element.style.opacity="1";viewability_handler.resetData();viewability_handler.fadingProcess=false;console.log("[STICKY_PLAYER]","Moved Back - Operation Ended");}},hashCode:function(s){var a=1,c=0,h,o;if(s){a=0;for(h=s.length-1;h>=0;h--){o=s.charCodeAt(h);a=(a<<6&268435455)+o+(o<<14);c=a&266338304;a=c!==0?a^c>>21:a;}} return String(a);},resetData:function(){viewability_handler.movePlayerToOriginalPosition();window.removeEventListener("scroll",function(){viewability_handler.isScrolledIntoView();});viewability_handler.active=false;document.getElementById(viewability_handler.iframeId).onmouseover=null;document.getElementById(viewability_handler.iframeId).onmouseout=null;viewability_handler.iframeId=undefined;viewability_handler.snapIframe=undefined;viewability_handler.imageId=undefined;viewability_handler.element=undefined;},collectData:function(_iframeId,_snapIframe){viewability_handler.iframeId=_iframeId;viewability_handler.snapIframe=_snapIframe;viewability_handler.imageId=_iframeId.replace("_ifr_","_img_");viewability_handler.element=document.getElementById(_iframeId);viewability_handler.elementTop=viewability_handler.element.getBoundingClientRect().top+window.scrollY;viewability_handler.elementHeight=viewability_handler.element.offsetHeight;viewability_handler.originalElemWidth=viewability_handler.element.offsetWidth;viewability_handler.originalElemHeight=viewability_handler.element.offsetHeight;viewability_handler.originalAttrWidth=viewability_handler.element.width;viewability_handler.originalAttrHeight=viewability_handler.element.height;viewability_handler.resetPlayerPositionInFocus=false;var left=window.getComputedStyle(viewability_handler.element).getPropertyValue('left');var top=window.getComputedStyle(viewability_handler.element).getPropertyValue('top');var position=window.getComputedStyle(viewability_handler.element).getPropertyValue('position').toLowerCase();console.log("[STICKY_PLAYER]","ORIGINALS: left: "+left+" - top: "+top+" - position: "+position);var posLeft=left===""?"auto":left;var posTop=top===""?"auto":top;viewability_handler.origPos=new Point(posLeft,posTop,position);console.log("[viewability_handler] ORIG POS COLLECTED",[posLeft,posTop,position]);console.log("[viewability_handler] ORIG POS STORED",viewability_handler.origPos);},setScrollListener:function(){window.addEventListener("scroll",function(){viewability_handler.isScrolledIntoView();});},addResizeListener:function(){window.onresize=function(){viewability_handler.resizeCallback();};},resizeCallback:function(){if(viewability_handler.snapIframe===false){return;} if(viewability_handler.isSnapped===false){return;} viewability_handler.movePlayerToSnapPosition();},isScrolledIntoView:function(){var docViewTop=window.scrollY;var docViewBottom=docViewTop+window.innerHeight;var direction="";if(docViewTop>viewability_handler.scrollPrevValue){direction="down";}else{direction="up";} if(viewability_handler.element===undefined){return;} viewability_handler.scrollPrevValue=docViewTop;var elemHeight=((viewability_handler.element.offsetHeight / 3)*2);var elemTop=viewability_handler.elementTop+elemHeight;var elemBottom=(elemTop+viewability_handler.elementHeight)-((elemHeight / 2)*4);var visibility;if(window.wt_device_type==="mobile"&&window.pageType.indexOf("homepage")===-1&&window.kw_isBigPlayerInAutoplay){if(!viewability_handler.mobileTopMenuEl){viewability_handler.mobileTopMenuEl=document.getElementById("rep-slim-header");} visibility=viewability_handler.elementTop>=viewability_handler.mobileTopMenuEl.offsetHeight+window.scrollY;} else{visibility=((elemBottom>=docViewTop)&&(elemTop<=docViewBottom)&&(elemBottom<=docViewBottom)&&(elemTop>=docViewTop));} if(viewability_handler.snapIframe===false){if(visibility===true){}else{viewability_handler.eventHandler.dispatchEvent("playerOutOfScope",{"iframeId":viewability_handler.iframeId});viewability_handler.resetData();}}else{if(viewability_handler.isSnapped===false){} if(visibility){viewability_handler.isInScope=true;if(viewability_handler.isSnapped===true&&viewability_handler.resetPlayerPositionInFocus===true){console.log("[STICKY_PLAYER]","Going to desnap");viewability_handler.movePlayerToOriginalPosition();}} else{viewability_handler.isInScope=false;if(viewability_handler.isSnapped===false){console.log("[STICKY_PLAYER]","Going to check state for id: "+viewability_handler.iframeId+": "+iframe_controller.getPlayerState(viewability_handler.iframeId));var currIframeState=iframe_controller.getPlayerState(viewability_handler.iframeId);if(currIframeState==="noplayer"){console.log("[STICKY_PLAYER]","Errore - NO PLAYER FOUND");} if(currIframeState==="PLAYING"||currIframeState==="ADV"||currIframeState==="ADVRESUME"){console.log("[STICKY_PLAYER]","Going to snap");viewability_handler.movePlayerToSnapPosition();}else{console.log("[STICKY_PLAYER]","NO NEED TO SNAP - Player is not playing anything");}}}}},clickOnSnappedCloseButton:function(){try{viewability_handler.eventHandler.dispatchEvent("sendCloseSnapEvent",{"iframeId":viewability_handler.iframeId});}catch(e){console.log("[STICKY_PLAYER]","Unable to send close snap event to webtrekk");console.log("[STICKY_PLAYER]",e);} viewability_handler.resetData();if(viewability_handler.pauseWhenManuallyDesnapped===true){iframe_controller.pauseAnyPlayerPlaying();} if(viewability_handler.storePlayerIdSnapTimeout===true&&viewability_handler.notActivePlayerId!==false){console.log("[STICKY_PLAYER]","MUST STORE COOKIE WITH PLAYER ID => "+viewability_handler.hashCode(window.location.href.toString().split("?")[0]+"_"+viewability_handler.notActivePlayerId));var date=new Date();date.setTime(date.getTime()+(30*60*1000));var expires="; expires="+date.toGMTString();var name=viewability_handler.hashCode("kw_autoplaymuted_")+"_"+viewability_handler.hashCode(window.location.href.toString().split("?")[0]+"_"+viewability_handler.notActivePlayerId);console.log("[STICKY_PLAYER]","Storing Cookie with name "+name);document.cookie=name+"=true"+expires+"; path=/";console.log("[STICKY_PLAYER]","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");console.log("[STICKY_PLAYER]","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");}},abortFadingProcess:function(stoppingElement){if(stoppingElement!=viewability_handler.iframeId){console.log("[STICKY_PLAYER]","Element clicked on related is not the one active. Fading process can continue");return;} viewability_handler.element.style.opacity="1";viewability_handler.fadingProcess=false;try{clearTimeout(viewability_handler.endedPlayerTimeout);clearInterval(viewability_handler.endedPlayerInterval);}catch(e){console.log("[STICKY_PLAYER]","ERROR ABORTING PROCESS FADING - follow error object");console.log("[STICKY_PLAYER]",e);} if(!viewability_handler.isSnapped){viewability_handler.movePlayerToSnapPosition();}},advStartedPlayingCallback:function(event){viewability_handler.advActive=true;try{clearTimeout(viewability_handler.closeButtonTimeout);}catch(e){} console.log("[STICKY_PLAYER]","A player started playing ADV",event);if(viewability_handler.hideCloseButtonDuringAdv===true){viewability_handler.playerSnappedBackgroundEl.style.display="none";}},advEndedPlayingCallback:function(event){viewability_handler.advActive=false;console.log("[STICKY_PLAYER]","A player ended playing ADV");viewability_handler.playerSnappedBackgroundEl.style.display="block";},playerEndedPlayingCallback:function(event){console.log("[STICKY_PLAYER]","A player ended playback");console.log("[STICKY_PLAYER]",event);var anyPlayerActive=viewability_handler.active;var anyPlayerSnapped=viewability_handler.isSnapped;if(anyPlayerActive&&!anyPlayerSnapped){console.log("[STICKY_PLAYER]","A player is active but not snapped. Going to reset Data");viewability_handler.resetData();} if(anyPlayerActive&&anyPlayerSnapped){if(viewability_handler.desnapWhenEnded===true){console.log("[STICKY_PLAYER]","A player is active and snapped. Going to set timeout for moving it back");viewability_handler.fadingProcess=true;viewability_handler.endedPlayerTimeout=setTimeout(function(){viewability_handler.endedPlayerInterval=setInterval(viewability_handler.moveBackPlayerWhenEnded,40);},5000);}else{console.log("[STICKY_PLAYER]","A player is active and snapped. Leaving player snapped without reverting it back");}}},playerStartedPlayingCallback:function(event){console.log("[STICKY_PLAYER]","*VIEWABILITY* PROCESSING VIEWABILITY REQUEST act: "+viewability_handler.active+" - id: "+event['data']['requestingIframeId']+" - vw: "+event['data']['activateViewability']+" - snp: "+event['data']['activateSnapping']);var anyPlayerActive=viewability_handler.active;var activateViewability=event['data']['activateViewability'];var requestingPlayerIsDifferent=viewability_handler.iframeId!==""&&viewability_handler.iframeId!==event['data']['requestingIframeId'];if(activateViewability){if(anyPlayerActive&&requestingPlayerIsDifferent){console.log("[STICKY_PLAYER]","*VIEWABILITY* A player is already snapped. Going to reset Data - Iframe ID: "+viewability_handler.iframeId);viewability_handler.resetData();}else{console.log("[STICKY_PLAYER]","*VIEWABILITY* No player already snapped or same player changing state or viewability not active for this player.");if(requestingPlayerIsDifferent===false&&viewability_handler.fadingProcess===true){console.log("[STICKY_PLAYER]","*VIEWABILITY* Playe rrequesting is the same and a fading process is active....aborting it....");viewability_handler.abortFadingProcess(event['data']['requestingIframeId']);}} if(viewability_handler.active===false){console.log("[STICKY_PLAYER]","*VIEWABILITY* Adding viewability behaviour to player inside iframe with ID: "+event['data']['requestingIframeId']);viewability_handler.init(event['data']['requestingIframeId'],event['data']['activateSnapping']);}}},playerReady:function(event){document.dispatchEvent(new Event('viewability_handler_player_ready'));},viewabilityActivated:function(e){console.log("[viewability_handler]","ADV VIEWABILITY ACTIVATED ON POSITION",e.data.advpos);viewability_handler.stickyHeight=document.getElementById("adv-"+e.data.advpos).offsetHeight;},viewabilityReleased:function(e){console.log("[viewability_handler]","ADV VIEWABILITY RELEASED ON POSITION",e);viewability_handler.stickyHeight=0;},getBodyElement:function(b){console.log("[STICKY_PLAYER]","getting body element info from => "+b);console.log("[STICKY_PLAYER]","calculating body width -->"+typeof b);if(typeof b==="string"){if(b.indexOf(".")===0){b=b.replace(".","");console.log("[STICKY_PLAYER]",document.getElementsByClassName(b)[0].offsetWidth);return[document.getElementsByClassName(b)[0],document.getElementsByClassName(b)[0].offsetWidth];}else if(b.indexOf("#")===0){b=b.replace("#","");console.log("[STICKY_PLAYER]",document.getElementById(b).offsetWidth);return[document.getElementById(b),document.getElementById(b).offsetWidth];}}else if(typeof b==="object"){return[b,b.offsetWidth];}else if(typeof b==="function"){return[b(),b()];}},checkModalPresence:function(){try{if(document.getElementById("modal")!==undefined){if(document.getElementById("modal").style.display!=="none"||document.getElementById("modal").style.visibility!=="hidden"){viewability_handler.revertModalVisibility=true;}}}catch(e){}},generatePlayerBackgroundFixedElement:function(){var template=document.createElement('template');var html="";template.innerHTML=html.trim();return template.content.firstChild;},generatePlayerBackgroundElement:function(){var template=document.createElement('template');var html="";template.innerHTML=html.trim();return template.content.firstChild;},addPlayerBackgroundToDOM:function(){if(!document.getElementById("playerSnappedBackground")){viewability_handler.playerSnappedBackgroundEl=viewability_handler.generatePlayerBackgroundElement();viewability_handler.playerSnappedBackgroundFixedEl=viewability_handler.generatePlayerBackgroundFixedElement();document.body.appendChild(viewability_handler.playerSnappedBackgroundFixedEl);document.body.appendChild(viewability_handler.playerSnappedBackgroundEl);}},showPlaceHolderAtOriginalPlace:function(){try{document.getElementById(viewability_handler.imageId).style.display="block";var p=document.querySelector("#"+viewability_handler.imageId+" p ");p.style.top="50%";p.style.left="50%";p.style.position="absolute";p.style.width="100%";p.style.textAlign="center";p.style.transform="translate(-50%,-50%)";}catch(e){console.log("[STICKY_PLAYER]","No Image Placeholder Found. Handled Error");}},hidePlaceHolderAtOriginalPlace:function(){try{document.getElementById(viewability_handler.imageId).style.display="none";}catch(e){console.log("[STICKY_PLAYER]","No Image Placeholder Found. Handled Error");}},bigPlayerHandleCreativityVisibility:function(selector,visibility){if(window.kw_isBigPlayerInAutoplay){var widgetAssistantEl=document.querySelector(selector);if(widgetAssistantEl){widgetAssistantEl.style.display=visibility;} if(window.wt_device_type==="mobile"){try{releaseStickyTopMobile();console.log("[STICKY_PLAYER] releaseStickyTopMobile called on mobile");} catch(e){console.error("[STICKY_PLAYER] releaseStickyTopMobile error",e);}}}},initializeStickyPlayer:function(playerId,videoUrl,containerSelectorName){console.log("[viewability_handler] SetupPlayerSticky CALLED");var containerSelector=containerSelectorName?containerSelectorName:".story";VideoEmbed.main(containerSelector);if(window.kwdnt!==-1){if(videoUrl.indexOf("?")===-1){videoUrl=videoUrl+"?";} videoUrl=videoUrl+"&wpm&dp";} VideoEmbed.addIframe("player_ex_"+playerId,videoUrl,735,416,true,true);viewability_handler.desnapWhenEnded=true;viewability_handler.storePlayerIdSnapTimeout=true;var iframe=document.getElementById("player_ifr_"+playerId);console.log("[viewability_handler] STICKY_PLAYER iframe selected",iframe);if(window.kwdnt!==-1){viewability_handler.setNotActivePlayerId(playerId);console.log("[viewability_handler] STICKY PLAYER READY");} else{console.log("[viewability_handler] STICKY PLAYER not initialized because kwdnt is -1",window.kwdnt);}}};; var iframe_factory={name:"iframe_factory",elements:{},iframeConfs:{},iframeConf:{}} iframe_factory.createIframe=function(_iframeConf){if(!iframe_factory.checkData(_iframeConf)){kw_iframe_handler.log(kw_iframe_handler.name,"Something went wrong creating Iframe - DATA NOT VALID - Aborting Process");return false;} try{var iframe=iframe_factory.buildIframe(_iframeConf);document.getElementById(_iframeConf.iframeDivId).innerHTML+=(iframe);}catch(e){kw_iframe_handler.log(kw_iframe_handler.name,"Something went wrong creating Iframe - DOM INSERTING FAILED - Aborting Process");kw_iframe_handler.log(kw_iframe_handler.name,e);return false;} iframe_factory.iframeConfs[_iframeConf.iframeDivId]=_iframeConf;iframe_factory.elements[_iframeConf.iframeDivId]=document.getElementById(_iframeConf.iframeDivId);kw_iframe_handler.log(kw_iframe_handler.name,"NEW IFRAME CREATED AND ADDED TO DOM");return[iframe_factory.elements[_iframeConf.iframeDivId],_iframeConf,"idle"];} iframe_factory.addExistingIframe=function(_iframeConf){if(iframe_controller.checkAlreadyInitialized(_iframeConf.iframeDivId)===false){kw_iframe_handler.log(kw_iframe_handler.name,"ERROR - Already Initialized");return false;} iframe_factory.iframeConfs[_iframeConf.iframeDivId]=_iframeConf;iframe_factory.elements[_iframeConf.iframeDivId]=document.getElementById(_iframeConf.iframeDivId);kw_iframe_handler.log(kw_iframe_handler.name,"EXISTING IFRAME FOUND!");return[iframe_factory.elements[_iframeConf.iframeDivId],_iframeConf,"idle"];} iframe_factory.createNewIframeConfig=function(){kw_iframe_handler.log(kw_iframe_handler.name,"Generating new blank configuration");var tmp_conf={iframeDivId:"",viewability:true,playerSnap:false,iframeHeight:360,iframeWidth:640,iframeBorder:"no",iframeScrolling:"no",iframeStyle:"",iframeClass:"",iframeId:"",keepAfterEnd:true,disableTimeout:true,iframeSrc:"",iframeOnLoad:"",cbTimeout:function(){return false;},cbPrerollStart:function(){return false;},cbPrerollEnd:function(){return false;},cbPostrollStart:function(){return false;},cbPostrollEnd:function(){return false;},playHandler:function(){return false;},pauseHandler:function(){return false;},mediaCompleteHandler:function(){return false;},mutedHandler:function(div){try{var event=new CustomEvent('player_muted',{detail:{iframeDivId:div.getAttribute("id")}});document.dispatchEvent(event);} catch(e){return false}},unmutedHandler:function(div){try{var event=new CustomEvent('player_unmuted',{detail:{iframeDivId:div.getAttribute("id")}});document.dispatchEvent(event);} catch(e){return false}},genericHandler:function(){return false;},internalHandler:function(){return false;},volumechangeHandler:function(){return false;},advStart:function(){return false;},advPause:function(){return false;},advResume:function(){return false;},advEnd:function(){return false;},advSkip:function(){return false;},advPos:function(){return false;},playerstateHandler:function(){return false;}} return tmp_conf;} iframe_factory.buildIframe=function(_iframeConf){var iframeClass=' class="video-embed rep-video-embed '+_iframeConf.iframeClass+'" ';var iframeId=' id="'+_iframeConf.iframeId+'" ';var iframeOnLoad=(iframe_controller.iframeOnLoad!="")?' onload="'+_iframeConf.iframeOnLoad+'" ':'';var iframeScrolling=' scrolling="'+_iframeConf.iframeScrolling+'" ';var iframeBorder=' frameborder="'+_iframeConf.iframeBorder+'" ';var iframeSource=' src="'+_iframeConf.iframeSrc+'" ';var iframeHeight=' height= "'+_iframeConf.iframeHeight+'" ';var iframeWidth=' width= "'+_iframeConf.iframeWidth+'" ';var iframeStyle=' style= "'+_iframeConf.iframeStyle+'" ';var iframe='';return iframe;} iframe_factory.checkData=function(_iframeConf){if(!iframe_factory.checkIframeConf(_iframeConf)){return false;} if(!iframe_factory.checkDivId(_iframeConf)){return false;} if(!iframe_factory.checkIframeSource(_iframeConf)){return false;} return true;} iframe_factory.checkIframeSource=function(_iframeConf){if(_iframeConf.iframeSrc==""){kw_iframe_handler.log(kw_iframe_handler.name,"UNHANDLED ERROR\rNo source to set into Iframe");return false;} return true;} iframe_factory.checkDivId=function(_iframeConf){if(_iframeConf.iframeDivId==""){kw_iframe_handler.log(kw_iframe_handler.name,"UNHANDLED ERROR \r No ID passed in configuration");return false;} return true;} iframe_factory.checkIframeConf=function(_iframeConf){if(_iframeConf){iframe_factory.iframeConf=_iframeConf;}else{kw_iframe_handler.log(kw_iframe_handler.name,"UNHANDLED ERROR \r Iframe Configuration not found in page => missing iframeConf");return false;} return true;};iframe_factory.xconsole=function(msg){if(window.console){console.log("[IframeFactory.js] "+msg);}else{return false;}} iframe_factory.oconsole=function(msg){if(window.console){console.log("[IframeFactory.js]");console.log(msg);}else{return false;}}; var _kw_iframe_handler=function(){var _addNewIframe=function(_data){if(_isReady()===false){return;} kw_iframe_handler.log(kw_iframe_handler.name,"Creating new Iframe \r\nIframe Div Id: "+_data.iframeDivId+" - Iframe source: "+_data.iframeSrc);var _config=_generateConfigObject(_data);var newIframeConfig=iframe_factory.createIframe(_config);iframe_controller.registerIframe(newIframeConfig[0],newIframeConfig[1],newIframeConfig[2]);kw_iframe_handler.log(kw_iframe_handler.name,"NEW IFRAME REGISTERED");};var _addExistingIframe=function(_data){if(_isReady()===false){return;} kw_iframe_handler.log(kw_iframe_handler.name,"Adding existing Iframe \r\nIframe Div Id: "+_data.iframeDivId+" - Div is available: "+document.getElementById(_data.iframeDivId));var _config=_generateConfigObject(_data);var newIframeConfig=iframe_factory.addExistingIframe(_config);iframe_controller.registerIframe(newIframeConfig[0],newIframeConfig[1],newIframeConfig[2]);kw_iframe_handler.log(kw_iframe_handler.name,"NEW IFRAME REGISTERED");};var _isReady=function(){if(_checkLibs()===true){return true;}else{kw_iframe_handler.log(kw_iframe_handler.name,"Libs not ready");return false;}};var _checkLibs=function(){if(iframe_factory&&iframe_controller&&viewability_handler&&kw_player_pm_handler){return true;}else{return false;}};var _generateConfigObject=function(data){var localIframeConfigurationObject=iframe_factory.createNewIframeConfig();for(var t in data){if(localIframeConfigurationObject.hasOwnProperty(t)){localIframeConfigurationObject[t]=data[t];}else{kw_iframe_handler.log(kw_iframe_handler.name,"!!!!! CONFIG DISCARDED !!!!! "+t+" -> "+data[t]);}} return localIframeConfigurationObject;};return{name:"kw_iframe_handler",counter:0,log:function(_caller,_msgLog){try{if(typeof _msgLog==="object"){console.log("["+_caller+"] (obj following) ");console.log(_msgLog);}else{console.log("["+_caller+"] "+_msgLog);}}catch(e){}},setup:function(bodyElement){kw_iframe_handler.log(kw_iframe_handler.name,"SETUP");viewability_handler.main(bodyElement);viewability_handler.eventHandler.addEventListener("playerOutOfScope",iframe_controller.playerOutOfScope);},addNewIframe:function(data){_addNewIframe(data);},addExistingIframe:function(data){_addExistingIframe(data);},stopAnyPlayer:function(){},desnapEveryObject:function(){}}}; var kw_player_pm_handler={name:'kw_player_pm_handler',url_pattern:/^(http(s)?:\/\/(test\.)?video\.){1}(nordesteconomia\.|messaggeroveneto\.|corrierealpi\.|gazzettadimodena\.|gazzettadireggio\.|nuovavenezia\.|gazzettadimantova\.|lanuovaferrara\.|laprovinciapavese\.|tribunatreviso\.|lasentinella\.|ilpiccolo\.|iltirreno\.|mattinopadova\.)?(lastampa|ilsecoloxix|3nz|deejay|m2o|capital|repubblica|gelocal|huffingtonpost|espresso.repubblica|xl.repubblica|tvzap.kataweb|trovacinema.repubblica|d.repubblica|greenandblue|salute|ilgusto|italian|moda|modaebeauty){1}(\.it|\.stage|\.tech|\.eu){1}$/,data:null,origin:null,onMessage:function(e){try{kw_player_pm_handler.origin=e.origin;kw_player_pm_handler.data=e.data;}catch(error){try{kw_iframe_handler.log(this.name,error);}catch(err){} return;} var originCheck=false;originCheck=kw_player_pm_handler.checkOrigin();if(originCheck===true){try{kw_iframe_handler.log(this.name,kw_player_pm_handler.data);}catch(e){} kw_player_pm_handler.iframeMessage(kw_player_pm_handler.data);}},iframeMessage:function(data){if(data.indexOf("gelepmv")===0){if(data&&(data.indexOf("adv:")>-1)){kw_player_pm_handler.advMessage(data);}else if(data&&(data.indexOf("content:")>-1)){kw_player_pm_handler.contentMessage(data);}else if(data&&(data.indexOf("player:")>-1)){kw_player_pm_handler.playerMessage(data);}else if(data&&(data.indexOf("internal:")>-1)){kw_player_pm_handler.internalMessage(data);}}else{if(data&&(data.indexOf("preroll:")==0||data.indexOf("postroll:")==0)){kw_player_pm_handler.advIframeMessage(data);}else if(data&&data.indexOf("content:")==0){kw_player_pm_handler.contentIframeMessage(data);}}},advMessage:function(data){var message=kw_player_pm_handler.checkMessage("adv",data);try{switch(message[0]){case"preroll":case"postroll":kw_player_pm_handler.advPos(message[2],message[1],message[0]);break;case"start":kw_player_pm_handler.advStart(message[2],message[1],message[3]['advpos']);break;case"pause":kw_player_pm_handler.advPause(message[2],message[1],message[3]['advpos']);break;case"resume":kw_player_pm_handler.advResume(message[2],message[1],message[3]['advpos']);break;case"end":var evt=message[3]['event'];kw_player_pm_handler.advEnd(message[2],message[1],message[3]['advpos'],evt);break;case"skip":var evt=message[3]['event'];kw_player_pm_handler.advSkip(message[2],message[1],message[3]['advpos'],evt);break;}}catch(e){kw_player_pm_handler.messageHandlingError(e,message,"adv");}},advStart:function(div1,el,advpos){iframe_controller.playerStateChange(el,"ADV","");iframe_controller.iframes[el].configuration.advStart(div1,el,advpos);if(advpos=="preroll"){iframe_controller.iframes[el].configuration.cbPrerollStart(div1,el);}},advPause:function(div1,el,advpos){iframe_controller.playerStateChange(el,"ADVPAUSE","");iframe_controller.iframes[el].configuration.advPause(div1,el,advpos);if(advpos=="preroll"){iframe_controller.iframes[el].configuration.cbPrerollStart(div1,el);}},advResume:function(div1,el,advpos){iframe_controller.playerStateChange(el,"ADVRESUME","");iframe_controller.iframes[el].configuration.advResume(div1,el,advpos);if(advpos=="preroll"){iframe_controller.iframes[el].configuration.cbPrerollStart(div1,el);}},advEnd:function(div1,el,advpos){iframe_controller.playerStateChange(el,"ADVEND","");iframe_controller.iframes[el].configuration.advEnd(div1,el,advpos);if(advpos=="preroll"){iframe_controller.iframes[el].configuration.cbPrerollEnd(div1,el);}},advSkip:function(div1,el,advpos){iframe_controller.playerStateChange(el,"ADVEND","");iframe_controller.iframes[el].configuration.advSkip(div1,el,advpos);if(advpos=="preroll"){iframe_controller.iframes[el].configuration.cbPrerollEnd(div1,el);}},advPos:function(div1,el,advpos){iframe_controller.iframes[el].configuration.advPos(div1,el,advpos);},contentMessage:function(data){var message=kw_player_pm_handler.checkMessage("content",data);try{switch(message[0]){case"play":kw_player_pm_handler.playHandler(message[2],message[1]);break;case"mediacomplete":case"complete":kw_player_pm_handler.mediaCompleteHandler(message[2],message[1]);break;case"pause":kw_player_pm_handler.pauseHandler(message[2],message[1]);break;case"volumechange":try{if(message[3]['muted']==="true"){kw_player_pm_handler.mutedHandler(message[2],message[1]);}else if(message[3]['muted']==="false"){kw_player_pm_handler.unmutedHandler(message[2],message[1]);}}catch(e){kw_player_pm_handler.volumechangeHandler(message[2],message[1],message[0],message[3]);} break;default:kw_player_pm_handler.genericHandler(message[2],message[1],message[0]);break;}}catch(e){kw_player_pm_handler.messageHandlingError(e,message,"content");}},mediaCompleteHandler:function(div1,el){iframe_controller.iframes[el].configuration.mediaCompleteHandler(div1,el);},playHandler:function(div1,el){iframe_controller.iframes[el].configuration.playHandler(div1,el);},pauseHandler:function(div1,el){iframe_controller.iframes[el].configuration.pauseHandler(div1,el);},mutedHandler:function(div1,el){iframe_controller.iframes[el].configuration.mutedHandler(div1,el);},unmutedHandler:function(div1,el){iframe_controller.iframes[el].configuration.unmutedHandler(div1,el);},volumechangeHandler:function(div1,el,data){iframe_controller.iframes[el].configuration.volumeChange(div1,el,data);},genericHandler:function(div1,el,op){iframe_controller.iframes[el].configuration.genericHandler(div1,el,op);},playerMessage:function(data){var message=kw_player_pm_handler.checkMessage("player",data);try{switch(message[0]){case"audiostate":console.log("[pm_player_to_container] player audiostate",message);iframe_controller._playerInfoGetter(message[1],message[0],message[3]["value"]);break;default:kw_player_pm_handler.playerstateHandler(message[2],message[1],message[3]['oldstate'],message[3]['newstate']);break;}}catch(e){kw_player_pm_handler.messageHandlingError(e,message,"player");}},playerstateHandler:function(div1,el,oldstate,newstate){iframe_controller.iframes[el].configuration.playerstateHandler(div1,el,oldstate,newstate);iframe_controller.playerStateChange(el,newstate,oldstate);},internalMessage:function(data){try{var message=kw_player_pm_handler.checkMessage("internal",data);switch(message[0]){case"clickinsideiframe":kw_player_pm_handler.internalHandler(message[2],message[1],message[0]);break;case"iframeresize":kw_player_pm_handler.internalHandler(message[2],message[1],message[0],{"width":message[3]['width'],"height":message[3]['height']});break;case"embedresize":kw_player_pm_handler.internalHandler(message[2],message[1],message[0],message[3]['height']);break;case"viewchange":kw_player_pm_handler.internalHandler(message[2],message[1],message[0],message[3]['viewstate']);break;case"pagecheck":kw_player_pm_handler.internalHandler(message[2],message[1],message[0],message[3]['id']);break;case"clickonrelated":kw_player_pm_handler.internalHandler(message[2],message[1],message[0],message[3]['id']);try{viewability_handler.abortFadingProcess();}catch(e){} break;default:kw_player_pm_handler.internalHandler(message[2],message[1],message[0],"0");break;}}catch(e){kw_player_pm_handler.messageHandlingError(e,message,"internal");}},internalHandler:function(div1,el,op,hei){try{iframe_controller.iframes[el].configuration.internalHandler(div1,el,op,hei);}catch(e){}},checkMessage:function(label,message){var data=new Object();var pm_splitted=message.split(",");for(rt=0;rt-1);}catch(e){pmgsport_check=false;} kw_player_pm_handler.logMessage(url_check,pmgsport_check,kw_player_pm_handler.data);try{if((url_check===true||pmgsport_check===true)&&(kw_player_pm_handler.data.indexOf("gelepmv")>-1||kw_player_pm_handler.data.indexOf("preroll:")===0||kw_player_pm_handler.data.indexOf("postroll:")===0||kw_player_pm_handler.data.indexOf("content:")===0)){return true;}else{return false;}} catch(e){console.log("error pm_player_to_container checkOrigin",e);return false;}},messageHandlingError:function(_e,_message,_originError){try{kw_iframe_handler.log(this.name,"ERROR - Something went wrong handling "+_originError+" Message");kw_iframe_handler.log(this.name,_message);kw_iframe_handler.log(this.name,_e);}catch(e){try{console.log(this.name,"ERROR - Something went wrong handling "+_originError+" Message");console.log(this.name,_message);console.log(this.name,_e);}catch(e){}}},logMessage:function(url_check,pmgsport_check,data){if(url_check&&pmgsport_check){}},logCheckedMessage:function(_message,_div1,_el,_op,_data,_msgType){try{kw_iframe_handler.log(this.name,"<##> CHECKING MESSAGE RECEIVED <##> MESSAGE: "+_message+" ## TYPE: "+_msgType+" ## DIV: "+_div1+" ## EL: "+_el+" ## OP: "+_op);}catch(e){}}} console.log("[VIDEO_CONFIG] run") window.addEventListener("message",kw_player_pm_handler.onMessage);; VideoEmbed={addIframe:function(id,_url,_width,_height,viewability,_playerSnap){var loc_iframe={};loc_iframe.viewability=viewability;loc_iframe.playerSnap=_playerSnap;loc_iframe.iframeId=id.replace("_ex_","_ifr_");loc_iframe.iframeDivId=id;loc_iframe.playHandler=function(div,el){} loc_iframe.pauseHandler=function(div,el){} loc_iframe.mediaCompleteHandler=function(div,el){} loc_iframe.advStart=function(div,el){} kw_iframe_handler.addExistingIframe(loc_iframe);},createIframe:function(id,url,width,height,viewability,_playerSnap){var loc_iframe={};loc_iframe.viewability=viewability;loc_iframe.playerSnap=_playerSnap;loc_iframe.iframeId=id.replace("_ex_","_ifr_");loc_iframe.iframeWidth=width loc_iframe.iframeHeight=height loc_iframe.iframeDivId=id;loc_iframe.playHandler=function(div,el){} loc_iframe.pauseHandler=function(div,el){} loc_iframe.mediaCompleteHandler=function(div,el){} loc_iframe.advStart=function(div,el){} loc_iframe.iframeId=id.replace("_ex_","_ifr_");loc_iframe.iframeSrc=url;kw_iframe_handler.addNewIframe(loc_iframe);},main:function(className){if(className==undefined){className="body-text";} if(window.kw_iframe_handler==undefined){iframe={};kw_iframe_handler=new _kw_iframe_handler();kw_viewport_height=window.innerHeight;try{if(document.getElementsByClassName(className)[0]!==undefined){kw_iframe_handler.setup("."+className);}else{kw_iframe_handler.setup(className);}}catch(e){kw_iframe_handler.setup(className);}}}}; ;window.kwait=window.kwait||[];kwait.push(['call',"video_js"]);