Třezalka tečkovaná může pomoci s léčbou deprese. Zároveň ale snižuje účinnost některých léků

23. 5. 2022 7:30
přidejte názor

Jednou z nejoblíbenějších svatojánských bylin je třezalka tečkovaná, kterou mnozí lidé považují za všelék. Zatímco v minulosti sloužila třeba k odhánění zlých duchů, dnes se používá hlavně při léčbě lehké nebo středně těžké deprese. Může také zmírňovat projevy menopauzy a zevně se aplikuje na různé kožní neduhy, ale současně ruší účinky některých léků, což může být velice nebezpečné.

Co je třezalka?

Jako třezalka (Hypericum) se označuje rostlinný rod z čeledi třezalkovité (Hypericaceae), který zahrnuje řadu vytrvalých bylin, opadavých či stálezelených keřů a dokonce i stromů. Ty jsou rozšířené prakticky po celém světě s výjimkou arktických a oblastí, pouští a nížin v tropech. Setkat se s nimi můžete především v mírném pásmu, ale rostou i na mnoha dalších zajímavých místech.

Název třezalka, jenž odkazuje hlavně k žláznatě tečkovaným listům, byl nejspíš odvozen ze staroslověnského termínu třězati, což znamená rozdrásat či rozpíchat, nebo ze staročeského slova dřěžeti, tedy třást se. Odborné označením Hypericum pak vychází ze spojení slov hypo (pod) a eriké (vřes), tedy doslova „roustoucí pod vřesem“. Druhou možností je spojení hyper (nad) a eikón (představa), což odkazuje na údajnou schopnost třezalky odhánět zlé duchy. [1, 23]

Jaké má třezalka druhy?

V současné době botanikové rozlišují až 490 samostatných druhů třezalek. Na evropském území jich roste zhruba 65, přičemž s většinou z nich se můžete setkat ve Středomoří. Hojně jsou pak třezalky rozšířené třeba v Malé Asii (konkrétně v Turecku roste až 82 různých druhů), v Latinské Americe nebo třeba v Číně. Mezi nejznámější druhy třezalek se pak řadí:

  • třezalka tečkovaná (Hypericum perforatum),
  • třezalka čínská (Hypericum chinense),
  • třezalka čtyřkřídlá (Hypericum tetrapterum),
  • třezalka horská (Hypericum montanum),
  • třezalka chlupatá (Hypericum hirsutum).
  • třezalka kalíškatá (Hypericum calycinum),
  • třezalka listnatá (Hypericum frondosum),
  • třezalka pěkná (Hypericum pulchrum),
  • třezalka rozkladitá (Hypericum patulum),
  • třezalka skvrnitá (Hypericum maculatum),
  • třezalka tříkvětá (Hypericum kalmianum),
  • třezalka velkolistá (Hypericum grandifolium),
  • třezalka žláznatá (Hypericum glandulosum).

Na území České republiky je zastoupeno hned 8 různých druhů. V teplejších oblastech se nejčastěji jedná o třezalku tečkovanou, zatímco chladnější místa běžně obývá třezalka skvrnitá. V nižších a středních polohách můžete dále narazit na třezalku čtyřkřídlou (v mokřadech či na mokrých loukách), třezalku horskou a třezalku chlupatou (v křoviskách a světlejších lesích).

Spíše zřídka se můžete setkat s třezalkou rozprostřenou, pro niž je typická poléhavá lodyha, a vzácná je u nás také třezalka ozdobná, která nejčastěji roste na stepních a lesostepních stanovištích v teplejších oblastech. Kriticky ohroženým druhem je v České republice třezalka pěkná, kterou botanikové nějaký čas považovali dokonce za vyhynulou. [4, 56]

Třezalka tečkovaná

Jedním z nejznámějších představitelů výše zmíněného rostlinného rodu je třezalka tečkovaná, která je mezi lidmi známá hlavně jako oblíbená léčivka. V současné době se nejčastěji využívá při léčbě deprese a úzkostných stavů, ale někteří vyzdvihují také její antibakteriální a antivirotické účinky. Na trhu je proto dostupná řada produktů s třezalkou, jako jsou čaje, tinktury nebo doplňky stravy.

Pro svou oblíbenost v tradičním léčitelství a údajným mystickým účinkům si třezalka tečkovaná vysloužila také řadu lidových názvů, které se hojně používají i dnes. K těm nejznámějším patří třeba čarovník, děravec, dřezalka, svatojánská bylina nebo bylina sv. Jana, což odkazuje na skutečnost, že dříve lidé sbírali třezalku o svatojánské noci, dívky z ní vily věnečky a nosily je při tanci kolem Janova ohně.

Díky hypericinu, což je červené barvivo obsažené ve žlázkách třezalkových listů, si pak rostlina vysloužila také označení krevník, krevniček, krvavník nebo krev sv. Jana. Běžně se pak můžete setkat i s označením prostřelenec, koření psotníkové, kvítí Panny Marie, laskavé koření, lubovník, milovníček, třesavice, zděšenec, zvoneček svatého Jana, zvonček červený či zvonečkové koření. [7, 8, 9, 10]

Jak vypadá třezalka tečkovaná?

Jde o vytrvalou lysou bylinu s bohatým kořenovým systémem, která obvykle dorůstá do výšky 30–100 cm. Statná lodyha může být přímá či vystoupavá a většinou se příliš nevětví, ale v horní polovině se objevují kvetoucí úžlabní výhonky. V průběhu sezóny pak tyto kulaté stonky se dvěma úzkými podélnými lištami mohou částečně dřevnatět.

Lodyha bývá osázená podlouhlými vejčitými nebo kopinatými listy, které jsou zhruba 15–35 mm dlouhé a bývají přisedlé nebo krátce řapíkaté. Jejich čepel je celokrajná (nebo dokonce slabě podvinutá na okrajích). Na ploše jednotlivých listů se pak objevují tečkovité siličné nádržky a tmavé žlázky. Podíváte-li se proti světlu, prosvítat budou především hlavní žilky, zatímco ty drobné budou nezřetelné.

Květenství třezalky tečkované jsou bohatá, ale poměrně volně uspořádaná. Jednotlivé květy se přitom skládají z pěti nesouměrných, na jedné straně zubatých korunních lístků, které mají typicky zlatožlutou barvu. Uprostřed se pak nachází zhruba 50 tyčinek a na vrcholu semeníku 3 volné čnělky. Plodem třezalky je vejcovitá tobolka, která obsahuje drobná hnědá nebo černá semena.

Pokud jde o to, jak odlišit třezalku tečkovanou od dalších podobných druhů, na rozdíl od třezalky skvrnité nemají její listy tak patrnou postranní žilnatinu a na lodyze se nachází pouze 2 podélné lišty (u třezalky skvrnité jsou 4, stejně jako v případě třezalky čtyřkřídlé). Všechny ostatní druhy třezalky, které rostou v České republice, se vyznačují žláznatě zubatým okrajem kališních lístků. [11, 12, 13]

Kde roste třezalka tečkovaná?

Tento oblíbený druh je hojně rozšířený v Evropě (kromě arktických oblastí), v Asii a v severní Africe. Byl ovšem zavlečen do mírného a subtropického pásma na všech kontinentech, takže na něj můžete narazit také v Jižní Americe od Chile a Uruguaye až po Patagonii. Na některých místech je dnes třezalka tečkovaná dokonce řazena mezi plevelné rostliny.

V polovině 19. století se tento druh dostal také do Austrálie, kde ho lidé pěstovali v botanických zahradách. Postupně však zplaněl a rozšířil se hlavně v jihovýchodní části světadílu. Na území České republiky se pak s třezalkou tečkovanou setkáte především v nižších a středních polohách, kde roste na slunných stanovištích. [14, 15, 16, 17]

Obsažené látky

Třezalka tečkovaná obsahuje více než 150 různých látek, z nichž mnohé mají prokazatelný biologický účinek. Mezi ty nejvýznamnější (z medicínského hlediska) se řadí flavonoidy, nafrodiantrony (konkrétně hypericin a pseudohypericin) a floroglucinoly (konkrétně hyperforin a adhyperforin). K dalším obsaženým látkám patří třeba esenciální oleje, xanthony, třísloviny, organické kyseliny, vitamín C nebo provitamín A.

Hypericiny jsou koncentrovány ve žlázkách, které jsou rozptýlené po nadzemní části třezalky tečkované. Největší množství hypericinů nicméně obsahují plně rozkvetlé květy (údajně až 8× více než listy). Tyto látky mají antivirotické účinky, jsou zodpovědné za fotosenzibilující efekt a kromě toho výrazně přispívají k tomu, že třezalka funguje jako antidepresivum.

Hyperforin se nachází hlavně v průsvitných žlázkách generativních orgánů, přičemž největší množství je obsaženo v nedozrálých plodech třezalky tečkované. Ve stonku a listech naopak tato látka téměř chybí. Co se týče účinků na lidské zdraví, hyperforin je hlavním nositelem antidepresivní funkce třezalky tečkované a je zároveň zodpovědný za negativní interakce s některými léčivy.

Flavonové sloučeniny, které mají samy o sobě antidepresivní účinek a zároveň podporují farmaceutické působení jiných obsažených látek (zejména hypericinů), jsou přítomné v listech i květech třezalky tečkované. Zahrnují volné flavonoidy (kvercetin, kempferol, luteolin…) a biflavonoidy nebo jsou vázané v podobě glykosidů (rutin, kvercitrin, isokvercitrin, hyperosid…). [18, 19, 20]

Historické využití třezalky

Třezalka tečkovaná má v lidové medicíně své pevně dané místo již od pradávna. Například staří Řekové a Římané věřili, že je tato bylina obdařena magickou silou a je schopná zahnat zlé duchy. Kromě toho se třezalka používala také během různých rituálních obřadů a měla chránit člověka před uhranutím, blesky nebo démony. Největší účinky pak údajně měla, pokud ji člověk nasbíral během svatojánské noci.

Během 17. století se pak rozmohlo využití třezalky tečkované k léčbě různých drobných poranění a otoků, a to jak ve formě mastí, tak i v podobě odvarů. Postupem času lidoví léčitelé začali nať a květy této byliny používat při mnoha dalších příležitostech, například u pacientů trpících onemocněním močového měchýře, dnou, bronchitidou nebo třeba menstruačními bolestmi. Kromě toho s ní léčili také kousnutí jedovatým zvířetem, epilepsii nebo ochrnutí. [21, 22, 23]

Jaké má třezalka účinky na zdraví?

Pokud jde o současné využití, v první řadě je nutné zmínit, že je třezalka antidepresivum přírodního původu, které se hodí k léčbě lehkých a středně těžkých forem deprese. Tuto skutečnost se podařilo dokázat pomocí řady kontrolovaných randomizovaných studií, které potvrdily, že má třezalka uklidňující účinky na lidský organismus, zahání pocity melancholie a může pomoci v boji proti stresu.

Některé přípravky, které obsahují extrakt z třezalky tečkované, mohou být při léčbě deprese stejně účinné jako léky na předpis a navíc nejsou spojovány s tolika vedlejšími účinky. Třezalka navíc pomáhá i při změnách nálad, podporuje duševní rovnováhu pacientů a může být prospěšná při léčbě nespavosti, úzkostných stavů a žaludečních neuróz. Ideální je přitom používat třezalku ve formě čaje.

Ačkoliv si lékaři nejsou zcela jistí tím, jak antidepresivní účinky třezalky fungují, předpokládá se, že daný efekt má co do činění s působením byliny na pacientův mozek. Hypericin a hyperforin údajně mohou zvyšovat hladinu určitých látek, jako je například serotonin. Lidé trpící depresí totiž mívají hladinu serotoninu a dalších neurotransmiterů nižší než zdraví jedinci. [24, 25, 26, 27, 28]

Výzkumy také naznačují, že užívání třezalky (často i v kombinaci s jinými bylinami, jako je ploštičník hroznatý) může snižovat příznaky menopauzy, kam se řadí například návaly horka, úzkosti nebo změny nálad. Doporučuje se ale i pacientkám, které si stěžují na premenstruační syndrom (PMS), jenž se obvykle pojí s podrážděností, zvýšenou citlivostí prsou i nepříjemnými bolestmi v podbřišku. [29, 30, 31, 32]

Dalším problémem, s nímž může třezalka tečkovaná pomoci, je somatoformní porucha. Pro tu je typická přítomnost různých tělesných příznaků, které jsou pro pacienta velice nepříjemné, ale bez jakýchkoliv prokázaných organických změn. Daný stav pak u pacienta způsobuje silnou úzkost z fyzických projevů, kam patří bolesti, celková slabost nebo dušnost. [33, 34]

Aby toho nebylo málo, i dnes se třezalka tečkovaná využívá k léčbě ekzémů, atopické dermatitidy, drobných poranění a popálenin, modřin, naraženin, pohmožděnin, vředů nebo třeba hemoroidů. Má totiž antibakteriální i antivirotické vlastnosti a může dokonce pomoci také v boji proti zánětu. Lidé přitom danou bylinu ve formě krémů, olejů a tinktur aplikují hlavně lokálně. [35, 36, 37]

Kromě toho pak třezalka může pozitivně působit také na ledviny a trávicí trakt, má močopudné účinky a celkově podporuje činnost žaludku, žlučníku, jater a močových cest. Některé studie naznačují, že zároveň přispívá k normálnímu fungování dýchacího a kardiovaskulárního systému, ale všechny tyto oblasti jsou prozatím nedostatečně prozkoumané a je potřeba provést další výzkum. Mezi další obtíže, při jejichž léčbě může mít třezalka tečkovaná pozitivní efekt, patří například:

Jaké má třezalka nežádoucí účinky?

Ačkoliv je třezalka mezi lidmi jako léčivka velice oblíbená, ve skutečnosti se s jejím užíváním může pojit i řada vedlejších účinků. Navíc interaguje s mnoha léky, což může být pro člověka velmi nebezpečné. Proto je nutné vždy konzultovat užívání třezalky nebo doplňků stravy, které ji obsahují, se svým ošetřujícím lékařem, a to nejen v případě, že užíváte nějaká léčiva.

První účinky třezalky se údajně projeví nejdříve za 2 týdny a při perorálním podávání by její užívání mělo být bezpečné až po dobu 12 týdnů. Poté je dobré na nějaký čas bylinu vysadit. U některých pacientů se však mohou objevit nežádoucí účinky, které zahrnují třeba:

Pokud užíváte třezalku v příliš vysokých dávkách, hrozí vám také zvýšená citlivost na sluneční světlo (fotosenzitivita). Vystavíte-li pokožku slunečním paprskům, může se pak objevit velice nepříjemná kožní reakce. Je proto důležité používat dostatečně silný opalovací krém, nosit delší oblečení a pokrývky hlavy a vyhýbat se soláriím.

Pro některé pacienty je pak užívání třezalky nevhodné, a proto je nutné situaci vždy raději dopředu probrat s lékařem. Sem patří především těhotné a kojící ženy, ale i lidé s nízkým krevním tlakem, pacienti trpící cukrovkou či pylovou alergií nebo osoby, u nichž se objevil metastazující nádor. Dále pak někdy může třezalka zhoršovat symptomy u lidí s těmito obtížemi:

Aby toho nebylo málo, užívání třezalky tečkované může mít negativní dopad také na pacienty, kteří podstupují nějakou operaci, protože ovlivňuje hladinu serotoninu, což by mohlo narušit některé chirurgické postupy. Nebezpečné pak může být i použití anestezie, která by mohla během operace způsobit srdeční komplikace. Proto je dobré přestat užívat třezalku alespoň dva týdny před plánovanou operací. [42, 43, 44, 45, 46]

Negativní dopad na vstřebávání léků

Největším rizikem, které se s užíváním třezalky tečkované a preparátů z ní vyrobených pojí, je jejich interakce s jinými léčivy. Výzkumy totiž prokázaly, že floroglucinoly obsažené v třezalce (hyperforin, adhyperforin) ruší účinek některých medikamentů. Dochází přitom k aktivaci enzymů, které léky v organismu odbourávají, což je konkrétně cytochrom P450 3A4 a P-glykoprotein.

Výsledkem pak bývá pokles hladiny léků v krvi pacienta a oslabení jejich terapeutického účinku, což by mohlo ohrozit pacientovo zdraví a způsobit mu nepříjemné komplikace. V jiných případech se pak může stát, že třezalka účinky léku zesílí, což je stejně nebezpečné jako situace, kdy je efekt léků oslabený. Vždy je proto nutné poradit se o nasazení třezalky s lékařem a popsat mu, jaké léky užíváte.

Například kombinování třezalky tečkované s některými antidepresivy může vést k potenciálně životu nebezpečnému zvýšení serotoninu, což je látka, na níž antidepresiva cílí. Příznaky se pak objevují v řádu minut až hodin a zahrnují například celkový neklid, zrychlení srdečního tepu, zvýšení krevního tlaku, průjem, zvýšenou teplotu nebo halucinace. Pozor byste si však měli dát i na interakci s těmito léčivy:

  • antikoncepční pilulky,
  • Digoxin (lék na srdce),
  • Oxykodon (lék proti bolesti),
  • Warfarin (antikoagulant),
  • některé léky proti rakovině,
  • některé léky proti HIV,
  • Alprazolam (Xanax, lék používaný ke zmírnění úzkosti),
  • barbituráty (látky tlumící centrální nervový systém),
  • většina makrolidových antibiotik (erytromycin nebo klaritromycin),
  • některé chemoterapeutické léky,
  • některé imunosupresivní léky,
  • některé statiny,
  • některá antihistaminika,
  • fotosenzibilující léky,
  • Dextromethorfan (lék na kašel),
  • některé léky na nespavost,
  • Cyklosporin, který se používá po transplantaci,
  • některá antimykotika (itrakonazol, ketokonazol),
  • triptany (medikamenty používané k léčbě migrény),
  • Theofylin (lék na respirační onemocnění),
  • a mnoho dalších. [47, 48, 49, 50]

Sběr třezalky

Pokud vás tato bylina zaujala a chtěli byste vyzkoušet její účinky na vlastní kůži, není nic jednoduššího než se vydat do přírody a sami si ji nasbírat. Můžete přitom sbírat celou nať i květy, a to během července nebo srpna, ale pouze za suchého počasí a ideálně během dopoledne. Rostliny poté svažte a nechte je uschnout na suchém, stinném a dobře větraném místě (při teplotě do 35 °C). Následně si můžete doma připravit odvar, čaj, tinkturu nebo třezalkový olej. [51, 52, 53]

Jaké má třezalka využití?

Třezalka tečkovaná je již od pradávna známá jako léčivá rostlina, ale zároveň byla oblíbená díky svým mystickým vlastnostem. Lidé ji používali třeba jako součást magických obřadů a zároveň se pomocí této byliny chránili před bleskem a zlými duchy. V současné době se pak používá k léčbě různých zdravotních obtíží, přičemž na obsah a skladbu účinných látek má zásadní vliv způsob zpracování.

Vzhledem k tomu, jaké má třezalka tečkovaná účinky na lidský organismus, lidé tuto rostlinu často sbírají a připravují si z ní doma třezalkový čaj (2 lžičky sušené třezalky zalité šálkem vroucí vody, což se nechá 15 minut louhovat). Třezalku je však možné míchat i s dalšími bylinami, které její účinky vhodně doplňují.

Tradiční medicínskou podobou třezalky tečkované je třezalkový olej, jenž se dá používat jak zevně, tak i vnitřně. Doma si můžete připravit tzv. Janův olej vhodný pro zevní použití (do koupele, pro aplikaci na postižená místa), a to konkrétně z květů třezalky natrhaných za slunečného dne. Olej vhodný i pro vnitřní využití se pak většinou připravuje z třezalkové natě s květy.

Na trhu je dnes dostupná celá řada třezalkových přípravků a doplňků stravy, které je možné zakoupit v lékárně nebo na internetu. Patří sem především drcená třezalková nať (sypaná nebo v sáčcích), třezalkové tablety (lisovaný prášek z bylin), třezalkový extrakt v kapslích a tabletách, třezalkové kapky, třezalková tinktura, třezalková šťáva lisovaná z čerstvé rostliny nebo třeba macerát v oleji. [54, 55, 56]

Pěstování třezalky tečkované

Rádi byste si vypěstovali třezalku na vlastní zahrádce, abyste nemuseli její květy a nať chodit sbírat do přírody? V tom případě mějte na paměti, že ji můžete vysévat přímo na venkovní záhon během podzimu. Hloubka výsevu by se přitom měla pohybovat kolem 0,5 cm. Další možností je pak semínka zasadit v únoru a třezalku si předpěstovat.

Zvolíte-li druhou variantu, vysévejte semena na povrch výsevního substrátu a nezasypávejte je hlínou. Ke klíčení, které trvá zhruba 30–60 dnů, pak budou semena potřebovat teplotu od 16 do 22 °C. Sazeničky staré asi 5 týdnů následně přesaďte do dobře prokypřené půdy (spon 25 × 30 cm), a to ideálně v období mezi dubnem a červnem.

A jaké je pro třezalku tečkovanou vhodné stanoviště? Nejlepší jsou slunečná či polostinná místa, která jsou dobře chráněná před větrem. Na půdu tato rostlina příliš náročná není, ideálně by však měla být dostatečně propustná, hlinitopísčitá a mírně vápenitá. Pozor si pak dejte na přílišné vlhko, které by mohlo třezalce uškodit. [57, 58]

Zdroje: botany.cz, semena.cz, nccih.nih.gov, mayoclinic.org, healthline.com, webmd.com, verywellmind.com, medicalnewstoday.com, mojemedicina.cz, my.clevelandclinic.org

Jak vypadá třezalka tečkovaná?
Třezalka tečkovaná (Hypericum perforatum) je vytrvalá bylina z rodu třezalka, která se řadí mezi oblíbené léčivky. Má bohatý kořenový systém, přímou či vystoupavou lodyhu a podlouhlé vejčité nebo kopinaté listy, na jejichž čepelích se objevují tečkovité siličné nádržky a tmavé žlázky. Květy mají typicky zlatožlutou barvu a plodem je vejcovitá tobolka s hnědými nebo černými semeny.
Jaké má třezalka účinky na zdraví?
Dříve lidé věřili, že třezalka zahání zlé duchy a brání člověka před bleskem nebo démony. Dnes se nejčastěji používá k léčbě lehké nebo středně těžké deprese, ale může také zmírňovat projevy menopauzy nebo premenstruačního syndromu. Kromě toho může mít pozitivní vliv při léčbě kožních obtíží, somatoformní poruchy, sezónní afektivní poruchy, alkoholové závislosti nebo generalizované úzkostné poruchy.
Na jaké nežádoucí účinky třezalky si dát pozor?
Užívání třezalky je vždy nutné konzultovat s ošetřujícím lékařem. Mohou se totiž objevit nežádoucí účinky, jako je motání hlavy, průjem, suchost v ústech, nespavost, bolest hlavy či zvýšená citlivost na sluneční světlo. Kromě toho mívá třezalka negativní dopad na vstřebávání léků a může oslabit jejich terapeutický účinek. Jde hlavně o antidepresiva, antikoncepční pilulky, některé léky proti HIV, barbituráty, imunosupresiva, statiny, antimykotika, antihistaminika, ale i mnohé další.
V jaké formě se používá třezalka tečkovaná?
Nať a květy třezalky se sbírají během července nebo srpna. Poté se suší a nejčastěji si z nich lidé připravují třezalkový čaj, třezalkovou tinkturu nebo třezalkový olej. Kromě toho existuje i řada přípravků a doplňků stravy, které je možné zakoupit v lékárně či na internetu. Jde hlavně o drcenou třezalkovou nať, třezalkové tablety, třezalkové kapky, ale také o třezalkový extrakt v kapslích.
  • Žá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 »