Občanský zákoník - nový - Díl 2 - Zneužití a omezení soutěže

Předpis č. 89/2012 Sb.

Znění od 1. 6. 2025

89/2012 Sb. Zákon občanský zákoník

Díl 2

Zneužití a omezení soutěže

Oddíl 1

Obecná ustanovení

§ 2972

Kdo se účastní hospodářské soutěže (soutěžitel), nesmí při soutěžní činnosti, ani při sdružování k výkonu soutěžní činnosti, vlastní účast v hospodářské soutěži nekalou soutěží zneužívat, ani účast jiných v hospodářské soutěži omezovat.

§ 2973

Ustanovení této hlavy se nevztahují na jednání v rozsahu, v jakém má účinky v zahraničí, pokud z mezinárodních smluv, jimiž je Česká republika vázána a které byly vyhlášeny ve Sbírce mezinárodních smluv, nevyplývá něco jiného.

§ 2974

Českým osobám jsou, pokud se jedná o ochranu proti nekalé soutěži, postaveny na roveň zahraniční osoby, které se v České republice účastní hospodářské soutěže. Jinak mohou zahraniční osoby požadovat ochranu podle mezinárodních smluv, jimiž je Česká republika vázána a které byly vyhlášeny ve Sbírce mezinárodních smluv, a není-li jich, na základě vzájemnosti.

§ 2975

Zakázaná konkurenční doložka

(1) Neurčí-li se v ujednání zakazujícím jinému soutěžní činnost území, okruh činnosti nebo okruh osob, kterých se zákaz týká, ke konkurenční doložce se nepřihlíží.

(2) Zakazuje se konkurenční doložka ujednaná na neurčitou dobu nebo na dobu delší než pět let; poruší-li se zákaz, platí, že konkurenční doložka byla ujednána na pět let.

(3) Zakazuje se konkurenční doložka omezující zavázanou stranu více, než vyžaduje potřebná ochrana oprávněné strany; poruší-li se zákaz, může soud na návrh dotčené strany konkurenční doložku omezit, zrušit, nebo prohlásit za neplatnou.

Oddíl 2

Nekalá soutěž

§ 2976

Základní ustanovení

(1) Kdo se dostane v hospodářském styku do rozporu s dobrými mravy soutěže jednáním způsobilým přivodit újmu jiným soutěžitelům nebo zákazníkům, dopustí se nekalé soutěže. Nekalá soutěž se zakazuje.

(2) Nekalou soutěží podle odstavce 1 je zejména

a) klamavá reklama,

b) klamavé označování zboží a služeb,

c) vyvolání nebezpečí záměny,

d) parazitování na pověsti závodu, výrobku či služeb jiného soutěžitele,

e) podplácení,

f) zlehčování,

g) srovnávací reklama, pokud není dovolena jako přípustná,

h) porušení obchodního tajemství,

i) dotěrné obtěžování a

j) ohrožení zdraví a životního prostředí.

§ 2977

Klamavá reklama

(1) Klamavá reklama je taková reklama, která souvisí s podnikáním nebo povoláním, sleduje podpořit odbyt movitých nebo nemovitých věcí nebo poskytování služeb, včetně práv a povinností, klame nebo je způsobilá klamat podáním nebo jakýmkoli jiným způsobem osoby, jimž je určena nebo k nimž dospěje, a tím i zřejmě způsobilá ovlivnit hospodářské chování takových osob.

(2) Při posuzování, zda je reklama klamavá, se přihlédne ke všem jejím výrazným znakům. Zvláště se přihlédne k údajům, které reklama obsahuje ohledně

a) dostupnosti, povahy, provedení, složení, výrobního postupu, data výroby nebo poskytnutí, způsobilosti k určenému účelu, použitelnosti, množství, zeměpisného či obchodního původu, jakož i podrobnějšího vytčení a dalších znaků zboží nebo služeb včetně předpokládaných výsledků použití nebo výsledků a podstatných znaků provedených zkoušek či prověrek,

b) ceny nebo způsobu jejího určení,

c) podmínek, za nichž se zboží dodává nebo služba poskytuje, a

d) povahy, vlastností a práv zadavatele reklamy, jako jsou zejména jeho totožnost, majetek, odborná způsobilost, jeho práva duševního vlastnictví nebo jeho vyznamenání a pocty.

§ 2978

Klamavé označení zboží nebo služby

(1) Klamavé označení zboží nebo služby je takové označení, které je způsobilé vyvolat v hospodářském styku mylnou domněnku, že jím označené zboží nebo služba pocházejí z určité oblasti či místa nebo od určitého výrobce, anebo že vykazují zvláštní charakteristický znak nebo zvláštní jakost. Nerozhodné je, zda označení bylo uvedeno bezprostředně na zboží, na obalu, obchodní písemnosti nebo jinde. Rovněž je nerozhodné, zda ke klamavému označení došlo přímo nebo nepřímo a jakým prostředkem se tak stalo.

(2) Klamavost působí i údaj všeobecně vžitý v hospodářském styku k označení druhu nebo jakosti, je-li k němu připojen dodatek způsobilý klamat, zejména s použitím výrazu „pravý“, „skutečný“ nebo „původní“.

(3) Ustanoveními předchozích odstavců nejsou dotčeny jiné právní předpisy o ochraně průmyslového nebo jiného duševního vlastnictví.

§ 2979

Společné ustanovení o klamavé reklamě a klamavém označení zboží nebo služby

(1) Způsobilost oklamat může mít i údaj sám o sobě správný, může-li uvést v omyl vzhledem k okolnostem a souvislostem, za nichž byl učiněn.

(2) Při posouzení klamavosti se přihlédne rovněž k dodatkům, zejména k použití výrazů jako „druh“, „typ“, „způsob“, jakož i k výpustkám, zkratkám a celkové vnější úpravě.

§ 2980

Srovnávací reklama

(1) Srovnávací reklama přímo nebo nepřímo označuje jiného soutěžitele nebo jeho zboží či službu.

(2) Srovnávací reklama je přípustná, pokud se srovnání týče,

a) není-li klamavá,

b) srovnává-li jen zboží a službu uspokojující stejnou potřebu nebo určené ke stejnému účelu,

c) srovnává-li objektivně jednu nebo více podstatných, důležitých, ověřitelných a příznačných vlastností zboží nebo služeb včetně ceny,

d) srovnává-li zboží s označením původu pouze se zbožím stejného označení,

e) nezlehčuje-li soutěžitele, jeho postavení, jeho činnost nebo její výsledky nebo jejich označení ani z nich nekalým způsobem netěží, a

f) nenabízí-li zboží nebo službu jako napodobení či reprodukci zboží nebo služby označovaných ochrannou známkou soutěžitele nebo jeho názvem.

§ 2981

Vyvolání nebezpečí záměny

(1) Kdo užije jména osoby nebo zvláštního označení závodu užívaného již po právu jiným soutěžitelem, vyvolá tím nebezpečí záměny.

(2) Nebezpečí záměny vyvolá i ten, kdo užije zvláštního označení závodu nebo zvláštního označení či úpravy výrobku, výkonu nebo obchodního materiálu závodu, které v zákaznických kruzích platí pro určitý závod za příznačné.

(3) Stejně tak vyvolá nebezpečí záměny, kdo napodobí cizí výrobek, jeho obal nebo výkon, ledaže se jedná o napodobení v prvcích, které jsou již z povahy výrobku funkčně, technicky nebo esteticky předurčeny, a napodobitel učinil veškerá opatření, která lze na něm požadovat, aby nebezpečí záměny vyloučil nebo alespoň podstatně omezil, pokud jsou tato jednání způsobilá vyvolat nebezpečí záměny nebo klamnou představu o spojení se soutěžitelem, jeho závodem, pojmenováním, zvláštním označením nebo s výrobkem či výkonem jiného soutěžitele.

§ 2982

Parazitování na pověsti

Parazitováním je zneužití pověsti závodu, výrobku nebo služby jiného soutěžitele umožňující získat pro výsledky vlastního nebo cizího podnikání prospěch, jehož by soutěžitel jinak nedosáhl.

§ 2983

Podplácení

Podplácením ve smyslu tohoto zákona je jednání, jímž

a) soutěžitel osobě, která je členem statutárního nebo jiného orgánu jiného soutěžitele nebo je v pracovním poměru k jinému soutěžiteli, přímo nebo nepřímo nabídne, slíbí či poskytne jakýkoliv prospěch za tím účelem, aby jejím nekalým postupem docílil na úkor jiných soutěžitelů pro sebe nebo jiného soutěžitele přednost nebo jinou neoprávněnou výhodu v soutěži, anebo

b) osoba uvedená v písmenu a) přímo či nepřímo žádá, dá si slíbit nebo přijme za stejným účelem jakýkoliv prospěch.

§ 2984

Zlehčování

(1) Zlehčováním je jednání, jímž soutěžitel uvede nebo rozšiřuje o poměrech, výkonech nebo výrobku jiného soutěžitele nepravdivý údaj způsobilý tomuto soutěžiteli přivodit újmu.

(2) Zlehčováním je i uvedení a rozšiřování pravdivého údaje o poměrech, výkonech nebo výrobku jiného soutěžitele, pokud jsou způsobilé tomuto soutěžiteli přivodit újmu. Nekalou soutěží však není, byl-li soutěžitel k takovému jednání okolnostmi donucen (oprávněná obrana).

§ 2985

Porušení obchodního tajemství

Porušením obchodního tajemství je jednání, jímž jednající jiné osobě neoprávněně sdělí, zpřístupní, pro sebe nebo pro jiného využije obchodní tajemství, které může být využito v soutěži a o němž se dověděl

a) tím, že mu tajemství bylo svěřeno nebo jinak se stalo přístupným na základě jeho pracovního poměru k soutěžiteli nebo na základě jiného vztahu k němu, popřípadě v rámci výkonu funkce, k níž byl soudem nebo jiným orgánem povolán, nebo

b) vlastním nebo cizím jednáním příčícím se zákonu.

§ 2986

Dotěrné obtěžování

(1) Dotěrné obtěžování je sdělování údajů o soutěžiteli, zboží nebo službách, jakož i nabídka zboží nebo služeb s využitím telefonu, faxového přístroje, elektronické pošty nebo podobných prostředků, ačkoli si takovou činnost příjemce zjevně nepřeje, nebo sdělování reklamy, při kterém její původce utají nebo zastře údaje, podle nichž ho lze zjistit, a neuvede, kde příjemce může bez zvláštních nákladů přikázat ukončení reklamy.

(2) Rozesílá-li se reklama na elektronickou adresu, kterou podnikatel získal v souvislosti s prodejem zboží nebo poskytnutím služby, nejde o dotěrné obtěžování, pokud podnikatel tuto adresu používá k přímé reklamě pro vlastní zboží nebo služby a druhá strana reklamu nezakázala, ačkoli ji podnikatel při získání adresy i při každém jejím použití k reklamě zřetelně upozornil na právo přikázat bez zvláštních nákladů ukončení reklamy.

§ 2987

Ohrožení zdraví nebo životního prostředí

Ohrožení zdraví nebo životního prostředí je jednání, jímž soutěžitel zkresluje podmínky hospodářské soutěže tím, že provozuje výrobu, uvádí na trh výrobek nebo provádí výkon ohrožující zájem na ochraně zdraví nebo životního prostředí chráněný zákonem, aby tak získal pro sebe nebo pro jiného prospěch na úkor jiného soutěžitele nebo zákazníků.

Ochrana proti nekalé soutěži

§ 2988

Osoba, jejíž právo bylo nekalou soutěží ohroženo nebo porušeno, může proti rušiteli požadovat, aby se nekalé soutěže zdržel nebo aby odstranil závadný stav. Dále může požadovat přiměřené zadostiučinění, náhradu škody a vydání bezdůvodného obohacení.

§ 2989

(1) Právo, aby se rušitel nekalé soutěže zdržel nebo aby odstranil závadný stav, může mimo případy uvedené v § 2982 až 2985 uplatnit též právnická osoba oprávněná hájit zájmy soutěžitelů nebo zákazníků.

(2) Uplatní-li spotřebitel právo, aby se rušitel zdržel nekalé soutěže nebo aby odstranil závadný stav a jde-li o některý případ stanovený v § 2976 až 2981 nebo v § 2987, musí rušitel prokázat, že se nekalé soutěže nedopustil. Uplatní-li spotřebitel právo na náhradu škody, musí rušitel prokázat, že škoda nebyla způsobena nekalou soutěží.

§ 2990

Ochrana proti omezování soutěže

Osoba, jejíž právo bylo ohroženo nebo porušeno nedovoleným omezením soutěže, má práva stanovená v § 2988.

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 »