Italská „myšička“: Fiat Topolino položil základy výroby miniautomobilů z Turína

přidejte názor

Vlastně bychom neměli říkat Topolino (italsky Myšička), protože je to název lidový, i když legendární a světoznámý. Výrobce pojmenoval svůj přelomový model, který představoval počátek hromadné výroby vozů nejmenší třídy (ve světovém měřítku), celkem fádním označením 500, pod nímž se všechny tři generace prodávaly, jen s rozeznávacím písmenem typové řady A, B nebo C! Vítejte v „myším“ království!

Jak už jsme v našich ohlédnutích za historickými výročími a artefakty několikrát předeslali, Itálie přelomu 20. a 30. let představovala značný kontrast mezi možnostmi, výdělky a kupní sílou průmyslového severu a chudšího jihu. Průmyslová centra nabízela mnohem lepší uplatnění a výdobytky moderní techniky se prodávaly nejlépe právě tady.

Impuls k vývoji dal Benito Mussolini

Postupně se fašizující Itálie pod vedením tehdejšího premiéra Benita Mussoliniho (třebaže zemi pořád oficiálně vládl král Vittorio Emanuele III), kladla důraz na zvýšení rozmanitosti a množství oborů průmyslové výroby. S tím souvisela i potřeba individuální motorizace, kterou akcentoval právě Mussolini, a to už na samém počátku třicátých let.

Video: Reklama na novodobé Topolino

Zdroj: Youtube.com

Itálie měla množství automobilových výrobců, ale mezi nimi šíří záběru vynikal FIAT (nejčastěji psaný malými písmeny Fiat). Tady právě finalizovaly přípravy k sériové výrobě populárního malého Fiatu 508 (byl později vyráběný licenčně v pražské Waltrovce). Malý 508 ortodoxních forem debutoval v roce 1932, ale už více než rok předtím Mussolini pozval do svého paláce tehdejší „hlavu“ Fiatu a jednoho z jeho zakladatelů, Giovanniho Agnelliho. Noblesní průmyslník tušil, že mu toto setkání žádnou radost nepřinese.

Topolinu předcházel 508

Vraťme se na moment ke konvenčnímu Fiatu 508: přestože se předpokládala jeho výroba ve vysokých produkčních cyklech, nebyl tím pravým, co potřeboval především chudší venkov a obyvatelstvo italského jihu. Profiloval se v cenové úrovni kolem deseti tisíc tehdejších lir, jeho výroba byla poměrně náročná, konstrukčně i tvarově odkazoval na zvyklosti uplynulé dekády.

Zkušební prototyp „Zero“ se od série lišil jednodušší karosérií a několika drobnými detaily, například uložením světlometů

Zkušební prototyp „Zero“ se od série lišil jednodušší karosérií a několika drobnými detaily, například uložením světlometů

Autor: Fiat

Tohle všechno sdělil Mussolini Agnellimu – zbytečně, protože ten o veškerém dění ve Fiatu dobře věděl. Ovšem Mussolini zároveň Agnelliho zaúkoloval urychleným vývojem a představením vozidla pro nejširší vrstvy, s jednoduchým motorem, nejlevnější základní výbavou, a prodejní cenou, pohybující se mezi 4 000 a 5 000 lirami. To v Itálii oné doby ještě nikdo nedokázal, Agnelli se měl stát tím prvním…

Druhá vývojová cesta načrtla správný směr

Vývojové oddělení koncernu rozpracovalo dvě varianty: tou první bylo doslovné zmenšení některého stávajícího modelu s jistými progresívními prvky (například pohon předních kol), druhou možností byl vývoj specifického provedení přesně podle Mussoliniho požadavků. 

Po neslavné zkušební jízdě prototypu s pohonem předních kol se Agnelli postavil na zadní a přikázal realizovat vývoj malého vozidla klasické pohonné konfigurace.

Tvůrcem „Myšičky“ je slavný Dante Giacosa

Postupným předáváním rozkazu do nižších úrovní se odpovědným designérem stal proslulý Dante Giacosa (tvůrce Fiatů 1100, 1400, 600). Byl mladý, ale získal ostruhy úspěšnými dílčími pracemi na projektu Fiatu 508, vedení tedy usoudilo, že nazrál čas, aby se budoucí excelentní návrhář pustil do samostatné práce.

Světoznámý „diblík“: po stopách Fiatu 600 v Evropě i mimo ni včetně Zastavy a speciálů Abarth
Přečtěte si také:

Světoznámý „diblík“: po stopách Fiatu 600 v Evropě i mimo ni včetně Zastavy a speciálů Abarth

Je zajímavé, že Giacosa dostal za úkol vývoj kompletního vozidla, tedy včetně tehdy běžného odděleného šasi. To mají obvykle na starosti spíše technici než tvůrci karosérií. Ale Giacosa se osvědčil tehdy stejně jako později.

Budoucí Fiat 500 A dostal originálně pojatou karosérii, která ale vycházela ze soudobé koncepce Fiatu. Podobný tvar měly větší jedenáctistovky nebo Fiaty 1500, a i velký a reprezentativní Fiat 2800 vykazoval designovou spřízněnost.

Topolino pohledem zvenčí i zevnitř 

Podívejme se na karosérii malé „Myšičky“ z několika úhlů: klasická blatníková koncepce byla tehdy stále v módě, ale aerodynamika se už hlásila o slovo. Celá karosérie nemá ani jednu ostrou hranu, oblá a sympatická příď zahrnuje jemně vykroužené blatníky a kapotu se svisle žebrovanou maskou. Běžný typ tudor měl pouze dvoje dveře se zadními závěsy, rozměrný zadní sloupek nesl hlavní tíhu karosérie při eventuálním převrácení. Přední reflektory byly samostatné na horní části předních blatníků. Karosérie je skutečně miniaturní – s délkou 3,21 metru měřila (pro srovnání) bezmála o osmdesát centimetrů méně než Fabia třetí generace…

Rentgenová kresba odhalí hluboko zanořený malý spodový čtyřválec s chladičem umístěným vzadu, a za přepážkou palivovou nádrž

Rentgenová kresba odhalí hluboko zanořený malý spodový čtyřválec s chladičem umístěným vzadu, a za přepážkou palivovou nádrž

Autor: Archiv Svatopluka Jíchy, se svolením

Fiat 500 A měl koncepci 2 + 2, ovšem plnohodnotná sedadla mohli použít jen pasažéři vpředu. Vzhledem k minimalizaci vnitřního prostoru se vzadu nacházely jen nouzové sedačky, vhodné pro děti malých postav. Pevná střecha mohla být nahrazená částečnou látkovou, tedy tím, čemu se občas například u Citroënu 2CV říká „paštika“.

Interiér byl poplatný zadání: sedadla s tenkými opěradly nemohla poskytnout žádný velký komfort, ale pohledem Itala, který si po dlouhém střádání kupuje svůj první automobil, tato skutečnost ustupuje do pozadí. Řidič měl před sebou jednoduchý volant a prostou ocelovou palubní desku, obsahující dva přístroje a několik základních spínačů. Topení a větrání nebylo u typu 500 A v sériové výbavě.

Špetka nezbytné techniky…

Oč jednodušší měl malý fiat šat, o to zajímavější byl pohled pod něj. U vozidel této velikosti bychom očekávali nejspíše dvouválec, ale Giacosův první zlatý hřeb se pyšnil čtyřmi válci při souhrnném objemu 570 cm3 (byl by tedy asi vhodnější typový název 600, ale „pětistovka“ se ujala). Agregát měl výkon 13 koní a v plném zatížení dokázal akcelerovat až na maximálku 85 km/h, ovšem trvalá rychlost se pohybovala mezi 65 a 70 km/h. To byla na předválečnou Itálii velmi slušná hodnota. 

Malý a světoznámý jubilant: Fiat 600 patřil k bestsellerům i v Československu
Přečtěte si také:

Malý a světoznámý jubilant: Fiat 600 patřil k bestsellerům i v Československu

Kompaktní motor se lehce vešel pod kapotu, na něj navazovala už od počátku čtyřstupňová (!) převodovka, pohánějící zadní kola. Úspora nákladů především, takže palivové čerpadlo nebylo zapotřebí, z nádrže tekl benzín spádem. Velkou raritou u této třídy se staly hydraulické brzdy (v té době měly velmi drahé a luxusní šestiválce Škoda 650 stále mechanické brzdy), odpružení přední nápravy tvořily příčné listy, vzadu byla tuhá náprava se čtvrteliptickými pružinami. 

Kde se vzalo jméno „Myšička“ a ještě pár detailů

Hrubá konstrukce auta byla hotová v druhé polovině roku 1933, počátkem roku následujícího prototyp „uzrál“ k testovacím jízdám, ovšem způsobem, nesrovnatelným s dnešní praxí: tedy absolutně žádné maskování, jen „sednout a jet, co to dá“.

Řeknete si možná: Fiat Topolino, tedy „Myšička“ – ale proč vlastně? Na to jsou dvě teorie. Ta první hovoří o vlivu módy amerických kreslených grotesek s myšákem Mickeym, který dorazil i do biografů Apeninského poloostrova. Druhá teorie je bližší továrně: prototypy měly lak nevýrazného šedého odstínu, téměř žádné ozdoby (i v sériové podobě jich bylo minimum). A když se zadíváte na oblou a maličkou karosérii, a představíte si ji v myším barevném odstínu, co by vás napadlo? 

V expozici Fiatu při autosalónu v Milánu se pyšní řada „pětistovek“ A vedle ostatních koncernových řad, například 508

V expozici Fiatu při autosalónu v Milánu se pyšní řada „pětistovek“ A vedle ostatních koncernových řad, například 508

Autor: Archiv Svatopluka Jíchy, se svolením

K tomu ještě poznámka o nabídce laků: první Topolina byla k mání buď v jedné barvě nebo v kombinaci, jak se u blatníkových karosérií stalo zvykem. V prvním období výroby nabízel Fiat světle zelenou, tmavě zelenou, krémovou, šedou či červenou, případně kombinaci. Ovšem nikdy to nebyly řvavé a slizce vypadající odstíny akrylátových barev, jak nám je mnohdy nabízí současnost s podtitulem „Takhle to vypadalo!“. Naopak, Topolina pocházela z období skromnosti, niklu namísto drahého chromu, žádného bělobokého obutí – jednoduše pocitu štěstí nad nenápadným vozíkem…  

Malé zpoždění vývoje = velká nelibost Mussoliniho

V září 1934 se rozběhly zkoušky trojice prototypů, testy dokončil jeden z nich. Podle některých pramenů uvažovala továrna o prezentaci novinky už v roce 1935, také Mussolini prý vozík poněkud neodbytně urgoval, ale Agnelli evidentně nechtěl nic riskovat. Konečná zodpovědnost ležela na něm. Giacosa odvedl dokonalou práci v rámci možností a stálého tlaku na zlevňování, ovšem praktické testy musely už tehdy prokázat „nezničitelnost“. 

Topolino skutečně vydrželo nástrahy kamenitých silniček italského jihu, záludnosti městského provozu i tempo prvních rychlostních silnic. Podle dobového tisku bylo všude středem pozornosti a v přímém srovnání s prototypem Topolina vypadal nový Fiat 508 naprosto antikvárně.

Nejen Mototechna: Jak se kupovala auta v létech 1945 až 1989 (třetí část)
Přečtěte si také:

Nejen Mototechna: Jak se kupovala auta v létech 1945 až 1989 (třetí část)

Slavnostní premiéra novinky se konala 15. června 1936, ale to už se vozík nazýval Fiat 500. Tím také vznikla dodnes uctívaná tradice italských „pětistovek“. Týden před debutem se Fiat s vozem pochlubil Mussolinimu. Ten se svezl, ocenil snahu a výsledné dílo, jen byl nespokojený s termínem premiéry, třebaže továrna včasným náběhem výroby zajistila dostatečné množství vozů na začátek prodeje. Ode dne představení začali prodejci Fiatu přijímat objednávky a expedovat „pětistovky“.   

Další výtka směrem k výrobci se týkala prodejní ceny. Mussolini pokládal svůj příkaz o maximální ceně za svatý, jenže časy se měnily. Výroba byla nákladná, továrna sice moderní, ale nákup surovin produkci zdražoval. Finální cena se tedy oproti rozkazu premiéra téměř zdvojnásobila a činila bezmála 9 000 lir. Pro srovnání uveďme, že kvalifikovaný dělník v továrně průmyslového severu tehdy pobíral v průměru 400 až 450 lir měsíčně…

Topolino slavilo úspěch v celé Itálii

Topolino uchvátilo Itálii a také Evropu. Dostalo se i do Německa, v 30. letech s Itálií svázaného nejen hospodářsky, ale i vojensko-politicky. Montoval jej závod NSU-Fiat v Heilbronnu, ovšem s některými technickými odchylkami. 

Výřez z pohlednice, zobrazující (kdysi) jugoslávský Split. Když najdete Topolino, dáme vám… No asi nic, jen budete mít potvrzené, že dobře znáte dnešního jubilanta!!

Výřez z pohlednice, zobrazující (kdysi) jugoslávský Split. Když najdete Topolino, dáme vám… No asi nic, jen budete mít potvrzené, že dobře znáte dnešního jubilanta!!

Autor: Archiv Svatopluka Jíchy, se svolením

Přišla válka a s ní i konverze automobilek na armádní výrobu. Té se podřídilo téměř vše, nikoliv ale „Myšička“. Běžní zákazníci té doby měli sice jiné starosti, ale Fiat chrlil další a další Topolina, která se dostala i do válečného nasazení. Produkce běžela celou válku, 500 A se dodával ještě tři roky po ukončení konfliktu. To už byl ale (zejména) tvarově poněkud zastaralý, také výkon už neodpovídal raně poválečným standardům. Vhodný čas tedy na debut následující generace.

První poválečná inovace přišla v roce 1948

Ta přišla na svět v březnu 1948. Nabídla téměř nezměněné tvary, ale současně i některá technická zlepšení, zejména v pohonné jednotce. Díky inovacím zadní nápravy se zlepšilo chování vozu na silnici, výkon motoru se technickými zásahy zvedl na 16,5 koní. Tím vzrostla maximálka až na 95 km/h, spotřeba zůstala v rozmezí 5 až 6 l/100 km. 

Nejdůležitější změnou se stalo rozšíření nabídkového portfolia: 500 B se napříště dodával také s dvouprostorovou karosérií STW (tradičně zvanou Giardiniera) s otvíráním třetích dveří a možností zvětšení zavazadelníku sklopením opěradel zadních sedaček. Giardiniera měla totiž plnohodnotná místa pro čtyři osoby. Tak se k tradičně rodinně založeným Italům konečně dostalo vozidlo, schopné odvézt menší „famiglii“. Kombíček byl k mání také v módní karosérii s dřevěným lištováním. Pozitivně lze hodnotit i sériovou montáž topné soustavy.

Ale časy původního Topolina byly tytam. Poválečný rozmach přinesl nejen nové technologie, ale zejména bouři inovativních nápadů, a z někdejších blatníkových karosérií se stávaly polopontonové a dokonce už i pontonové. Ani Fiat nemohl zůstat pozadu. 

Nejen Mototechna: Jak se kupovala auta v létech 1945 až 1989 (třetí část)
Přečtěte si také:

Nejen Mototechna: Jak se kupovala auta v létech 1945 až 1989 (třetí část)

Třetí generace přinesla velké změny!

V roce 1949 debutoval 500 C, který přinesl radikální změnu vizáže. Nová karosérie se připravovala už od roku 1947 a příjemně překvapila uhlazeností i nabídkou různých provedení. Blatníky byly už jen jemně naznačené, horizontálně členěná maska tvarem a pojetím odpovídala připravovaným generacím střední třídy Fiatu. S ohledem na snadnější nastupování do minivozidla se dveře otevíraly stále na zadních závěsech. Technika zůstala stejná, nebylo nutné ji inovovat, protože se „v zákulisí“ vědělo o plánu na zcela novou řadu malých automobilů značky Fiat. Novinka se líbila i v zahraničí, francouzská Simca ji začala licenčně montovat pod označením Simca 6, nelenil ani německý NSU-Fiat. 

Modelový ročník 1952 přinesl celoocelový STW, v menším počtu se opět objevily panelové dodávky, doplňující moderně a vedené provozovny tehdejších podnikatelů.

Fiat Topolino

V roce 1947 se Topolina objevila i na americkém trhu a „s okamžitým dodáním“, jak hlásá nápis na dveřích. Jenže prostorný čtyřdveřový Chevrolet Master stejného ročníku stál v základu o necelou stovku dolarů více, pod cenu Topolina se dokonce dostala jednodušší provedení Masteru, například Business Coupé. „Myšička“ to tedy neměla za Atlantikem jednoduché

Autor: Archiv Svatopluka Jíchy, se svolením

Všechno má svůj konec…

V roce 1953 už bylo jasné, že zasloužilé Topolino míří do historie. Práce na novém Fiatu 600 finišovaly, koncern dokončoval předsériové modely a začínal s důkladným testováním. Novinka neměla mít s „Myšičkou“ kromě velikosti nic společného, jeho pohonná konfigurace byla ve znamení budoucího vývojového směru generace nejmenších vozidel Fiat. Počátkem roku 1955 zmizel 500 C za horizontem… 

Devatenáct dlouhých let sjížděly z montážních pásů Fiaty Topolino, jimž už nikde na světě jinak neřekli. Za celý produkční cyklus koncern vyrobil (jen v Itálii) 517 200 exemplářů. 

Topolino v Československu? Nula celá nula nic!

A co Topolino a Československo? Nic moc, řečeno stručně… Situace s prodeji fiatů před válkou vypadala u nás poměrně komplikovaně. Tradiční zastoupení v pražské Nekázance (a také v Jeruzalémské ulici) bylo občas nečinné, resp. někdy ani neexistovalo. 

Spěchající Topolino určitě vyvolalo nadšení diváků, z nichž mnozí sympatické vozíky znali z vlastních garáží…

Spěchající Topolino určitě vyvolalo nadšení diváků, z nichž mnozí sympatické vozíky znali z vlastních garáží…

Autor: Archiv Svatopluka Jíchy, se svolením

Právě v roce premiéry 500 A zastoupení obnovilo prodeje, ale Topolino se nedováželo, těžiště spočívalo na jedenáctistovkách a patnáctistovkách. Fiat měl u nás v druhé polovině 20. let sedmnáct prodejců, například v Brně, Chrudimi, Bratislavě či v Opavě, ale jeho aktivita byla proměnlivá. Návštěvníci pražských autosalónů občas jeho expozice hledali marně. 

Ani po válce se situace nezlepšila, na posledním autosalónu (1947) měl Fiat sice expozici, ale Topolino chybělo. Alespoň oficiálně, jinak se dva tyto malé vozíky na Výstavišti vyskytovaly a budily – soudě dle fotografií – značnou pozornost. Několik Topolin se u nás ale objevilo, pocházely ovšem z individuálních obchodních aktivit jejich majitelů a byly získané jako ojetiny. Dnešní situaci můžeme sledovat třeba na značkových srazech, zejména na těch velkých jsou pravidelně zastoupené i „Myšičky“.

První generace Fiatu 500 zahájila „nálet“ miniaturních fiatů, přispěla k jejich celosvětovému rozmachu a mnohdy i napodobování. Možná proto, jak mistrovsky Fiat obstál v této kategorii vozidel, se téměř při každém jeho pokusu o vstup do vyšší třídy setkal s rozpaky či nepochopením. Protože „každému, co jeho jest“ – a tak držme palce malým „Myšičkám“, aby se stále proháněly mezi svým „myším královstvím“ a naším světem!

Zdroj: archiv autora, Fiat, Automobil Revue

  • Žá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 »