Epilepsie

Epilepsie, jinak také padoucnice, je souhrnné označení pro rozsáhlou skupinu neurologických onemocnění. Jedno mají společné – provází je opakované nevyprovokované epileptické záchvaty. Epilepsie bývá vrozená, ale může se také rozvíjet sekundárně po úrazu, virovém onemocnění mozku či rakovině. S epilepsií se dá prožít kvalitní život, ale je potřeba brát pravidelně léky.

Co je epilepsie?

Pro epilepsii jsou charakteristické epileptické záchvaty, které se vyskytují opakovaně. Epileptický záchvat vzniká v důsledku nerovnováhy mezi stimulujícími a tlumicími systémy v mozku. Epileptické nervové buňky vykazují zvýšenou dráždivost a mohou vytvářet naprosto nekontrolovatelné výboje. Pokud je buněk s touto abnormalitou dostatečné množství, dokážou vyvolat epileptický záchvat.

Udává se, že epilepsií trpí 1–3 % populace, přičemž v České republice je diagnostikována přibližně u 100 000 osob. Jeden prodělaný epileptický záchvat za život ovšem neznamená okamžitě jasnou diagnózu epilepsie. Riziko, že u člověka dojde k dalším záchvatům po tom prvním, se pohybuje kolem 80 %.

Druhy epilepsie

Epilepsie může vznikat na základě rozličných příčin. Podle původu se pak epilepsie dělí na:

  • symptomatické,
  • idiopatické.

Symptomatická epilepsie

Epileptické záchvaty při symptomatické verzi epilepsie vznikají v důsledku strukturálního poškození mozku. Jaké konkrétní může mít symptomatická epilepsie příčiny?

  • Krvácení do mozku, špatné prokrvení mozku (například při cévní mozkové příhodě),
  • úraz hlavy,
  • nádory mozku,
  • zánětlivé onemocnění mozku (například meningitida).

Idiopatická epilepsie

U idiopatické epilepsie není původ epileptických záchvatů znám. Nevznikají na základě poškození centrální nervové soustavy a současné vyšetřovací metody, které jsou dostupné, příčinu jejich vzniku zatím neumí odhalit.

Jaké má epilepsie příznaky?

Epileptické záchvaty mohou mít mnoho podob. Někdy jde jen o mírné křeče, brnění končetin či chvilkové zasnění, ale jindy mohou být velice vážné stavy směřující až ke ztrátě vědomí. Podle toho, jak epileptický záchvat probíhá, se příznaky epilepsie klasifikují jako:

  • klinické – projevují se poruchami vědomí, změnami pohyblivosti, citlivosti a poruchami smyslovými,
  • subklinické – klinicky němé, změny na mozku jsou patrné na EEG (elektroencefalografie).

Podle toho, jaké množství mozkových buněk vykazuje abnormální dráždivost, se posuzuje závažnost epilepsie. Na tomto podkladě se epilepsie podle mezinárodní klasifikace dělí do tří základních skupin:

  • parciální epilepsie,
  • generalizované epilepsie,
  • neklasifikovatelné epilepsie.

Parciální epilepsie

Částečné nebo také lokalizované epilepsie se vyznačují postižením jen určité části mozku. Podle toho, v jaké části mozku dochází k abnormální dráždivosti nervových buněk, se klinické příznaky liší.

Jednoduché typy záchvatů neprovází poruchy vědomí. Často se ale objevují motorické (záškuby, křeče, brnění), smyslové (poruchy vidění, záblesky, výpadky vidění až slepota, sluchové a čichové halucinace) a psychické příznaky (stavy depersonalizace a derealizace).

Zajímavým jevem, který často předchází parciálnímu záchvatu epilepsie, je aura. Na základě aury pacient vycítí, že se blíží záchvat. Většinou se projevuje jako nervozita, záblesky před očima nebo složité psychické vjemy.

Parciální záchvaty provázené ztrátou vědomí se nazývají komplexní. Pacient ztratí vědomí jen na pár sekund či minut a po opětovném nabytí vědomí si na záchvat vůbec nevzpomíná. Během záchvatu nereaguje na okolní vjemy, ale objevují se typické projevy, jako je mlaskání, polykání a nekontrolované pohyby.

Generalizovaná epilepsie

V případě, že abnormální epileptickou aktivitu vykazují nervové buňky obou hemisfér, dochází k záchvatu generalizované epilepsie. Hned na počátku pacient většinou padá k zemi, upadá do bezvědomí a silné křeče jsou postupně nahrazeny nekontrolovatelnými záškuby končetin.

Většinou se také pomočí nebo pokálí, přičemž velkým rizikem je pokousání. Podle charakteristiky pohybových projevů se generalizované záchvaty dělí na:

  • tonické – svalové kontrakce a křeče,
  • klonické (myoklonické) – svalové záškuby,
  • tonicko-klonické – nejčastější forma generalizovaných záchvatů, kombinace křečí a záškubů,
  • atonické – ochabnutí svalů.

Neklasifikovaná epilepsie

Neklasifikovatelné záchvaty epilepsie nespadají ani do jedné z výše uvedených kategorií, nebo o nich prozatím nemáme dostatek údajů.

Epilepsie u dětí

U dětí může v průběhu života dojít k plnému vyléčení z epilepsie. Kojence a batolata mohou postihovat tzv. febrilní křeče (febrilní záchvaty), což jsou záchvaty provázené poruchami vědomí, vysokou horečkou a křečemi. Většinou odezní, ale pokud se pravidelně opakují, je zde vysoké riziko rozvoje epilepsie u miminka.

U starších dětí nebo dospívajících na nástup epileptického záchvatu často upozorňují stavy chvilkového zasnění a nevnímání. Děti působí, jako by byly naprosto „mimo“. Tomuto stavu se říká absence, netrvá však déle než 5–10 vteřin.

Rizikové faktory epilepsie

Epilepsie se může rozvíjet v jakémkoliv věku, postihuje všechny etnické skupiny. Při rozvoji epilepsie se uplatňuje celá řada faktorů, a ne všechny z nich můžeme ovlivnit:

  • genetické predispozice (na rozvoji epilepsie se podílí desítky tisíc různých genů),
  • věk (nejvíce postihují kojence a malé děti, ale i seniory nad 60 let),
  • faktory vnějšího prostředí (nedostatek spánku, konzumace alkoholu a drog, vyčerpání),
  • vznik ložiska s poškozenými buňkami (při prenatálním vývoji poruchami vývoje, působením infekcí a toxinů, při porodu při nedostatku kyslíku, postnatálně po úrazech, infekcích či nádorech).

Léčba epilepsie

Před zahájením léčby musí lékař pacienta důkladně vyšetřit a identifikovat, o jaký druh epilepsie se vlastně jedná a z čeho vzniká epilepsie u daného případu.

Vyšetřením první volby je EEG, což je potřeba často opakovat, protože mnoho pacientů nemá na mozku žádný viditelný nález. Dále se provádí CT a magnetická rezonance, která odhalí případná poranění mozku, nádory a jiné patologické změny.

Některé druhy epilepsie lze velice dobře léčit prostřednictvím speciálních léků (antiepileptik). Existují různé druhy těchto preparátů a často chvilku trvá, než se najde pro daného pacienta ten nejvhodnější lék na epilepsii. Pokud se farmakologická cesta jeví jako neúčinná, může se přistoupit k operačnímu řešení. Odstraněním postižené mozkové tkáně se minimalizuje riziko epileptických záchvatů.

Prevence epileptických záchvatů

Velice důležitou součástí léčby epilepsie a života s ní je prevence. Pacient by měl správně užívat předepsané léky a měl by dbát na zdravou stravu. Epilepsie a alkohol nejdou dohromady, ten je potřeba úplně vynechat. U některých jedinců velice dobře zabírá tzv. ektogenní dieta založená na vysokém příjmu tuků. U jiných zase pomáhá snížit počet záchvatů redukovaný příjem kalorií.

Co se týče spouštěcích mechanismů záchvatů, ty se vyskytují jen u některých druhů epilepsie. Jde zejména o smyslové vjemy (záblesky světel, diskotékové reflektory, blikačky). Proto je vhodné, když se člověk s epilepsií těmto vjemům raději vyhýbá.

Epilepsie a první pomoc

Jak poskytnout pacientovi při záchvatu epilepsie první pomoc? Nejdůležitější je odstranit z dosahu epileptika všechny předměty, o které by se mohl poranit. Člověk při záchvatu většinou leží na zemi, proto je potřeba hlavu podložit kusem oděvu.

Křečím ani záškubům těla by člověk neměl bránit, protože při použití větší síly můžete pacienta poranit. A rozhodně se nesnažte vkládat mu cokoliv do úst, křeče jsou tak silné, že by vás mohl pokousat. Jakmile je to možné, vyhledejte lékařskou pomoc a do té doby se snažte zamezit tomu, aby si pacient během záchvatu ublížil.

Komplikace epilepsie

Velice vážnou komplikací epilepsie je tzv. status epilepticus. Jde o nakupení i několika desítek epileptických záchvatů, které na sebe plynule navazují bez návratu vědomí. Jednotlivé záchvaty trvají 2–3 minuty a celý tento stav i více než 30 minut. Status epilepticus vyžaduje okamžitou hospitalizaci a zahájení léčby, jinak může vést až ke smrti.

Zdroje: healthline.com, medicalnewstoday.com, nemtru.cz, www.homolka.cz

'; 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 »