Jak se z dánského selete stane české vepřové

2. 4. 2014

Sdílet

Autor: Isifa.cz
Nejpozději za rok budeme znát zemi původu kupovaného masa. Pozor na častý omyl – jde pouze o maso jako takové, ne o součást dalších výrobků. A ani tak stoprocentní jasno mít nebudeme.

Po více než dvaceti letech od zavedení povinnosti označovat zemi původu hovězího masa budou mít – nejpozději od dubna příštího roku spotřebitelé v EU – také informace o zemi původu v případě čerstvého, chlazeného i zmrazeného masa vepřového, drůbežího, skopového i kozího masa.

Vyplývá to z Nařízení Evropské Komise (č. 1337/2013), které nabývá účinnosti nejpozději 1. 4. 2015, jednotlivé členské státy EU jej ale mohou zavést dříve. To také bude zřejmě případ ČR, a to především v souvislosti s právě projednávanou novelou zákona o potravinách (110/1997 Sb.). Ta by měla zavést nové povinnosti při označování potravin, což v praxi znamená v případě baleného zboží změnu etiket. Vzhledem k tomu, že také povinnost označovat zemi původu masa znamená změnu etiket, bylo by velmi žádoucí, aby se obě změny provedly najednou.

Jde o samotné maso, ne o složku potravin

Pod označováním země původu masa je ale nutné představit si jednosložkové potraviny, tedy maso jako takové. To naše země na úrovni EU dlouhodobě podporuje.

V minulých dnech nicméně mohlo dojít ke zmatení spotřebitele týkající se názoru naší země na zavedení takového značení. Některá média totiž přinesla informace typu ČR je obezřetná k nápadu na povinné označování původu masa v EU nebo Česko nepodporuje povinné značení původu masa ve zmrazených potravinách. Dlužno dodat, že v tomto případě šlo o diskusi na úrovni EU týkající se označování masa jako složky nějaké potraviny, která se kromě masa skládá ještě z dalších, často mnoha dalších složek, jejichž původ se může často měnit. Ani v tomto případě ale neodmítá ČR v rámci EU označování masa jako složky potravin, pouze se domnívá, že povinnost takto detailně označovat složky potravin by měla být ponechána na rozhodnutí jednotlivých zemí.

Zpět ale k označování masa jako jednosložkové potraviny. Povinnost označovat výše jmenované druhy masa zemí původu se samozřejmě naší země týkat bude, a to dokonce i v případě, pokud by se nepodařilo do dubna příštího roku přijmout naši novelu zákona o potravinách. Nařízení (1337/2013) patří totiž mezi přímo použitelné předpisy EU, která jsou platná pro jednotlivé členské země automaticky.

Jak se z dánského selete stane české vepřové?

Uvedené Nařízení přitom také řeší často diskutovanou otázka, jaká země původu bude uvedena při označování vepřového masa, pokud půjde o zvíře, které se narodilo v jiné zemi, než ve které bylo vykrmeno a poraženo. To je totiž častý případ právě v ČR, která dováží na vykrmení a poražení selata z Dánska. Tady v zásadě platí, že vepřové označené jako „země původu ČR“ bude takové maso, které pochází ze zvířat chovaných na našem území po většinu jejich života, což je podle všeho spravedlivé. Maso ze selete narozeného v Dánsku, ale vykrmeného a poraženého v ČR, tak bude mít zemi původu ČR.

Konkrétní podmínky pro označování země původu u vepřového masa uvádí Nařízení (1337/2013 Článek 5) v pasáži týkající se prasat. Podle něj lze označit vepřové „zemí původu ČR“ v případě splnění jedné ze tří následujících podmínek:

Kdy je vepřové „české“:

  • pokud je poražené zvíře starší 6 měsíců a na území ČR probíhala poslední, alespoň čtyřměsíční doba chovu
  • pokud je poražené zvíře mladší 6 měsíců, jeho živá hmotnost je nejméně 80 kilogramů a v ČR probíhala doba chovu poté, co zvíře dosáhlo hmotnosti 30 kilogramů
  • pokud je poražené zvíře mladší 6 měsíců, jeho živá hmotnost je nižší než 80 kilogramů a na území ČR probíhala celá doba chovu

Krkolomné předpisy

Identifikací země původu by mělo být podle zmiňovaného Nařízení spojení „Chov v:“ (například ČR). S tímto pojmem totiž pracuje znění tohoto předpisu, který pamatuje také na situace, kdy nebude možné označovat maso pouze jednou zemí původu. I s tím se může spotřebitel setkat, i když podle všeho nepůjde o časté případy. Tak či tak na závěr ještě znění příslušných pasáží Nařízení 1337, které upravují označování masa v těchto případech:

  • Pokud doby chovu uvedené v písmenu a) není dosaženo v žádném z členských států nebo třetích zemí, kde se zvíře chovalo, údaj uvedený v písmenu a) se nahradí údajem „Chov v: několik členských států EU“ nebo v případě, že maso nebo zvířata byla dovezena do Unie, údajem „Chov v: několik zemí mimo EU“ nebo „Chov v: několik zemí EU a mimo EU“.
  • Pokud však doby chovu uvedené v písmenu a) není dosaženo v žádném z členských států nebo třetích zemí, kde se zvíře chovalo, údaj uvedený v písmenu a) lze nahradit údajem „Chov v: (seznam členských států nebo třetích zemí, kde se zvíře chovalo)“, jestliže provozovatel potravinářského podniku doloží ke spokojenosti příslušného orgánu, že zvíře bylo v těchto členských státech či třetích zemích chováno.

Poněkud krkolomné, že? Nicméně z uvedených formulací vyplývá, že stejně jako dnes se budeme moci u řady potravin dočíst, že „zemí původu“ masa je EU, nebo že původ masa je ze zemí „mimo EU“. Jinými slovy, úplně vždy o tom, jaká je země původu nakupovaného masa, jasno mít nebudeme.

Autor článku

Agrární analytik, novinář na volné noze se zaměřením na zemědělství, potravinářství a životní prostředí.

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 »