Hloh obecný se doporučuje při kardiovaskulárních potížích. Léčivé jsou květy, listy i plody

19. 9. 2023 7:30
přidejte názor
Autor: Depositphotos

Trápí vás problémy se srdcem, nespavost nebo třeba vysoký krevní tlak? V tom případě můžete vyzkoušet produkty z hlohu obecného, který roste divoce prakticky na celém území České republiky, ale hojně se pěstuje také na zahradách. Sbírají se hlavně jeho květy, které se pak suší a připravují ve formě odvaru. Pozitivní účinky ovšem mají také mladé listy nebo plody.

Co je hloh?

Co se dozvíte v článku
  1. Co je hloh?
  2. Botanická charakteristika
  3. Jaké má hloh druhy?
  4. Je hloh jedovatý?
  5. Hloh obecný
  6. Jak vypadá hloh obecný?
  7. Kde roste hloh obecný?
  8. Obsažené látky
  9. Jaké má hloh obecný účinky na zdraví?
  10. Má hloh nežádoucí účinky?
  11. Využití hlohu obecného
  12. Pěstování hlohu obecného

Hloh (latinsky Crataegus) představuje početný rostlinný rod z čeledi růžovité, jenž zahrnuje velké množství různých stromů a keřů. Ty rostou v mírném pásmu prakticky na celé severní polokouli a zároveň se pěstují na zahradách, kde plní okrasnou a medonosnou funkci. Jejich plody (hložinky) se někdy konzumují také jako ovoce a květy, listy i drobné malvice se sbírají pro své léčivé účinky.

Rodový název je v případě hlohů odvozený z řeckého výrazu krataiós, což v překladu znamená silný nebo pevný. Důvodem je jejich tvrdé a houževnaté dřevo, které je oblíbené v řezbářství a někdy se používá také pro výrobu násad na různé druhy nářadí. V angličtině se pak tento rostlinný rod označuje především jako hawthorn, ale můžete se setkat také s výrazy thornapple, whitethorn, Mayflower či hawberry. [1, 2, 34]

Botanická charakteristika

Obecně jsou hlohy keře či malé stromy, které dorůstají do výšky 3–12 m. Jedná se o dlouhověké dřeviny, jejichž větvičky často obsahují trny. Listy bývají jednoduché, střídavé a na zimní měsíce většinou opadávají. Jejich čepele mohou být členěné i nečleněné, na okrajích jsou pilovité až vroubkované a v závislosti na konkrétním druhu mohou být lysé, nebo chlupaté.

Kořeny hlohů bývají široce rozvětvené a většinou sahají opravdu hluboko. Dalším charakteristickým znakem těchto rostlin jsou pak oboupohlavné, pětičetné květy, které nepříjemně zapáchají. Mohou se objevovat jednotlivě, ale někdy také bývají uspořádané do chocholičnatých květenství. Nejčastěji přitom mívají bílou nebo růžovou barvu. Plodem je pak červená, fialová, oranžová nebo černá malvice, která obsahuje pecičky se silně sklerifikovanou stěnou. [5, 6, 78]

Jaké má hloh druhy?

Pokud přemýšlíte, kolik různých hlohů na světě existuje, ve skutečnosti se nedá na tuto otázku jednoduše odpovědět. Jejich počet totiž závisí na konkrétní taxonomické interpretaci, takže zatímco někteří botanikové v minulosti rozlišovali více než 1000 samostatných druhů, podle jiných se jedná „pouze“ o něco málo přes 200 různých dřevin.

Na území České republiky dnes roste 9 původních druhů (včetně rostlin hybridního původu), které se navzájem liší počtem čnělek (počtem peciček v malvicích). Konkrétně sem patří následující dřeviny:

  • hloh obecný (Crataegus laevigata),
  • hloh jednosemenný (Crataegus monogyna),
  • hloh kališný (Crataegus ×calycina),
  • hloh křivokališný (Crataegus rhipidophylla),
  • hloh Lindmanův (Crataegus lindmanii),
  • hloh prostřední (Crataegus ×media),
  • hloh tuholistý (Crataegus ×subsphaericea),
  • hloh velkoplodý (Crataegus ×macrocarpa),
  • Crataegus ×domicensis.

K dalším známým eurasijským druhům se pak řadí například hloh černý (Crataegus nigra), který roste v Maďarsku a na Balkánském poloostrově, hloh drobnolistý (Crataegus microphylla), s nímž se setkáte především v jihovýchodní a východní Evropě nebo v Přední Asii, ale i hloh krvavý (Crataegus sanguinea), hloh peřenoklaný (Crataegus pinnatifida) nebo hloh východní (Crataegus orientalis).

Mezi severoamerickými hlohy pak dominuje především hloh měkký (Crataegus mollis), jenž se vyskytuje převážně v centrální části kontinentu, dále pak hloh ostruhatý (Crataegus crus-galli), který je známý také jako hloh kuří nožka, nebo třeba hloh šarlatový (Crataegus coccinea), hloh tečkovaný (Crataegus punctata), hloh okrouhlolistý (Crataegus chrysocarpa) či hloh zelený (Crataegus viridis). [9, 10, 11, 12, 13]

Je hloh jedovatý?

K nejbližším příbuzným hlohů patří především rody skalník (Cotoneaster), blýskalka (Photinia), jeřáb (Sorbus) nebo také hlohyně (Pyracantha). Všechny je možné zařadit do čeledi růžovité, přičemž s některými z nich hlohy dokonce vytváří i mezirodové křížence. Právě s hlohyněmi, které také rostou v mírných a teplých oblastech Eurasie, si někdy lidé zástupce rodu hloh pletou.

Hlohy dnes patří mezi oblíbené léčivky a plody některých druhů (například středozemního, východního či mexického) se běžně sbírají jako ovoce, které se konzumuje čerstvé nebo zpracovává ve formě marmelád, sirupů či zavařenin. Kulovité malvice vyrůstající na hlohyni jsou naopak mírně jedovaté (hlavně pro děti) a jejich konzumace může člověku způsobit nepříjemné zdravotní potíže. [14, 15, 16, 17]

Hloh obecný

Na našem území se k nejznámějším druhům rozhodně řadí hloh obecný (Crataegus laevigata), který se někdy označuje také jako hloh dvousemenný nebo hloh ostrotrnný. Typickým znakem této rostliny jsou přitom její bílé nebo světle růžové květy, které na jaře zaplavují přírodu a nepříjemně zapáchají, ale i charakteristické červené plody označované jako hložinky.

V závislosti na konkrétní pěstované variantě může být hloh obecný strom, ale i keř. Dříve byl známý také pod názvem Crataegus oxycantha, toto pojmenování však bylo později zamítnuto kvůli neurčitému používání (označovalo více druhů rostlin). Kromě toho existuje řada lidových názvů, jako je hložek, luhovec, pluháč nebo srdeční chléb, a v angličtině se hloh obecný běžně označuje jako Midland hawthorn, English hawthorn či woodland hawthorn. [18, 19, 20, 21]

Pěstujete na zahradě hloh obecný?

Jak vypadá hloh obecný?

Hloh obecný roste jako hustě větvený keř nebo strom, který může dosahovat maximálně výšky 7–8 m. Tato opadavá listnatá dřevina se vyznačuje poměrně hustou korunou, která se skládá z tenkých šedavě zbarvených větví. Na nich pak v paždí trnů rostou střídavě postavené laločnaté listy, které jsou zhruba 2–6 cm dlouhé, vejčité nebo obvejčité a na okrajích nestejně pilovité. Na vrchní straně bývají tmavozelené a lesklé, zatímco na té spodní jsou o něco bledší.

Na jaře obrůstá hloh obecný záplavou bílých nebo světle růžových květů, které vydávají intenzivní, ale bohužel ne až tak příjemnou vůni. Květy jsou pětičetné, vyrůstají v chocholících po pěti až deseti kusech a typicky se objevují od začátku května do konce června. Pokud jde o to, jaké má hloh obecný plody, jsou to červené kulovité malvice dozrávající v září či v říjnu, v nichž se nachází dvě nebo tři semena. [22, 23, 24, 25]

Kde roste hloh obecný?

Tato rostlina původně pochází z Evropy, přičemž obývá hlavně mírné pásmo. Dnes roste převážně v západní a střední části kontinentu, ale na jihu zasahuje až po Středozemní moře a na severu proniká také na Skandinávský poloostrov. Kromě toho se s ní v současné době můžete setkat také na severu Afriky, v Asii nebo v Severní Americe.

V horských oblastech sahá výskyt hlohu obecného až do nadmořské výšky kolem 1000 m. Na našem území roste prakticky všude, tedy od nížin až do podhorských krajin. Obecně preferuje polostinná místa a průměrně vlhké, dobře propustné a úživnější půdy. Najdete ho tedy na okrajích lesů, v křovinatých stráních podél mezí či potoků, v keřovém patře lužních lesů, dubohabřin a některých doubrav nebo i podél cest. Kromě toho se samozřejmě pěstuje také na zahradách. [26, 27, 28, 29, 30]

Saturejka je považována za bylinku lásky. Jaké jsou její účinky?
Přečtěte si také:

Saturejka je považována za bylinku lásky. Jaké jsou její účinky?

Obsažené látky

Stejně jako v případě ostatních zástupců rodu Crataegus není ani hloh obecný jedovatý, ale naopak jej lidé považují za cennou léčivku. Mezi hlavní obsažené látky patří flavonoidy a triterpenické kyseliny, přičemž dále se zde nachází také aminopuriny, třísloviny či saponiny. Květy jsou pak samozřejmě bohaté na silice, v listech najdete kyselinu krategovou či oleanovou a plody hlohu obecného bývají zdrojem karotenů, sacharidů, vitamínu C a vitamínů z řady B. [31, 32, 33, 34, 35]

Jaké má hloh obecný účinky na zdraví?

V lidovém léčitelství se nejčastěji používají sušené květy hlohu obecného, ale pozitivní vliv na lidský organismus mohou mít samozřejmě i jeho červené plody nebo třeba listy. V domácím prostředí se hojně připravuje tinktura z hlohu nebo léčivý odvar, ale můžete si zakoupit také hotové přípravky v podobě tablet, bylinných kapek a čajů.

Pokud jde o to, jaké má hloh účinky na lidské zdraví, výtažky z této rostliny snižují krevní tlak a celkově mají pozitivní vliv na srdeční činnost, přičemž rozšiřují cévy, tlumí srdeční arytmie a také snižují cholesterol. Kromě toho je hloh obecný známý také tím, že podporuje činnost ledvin, a obsažené aminopuriny také pomáhají regulovat krevní oběh.

Odvar ze sušených květů hlohu má uklidňující vliv na nervovou soustavu, snižuje podrážděnost a zároveň pomáhá v boji proti nespavosti. Je vhodný také při léčbě ledvinových a močových kamenů, funguje jako prevence kardiovaskulárních onemocnění a zlepšuje prokrvení celého pacientova organismu. Podobné účinky pak samozřejmě mají i plody hlohu.

Působení hlohu na lidský organismus je nicméně pomalé, a proto se většinou doporučuje užívat ho pravidelně. Příznivé účinky se projeví nejdříve po několika týdnech, někdy dokonce teprve po několika měsících, ale bývají dlouhodobé. Obecně se pak hloh obecný doporučuje hlavně v rámci prevence nebo léčby následujících stavů:

Plody hlohu obecného jsou také bohatým zdrojem antioxidantů, které pomáhají chránit lidské tělo před působením škodlivých volných radikálů. Tím pádem také snižují riziko vzniku některých onemocnění, jako jsou srdeční potíže, cukrovka, astma nebo dokonce některé druhy rakoviny. Tyto malvice také mohou působit protizánětlivě, podporují trávení a údajně brání stárnutí pleti.

Pokud jste nadšení z toho, jaké má hloh léčivé účinky, a plánujete si ihned na zahradě nasbírat jeho listy, květy nebo plody, raději to nedělejte. Šlechtěné odrůdy hlohu obecného se totiž pro léčivé účely nepoužívají a to samé platí také pro rostliny, které najdete v parcích. Vydejte se proto do přírody, kde najdete hlohy divoce rostoucí. [36, 37, 38, 39, 40, 41]

Má hloh nežádoucí účinky?

Ačkoliv jsou léčivé vlastnosti hlohu obecného mezi lidmi dobře známé, doporučuje se poradit se o jeho užívání s ošetřujícím lékařem. Konzumace této rostliny v různých podobách je většinou bezpečná, a to i v dlouhodobém měřítku. Nikdy by se ovšem neměla kombinovat s jinými léky na srdce nebo krevní tlak bez předchozí konzultace u doktora.

Mezi nejčastěji hlášené vedlejší účinky hlohu obecného patří nadměrné pocení, bolesti hlavy, ospalost, bušení srdce, mírná vyrážka a podráždění pokožky nebo třeba zažívací potíže. Jestliže některé z výše popsaných zdravotních problémů zaznamenáte, přestaňte přípravky s touto rostlinou užívat a poraďte se o dalším postupu s ošetřujícím lékařem.

Vzhledem k tomu, že neexistuje dostatečné množství vědeckých důkazů o účincích hlohu obecného na lidský organismus, raději by si na něj měly dávat pozor těhotné nebo kojící ženy. To samé pak platí také pro malé děti, u nichž je nutné konzultovat užívání hlohu s pediatrem. Kromě toho se nedoporučuje užívat hloh před operací, jelikož může zvyšovat riziko krvácení. [42, 43, 44, 45, 46, 47]

Meduňka lékařská je silně aromatická. Zklidňuje organismus a pomáhá k lepšímu spánku
Přečtěte si také:

Meduňka lékařská je silně aromatická. Zklidňuje organismus a pomáhá k lepšímu spánku

Využití hlohu obecného

Hlohy bývají obecně pěstovány jako okrasné rostliny, a to na zahradách, ale také v parcích. V našich podmínkách se jedná hlavně o původní evropské druhy, kam patří samozřejmě i hloh obecný. Jelikož jde o poměrně rychle rostoucí dřevinu, která v závislosti na kultivaru obvykle dorůstá do výšky 3–6 m, uplatňuje se hojně jako součást živých plotů, ale i jako solitéra.

Kromě toho si samozřejmě hloh obecný našel využití také v lidovém léčitelství, kde je velmi ceněný pro své pozitivní účinky na kardiovaskulární systém a nervovou soustavu. Nejčastěji se připravuje z hlohu čaj, ale oblíbená je také hlohová tinktura, kterou si můžete doma sami připravit. V obchodě se pak dá zakoupit řada produktů s hlohem, kam patří:

  • hloh obecný tinktura,
  • hloh obecný čaj,
  • bylinné kapsle z hlohu,
  • šťáva z hlohu obecného,
  • sušené listy, květy a plody hlohu obecného,
  • doplňky stravy kombinující výtažky z hlohu a dalších rostlin.

Aby toho nebylo málo, hloh obecný se často kombinuje také s rakytníkem řešetlákovým, což je opadavá dřevina z čeledi hlošinovitých. Ten podobně jako hloh obsahuje řadu zdraví prospěšných látek, patří mezi antioxidanty, má pozitivní vliv na trávení a podporuje fungování imunitního systému. Také ovšem pomáhá snižovat hladinu cholesterolu a podporuje odolnost vůči stresu.

Kromě toho pak existují také různé recepty z hlohu, podle kterých si můžete připravit nejen čaj a hložinkovou tinkturu, ale i hložinkovou marmeládu nebo hložinkový likér. Oblíbený je ovšem také hlohový sirup, který je nutné uchovávat na chladném a temném místě. [48, 49, 50, 51, 52]

Pěstování hlohu obecného

Pokud se vám tato rostlina s léčivým potenciálem zalíbila a přemýšlíte, jak zvládá hloh obecný pěstování v českých zahradách, máme pro vás dobrou zprávu. Jde o poměrně nenáročnou dřevinu, která se může stát základem pro živý plot, ale samozřejmě se vysazuje i samostatně. Potřebuje ideálně vlhkou, dobře propustnou, humózní půdu a preferuje slunná či polostinná stanoviště.

Semena hlohu se obvykle vysévají na podzim, kdy je zprvu nutné udržovat okolní teplotu kolem 15 °C. Tato rostlina je odolná vůči mrazu i suchu, ale potřebuje pravidelnou zálivku. Nevyžaduje naopak časté přihnojování, ale určitě jí prospěje, když na jaře přidáte kompost nebo hnůj. Co se týče problémů při pěstování, hlohy jsou náchylné k houbovým chorobám a mohou je napadnout mšice nebo svilušky. [53, 54, 55]

Zdroje: botany.cz, pyly.cz, pharmapoint.cz, bylinkyprovsechny.cz, healhtline.com, webmd.com, verywellhealth.com, mountsinai.org, pubmed.ncbi.nlm.nih.gov, biolib.cz, pfaf.org, powo.sceince.kew.org, sciencedirect.com

Co je to hloh?
Jde o hojný rostlinný rod z čeledi růžovité. Spadá sem mnoho rozličných stromů i keřů, které rostou v mírném pásmu severní hemisféry. Lidé je s oblibou pěstují na zahradách, a to pro jejich okrasnou a medonosnou úlohu. V řezbářství se hloh často využívá pro své dřevo, které je typicky tvrdé a houževnaté. Občas se využívá také pro výrobu rukojetí na náčiní.
Jaké má hloh léčivé účinky?
U hlohu obecného se používají usušené květy, červené plody i listy. Rostlinné výtažky pomáhají snižovat krevní tlak a kladně ovlivňují srdeční činnost (rozšiřují cévy, zmírňují srdeční arytmie a redukují cholesterol). Bylina napomáhá správné funkci ledvin a reguluje krevní oběh. Čaj ze sušených květů umí zklidnit nervovou soustavu, snižuje podrážděnost a pomáhá při insomnii. Dalšími oblastmi, kde má hloh využití, jsou léčba ledvinových a močových kamenů, ateroskleróza, angina pectoris, pocity nervozity či potíže při menopauze.
Jaké má hloh využití?
Hloh je rychle rostoucí dřevinou dosahující do výšky až šesti metrů. Uplatňuje se tudíž často jako prvek živých plotů. V lidovém léčitelství je rostlina ceněná pro své kladné působení na kardiovaskulární i nervovou soustavu. Nejoblíbenějším způsobem přípravy hlohu je čaj, ale častá je rovněž bylinná tinktura. V obchodě je běžně k dostání řada výrobků s hlohem – bylinné kapsle, šťáva z hlohu obecného, sušené listy, květy nebo plody a další doplňky stravy.
  • Žá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 »