Zákon, kterým se mění zákon č. 89/1995 Sb., o státní statistické službě, ve znění pozdějších předpisů (úplné znění)

Předpis č. 81/2004 Sb.

Znění od 1. 5. 2004

81/2004 Sb. Zákon, kterým se mění zákon č. 89/1995 Sb., o státní statistické službě, ve znění pozdějších předpisů

81

ZÁKON

ze dne 22. ledna 2004,

kterým se mění zákon č. 89/1995 Sb., o státní statistické službě, ve znění pozdějších předpisů

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

Čl. I

Zákon č. 89/1995 Sb., o státní statistické službě, ve znění zákona č. 356/1999 Sb., zákona č. 220/2000 Sb., zákona č. 256/2000 Sb., zákona č. 411/2000 Sb., zákona č. 202/2002 Sb. a zákona č. 320/2002 Sb., se mění takto:

1. V § 1 odst. 1 se za slovo "ekonomickém" vkládá slovo " , demografickém".

2. § 2 včetně nadpisu zní:

"§ 2

Vymezení pojmů

Pro účely tohoto zákona se rozumí

a) individuálním údajem údaj týkající se jednotlivé právnické nebo fyzické osoby, získaný pro statistické účely podle tohoto zákona,

b) důvěrným statistickým údajem takový údaj, který umožňuje přímou nebo nepřímou identifikaci jednotlivé právnické osoby nebo který je osobním údajem fyzické osoby podle zvláštního zákona,2a)

c) anonymním údajem takový individuální údaj, který buď v původním tvaru nebo ani po provedeném zpracování neumožňuje přímou, popřípadě nepřímou identifikaci jednotlivé právnické nebo fyzické osoby,

d) přímou identifikací identifikace jednotlivé právnické nebo fyzické osoby na základě jakéhokoliv identifikátoru, který lze použít bez nutnosti vynaložit ke zjištění identity dané osoby nepřiměřeného času a úsilí,

e) nepřímou identifikací možnost odvodit totožnost jednotlivé právnické nebo fyzické osoby jiným způsobem než způsobem uvedeným v písmenu d),

f) statistickou informací informace sociálního, ekonomického, demografického nebo ekologického charakteru, která vznikla agregací individuálních údajů,

g) statistickým účelem užití pro číselný, slovní nebo grafický popis hromadných jevů a procesů ve společnosti, národním hospodářství a životním prostředí pomocí statistických informací,

h) statistickým zjišťováním získávání individuálních údajů od zpravodajských jednotek pro statistické účely podle tohoto zákona,

i) zpravodajskou jednotkou právnická osoba, organizační složka státu nebo fyzická osoba, od nichž se požaduje poskytnutí individuálních údajů ve statistickém zjišťování podle tohoto zákona,

j) zpravodajskou povinností povinnost zpravodajských jednotek poskytnout požadované individuální statistické údaje včas, úplně, správně a pravdivě pro statistická zjišťování, uvedená v programu statistických zjišťování,

k) ekonomickým subjektem každá právnická osoba, organizační složka státu a dále fyzická osoba, která má podle zvláštního právního předpisu postavení podnikatele,2)

l) identifikačním číslem ekonomického subjektu (dále jen "identifikační číslo") číselný kód, který slouží k jeho identifikaci,

m) zemědělskou činností zemědělská výroba rostlinná a živočišná, včetně zelinářství, zahradnictví, včelařství, rybářství, chovu kožešinových a jiných zvířat, dále lov a odchyt zvěře, výroba zemědělských výrobků, pěstování lesa a těžba dřeva, jakož i poskytování služeb pro zajištění těchto činností,

n) ochranou důvěrných statistických údajů souhrn opatření a nástrojů, které zajišťují takové nakládání s důvěrnými údaji ze statistických zjišťování, prováděných státní statistickou službou, a s údaji získanými z administrativních zdrojů, aby nemohly být neoprávněně změněny, zničeny, ztraceny, přeneseny či jinak zneužity a sloužily jen pro statistické účely; této ochraně podléhají též sdružené údaje za více právnických nebo fyzických osob, z nichž lze bez vynaložení nepřiměřeného času a úsilí určit nebo zjistit, které osoby se tento údaj týká.".

3. V § 3 odstavec 3 zní:

"(3) Orgány vykonávající státní statistickou službu jsou povinny zajistit ochranu důvěrných statistických údajů způsobem stanoveným tímto zákonem. Obsahují-li důvěrné statistické údaje též osobní údaje, podléhají tyto osobní údaje ochraně způsobem stanoveným zvláštním zákonem.2a)".

4. V § 4 odst. 1 písm. a) se za slovo "ekonomické" vkládá slovo " , demografické".

5. V § 4 odst. 1 písm. d) se slovo "odvětví" nahrazuje slovem "částí".

6. V § 4 odst. 1 písm. f) se za slovo "ekonomického" vkládá slovo " , demografického".

7. V § 4 odst. 1 písm. g) se slova "a zpracovává demografické projekce" zrušují.

8. V § 4 odst. 1 písm. i) se za slovo "ekonomickém" vkládá slovo " , demografickém".

9. V § 4 odst. 1 písmeno m) včetně poznámky pod čarou č. 2b) zní:

"m) spolupracuje s mezinárodními organizacemi;

zejména se podílí na tvorbě statistiky Evropských společenství,2b)

2b) Čl. 284 a 285 Smlouvy o založení Evropského společenství.
Čl. 187 Smlouvy o založení Evropského společenství atomové energie.".

10. V § 4 odst. 1 písm. n) se slovo "zajišťuje" nahrazuje slovem "vytváří".

11. V § 4 odst. 2 písm. a) se za slovo "ekonomického" vkládá slovo " , demografického".

12. V § 4 odst. 2 se na konci textu písmene b) doplňují slova " , další odborné publikace a časopisy".

13. V § 4 odst. 3 písm. a) se slovo "individuálních" nahrazuje slovy "důvěrných statistických".

14. V § 4 odst. 3 písm. b) se slova "duplicitnímu zjišťování údajů" nahrazují slovy "nadměrnému zatěžování zpravodajských jednotek".

15. V § 6 odst. 2 se věta poslední nahrazuje větou "Rada má nejvýše 25 členů.".

16. V § 6 se na konci odstavce 2 doplňuje věta "Funkce člena rady je čestná.".

17. V § 6 odstavec 3 zní:

"(3) Rada projednává návrh programu statistických zjišťování, vyjadřuje se k návrhům statistických zjišťování bez zpravodajské povinnosti a posuzuje potřebnost údajů poskytovaných podle § 9 odst. 1 pro Český statistický úřad. Další úkoly, způsob práce a svolávání jednání rady upravuje její statut, který vydá předseda Českého statistického úřadu.".

18. V § 9 se na začátek odstavce 2 vkládají slova "Bez projednání v radě".

19. V § 9 odst. 2 písm. c) bodě 2 se za slova "povinen odvádět" vkládá slovo "zaměstnavatel".

20. V § 10 odst. 2 písm. d) se za slovo "poskytnutí" vkládá slovo "individuálních".

21. V § 11 se slovo "bezplatného" zrušuje a za slovo "poskytování" se vkládá slovo "individuálních".

22. V § 12 odst. 1 se věta druhá nahrazuje větou "Pro vytváření těchto informací jsou státní orgány a zdravotnická zařízení podle povahy své činnosti povinny poskytovat Českému statistickému úřadu důvěrné statistické údaje o rodném čísle, místě trvalého pobytu, místě pobytu cizince, který na území České republiky pobývá na základě víza k pobytu nad 90 dnů, státním občanství, porodní charakteristice narozeného dítěte, rodinném stavu, pořadí manželství (rozvodu), počtu nezletilých dětí v rozvádějících se manželstvích, příčinách rozvratu manželství, pokud byly zjištěny, příčině smrti, délce života zemřelého kojence, místě a čase sledované události.".

23. V § 13 odst. 2 se slovo "individuálními" nahrazuje slovy "důvěrnými statistickými".

24. Nadpis nad § 16 se zrušuje a pod § 16 se vkládá nadpis, který zní: "Povinnost mlčenlivosti a ochrana důvěrných statistických údajů".

25. V § 16 odstavec 1 zní:

"(1) Zaměstnanci orgánů vykonávajících státní statistickou službu a jiné fyzické osoby, které zajišťují zpracování statistických zjišťování nebo sběr údajů pro zemědělské soupisy, jsou povinni zachovávat mlčenlivost o důvěrných statistických údajích, se kterými se seznámí. Za tímto účelem jsou povinni při nástupu do zaměstnání nebo před zahájením příslušných prací složit slib mlčenlivosti.".

26. V § 16 odst. 2 se slovo "individuálními" nahrazuje slovy "důvěrnými statistickými".

27. V § 16 odst. 4 se slovo "individuálního" nahrazuje slovy "důvěrného statistického".

28. V § 16 odst. 6 se slovo "individuálními" nahrazuje slovy "důvěrnými statistickými".

29. Pod § 17 se vkládá nadpis, který zní: "Poskytování důvěrných statistických údajů".

30. V § 17 odst. 1 písmeno a) včetně poznámky pod čarou č. 6) zní:

"a) mohou si poskytnout navzájem důvěrné statistické údaje, pokud je potřebují pro zajištění státní statistické služby, a to způsobem, který zajišťuje ochranu jejich důvěrnosti;

tímto způsobem si mohou navzájem poskytnout též důvěrné statistické údaje pro tvorbu statistiky Evropských společenství,6)

6) Čl. 14 nařízení Rady (ES) č. 322/97 ze dne 17. února 1997 o statistice Společenství.".

31. V § 17 odst. 1 písm. b) se slovo "individuální" nahrazuje slovy "důvěrné statistické".

32. V § 17 odst. 1 písm. c) se slovo "individuální" nahrazuje slovy "důvěrný statistický".

33. V § 17 odst. 1 písm. d) se slovo "individuální" nahrazuje slovy "důvěrný statistický".

34. V § 17 odst. 1 se na konci písmene d) tečka nahrazuje čárkou a doplňuje se písmeno e), které včetně poznámky pod čarou č. 6a) zní:

"e) poskytují důvěrné statistické údaje pro účely tvorby statistiky Evropských společenství v souladu s právem Evropských společenství.6a)

6a) Nařízení Rady (ES) č. 322/97 ze dne 17. února 1997 o statistice Společenství.
Nařízení Rady (Euratom, EHS) č. 1588/90 ze dne 11. června 1990 o předávání údajů, na které se vztahuje statistická důvěrnost, Statistickému úřadu Evropských společenství.".

35. V § 17 odst. 2 větě první a třetí se slovo "individuální" nahrazuje slovy "důvěrný statistický".

36. V § 17 se odstavec 3 zrušuje.

Dosavadní odstavce 4 a 5 se označují jako odstavce 3 a 4.

37. V § 17 odst. 4 se slovo "individuálních" nahrazuje slovy "důvěrných statistických" a slova "nebo vědecké" se zrušují.

38. Nadpis § 18 zní: "Poskytování statistických informací a anonymních údajů".

39. V § 18 odst. 1 se za slova "jiných médií" vkládají slova "a způsobem umožňujícím dálkový přístup7a)" a současně se vkládá nová poznámka pod čarou č. 7a), která zní:

"7a) § 2 písm. o) zákona č. 365/2000 Sb., o informačních systémech veřejné správy a o změně některých dalších zákonů.".

40. V § 18 odst. 1 písm. a) se za slovo "poskytuje" vkládá slovo "požadované".

41. V § 18 odst. 1 písm. b) se za slova "poskytuje vytvořené statistické informace" vkládají slova "a anonymní údaje".

42. V § 18 odst. 1 písm. b) se za slova "pořízením kopií" vkládají slova " , cenou nosičů".

43. V § 18 odst. 1 se na konci textu písmene b) doplňují slova "a anonymních údajů".

44. V § 18 odst. 3 se za slova "oznámí ve" vkládá slovo "hromadných".

45. V § 18 se na konci textu odstavce 3 doplňují slova " , vlastních publikacích i jiných médiích a dále způsobem umožňujícím dálkový přístup".

46. V § 19a odst. 1 větě první se za slova "registr ekonomických subjektů" vkládají slova "a registr sčítacích obvodů".

47. V § 19a odst. 1 větě druhé se slova "je registr" nahrazují slovy "jsou registry".

48. V § 19a odst. 2 se písmeno a) zrušuje.

Dosavadní písmena b) a c) se označují jako písmena a) a b).

49. V § 20 odst. 2 písm. n) se slova "základního jmění" nahrazují slovy "základního kapitálu".

50. V § 20 odst. 2 se na konci písmene r) tečka nahrazuje čárkou a doplňují se písmena s) a t), která znějí:

"s) hodnota zboží přijatého za příslušné kalendářní období z ostatních členských zemí Evropských společenství,

t) hodnota zboží odeslaného za příslušné kalendářní období do ostatních členských zemí Evropských společenství.".

51. V § 20 odst. 6 se slova "písm. k) až r)" nahrazují slovy "písm. k) až t)".

52. V § 20a se dosavadní text označuje jako odstavec 1 a doplňují se odstavce 2 a 3, které znějí:

"(2) Údaje uvedené v odstavci 1 písm. a) a b) jsou veřejné údaje a poskytují se každému, kdo o ně požádá. Orgánům uvedeným v § 18 odst. 1 písm. a) se tyto údaje poskytují bezplatně, ostatním žadatelům za sjednanou cenu podle cenových předpisů.

(3) Údaj uvedený v odstavci 1 písm. c) je neveřejný. Český statistický úřad jej poskytne ministerstvům, která zajišťují státní statistickou službu, a dále jinému státnímu orgánu nebo orgánu územní samosprávy, jestliže tento orgán bude k získání požadovaného údaje oprávněn podle zvláštního zákona a nepůjde-li o údaj získaný pro statistické účely.".

53. V § 20d se slova "§ 20a až" nahrazují slovy "§ 20b a".

54. Nadpis nad § 21 se zrušuje a pod § 21 se vkládá nadpis, který zní: "Identifikační číslo ekonomického subjektu a identifikační kód".

55. V § 21 odst. 1 se za slovo "číslo" vkládají slova "ekonomického subjektu (dále jen "identifikační číslo")".

56. V § 21 odst. 4 se za slovo "číslo" vkládá slovo "toho".

57. V § 28 odst. 4 se slovo "individuálních" nahrazuje slovy "důvěrných statistických".

Čl. II

Účinnost

Tento zákon nabývá účinnosti patnáctým dnem následujícím po dni vyhlášení, s výjimkou ustanovení čl. I bodu 9 části věty za středníkem, čl. I bodu 30 části věty za středníkem, čl. I bodu 34 a čl. I bodu 50, která nabývají účinnosti dnem vstupu smlouvy o přistoupení České republiky k Evropské unii v platnost.

Zaorálek v. r.
Klaus v. r.
Špidla 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); } } }