Nový Občanský zákoník - Díl 2 - Držba

Předpis č. 89/2012 Sb.

Znění od 15. 2. 2025

89/2012 Sb. Zákon občanský zákoník

Díl 2

Držba

§ 987

Držitelem je ten, kdo vykonává právo pro sebe.

§ 988

(1) Držet lze právo, které lze právním jednáním převést na jiného a které připouští trvalý nebo opakovaný výkon.

(2) Osobní právo není předmětem držby ani vydržení. Kdo však vykonává osobní právo poctivě, je oprávněn své domnělé právo vykonávat a hájit.

§ 989

(1) Vlastnické právo drží ten, kdo se věci ujal, aby ji měl jako vlastník.

(2) Jiné právo drží ten, kdo je počal vykonávat jako osoba, jíž takové právo podle zákona náleží, a komu jiné osoby ve shodě s ním plní.

Nabytí držby

§ 990

(1) Držbu lze nabýt bezprostředně tím, že se jí držitel ujme svou mocí. Bezprostředně se držba nabývá v rozsahu, v jakém se jí držitel skutečně ujal.

(2) Držbu lze nabýt odvozeně tím, že dosavadní držitel převede svou držbu na nového držitele, nebo tím, že se nový držitel ujme držby jako právní nástupce dosavadního držitele. Odvozeně se nabývá držba v rozsahu, v jakém ji měl dosavadní držitel a v jakém ji na nového držitele převedl.

§ 991

Řádná držba

Držba je řádná, pokud se zakládá na platném právním důvodu. Kdo se ujme držby bezprostředně, aniž ruší cizí držbu, nebo kdo se ujme držby z vůle předchozího držitele nebo na základě výroku orgánu veřejné moci, je řádným držitelem.

Poctivá držba

§ 992

(1) Kdo má z přesvědčivého důvodu za to, že mu náleží právo, které vykonává, je poctivý držitel. Nepoctivě drží ten, kdo ví nebo komu musí být z okolností zjevné, že vykonává právo, které mu nenáleží.

(2) Nepoctivost zástupce při nabytí držby nebo při jejím výkonu zástupcem činí držbu nepoctivou. To neplatí, pokud zastoupený zvláštním příkazem daným se zřetelem k této držbě zástupci nařídil, aby se držby ujal nebo aby ji vykonával.

(3) Poctivému držiteli náleží stejná práva jako držiteli řádnému.

§ 993

Pravá držba

Neprokáže-li se, že se někdo vetřel v držbu svémocně nebo že se v ni vloudil potajmu nebo lstí, anebo že někdo usiluje proměnit v trvalé právo to, co mu bylo povoleno jen výprosou, jde o pravou držbu.

§ 994

Má se za to, že držba je řádná, poctivá a pravá.

§ 995

Bylo-li vyhověno žalobě napadající držbu nebo její poctivost, považuje se poctivý držitel za nepoctivého nejpozději od okamžiku, kdy mu byla doručena žaloba. Náhoda, která by věc u vlastníka nebyla stihla, však jde k tíži držitele, jen když spor svévolně zdržel.

Držba vlastnického práva

§ 996

(1) Poctivý držitel smí v mezích právního řádu věc držet a užívat ji, ba ji i zničit nebo s ní i jinak nakládat, a není z toho nikomu odpovědný.

(2) Poctivému držiteli náležejí všechny plody věci, jakmile se oddělí. Jeho jsou také všechny již vybrané užitky, které za držby dospěly.

§ 997

(1) Poctivému držiteli se hradí nutné náklady, jichž bylo pro trvající zachování podstaty věci potřeba, jakož i náklady vynaložené účelně a zvyšující užitečnost věci nebo její hodnotu. Náhrada náleží do výše přítomné hodnoty, pokud ta nepřevyšuje náklady skutečné.

(2) Obvyklé udržovací náklady se nehradí.

§ 998

Z nákladů učiněných poctivým držitelem ze záliby nebo pro okrasu se hradí jen tolik, o kolik se zvýšila obvyklá cena věci; dřívější držitel však může k svému prospěchu odstranit vše, co lze od věci oddělit bez zhoršení její podstaty.

§ 999

Ani poctivý držitel se nemůže domáhat, aby mu byla nahrazena cena, za kterou na sebe věc převedl.

§ 1000

Nepoctivý držitel vydá veškerý užitek, kterého držbou nabyl, a nahradí ten, který by získala zkrácená osoba, jakož i všechnu škodu, která vzešla z jeho držby.

§ 1001

Vynaloží-li nepoctivý držitel nutné náklady, jichž bylo potřeba pro zachování podstaty věci, náleží mu jejich náhrada. Pokud jde o ostatní náklady, použijí se obdobně ustanovení o nepřikázaném jednateli.

§ 1002

Držba jiných práv

Pro držitele jiných práv platí § 996 až 1001 přiměřeně.

Ochrana držby

§ 1003

Držbu není nikdo oprávněn svémocně rušit. Kdo byl v držbě rušen, může se domáhat, aby se rušitel rušení zdržel a vše uvedl v předešlý stav.

§ 1004

(1) Je-li držitel prováděním stavby ohrožen v držbě nemovité věci nebo může-li se pro to důvodně obávat následků uvedených v § 1013 a nezajistí-li se proti němu stavebník cestou práva, může se ohrožený držitel domáhat zákazu provádění stavby. Zákazu se držitel domáhat nemůže, jestliže ve správním řízení, jehož byl účastníkem, neuplatnil své námitky k žádosti o povolení takové stavby, ač tak učinit mohl.

(2) Dokud není o záležitosti rozhodnuto, může soud zakázat, aby se stavba prováděla. Hrozí-li však přímé nebezpečí, nebo dá-li žalovaný přiměřenou jistotu, že věc uvede v předešlý stav a nahradí škodu, ale žalobce jistotu za následky svého zákazu nedá, soud nezakáže, aby se zatím v provádění stavby pokračovalo, ledaže zákaz odůvodňují okolnosti případu.

§ 1005

Pro případ odstraňování stavby platí § 1004 obdobně.

Uchování držby

§ 1006

Držitel se smí svémocnému rušení vzepřít a věci, jež mu byla odňata, při rušebním činu znovu zmocnit, nepřekročí-li přitom meze nutné obrany.

§ 1007

(1) Byl-li držitel z držby vypuzen, může se na vypuditeli domáhat, aby se zdržel dalšího vypuzení a obnovil původní stav. Proti žalobě na ochranu držby lze namítnout, že žalobce získal proti žalovanému nepravou držbu nebo že ho z držby vypudil.

(2) Vypuzení z držby práv nastane, když druhá strana odepře plnit, co dosud plnila, když někdo zabrání výkonu práva, nebo již nedbá povinnosti zdržet se nějakého konání.

§ 1008

Prekluzivní lhůty

(1) Soud zamítne žalobu na ochranu nebo na uchování držby, pokud bude žaloba podána po uplynutí šesti týdnů ode dne, kdy se žalobce dozvěděl o svém právu i o osobě, která držbu ohrožuje nebo ruší, nejdéle však do jednoho roku ode dne, kdy žalobce mohl své právo uplatnit poprvé.

(2) K námitce vypuzení z držby soud nepřihlédne, pokud ji žalovaný uplatní po uplynutí lhůt stanovených v odstavci 1.

§ 1009

Zánik držby

(1) Držba zaniká, vzdá-li se jí držitel, nebo ztratí-li trvale možnost vykonávat obsah práva, které dosud vykonával. Držba rovněž zaniká, je-li z ní držitel vypuzen a neuchová si ji svépomocí nebo žalobou.

(2) Nevykonává-li držitel držbu, držba tím nezaniká. Ani smrt držitele nebo jeho zánik nepůsobí zánik držby.

§ 1010

Spoludržba

Spoludržba se řídí přiměřeně ustanoveními o držbě a o společných právech.

Skrýt změny zákona Legenda text přidán text vypuštěn
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 »