Exekutorský úřad Přerov prochází krizí. „Ztrácejí“ se peníze

17. 3. 2016
Doba čtení: 7 minut

Sdílet

Autor: Dalibor Z. Chvátal
Aktualizováno 17. 3. 2016 11:10
S tvrdým obviněním přišel nový exekutor přebírající Exekutorský úřad Přerov. Podle něj bývalý exekutor Tomáš Vrána vyvedl cizí peníze. Okolnosti jsou přinejmenším podezřelé, peníze odešly na Slovensko.

Přebírání Exekutorského úřadu Přerov provázejí potíže. Zatím co ve středu 16. března 2016 někteří stávající zaměstnanci úřadu nechtěli do budovy pustit zaměstnance nové, o den dříve v úterý 15. března 2016 z bankovního účtu Exekutorského úřadu Přerov odešlo 3 400 000 Kč. Informoval o tom JUDr. Lukáš Jícha, který byl jmenován do přerovského exekutorského úřadu jako nástupce JUDr. Tomáše Vrány a úřad má převzít k 1. dubnu 2016.

Několik dní před předáním přerovského úřad do mých rukou, došlo k fatálnímu selhání soudního exekutora Tomáše Vrány, od něhož úřad přebírám k 1. 4. 2016. Doktor Tomáš Vrána spolu s údajným nově jmenovaným generálním ředitelem svého úřadu Mgr. Jiřím Bílkem vyvedli v úterý 15. 3. z depozitního účtu úschov soudního exekutora na účet společnosti C.M.B CZ FACILITY částku několika milionů korun. Částka byla převedena na zahraniční účet uvedené společnosti s nejasnou vlastnickou strukturou. Jde o zcela nezpochybnitelnou zpronevěru cizích prostředků, s nimiž nemá Tomáš Vrána právo jakkoli disponovat. Vzhledem k závažnosti těchto skutečností podáváme v tomto okamžiku trestní oznámení pro zpronevěru na Tomáše Vránu, Jiřího Bílka a dále advokáta Jiřího Vančuru jako členy zločinného spolčení. Dále podáváme návrh na vydání předběžného opatření, kterým by soud zakázal těmto osobám disponovat depozitními účty exekutora, spisovou agendou a pověřil tímto zástupce Tomáše Vrány soudního exekutora Reného Mohylu. Stávající zaměstnanci soudního exekutora pokračují v obvyklém výkonu své pracovní činnosti. Usilují o to, aby se předešlo jakýmkoli dalším škodám, uvedl Lukáš Jícha v tiskové zprávě.

Ano, můžeme rovněž potvrdit platnost tohoto tiskového prohlášení, napsal na dotaz Měšce David Tala, tiskový mluvčí Exekutorského úřadu Přerov.

Proti tomuto prohlášení se jasně vymezuji a je to lež v celém znění. Žádné peníze z depozitního účtu nebyly nikdy převedeny. Depozitní účet je účet, na který přicházejí platby od povinných a jsou z něj vypláceni oprávnění, reagoval soudní exekutor Tomáš Vrána.

V žádném případě se nejedná o prostředky dlužníků a věřitelů. Tyto prostředky se převedly z důvodu obchodních aktivit Tomáše Vrány. Nemají žádný vliv na chod Exekutorského úřadu Přerov, doplnil jeho mediální zástupce Kryštof Šabacký pro Deník.cz.

O vyjádření jsme požádali i Ivana Lackoviče, tiskového mluvčího společnosti C.M.B. Investment LTD, ale do uzávěrky vydání se nám jej nepodařilo získat. Jakmile jej obdržíme, obratem je zveřejníme.

Korunový převod do Slovenské spořitelny

Lukáš Jícha zároveň médiím poskytl „důkaz o vyvedení prostředků z účtu úřadu na účet v zahraničí“. Přesněji jde o platbu z účtu s názvem  JUDr. Tomáš Vrána-Ex.úřad Přerov-úschova na korunový (!) účet ve Slovenské spořitelně, který je vedený na jméno C.M.B. CZ Facility s.r.o.

Přestože šlo o platbu v českých korunách, tím, že šlo o platbu do zahraničí (Slovensko), banka si podle svého sazebníku zaúčtovala poplatek 2250 Kč. Jako účel platby je uvedena poznámka: Předání exekutorského úřadu.

Hlavní účet C.M.B. CZ Facility s.r.o., který je registrovaný pro platbu DPH u českého finančního úřadu, je u České spořitelny. Stačí tak za nepatrný poplatek peníze poslat zpět v rámci Erste Group do ČR a jsou doma.

Podezřelá transakce na výpisu z účtu Exekutorského úřadu Přerov.
Autor: JUDr. Lukáš Jícha, soudní exekutor

Podezřelá transakce na výpisu z účtu Exekutorského úřadu Přerov.

Zneužití pravomocí? Možná ano

Na podezření ze zpronevěry je zásadní, že účet zveřejněný novým exekutorem Lukášem Jíchou je vedený jako účet pro úschovu finančních prostředků. To je speciální bankovní účet pro notáře, advokáty, advokátní kanceláře a soudní exekutory a je určen ke skládání finančních prostředků svěřených do úschovy klientem.

Takový typ účtu není určen k běžnému platebnímu styku a lze jej vždy použít pouze pro jeden obchodní případ. Transakce vůči společnosti C.M.B. CZ Facility s.r.o. je proto velmi podezřelá a je s podivem, že ji banka umožnila provést, ledaže by sama byla klientem exekutorského úřadu a tento účet souvisel s jejím obchodním případem. To však tisková zpráva Lukáše Jíchy vylučuje.

Upoutávka ČSOB na účet úschovy pro exekutory.
Autor: Dalibor Z. Chvátal

Upoutávka ČSOB na účet úschovy pro exekutory.

Podezřelé firmy se „známým“ vlastníkem

Společnost C.M.B. CZ Facility s.r.o. byla založena 5. prosince 2014 a její základní jmění činí 1 Kč. Jednatelem společnosti je jiná právnická osoba jménem C.M.B. Management s.r.o, kterou zastupuje Jan Zaorálek.

Společníkem je právnická osoba C.M.B. Investment LTD sídlící ve Spojeném království (Kidd Rapinet Llp, 29 Harbour Exchange Square, London, England, E14 9GE), jejímž jednatelem je Vít Zaorálek.

C.M.B. Investment LTD sídlí v tomto objektu v Londýně.
Autor: Google Inc.

C.M.B. Investment LTD sídlí (má adresu) v tomto objektu v Londýně.

Z jako Zaorálek

Jméno Vít Zaorálek přitom není médiím ani české justici neznámé. Můžete si počíst usnesení Krajského soudu v Brně v jiné věci, kde je jeho jméno skloňováno přesně 40×.

Vrchním soudem v Olomouci byl tento pán odsouzen za trestný čin poškozování věřitele na 4 roky a 10 měsíců. Do vězení nenastoupil, protože se odvolal k Nejvyššími soudu. Jeho společnost C.M.B Investment LTD figuruje i v kauze padlého Metropolitního spořitelního družstva. Firmy, které společnost C.M.B Investment ovládala, tvořily vůči družstvu MSD největší balík pohledávek. Firma Víta Zaorálka pak drze nabízela odkup dluhu svých dceřinek za nižší cenu.

Plná moc C.M.B Investment LTD vydaná společnosti C.M.B. CZ Facility s.r.o., podepsaná Vítem Zaorálkem.
Autor: Ministerstvo spravedlnosti České republiky

Plná moc C.M.B Investment LTD vydaná společnosti C.M.B. CZ Facility s.r.o., podepsaná Vítem Zaorálkem.

Postavit se čelem a vysvětlit

Kdo zadal příkaz k platbě z účtu a jaké motivy jej vedly k zaslání peněz na účet společnosti s trestně stíhaným majitelem bude muset zjistit Policie České republiky, cokoliv dalšího by byly jen spekulace. Tak či onak je vidět, že zaměstnanci Exekutorského úřadu Přerov jsou pod velkým tlakem a jen oni sami vědí, jaké vztahy jsou mezi nimi samotnými a novým exekutorem Jíchou.

Exekutorský úřad Přerov patří mezi úřady, jehož se dlužníci oprávněně obávají. Patří mezi nejúspěšnější v zemi, má vlastní velké sklady, do kterých přiváží mobiliární exekuce, a neváhá použít přiměřený nátlak na dlužníka. Zatímco dlužníci jej nenávidí, pro seriózní věřitele je často poslední záchranou. Jinou otázkou je, zda systém exekucí je správně nastaven a zda má vůbec existovat. Poslat peníze z účtu úschovy na cizí účet je buď hloupost, záměr nebo zoufalý čin zoufalého člověka. Všechny tři možnosti jsou špatně. A pro největší exekutorský úřad v zemi je to pořádná ostuda.

Kontrola je na cestě

Vývoj v Exekutorském úřadu Přerov se nelíbí ani Exekutorské komoře České republiky, která jej bedlivě sleduje. Proto si na pátek 18. března 2016 předvolala Tomáše Vránu a Lukáše Jíchu k podání vysvětlení k současné situaci v přerovském úřadě. Na základě výsledků šetření se Exekutorská komora rozhodne o dalších krocích jako je například podání kárné žaloby či trestního oznámení.

Exekutorská komora je znepokojena zprávami o situaci na Exekutorském úřadu Přerov. Požádala jsem proto předsedu Kontrolní komise Exekutorské komory ČR o provedení mimořádné kontroly na přerovském úřadu. Chci veřejnost ubezpečit, že Exekutorská komora v rámci své dohledové činnosti dělá a udělá vše pro to, aby se situace v Exekutorském úřadě Přerov vyjasnila, agenda úřadu byla řádně předána novému exekutorovi a bylo zabezpečeno, že práva účastníků exekučního řízení nebudou narušena, uvedla Pavla Fučíková, prezidentka Exekutorské komory ČR.

Pavla Fučíková osobně informovala ministra spravedlnosti Roberta Pelikána o situaci v Exekutorském úřadě Přerov i všech dohledových aktivitách, která v současné době komora podniká. A zároveň ministra vyzvala k zahájení šetření a dohledu rovněž ze strany Ministerstva spravedlnosti.

Promyšlený útok C.M.B.

Jde o promyšlený útok nechvalně proslulé skupiny osob kolem společnosti C.M.B. CZ Facility, myslí si exekutor Lukáš Jícha. Tato kontroverzní skupina je historicky spojena s podvodnými insolvencemi a další nekalou obchodní činností. Navzdory zprávám v médiích nejsou zaměstnanci rozděleni do dvou frakcí a všichni jednotně stojí za Lukášem Jíchou, který vedení úřadu přebírá po Tomáši Vránovi 1. dubna 2016, Robertem Runtákem, ředitelem úřadu, a René Mohylou, soudním exekutorem a dosavadním zástupcem Tomáše Vrány. Exekutorský úřad Přerov provádí svou běžnou agendu a klienti se nemusí obávat, že současná situace jakkoli ovlivní chod úřadu, uklidňuje Jícha současnou situaci.

bitcoin_smenarna

V rámci této organizované akce vůči přerovskému úřadu z jeho různých účtů během úterý 15. března 2016 odešlo větší množství finanční prostředků, a to většinou na zahraniční účty společnosti C.M.B. CZ Facility. Kromě již zmiňované částky 3,4 milionu korun nejde o peněžní prostředky klientů, nýbrž o provozní prostředky exekutorského úřadu. Právě částka 3,4 milionu korun z účtu úschov, s nimiž nesmí nikdo bez souhlasu schovatele nakládat, odešla rovněž na zahraniční účet společnosti C.M.B. CZ Facility.

Jakmile byla tato skutečnost zjištěna, požádali pracovníci exekutorského úřadu Finančně analytický útvar Ministerstva financí České republiky o zablokování všech účtů soudního exekutora Tomáše Vrány, aby nemohlo docházet k případným škodám. V současné chvíli jsou tak všechny bankovní účty zablokovány a peněžní prostředky zabezpečeny. Zároveň bylo podáno trestní oznámení  pro podezření ze spáchání trestného činu zpronevěry, přičemž jako podezřelé osoby byly uvedeny Tomáš Vrána, Jiří Bílek a advokát Jiří Vančura.

Autor článku

Autor se věnuje publikační činnosti v oblasti osobních financí. Specializuje se na finanční produkty, spotřebitelská témata a osobní silniční dopravu.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »