10 nejhorších nemocí světa: Mezi zabijáky patří rakovina, ale i obyčejná chřipka!

7. 3. 2019 11:27
přidejte názor

Lidstvo se již po staletí potýká s velkým počtem nemocí. Mnohé z nich nepředstavují žádné velké nebezpečí a na většinu se podařilo najít účinné léky. Stále však existují choroby, které každoročně zabíjí miliony lidí po celém světě, jejich léčba je velmi obtížná nebo si s nimi lékaři vůbec nevědí rady. Které nemoci patří mezi ty nejzákeřnější světové hrozby? To se dočtete v našem článku. 

Chřipka

Lidé často považují chřipku za neškodné onemocnění, které mohou přechodit nebo se jí jednoduše zbaví popíjením teplého čaje v posteli. Tato nemoc, kterou způsobuje RNA vir z čeledi Orthomyxoviridae, však patří mezi nejsmrtelnější viry současnosti.

Chřipka se na světě šíří zejména v období sezónních epidemií. Ve 20. století byly objeveny primární genetické změny viru, které způsobily tři rozsáhlé chřipkové pandemie a smrt miliónů lidí. Podle statistik WHO však i dnes každoročně na chřipku zemře více než půl milionu pacientů.

Jste očkovaní proti chřipce?

Pravé neštovice

Pravé neštovice, které jsou známé také pod názvem černé neštovice, patří mezi nejnebezpečnější prudce nakažlivá onemocnění na světě. Jejich původcem je virus z čeledi Poxviridae. Nákaza se projevuje svědivou vyrážkou, která se může objevit i na jazyku a posléze přechází ve vředy. Více než třetina postižených na toto onemocnění zemře, ostatním na těle zůstávají masivní jizvy, oslepnou nebo u nich dojde k deformaci končetin.

První prokazatelný doklad o pravých neštovicích pochází z ostatků egyptského faraona Ramsese V. Jen ve 20. století však tato nemoc zahubila více než 300 milionů lidí. Díky soustředěnému programu očkování Světová zdravotnická organizace (WHO) prohlásila v roce 1980 pravé neštovice za vymýcené. Virus však pravděpodobně stále existuje v některých laboratořích a nové generace již vůči této chorobě nejsou imunní.

Vzteklina

Mnoho lidí vzteklinu podceňuje, tato nemoc je však velice nebezpečná. Jedná se o akutní virové onemocnění, které postihuje centrální nervový systém všech teplokrevných živočichů. Přenáší se slinami (nejčastěji tedy pokousáním) a projevuje se změnami chování, zvýšenou dráždivostí, agresivitou, ale také částečnou ztrátou hybnosti až úplným ochrnutím.

Podle WHO se vzteklina stále vyskytuje ve 150 zemích a oblastech světa. V České republice se dnes tato nemoc považuje za vymýcenou, povinnou prevencí je pravidelné očkování psů, kteří byli nejčastějším zdrojem infekce. Ochranou proti vzteklině je očkování osob, u kterých mohlo dojít k nákaze. Pokud je tato léčba aplikována včas, dokáže zabránit rozšíření nemoci. V opačném případě onemocnění končí téměř vždy smrtí.

Dengue

Horečka dengue je nejčastější infekční tropická nemoc, která byla poprvé objevena v 50. letech minulého století v Thajsku a na Filipínách. Způsobuje ji stejnojmenný vir, který na člověka přenášejí komáři. Hlavní příznaky zahrnují horečku, bolesti hlavy nebo vyrážku připomínající spalničky. Dengue je ovšem známá také jako „horečka lámající kosti“, protože pacienti trpí velmi silnými bolestmi jako při zlomeninách.

V těžkých případech může horečka postoupit do šokového stavu, který doplňuje silné krvácení (podkožní, z nosu nebo z pochvy). Následně dochází k selhání organismu a smrti pacienta. Proti tomuto onemocnění neexistuje žádná účinná vakcína a léčit se dají pouze jeho příznaky. Každý rok onemocní zhruba 50‒100 milionů lidí, úmrtnost je ale poměrně nízká (zhruba 22 000 lidí).

Multisystémová atrofie

Degenerativní neurologická porucha s názvem multisystémová atrofie je známá také pod názvem Shy-Dragerův syndrom. Při této chorobě z dosud neznámých důvodů dochází k selhání nervových buněk v určitých oblastech mozku, což následně ovlivňuje také činnost vnitřních orgánů.

Degenerace buněk způsobuje problémy s pohybem a rovnováhou. Kromě toho dochází také k výpadku termoregulace, poruchám vyměšování nebo regulace krevního tlaku. Léčba je bohužel pouze symptomatická a pacienti s touto diagnózou obvykle nepřežijí více než sedm let.

Ebola

Mezi nejnebezpečnější nákazy, které v současné době stále ohrožují naši populaci, rozhodně patří ebola. Jedná se o virové onemocnění ze skupiny krvácivých (hemoragických) horeček, které se poprvé objevilo v roce 1976 a na lidi ho pravděpodobně přenesly některé druhy primátů. Během posledních let v Africe propuklo hned několik epidemií.

Filovirus ebola se z člověka na člověka přenáší krví, močí, slinami nebo spermatem. První příznaky, které zahrnují horečku, bolest v krku a bolesti hlavy, se u nemocných projeví v rozmezí dvou dnů až tří týdnů. Následuje zvracení, průjem, vnitřní i vnější krvácení, selhání orgánů a zhruba u poloviny nakažených také smrt. Pokud pacient přežije, nemoc většinou zanechá na jeho těle trvalé následky. V současné době již pro boj s ebolou existuje speciální vakcína.

Marburg

Virus marburg, který patří do skupiny filovirů, byl pojmenován podle německého města, kde se jím v roce 1967 nakazilo 31 lidí a sedm z nich následně zemřelo. Původcem onemocnění byla skupina kočkodanů obecných, které si tamní vědci nechali dovézt z Ugandy. V dnešní době je virus nejvíce rozšířený právě na černém kontinentu.

Marburg se přenáší prostřednictvím tělesných tekutin včetně slin, krve, zvratků či výkalů. Stejně jako ebola způsobuje krvácivé horečky, průjem a zvracení.  Na tento virus dodnes neexistuje žádný účinný lék ani preventivní očkování a nakažení obvykle do týdne umírají.

Rakovina

Lidé mají často z rakoviny hrůzu a jejich strach je naprosto oprávněný. Toto nádorové onemocnění totiž patří k nejčastějším příčinám úmrtí na světě. Pojem rakovina zahrnuje různorodou skupinu chorob. Jejich společným rysem je to, že vlastní buňky organismu se vymknou kontrole, začnou se v těle nekontrolovaně množit a vytváří nádor. V pozdějších stádiích se onemocnění šíří krevním oběhem i do vzdálenějších míst v těle a vznikají dceřiná ložiska nádoru neboli metastázy.

Mezi nejnebezpečnější druhy rakoviny patří především rakovina plic, prsu, prostaty a slinivky, dále také rakovina tlustého střeva nebo leukémie.  Čím dříve je toto onemocnění diagnostikováno, tím větší má pacient šanci na vyléčení.

Nekrotizující fasciitida

Ačkoliv o této nemoci mnozí lidé nikdy neslyšeli, patří mezi ty vůbec nejzákeřnější. Ve světě je nekrotizující fasciitida známá také jako „masožravá bakterie“ nebo „bakterie požírající tkáně“. Jedná se o infekční onemocnění, které může způsobit hned několik různých druhů bakterií. Ty pronikají hluboko do podkožních tkání, velmi rychle se množí a zároveň produkují toxiny, které postupně rozkládají tělesné tkáně. 

Nekrotizující fasciitida obvykle postihuje břišní stěnu, paže a nohy. Končetina následně odumírá rychlostí až 3 centimetry za den. Mezi hlavní příznaky patří silná bolest, puchýře a otoky, ale také nekróza kůže imitující popáleniny třetího stupně. Jedinou možnou léčbou je amputace, ta ovšem v některých případech není možná. Ve 30–40 % případů tato nemoc končí smrtí.

AIDS

Mezi největší strašáky současnosti patří nemoc jménem AIDS. Za její vznik je zodpovědný virus HIV (virus lidské imunitní nedostatečnosti), který se přenáší krví, některými sexuálními aktivitami nebo z nemocné matky na dítě. Lékaři ho poprvé objevili v roce 1981 a od té doby již na AIDS zemřelo více než 36 milionů lidí. Další miliony nakažených v současnosti doufají v objevení účinné léčby.

Lékaři předpokládají, že se HIV, což je vlastně obalený RNA virus náležející mezi retroviry, na člověka přenesl ze šimpanzů a mangabeje bělokrkého. Tento virus útočí na vlastní imunitní systém a díky tomu je člověk náchylný k různým infekcím a nemocem, na které nakonec také umírá. Obvykle může trvat zhruba 10 let, než se nemoc dostane do aktivní fáze, kdy se začnou projevovat její symptomy.

V rozvinutých zemích se výskyt AIDS prozatím daří udržet pod kontrolou, horší je však situace v chudých afrických státech. Pacienti musejí docházet na pravidelné prohlídky, užívají podpůrné léky a musí se vyvarovat sexuálnímu styku bez ochranných prostředků. Prodloužit život jim mohou také silná antivirotika, v současné době však na AIDS neexistuje žádná účinná léčba a nemoc končí smrtí.

  • Žádné názory
  • Našli jste v článku chybu?
'; 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'; } }
'; 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 »