Zákon, kterým se mění zákon č. 229/2002 Sb., o finančním arbitrovi, ve znění pozdějších předpisů, a další související zákony (úplné znění)

Předpis č. 180/2011 Sb.

Znění od 1. 7. 2011

180/2011 Sb. Zákon, kterým se mění zákon č. 229/2002 Sb., o finančním arbitrovi, ve znění pozdějších předpisů, a další související zákony

180

ZÁKON

ze dne 9. června 2011,

kterým se mění zákon č. 229/2002 Sb., o finančním arbitrovi, ve znění pozdějších předpisů, a další související zákony

Parlament se usnesl na tomto zákoně České republiky:

ČÁST PRVNÍ

Změna zákona o finančním arbitrovi

Čl. I

Zákon č. 229/2002 Sb., o finančním arbitrovi, ve znění zákona č. 558/2004 Sb., zákona č. 57/2006 Sb., zákona č. 264/2006 Sb., zákona č. 281/2009 Sb. a zákona č. 285/2009 Sb., se mění takto:

1. § 1 včetně poznámky pod čarou č. 1 zní:

„§ 1

K rozhodování sporů mezi

a) poskytovateli platebních služeb a uživateli platebních služeb při poskytování platebních služeb,

b) vydavateli elektronických peněz a držiteli elektronických peněz při vydávání a zpětné výměně elektronických peněz,

c) věřiteli nebo zprostředkovateli a spotřebiteli při nabízení, poskytování nebo zprostředkování spotřebitelského úvěru1),

d) investičními fondy, investičními společnostmi nebo zahraničními investičními společnostmi a spotřebiteli ze standardních fondů kolektivního investování a speciálních fondů kolektivního investování, které shromažďují peněžní prostředky od veřejnosti,

pokud je jinak k rozhodnutí tohoto sporu dána pravomoc českého soudu, je příslušný též finanční arbitr (dále jen „arbitr“). Sjednání rozhodčí smlouvy nevylučuje pravomoc arbitra. Arbitr usiluje zejména o smírné vyřešení sporu.

1) Zákon č. 145/2010 Sb., o spotřebitelském úvěru a o změně některých zákonů.“.

2. Poznámky pod čarou č. 1a až 2 se zrušují.

3. Za § 1 se vkládá nový § 1a, který zní:

„§ 1a

(1) Úkoly spojené s odborným, organizačním a technickým zabezpečením činnosti arbitra plní Kancelář finančního arbitra, která je organizační složkou státu, účetní jednotkou a jejíž příjmy a výdaje jsou součástí rozpočtové kapitoly Ministerstva financí.

(2) V čele Kanceláře finančního arbitra je arbitr.

(3) Organizaci a úkoly Kanceláře finančního arbitra upravuje statut, který vydá arbitr.

(4) Pracovní poměr a odměňování arbitra, zástupce arbitra a dalších zaměstnanců v Kanceláři finančního arbitra se řídí zákoníkem práce.“.

4. § 3 zní:

„§ 3

(1) Institucí se pro účely tohoto zákona rozumí věřitel nebo zprostředkovatel při nabízení, poskytování nebo zprostředkování spotřebitelského úvěru, investiční fond, investiční společnost, zahraniční investiční společnost, poskytovatel platebních služeb a vydavatel elektronických peněz.

(2) Navrhovatelem se pro účely tohoto zákona rozumí uživatel platebních služeb v případě sporů uvedených v § 1 písm. a), držitel elektronických peněz v případě sporů uvedených v § 1 písm. b) a spotřebitel v případě sporů uvedených v § 1 písm. c) a d).

(3) Spotřebitelem se rozumí fyzická osoba, která nejedná v rámci své podnikatelské činnosti nebo v rámci samostatného výkonu svého povolání.“.

5. V § 4 odstavec 1 zní:

(1) Arbitra a zástupce arbitra jmenuje vláda na návrh ministra financí na funkční období 5 let z osob splňujících podmínky stanovené tímto zákonem. Funkční období počíná dnem jmenování, je-li funkce arbitra nebo jeho zástupce neobsazena, jinak dnem následujícím po dni skončení funkčního období dosavadního arbitra nebo jeho zástupce. Vláda jmenuje arbitra nebo zástupce arbitra nejpozději 2 měsíce před řádným uplynutím funkčního období arbitra nebo zástupce arbitra [§ 6 odst. 3 písm. a)]. V ostatních případech [§ 6 odst. 3 písm. b), c), d)] vláda jmenuje arbitra nebo zástupce arbitra tak, aby období ode dne skončení výkonu funkce arbitra nebo zástupce arbitra do dne jmenování nového arbitra nebo zástupce arbitra nepřesáhlo 2 měsíce.“.

6. V § 4 odst. 2 se slovo „zvoleny“ nahrazuje slovem „jmenovány“ a za slova „které jsou“ se vkládá slovo „bezúhonné,“.

7. V § 4 odst. 4 se slovo „volbu“ nahrazuje slovem „jmenování“.

8. V § 4 odstavec 5 zní:

(5) Za bezúhonného se nepovažuje ten, kdo byl pravomocně odsouzen pro úmyslný trestný čin, trestný čin proti majetku, hospodářský trestný čin nebo pro trestný čin spáchaný v souvislosti s financováním terorismu, pokud jeho odsouzení pro trestné činy nebylo zahlazeno anebo se na něj z jiného důvodu nehledí, jako by nebyl odsouzen.“.

9. V § 5 odst. 2 se slova „Poslanecké sněmovně“ nahrazují slovy „vládě“.

10. V § 5 odst. 3 se za slova „Poslanecké sněmovně“ vkládají slova „a vládě“ a slova „stanovených v § 1 odst. 2“ se zrušují.

11. V § 6 odst. 3 se na konci textu písmene b) doplňují slova „trestný čin proti majetku, hospodářský trestný čin nebo pro trestný čin spáchaný v souvislosti s financováním terorismu,“.

12. V § 6 odst. 3 písm. c) se slova „předsedovi Poslanecké sněmovny“ nahrazují slovy „předsedovi vlády“.

13. V § 7 odst. 1 se slova „Poslanecká sněmovna“ nahrazují slovem „Vláda“.

14. V § 7 odst. 2 se slova „Poslanecká sněmovna“ nahrazují slovem „Vláda“ a za slovo „způsobem“ se vkládají slova „nebo opakovaně“.

15. V § 12 odst. 7 se slova „České národní banky“ nahrazují slovy „v Kanceláři finančního arbitra“.

16. V § 17a odst. 1 větě první se částka „10000 Kč“ nahrazuje částkou „15000 Kč“, ve větě druhé se částka „10000 Kč“ nahrazuje částkou „15000 Kč“ a na konci odstavce 1 se doplňuje věta „Sankce je příjmem státního rozpočtu.“.

17. V § 17a se odstavec 2 zrušuje a zároveň se zrušuje označení odstavce 1.

18. § 22 zní:

„§ 22

Arbitra může povinnosti mlčenlivosti o skutečnostech, o nichž se dozvěděl při výkonu činnosti podle tohoto zákona, zprostit pouze vláda.“.

19. V § 23 odstavec 8 zní:

(8) Pokuta je příjmem státního rozpočtu.“.

Čl. II

Přechodná ustanovení

1. Instituce, která dosud nebyla povinna splnit informační povinnost podle § 19 zákona č. 229/2002 Sb., ve znění účinném do dne nabytí účinnosti tohoto zákona, je povinna splnit informační povinnost podle § 19 zákona č. 229/2009 Sb., ve znění účinném ode dne nabytí účinnosti tohoto zákona, nejpozději do 3 měsíců ode dne nabytí účinnosti tohoto zákona.

2. Zákon č. 229/2002 Sb., ve znění účinném ode dne nabytí účinnosti tohoto zákona, se vztahuje i na výkon funkce finančního arbitra a jeho zástupce zvoleného Poslaneckou sněmovnou.

3. Funkční období zástupce finančního arbitra jmenovaného vládou poprvé po dni nabytí účinnosti tohoto zákona je 2 roky.

4. Zaměstnanci České národní banky vykonávající práci pro finančního arbitra na základě písemných dohod o přidělení k výkonu práce k finančnímu arbitrovi uzavřených mezi Českou národní bankou a těmito zaměstnanci se stávají dnem nabytí účinnosti tohoto zákona zaměstnanci České republiky zařazení v Kanceláři finančního arbitra. Práva a povinnosti z pracovněprávních vztahů těchto zaměstnanců přecházejí tímto dnem z České národní banky na Českou republiku, za kterou jedná a tato práva a povinnosti jejím jménem vykonává Kancelář finančního arbitra.

5. Majetek ve vlastnictví České národní banky, s výjimkou nemovitostí, který ke dni předcházejícímu dni nabytí účinnosti tohoto zákona užíval finanční arbitr k plnění úkolů stanovených zákonem a který je potřebný k výkonu povinností finančního arbitra podle zákona č. 229/2002 Sb., ve znění účinném do dne nabytí účinnosti tohoto zákona, přechází dnem nabytí účinnosti tohoto zákona za úplatu do vlastnictví České republiky. Závazky související s tímto majetkem se stávají dnem nabytí účinnosti tohoto zákona závazky České republiky. Příslušnost hospodařit s tímto majetkem a plnění závazků s ním souvisejících náleží Kanceláři finančního arbitra. Výši úplaty za tento majetek odvozenou od jeho účetní hodnoty a rozsah kompenzace souvisejících závazků stanoví dohoda mezi Českou národní bankou a Českou republikou - Ministerstvem financí. O předání a převzetí tohoto majetku a závazků sepíše Česká národní banka a Kancelář finančního arbitra nejpozději do jednoho měsíce ode dne nabytí účinnosti tohoto zákona protokol. Protokol musí obsahovat vymezení majetku a závazků. Obdobně se postupuje ohledně práv z duševního vlastnictví.

ČÁST DRUHÁ

Změna zákoníku práce

Čl. III

Zákon č. 262/2006 Sb., zákoník práce, ve znění zákona č. 585/2006 Sb., zákona č. 181/2007 Sb., zákona č. 261/2007 Sb., zákona č. 296/2007 Sb., zákona č. 362/2007 Sb., nálezu Ústavního soudu, vyhlášeného pod č. 116/2008 Sb., zákona č. 121/2008 Sb., zákona č. 126/2008 Sb., zákona č. 294/2008 Sb., zákona č. 305/2008 Sb., zákona č. 306/2008 Sb., zákona č. 382/2008 Sb., zákona č. 286/2009 Sb., zákona č. 320/2009 Sb., zákona č. 326/2009 Sb. a zákona č. 347/2010 Sb., se mění takto:

1. V § 5 odst. 5 se za slova „zástupce veřejného ochránce práv“ vkládají slova „ , finančního arbitra, zástupce finančního arbitra“.

2. Poznámka pod čarou č. 5 zní:

5) Zákon č. 312/2002 Sb., o úřednících územních samosprávných celků a o změně některých zákonů, ve znění pozdějších předpisů.
Zákon č. 111/1998 Sb., o vysokých školách a o změně a doplnění dalších zákonů (zákon o vysokých školách), ve znění pozdějších předpisů.
Zákon č. 349/1999 Sb., o Veřejném ochránci práv, ve znění pozdějších předpisů.
Zákon č. 257/2000 Sb., o Probační a mediační službě a o změně zákona č. 2/1969 Sb., o zřízení ministerstev a jiných ústředních orgánů státní správy České republiky, ve znění pozdějších předpisů, zákona č. 65/1965 Sb., zákoník práce, ve znění pozdějších předpisů a zákona č. 359/1999 Sb., o sociálně-právní ochraně dětí (zákon o Probační a mediační službě).
Zákon č. 229/2002 Sb., o finančním arbitrovi, ve znění pozdějších předpisů.“.

3. V § 124 odst. 3 se za slova „vedoucí kanceláře Veřejného ochránce práv“ vkládají slova „ , finanční arbitr“.

4. V § 303 odst. 1 písm. b) se za bod 10 vkládá nový bod 11, který zní:

11. Kanceláři finančního arbitra,“.

Dosavadní body 11 až 16 se označují jako body 12 až 17.

ČÁST TŘETÍ

Změna zákona o organizaci a provádění sociálního zabezpečení

Čl. IV

V § 36 písm. z) zákona č. 582/1991 Sb., o organizaci a provádění sociálního zabezpečení, ve znění zákona č. 590/1992 Sb., zákona č. 160/1993 Sb., zákona č. 307/1993 Sb., zákona č. 241/1994 Sb., zákona č. 160/1995 Sb., zákona č. 360/1999 Sb., zákona č. 18/2000 Sb., zákona č. 132/2000 Sb., zákona č. 309/2002 Sb., zákona č. 424/2003 Sb., zákona č. 281/2004 Sb., zákona č. 359/2004 Sb., zákona č. 436/2004 Sb., zákona č. 168/2005 Sb., zákona č. 361/2005 Sb., zákona č. 189/2006 Sb., zákona č. 181/2007 Sb., zákona č. 305/2008 Sb., zákona č. 41/2009 Sb., zákona č. 158/2009 Sb. a zákona č. 303/2009 Sb., se slova „Česká národní banka“ nahrazují slovy „Kancelář finančního arbitra“.

ČÁST ČTVRTÁ

Změna zákona o nemocenském pojištění

Čl. V

V § 92 odst. 2 písm. l) zákona č. 187/2006 Sb., o nemocenském pojištění, ve znění zákona č. 181/2007 Sb., zákona č. 41/2009 Sb., zákona č. 158/2009 Sb. a zákona č. 303/2009 Sb., se slova „Česká národní banka“ nahrazují slovy „Kancelář finančního arbitra“.

ČÁST PÁTÁ

ÚČINNOST

Čl. VI

Tento zákon nabývá účinnosti dnem 1. července 2011.

Němcová v. r.

Klaus v. r.

Nečas v. r.

Skrýt změny zákona Legenda text přidán text vypuštěn
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); } } }