Obsahové náplně živností koncesovaných

Příloha č. 3 nařízení vlády č. 278/2008 Sb.

Příloha č. 3 nařízení vlády č. 278/2008 Sb., kterým se stanoví obsahové náplně jednotlivých živností, v platném znění.

Předmětem obsahové náplně živnosti je též poradenství věcně související s obsahem živnosti, pokud jiný právní předpis nestanoví jinak.

Ve znění Nařízení vlády č. 365/2013 Sb. – novelizované znění a dotčené části jsou vyznačeny tučně.

  OBSAH  
  Živnosti koncesované  
  Výroba a úprava kvasného lihu, konzumního lihu, lihovin a ostatních alkoholických nápojů (s výjimkou piva, ovocných vín, ostatních vín a medoviny a ovocných destilátů získaných pěstitelským pálením) a prodej kvasného lihu, konzumního lihu a lihovin  
  Výroba a úprava lihu sulfitového nebo lihu syntetického  
  Výzkum, vývoj, výroba, ničení, zneškodňování, zpracování, nákup a prodej výbušnin  
  Vývoj, výroba, opravy, úpravy, přeprava, nákup, prodej, půjčování, uschovávání, znehodnocování a ničení zbraní a střeliva  
  Nákup a prodej, půjčování, vývoj, výroba, opravy, úpravy, uschovávání, skladování, přeprava, znehodnocování a ničení bezpečnostního materiálu  
  Výroba a zpracování paliv a maziv a distribuce pohonných hmot  
  Výroba tepelné energie a rozvod tepelné energie, nepodléhající licenci realizovaná ze zdrojů tepelné energie s instalovaným výkonem jednoho zdroje nad 50 kW  
  Silniční motorová doprava
- nákladní vnitrostátní provozovaná vozidly o největší povolené hmotnosti do 3,5 tuny včetně,
 – nákladní vnitrostátní provozovaná vozidly o největší povolené hmotnosti nad 3,5 tuny,
 – nákladní mezinárodní provozovaná vozidly o největší povolené hmotnosti do 3,5 tuny včetně,
 – nákladní mezinárodní provozovaná vozidly o největší povolené hmotnosti nad 3,5 tuny,
 – vnitrostátní příležitostná osobní,
 – mezinárodní příležitostná osobní,
 – vnitrostátní veřejná linková,
 – vnitrostátní zvláštní linková,
 – mezinárodní linková,
 – mezinárodní kyvadlová,
 – taxislužba
 
  Vnitrozemská vodní doprava  
  Kontrolní testování profesionálních zařízení pro aplikaci přípravků mechanizačních prostředků na ochranu rostlin  
  Provádění pyrotechnického průzkumu  
  Provádění veřejných dražeb
- dobrovolných
 – nedobrovolných
 
  Provozování cestovní kanceláře  
  Ostraha majetku a osob a služby soukromých detektivů  
  Poskytování technických služeb k ochraně majetku a osob  
  Vedení spisovny  
  Provozování střelnic a výuka a výcvik ve střelbě se zbraní  
  Provádění trhacích a ohňostrojných prací  
  Provozování pohřební služby  
  Provádění balzamace a konzervace  
  Provozování krematoria  
  Činnost Obsahová náplň činnosti  
  Výroba a úprava kvasného lihu, konzumního lihu, lihovin a ostatních alkoholických nápojů (s výjimkou piva, ovocných vín, ostatních vín a medoviny a ovocných destilátů získaných pěstitelským pálením) a prodej kvasného lihu, konzumního lihu a lihovin Výroba lihu destilací nebo jiným oddělením ze zkvašených cukernatých roztoků pocházejících ze škrobnatých nebo cukernatých surovin, nebo z jiných surovin obsahujících kvasný líh, úprava lihu takto získaného jeho zušlechťováním nebo denaturací a výroba alkoholických nápojů, při jejichž výrobě přímo vzniká destilací výše uvedených surovin alespoň část etanolu obsaženého v těchto nápojích (destilátů pravých, destilátů řezaných a destilátů vyrobených zvláštním tradičním způsobem), s výjimkou výroby ovocných destilátů získaných pěstitelským pálením. Výroba konzumního lihu a lihovin studenou cestou (mícháním) a výroba ostatních alkoholických nápojů, s výjimkou výroby piva, ovocných vín, ostatních vín a medoviny. Prodej kvasného lihu, konzumního lihu a lihovin.  
  Výroba a úprava lihu sulfitového nebo lihu syntetického Výroba lihu destilací nebo jiným oddělením ze zkvašených roztoků pocházejících z celulózy, výroba lihu synteticky a úprava lihu takto získaného jeho zušlechťováním nebo denaturací.  
  Výzkum, vývoj, výroba, ničení, zneškodňování, zpracování, nákup a prodej výbušnin Výzkum, vývoj, výroba a zpracování výbušnin a výbušných předmětů. Zneškodňování a ničení výbušnin a výbušných předmětů (jen v rámci procesu výzkumu, vývoje, výroby a zpracování). Nákup a prodej výbušnin a výbušných předmětů.  
  Vývoj, výroba, opravy, úpravy, přeprava, nákup, prodej, půjčování, uschovávání, znehodnocování a ničení zbraní a střeliva Vývoj a výroba zbraní, opravy a úpravy zbraní, zejména odstraňování závad zbraní a měnění jejich vlastností podle objednávky. Provádění údržby, montáže a seřizování zbraní, přeprava zbraní do určeného místa. Nákup a prodej zbraní, půjčování zbraní, skladování, uchovávání a řádné opatrování zbraní převzatých do úschovy. Znehodnocování a ničení zbraní. Vývoj a výroba střeliva, opravy, úpravy, nákup, prodej a půjčování střeliva, přeprava střeliva do určeného místa a vydávání určitému příjemci, skladování, uschovávání a řádné opatrování do úschovy převzatého střeliva, ničení a znehodnocování střeliva.  
  Nákup a prodej, půjčování, vývoj, výroba, opravy, úpravy, uschovávání, skladování, přeprava, znehodnocování a ničení bezpečnostního materiálu Nákup, prodej a půjčování věcí využitelných k obranným a bezpečnostním účelům bezpečnostního materiálu podle jiného právního předpisu (dále jen „bezpečnostní materiál"). Skladování, uchovávání a řádné opatrování bezpečnostního materiálu převzatého do úschovy. Vývoj a výroba bezpečnostního materiálu, opravy a úpravy bezpečnostního materiálu, zejména odstraňování jeho závad a měnění jeho vlastností podle objednávky. Provádění údržby a montáže bezpečnostního materiálu, jeho přeprava do určeného místa. Znehodnocování a ničení bezpečnostního materiálu.  
  Výroba a zpracování paliv a maziv a distribuce pohonných hmot Řízení a obsluha technologických procesů za účelem zpracování ropy a výroby ropných produktů (paliv a maziv) s využitím velkokapacitních jednotek nebo jednotlivých částí technologických komplexů s prvky běžné automatizace, měření a regulace, včetně kontroly technologického režimu výroby. Ovládání procesů chemicko-fyzikálních přeměn ve všech skupenstvích ručním nebo mechanickým ovládáním prvků řízení. Obsluha čerpacích zařízení s potrubními rozvody, skladovací a manipulační práce. Používání chemických činidel a sloučenin pro zušlechťování polotovarů a výrobků. Shromažďování, zpracování a přenos informací o průběhu výroby i o změnách chemických a fyzikálně-chemických vlastností meziproduktů a hotových výrobků při realizaci technologických úkolů a integrované řízení výrobního procesu. Výroba biopaliv mícháním směsí komponentů uhlovodíkového a neuhlovodíkového (rostlinného) původu (například směsné nafty). Výroba mazacích olejů a plastických maziv. Výroba kapalných uhlovodíkových paliv ze surovin neropného původu. Přepracování odpadních uhlovodíkových produktů (například použitých a odpadních minerálních olejů) na kapalná paliva (topné oleje) a znovupoužitelné mazací oleje (motorové a převodové). Distribuce pohonných hmot, kterou se rozumí jejich prodej, s výjimkou prodeje pohonných hmot z čerpací stanice a prodeje stlačeného zemního plynu, pokud je jeho prodejce držitelem platné licence na obchod s plynem podle energetického zákona.  
  Výroba tepelné energie a rozvod tepelné energie, nepodléhající licenci realizovaná ze zdrojů tepelné energie s instalovaným výkonem jednoho zdroje nad 50 kW Výroba a rozvod (doprava, akumulace, přeměna parametrů a dodávka tepelné energie rozvodným tepelným zařízením) tepelné energie, na které se neuděluje licence podle jiného právního předpisu. Instalovaným výkonem jednoho zdroje u této živnosti se rozumí celkový výkon kotelny, ve které může být instalován jeden zdroj s výkonem nad 50 kW, nebo více zdrojů o nižším výkonu, které ve svém součtu překročí hodnotu 50 kW.
Obsahem živnosti není dodávka tepelné energie, kterou zajišťují vlastníci domů (pronajímatelé) pro své vlastní nájemníky.
 
  Silniční motorová doprava
 – nákladní vnitrostátní provozovaná vozidly o největší povolené hmotnosti do 3,5 tuny včetně,
 – nákladní vnitrostátní provozovaná vozidly o největší povolené hmotnosti nad 3,5 tuny,
 – nákladní mezinárodní provozovaná vozidly o největší povolené hmotnosti do 3,5 tuny včetně,
 – nákladní mezinárodní provozovaná vozidly o největší povolené hmotnosti nad 3,5 tuny,
 – vnitrostátní příležitostná osobní,
 – mezinárodní příležitostná osobní,
 – vnitrostátní veřejná linková,
 – vnitrostátní zvláštní linková,
 – mezinárodní linková,
 – mezinárodní kyvadlová,
 – taxislužba
Souhrn činností, jimiž se zajišťuje přeprava osob, věcí a zvířat silničními motorovými vozidly pro cizí potřebu, jakož i přemísťování silničních motorových vozidel samých po dálnicích, silnicích, místních komunikacích a veřejně přístupných účelových komunikacích a volném terénu. Silniční motorová doprava nákladní může být provozována jako silniční motorová doprava nákladní vnitrostátní nebo mezinárodní. Tyto druhy dopravy se dále člení na dopravu provozovanou vozidly do 3,5 tuny celkové hmotnosti včetně nebo provozovanou vozidly nad 3,5 tuny celkové hmotnosti. Silniční motorová doprava osobní se dále člení na taxislužbu, silniční motorovou dopravu vnitrostátní, která může být provozována jako příležitostná, veřejná linková a zvláštní linková, nebo silniční motorovou dopravu mezinárodní, která může být provozována jako příležitostná, linková, či kyvadlová, přičemž definice těchto doprav stanoví jiný právní předpis.  
  Vnitrozemská vodní doprava Souhrn činností, jimiž se zajišťuje přeprava osob, věcí, případně zvířat, jakož i přemísťování plavidel samých po vnitrozemských vodních cestách pro cizí potřebu s výjimkou plovoucích strojů, plovoucích zařízení a jiných ovladatelných plovoucích těles podle jiného právního předpisu.  
  Kontrolní testování profesionálních zařízení pro aplikaci přípravků mechanizačních prostředků na ochranu rostlin Přezkoušení funkční způsobilosti mechanizačních prostředků, s výjimkou prostředků stanovených zákonem o rostlinolékařské péči, pro správnou aplikaci přípravků na ochranu rostlin podle technologických požadavků stanovených jiným právním předpisem a vydání dokladu o funkční způsobilosti mechanizačních prostředků.  
  Provádění pyrotechnického průzkumu Cílevědomé vyhledávání munice nebo výbušnin pomocí detekční techniky a jejich identifikace stanoveným postupem, případně jejich vyzvednutí, nebo dohled při zemních pracích, při nichž se očekává nález munice nebo výbušnin. Identifikace nalezené munice nebo výbušnin.  
  Provádění veřejných dražeb
 – dobrovolných
 – nedobrovolných
Činnosti spojené s prováděním veřejných dražeb dobrovolných podle jiného právního předpisu, přičemž dražbou dobrovolnou je dražba prováděná na návrh osoby oprávněné s majetkem nakládat, a prováděním veřejných dražeb nedobrovolných podle jiného právního předpisu, přičemž dražbou nedobrovolnou je dražba prováděná na návrh dražebního věřitele, jehož pohledávka je přiznána vykonatelným soudním rozhodnutím nebo vykonatelným rozhodčím nálezem nebo doložena vykonatelným notářským zápisem nebo vykonatelným exekutorským zápisem, který obsahuje náležitosti stanovené jiným-právním předpisem, anebo doložena jiným vykonatelným rozhodnutím, jehož soudní výkon připouští zákon, včetně platebních výměrů a výkazů nedoplatků. Dražbou se rozumí veřejné jednání, jehož účelem je přechod vlastnického nebo jiného práva k předmětu dražby, konané na základě návrhu navrhovatele, při němž se licitátor obrací na předem neurčený okruh osob přítomných na předem určeném místě, nebo v prostředí veřejné datové sítě na určené adrese, s výzvou k podávání nabídek a při němž na osobu, která za stanovených podmínek učiní nejvyšší nabídku, přejde příklepem licitátora vlastnictví nebo jiné právo k předmětu dražby, nebo totéž veřejné jednání, které bylo licitátorem ukončeno z důvodu, že nebylo učiněno ani nejnižší podání, přičemž předmětem dražby může být věc nemovitá, obchodní závod podnik nebo jeho organizační složka, převoditelná majetková práva k předmětu dražby, bylo-li navrženo jejich vydražení a splňují-li podmínky stanovené jiným právním předpisem a dále věc nebo soubor věcí movitých, pokud navrhovatelem dražby není vlastník těchto věcí. Předmětem dražby nedobrovolné může být vše, co může být zástavou podle jiného právního předpisu, kromě předmětů kulturní hodnoty z oboru archeologie a předmětů kulturní hodnoty sakrální a kultovní povahy, které nejsou opatřeny osvědčením k trvalému vývozu. Dále činnosti směřující k zabezpečení organizace dražby (zejména zajištění uveřejnění dražby dražební vyhláškou, zajištění odhadu ceny předmětu dražby, vedení evidence o dražbách, zabezpečení uložení písemností obchodního závodu podniku, jestliže je tento předmětem dražby). Obsahem živnosti není provádění veřejných dražeb v oblasti cenných papírů.
V rámci živnosti lze provádět i dobrovolné dražby věcí movitých.
 
  Provozování cestovní kanceláře Organizování, nabízení a prodej zájezdů. Zájezdem se rozumí kombinace služeb podle jiného právního předpisu. Dále lze rovněž nabízet, prodávat a zprostředkovávat prodej jednotlivých služeb cestovního ruchu a organizovat, nabízet, prodávat a zprostředkovávat prodej kombinací jednotlivých služeb cestovního ruchu. Jednotlivými službami cestovního ruchu se rozumí zejména zabezpečení dopravy, ubytování, stravování, průvodcovských služeb, prodeje a rezervace letenek, prodeje a rezervace železničních a autobusových jízdenek včetně místenek, prodej a rezervace lodních lístků včetně kajut, zprostředkování víz, nabídky a prodeje balneologických služeb za účelem relaxace a rekondice, nabídky a prodeje sportovních aktivit za účelem relaxace a rekondice (například jízda na koni, půjčování kol a dalších sportovních potřeb, pobyt ve fit-centrech), zprostředkování a zajištění účasti na sportovních a společenských akcích a zprostředkování prodeje dalších služeb spojených s rekreací, odpočinkem a služebním, obchodním jednáním.
V rámci živnosti lze dále prodávat věci související s cestovním ruchem, zejména vstupenky, mapy, plány, jízdní řády, tištěné průvodce a upomínkové předměty.
 
  Ostraha majetku a osob a služby soukromých detektivů Poskytování služeb spojených s ostrahou a ochranou nemovitého a movitého majetku, ostrahou při přepravě peněz, cenností či jiného majetku, ochranou osob a vymezených zájmů, zajišťováním pořádku v místech konání veřejných shromáždění, slavností, sportovních podniků nebo lidových zábav podle pokynů objednatele, vyhodnocováním bezpečnostních rizik a zpracováním plánů ochrany, provozováním centrálních pultů ochrany. Služby spojené s hledáním majetku a osob, zjišťováním skutečností, které mohou sloužit jako důkazní prostředky v řízení před soudem nebo správním orgánem, získáváním informací týkajících se osobního stavu fyzických nebo právnických osob nebo jejich majetkových poměrů, získáváním informací v souvislosti s vymáháním pohledávek, vyhledáváním protiprávních jednání ohrožujících obchodní tajemství.  
  Poskytování technických služeb k ochraně majetku a osob Projektování, montáž, kontrola, údržba a opravy elektronických poplachových systémů (zejména systémů zabezpečovacích, tísňových, protipožárních, kontroly vstupu, přivolání pomoci, integrovaných a kamerových), určených k ochraně majetku a osob před neoprávněnými zásahy, včetně poplachových systémů a zařízení umožňujících sledování pohybu a projevů osob v objektech a jejich okolí. Montáž, opravy, údržba, revize a správa mechanických zábranných systémů, dodatečně zvyšujících účinnost běžných standardů zabezpečení majetku a osob.  
  Vedení spisovny Zajištění odborné správy dokumentů původce, popřípadě jeho právních předchůdců, v rozsahu úkonů souvisejících s uchováním těchto dokumentů, výkonem nahlédací agendy a umožnění provedení výběru archiválií, a to ve stejném rozsahu souvisejících povinností, které jsou zákonem o archivnictví a spisové službě stanoveny tomuto původci. Zajištění odborné správy dokumentů původce, popřípadě jeho právních předchůdců, zahrnující příjem těchto dokumentů od původce, úschovu a řádnou péči o ně, evidenci, výkon nahlédací agendy a vyřazování ve skartačním řízení a mimo skartační řízení.  
  Provozování střelnic a výuka a výcvik ve střelbě se zbraní Provozování střelnice pro výuku a nácvik střelby a provádění ostrých střeleb ze střelných zbraní. Výuka teorie střelby včetně vyučování souvisejících právních předpisů, bezpečnostního a zdravotnického minima, vedení nácviku a provádění střelby ze zbraní a svěření zbraně za dohledu.  
  Provádění trhacích a ohňostrojných prací Odborná činnost, při které se využívá energie chemické výbuchové přeměny výbušnin pro provádění trhacích prací. Odborná činnost, při které se využívá energie chemické výbuchové přeměny výbušných předmětů a výbušnin k vyvolání světelných, popřípadě zvukových účinků.  
  Provozování pohřební služby Poskytování služeb spojených se sjednáváním smlouvy o pohřbení, přepravou lidských pozůstatků, jejich uložením do rakve, úpravou, přechodným uložením v prostorách k tomu určených a pohřebním obřadem (pietním aktem) a další činnosti spojené s pohřbením, s výjimkou provozování pohřebiště, provádění balzamací a konzervací a zpopelňování lidských pozůstatků nebo exhumovaných lidských ostatků, úpravy popela a jeho ukládání do uren. Převozy lidských pozůstatků pro potřebu zdravotnického zařízení, policejních orgánů nebo jiných orgánů činných v trestním řízení.  
  Provádění balzamace a konzervace Činnosti spojené s úpravou lidských pozůstatků zamezující rozvoji posmrtných změn vyvolaných hnilobnými bakteriemi nebo hmyzem. Napuštění antiseptickými látkami, aby se zabránilo rozkladu (balzamace). Činnosti spojené s úpravou lidských pozůstatků zpomalující rozvoj posmrtných změn vyvolaných hnilobnými bakteriemi nebo hmyzem (konzervace), které nespočívají v pouhém chlazení lidských pozůstatků v chladicích zařízeních.  
  Provozování krematoria Provozování krematorií zahrnuje poskytování služeb spojených se zpopelňováním lidských pozůstatků nebo exhumovaných lidských ostatků a souvisejícím nakládáním s nimi, úpravou popela, jeho ukládáním do uren a předáním objednateli pohřbu, evidencí provozu krematoria, jakož i dalšími souvisejícími činnostmi (například zabezpečení hudebního doprovodu, úschova uren a podobně).  
'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »