Files

1 line
16 KiB
JavaScript

!function(){"use strict";class e extends HTMLElement{constructor(){super(),this._isRendered=!1,this._isCookieConsentLoaded=!1,this._isPlayerLoaded=!1,this._hasVideoStarted=!1,this._player=null,this._playerEl=null,this._cookieConsentEl=null,this._emailCaptureEl=null,this._intersectionObserver=null,this._isInViewport=!1,this._playerId="",this._params={}}connectedCallback(){this._playerId=this.dataset.id||"",this._params=this.dataset.params?JSON.parse(this.dataset.params):{},this._render()}get cookieConsent(){return this.hasAttribute("cookieconsent")}set cookieConsent(e){let t=Boolean(e);t?this.setAttribute("cookieconsent",""):this.removeAttribute("cookieconsent")}get emailCapture(){return this.hasAttribute("emailcapture")}set emailCapture(e){let t=Boolean(e);t?this.setAttribute("emailcapture",""):this.removeAttribute("emailcapture")}_render(){if(this._isRendered)return!1;if(this._params.lazyloading&&!this._isInViewport)return this._initIntersectionObserver(),!1;if(this.emailCapture){if(this._emailCaptureEl=this.querySelector(".aiovg-email-capture"),this._emailCaptureEl){if(parseInt(this._emailCaptureEl.dataset.pre_roll))return this._initPreRollEmailCapture(),!1}else this.emailCapture=!1}if(this.cookieConsent)return this._addCookieConsent(),!1;this._isRendered=!0,this._addPlayer()}_addCookieConsent(){if(this._isCookieConsentLoaded)return!1;this._isCookieConsentLoaded=!0,this._cookieConsentEl=this.querySelector(".aiovg-privacy-wrapper");let t=this._cookieConsentEl.getAttribute("data-poster")||"";e.isValidUrl(t)&&(this._cookieConsentEl.style.backgroundImage=`url("${t}")`),this._cookieConsentEl.querySelector(".aiovg-privacy-consent-button").addEventListener("click",()=>this._onCookieConsent())}_onCookieConsent(){this._isRendered=!0,this._cookieConsentEl.remove(),this.cookieConsent=!1,this._params.player.autoplay=!0,this._addPlayer(),this._setCookie();let e=document.querySelectorAll(".aiovg-player-element");for(let t=0;t<e.length;t++)e[t].removeCookieConsent();window.postMessage({message:"aiovg-cookie-consent"},window.location.origin)}_initPreRollEmailCapture(){this.classList.add("aiovg-show-email-capture");let t=this._emailCaptureEl.getAttribute("data-poster")||"";e.isValidUrl(t)&&(this._emailCaptureEl.style.backgroundImage=`url("${t}")`);let a=this._emailCaptureEl.querySelector("input");a&&a.focus(),this._initEmailCaptureForm(e=>{if(!this._emailCaptureEl||this._isRendered||this._emailCaptureEl.classList.contains("aiovg-is-loading"))return!1;this._emailCaptureEl.classList.add("aiovg-is-loading");let t=new XMLHttpRequest;t.onreadystatechange=()=>{if(4==t.readyState){let e=null;if(200==t.status&&t.responseText)try{e=JSON.parse(t.responseText)}catch(a){}if(e&&e.success){this._isRendered=!0,this.classList.remove("aiovg-show-email-capture"),this._emailCaptureEl.remove(),this._emailCaptureEl=null,this.emailCapture=!1,this._params.player.autoplay=!0,this._addPlayer();let i=document.querySelectorAll(".aiovg-player-element");for(let s=0;s<i.length;s++)i[s].removeCookieConsent(),i[s].removeEmailCapture();window.postMessage({message:"aiovg-email-captured"},window.location.origin)}else{let r=this._emailCaptureEl.querySelector(".aiovg-email-capture-error");return r&&(r.textContent=e&&e.data&&"string"==typeof e.data?e.data:r.getAttribute("data-error_generic"),r.style.display="block"),this._emailCaptureEl.classList.remove("aiovg-is-loading"),!1}}},t.open("POST",this._params.ajax_url+"?action=aiovg_save_email_lead&security="+this._params.ajax_nonce,!0),t.setRequestHeader("Content-type","application/x-www-form-urlencoded"),t.send(e)})}_addPlayer(){if(this._isPlayerLoaded)return!1;this._isPlayerLoaded=!0;let e=document.getElementById(this._playerId);this._player=new Plyr(e,this._params.player),this._playerEl=this.querySelector(".plyr");let t={player:this._player,settings:this._params};if(this.dispatchEvent(new CustomEvent("player.init",{detail:t,bubbles:!0,cancelable:!0})),this._player.on("ready",()=>{let e=this._player.elements.container.querySelector('[data-plyr="restart"]');if(e){let t=document.createElement("div");t.className="plyr__controls__item plyr__spacer",t.setAttribute("aria-hidden","true"),e.parentNode.replaceChild(t,e)}this._initShareEmbed(),this._initLogoTrailerBadge(),this._initEmailCapture()}),this._player.on("playing",()=>{this._hasVideoStarted||(this._hasVideoStarted=!0,this._updateViewsCount());let e=document.querySelectorAll(".aiovg-player-element");for(let t=0;t<e.length;t++)e[t]!=this&&e[t].pause();window.postMessage({message:"aiovg-video-playing"},window.location.origin)}),this._player.on("ended",()=>{this._playerEl.className+=" plyr--stopped"}),this._params.hasOwnProperty("hls")){let a=new Hls;a.loadSource(this._params.hls),a.attachMedia(e),this._player.on("languagechange",()=>{setTimeout(()=>a.subtitleTrack=this._player.currentTrack,50)})}if(this._params.hasOwnProperty("dash")){let i=dashjs.MediaPlayer().create();i.initialize(e,this._params.dash,this._params.player.autoplay||!1)}this._params.player.hasOwnProperty("ads")&&this._initAds(),this._params.hasOwnProperty("contextmenu")&&this._initContextMenu()}_initAds(){this._player.ads.config.tagUrl=this._getVastUrl();let e=!1;this._player.ads.on("loaded",()=>{if(e)return!1;e=!0;let t=this._player.ads.manager,a=document.createElement("button");a.type="button",a.className="plyr__control plyr__control--overlaid",a.style.display="none",a.innerHTML='<svg aria-hidden="true" focusable="false"><use href="'+this._params.player.iconUrl+'#plyr-play"></use></svg><span class="plyr__sr-only">Play</span>',this.querySelector(".plyr__ads").appendChild(a),a.addEventListener("click",()=>{a.style.display="none",t.resume()}),t.addEventListener(google.ima.AdEvent.Type.STARTED,e=>{this.classList.add("aiovg-ads-playing"),this._params.player.ads.companion&&this._initCompanionAds(e)}),t.addEventListener(google.ima.AdEvent.Type.PAUSED,e=>{a.style.display=""}),t.addEventListener(google.ima.AdEvent.Type.RESUMED,e=>{a.style.display="none"}),t.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,e=>{this.classList.remove("aiovg-ads-playing")})})}_getVastUrl(){let e=this._params.player.ads.tagUrl;return(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace("[domain]",encodeURIComponent(this._params.site_url))).replace("[player_width]",this._player.elements.container.offsetWidth)).replace("[player_height]",this._player.elements.container.offsetHeight)).replace("[random_number]",Date.now())).replace("[timestamp]",Date.now())).replace("[page_url]",encodeURIComponent(window.location))).replace("[referrer]",encodeURIComponent(document.referrer))).replace("[ip_address]",this._params.ip_address)).replace("[post_id]",this._params.post_id)).replace("[post_title]",encodeURIComponent(this._params.post_title))).replace("[post_excerpt]",encodeURIComponent(this._params.post_excerpt))).replace("[video_file]",encodeURIComponent(this._player.source))).replace("[video_duration]",this._player.duration||"")).replace("[autoplay]",this._params.player.autoplay||!1)}_initCompanionAds(e){let t=e.getAd(),a=[];try{a=window.AIOVGGetCompanionElements()}catch(i){}if(a.length){let s=new google.ima.CompanionAdSelectionSettings;s.resourceType=google.ima.CompanionAdSelectionSettings.ResourceType.ALL,s.creativeType=google.ima.CompanionAdSelectionSettings.CreativeType.ALL,s.sizeCriteria=google.ima.CompanionAdSelectionSettings.SizeCriteria.SELECT_NEAR_MATCH;for(let r=0;r<a.length;r++){let l=a[r].id,o=a[r].width,n=a[r].height;try{let p=t.getCompanionAds(o,n,s),d=p[0],h=d.getContent();document.getElementById(l).innerHTML=h}catch(m){}}}}_initShareEmbed(){if(!this._params.hasOwnProperty("share")&&!this._params.hasOwnProperty("embed"))return!1;let e=document.createElement("button");e.type="button",e.className="plyr__controls__item plyr__control plyr__share-embed-button aiovg-icon-share",e.innerHTML='<span class="plyr__sr-only">Share</span>',this._playerEl.appendChild(e);let t=this.querySelector(".plyr__share-embed-modal-close-button"),a=this.querySelector(".plyr__share-embed-modal");this._playerEl.appendChild(a),a.style.display="";let i=!1;e.addEventListener("click",()=>{this._player.playing?(i=!0,this._player.pause()):i=!1,e.style.display="none",a.className+=" fadein"}),t.addEventListener("click",()=>{i&&this._player.play(),a.className=a.className.replace(" fadein",""),setTimeout(function(){e.style.display=""},500)}),this._params.hasOwnProperty("embed")&&this.querySelector(".plyr__embed-code-input").addEventListener("focus",function(){this.select(),navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(this.value).catch(()=>{}):document.execCommand("copy")})}_initLogoTrailerBadge(){let e=this._params.hasOwnProperty("logo"),t=this._params.hasOwnProperty("trailer");if(!e&&!t)return!1;let a="bottom:50px; left:15px;";if(e)switch(a="bottom:50px; left:"+this._params.logo.margin+"px;",this._params.logo.position){case"topleft":a="top:"+this._params.logo.margin+"px; left:"+this._params.logo.margin+"px;";break;case"topright":a="top:"+this._params.logo.margin+"px; right:"+this._params.logo.margin+"px;";break;case"bottomright":a="bottom:50px; right:"+this._params.logo.margin+"px;"}let i=e?this._params.logo.link:"javascript:void(0)";t&&this._params.trailer.url&&(i=this._params.trailer.url);let s="";e?s='<img src="'+this._params.logo.image+'" alt="" />':t&&this._params.trailer.url&&(s='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="#fff" aria-hidden="true"><path d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>');let r=t?'<span class="plyr__logo-label">'+this._params.trailer.label+"</span>":'<span class="plyr__sr-only">Logo</span>',l=document.createElement("div");l.className="plyr__logo",l.innerHTML='<a href="'+i+'" target="_top" style="'+a+'">'+s+r+"</a>",this._playerEl.appendChild(l)}_initEmailCapture(){if(!this.emailCapture||!this._emailCaptureEl)return!1;this._emailCaptureEl.style.backgroundImage="none",this._playerEl.appendChild(this._emailCaptureEl);let e=!1,t=!1,a=()=>{if(!this._emailCaptureEl||e)return!1;e=!0,this._player.ended||(t=!this._player.paused||this._player.seeking,this._player.pause()),this.classList.add("aiovg-show-email-capture");let a=this._emailCaptureEl.querySelector("input");a&&a.focus()},i=()=>{if(!this._emailCaptureEl||!e)return!1;e=!1,this.classList.remove("aiovg-show-email-capture"),this._emailCaptureEl.remove(),this._emailCaptureEl=null,this.emailCapture=!1,t&&this._player.play()},s=e=>{if(!this._emailCaptureEl||this._emailCaptureEl.classList.contains("aiovg-is-loading"))return!1;this._emailCaptureEl.classList.add("aiovg-is-loading");let t=new XMLHttpRequest;t.onreadystatechange=()=>{if(4==t.readyState){let e=null;if(200==t.status&&t.responseText)try{e=JSON.parse(t.responseText)}catch(a){}if(e&&e.success){i();let s=document.querySelectorAll(".aiovg-player-element");for(let r=0;r<s.length;r++)s[r].removeCookieConsent(),s[r].removeEmailCapture();window.postMessage({message:"aiovg-email-captured"},window.location.origin)}else{let l=this._emailCaptureEl.querySelector(".aiovg-email-capture-error");l&&(l.textContent=e&&e.data&&"string"==typeof e.data?e.data:l.getAttribute("data-error_generic"),l.style.display="block"),this._emailCaptureEl.classList.remove("aiovg-is-loading")}}},t.open("POST",this._params.ajax_url+"?action=aiovg_save_email_lead&security="+this._params.ajax_nonce,!0),t.setRequestHeader("Content-type","application/x-www-form-urlencoded"),t.send(e)},r=parseInt(this._emailCaptureEl.dataset.mid_roll);if(r){let l=!1,o=()=>{if(!this._emailCaptureEl)return this._player.off("timeupdate",o),!1;if(l)return!1;let e=this._player.duration,t=this._player.currentTime;e&&t>=r/100*e&&(l=!0,this._player.off("timeupdate",o),a())};this._player.on("timeupdate",o)}let n=parseInt(this._emailCaptureEl.dataset.post_roll);n&&this._player.on("ended",()=>{a()}),this._player.on("play",()=>{if(!this._emailCaptureEl||!e)return!1;t=!0,this._player.pause()}),this._player.on("playing",()=>{if(!this._emailCaptureEl||!e)return!1;t=!0,this._player.pause()}),this._initEmailCaptureForm(e=>s(e))}_initEmailCaptureForm(e){let t=this._emailCaptureEl.querySelector(".aiovg-email-capture-submit"),a=this._emailCaptureEl.querySelector(".aiovg-email-capture-skip");if(t&&t.addEventListener("click",()=>{let t=this._emailCaptureEl.querySelector(".aiovg-email-capture-email"),a=this._emailCaptureEl.querySelector(".aiovg-email-capture-error"),i=t?t.value.trim():"";if(!i||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i)){if(a){let s=a.getAttribute("data-invalid_email")||"Please enter a valid email address.";a.textContent=s,a.style.display="block"}return t&&(t.classList.add("aiovg-is-invalid"),t.setAttribute("aria-invalid","true")),!1}a&&(a.style.display="none"),t&&(t.classList.remove("aiovg-is-invalid"),t.removeAttribute("aria-invalid"));let r="email="+encodeURIComponent(i),l=this._emailCaptureEl.querySelector(".aiovg-email-capture-name");l&&l.value.trim()&&(r+="&name="+encodeURIComponent(l.value.trim()));let o=this._emailCaptureEl.querySelector(".aiovg-email-capture-phone");o&&o.value.trim()&&(r+="&phone="+encodeURIComponent(o.value.trim())),"aiovg_videos"==this._params.post_type&&this._params.post_id?r+="&video_id="+encodeURIComponent(this._params.post_id):(r+="&video_id=0",this._emailCaptureEl.dataset.video_url&&(r+="&video_url="+encodeURIComponent(this._emailCaptureEl.dataset.video_url))),e(r+="&page_url="+encodeURIComponent(window.location.href))}),a){let i=()=>e("skipped=1");a.addEventListener("click",i),a.addEventListener("keydown",e=>{(13===e.keyCode||32===e.keyCode)&&(e.preventDefault(),i())})}}_initContextMenu(){if(!window.AIOVGIsContextMenuAdded){window.AIOVGIsContextMenuAdded=!0;let e=document.createElement("div");e.id="aiovg-contextmenu",e.style.display="none",e.innerHTML='<div class="aiovg-contextmenu-content">'+this._params.contextmenu.content+"</div>",document.body.appendChild(e)}let t=document.getElementById("aiovg-contextmenu"),a="";this._playerEl.addEventListener("contextmenu",function(e){if(3==e.keyCode||3==e.which){e.preventDefault(),e.stopPropagation();let i=t.offsetWidth,s=t.offsetHeight,r=e.pageX,l=e.pageY,o=document.documentElement,n=(window.pageXOffset||o.scrollLeft)-(o.clientLeft||0),p=(window.pageYOffset||o.scrollTop)-(o.clientTop||0),d=r+i>window.innerWidth+n?r-i:r,h=l+s>window.innerHeight+p?l-s:l;t.style.display="",t.style.left=d+"px",t.style.top=h+"px",clearTimeout(a),a=setTimeout(function(){t.style.display="none"},1500)}}),document.addEventListener("click",()=>{t.style.display="none"})}_initIntersectionObserver(){if(this._intersectionObserver)return!1;this._intersectionObserver=new IntersectionObserver((e,t)=>{e.forEach(e=>{e.isIntersecting?(this._isInViewport=!0,this._render(),this._isRendered&&t.unobserve(this)):this._isInViewport=!1})},{root:null,rootMargin:"0px",threshold:0}),this._intersectionObserver.observe(this)}async _updateViewsCount(){if(this._params.statistics&&"aiovg_videos"==this._params.post_type){let e=new FormData;e.append("action","aiovg_update_views_count"),e.append("post_id",parseInt(this._params.post_id)),e.append("duration",this._player.duration||0),e.append("security",this._params.ajax_nonce),fetch(this._params.ajax_url,{method:"POST",body:e})}}async _setCookie(){let e=new FormData;e.append("action","aiovg_set_cookie"),e.append("security",this._params.ajax_nonce),fetch(this._params.ajax_url,{method:"POST",body:e})}static isValidUrl(e){if(""===e)return!1;try{return new URL(e),!0}catch(t){return!1}}removeCookieConsent(){if(this._isRendered||!this._cookieConsentEl)return!1;this._cookieConsentEl.remove(),this.cookieConsent=!1,this._render()}removeEmailCapture(){if(!this._emailCaptureEl)return!1;this.classList.remove("aiovg-show-email-capture"),this._emailCaptureEl.remove(),this._emailCaptureEl=null,this.emailCapture=!1,this._isRendered||this._render()}pause(){this._player&&this._player.pause()}seekTo(e){this._player&&(this._player.currentTime=e,this._hasVideoStarted||this._player.play())}}window.AIOVGIsContextMenuAdded=!1,document.addEventListener("DOMContentLoaded",function(){customElements.get("aiovg-video")||customElements.define("aiovg-video",e),window.addEventListener("message",function(e){if(e.origin!=window.location.origin||!e.data.hasOwnProperty("context")||"iframe"!=e.data.context||!e.data.hasOwnProperty("message"))return!1;if("aiovg-cookie-consent"==e.data.message){let t=document.querySelectorAll(".aiovg-player-element");for(let a=0;a<t.length;a++)t[a].removeCookieConsent()}if("aiovg-email-captured"==e.data.message){let i=document.querySelectorAll(".aiovg-player-element");for(let s=0;s<i.length;s++)i[s].removeEmailCapture()}if("aiovg-video-playing"==e.data.message){let r=document.querySelectorAll("aiovg-video");for(let l=0;l<r.length;l++)r[l].pause()}})})}();