{"id":1933,"date":"2026-05-13T23:35:19","date_gmt":"2026-05-13T23:35:19","guid":{"rendered":"https:\/\/www.iternet.cz\/?page_id=1933"},"modified":"2026-05-20T13:18:09","modified_gmt":"2026-05-20T13:18:09","slug":"rozvrh","status":"publish","type":"page","link":"https:\/\/www.iternet.cz\/?page_id=1933","title":{"rendered":"Rozvrh"},"content":{"rendered":"\n    <div class=\"kalendar-akci\">\n\n        <div class=\"kal-nav\">\n\n            <a class=\"kal-arrow\"\n               href=\"#\" data-mesic=\"7\" data-rok=\"2026\">\n                \u2039\n            <\/a>\n\n            <div class=\"kal-title\">\n                Srpen 2026            <\/div>\n\n            <a class=\"kal-arrow\"\n               href=\"#\" data-mesic=\"9\" data-rok=\"2026\">\n                \u203a\n            <\/a>\n\n        <\/div>\n\n        <div class=\"kal-grid\">\n\n            <div class=\"kal-head\">Po<\/div><div class=\"kal-head\">\u00dat<\/div><div class=\"kal-head\">St<\/div><div class=\"kal-head\">\u010ct<\/div><div class=\"kal-head\">P\u00e1<\/div><div class=\"kal-head\">So<\/div><div class=\"kal-head\">Ne<\/div><div class=\"kal-cell empty\"><\/div><div class=\"kal-cell empty\"><\/div><div class=\"kal-cell empty\"><\/div><div class=\"kal-cell empty\"><\/div><div class=\"kal-cell empty\"><\/div><div class=\"kal-cell\"><div class=\"kal-day\">1<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">2<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">3<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">4<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">5<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">6<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">7<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">8<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">9<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">10<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">11<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">12<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">13<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">14<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">15<\/div><\/div><div class=\"kal-cell kal-today\"><div class=\"kal-day\">16<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">17<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">18<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">19<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">20<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">21<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">22<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">23<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">24<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">25<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">26<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">27<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">28<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">29<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">30<\/div><\/div><div class=\"kal-cell\"><div class=\"kal-day\">31<\/div><\/div>\n        <\/div>\n\n        <div id=\"kal-tooltip\"><\/div>\n\n        <div id=\"kal-modal-overlay\" style=\"display:none;\">\n            <div id=\"kal-modal\">\n                <div class=\"kal-modal-nav\">\n                    <span id=\"kal-prev-event\" style=\"cursor:pointer;\">\u2190 P\u0159edchoz\u00ed akce<\/span>\n                    <span id=\"kal-modal-close\">Zav\u0159\u00edt<\/span>\n                    <span id=\"kal-next-event\" style=\"cursor:pointer;\">Dal\u0161\u00ed akce \u2192<\/span>\n                <\/div>\n                <div id=\"kal-modal-content\"><\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <style>\n\n    .kalendar-akci{\n        width:100%;\n        font-size:14px;\n    }\n\n    .kal-nav{\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        gap:20px;\n        margin-bottom:15px;\n    }\n\n    .kal-title{\n        font-size:24px;\n        font-weight:700;\n        line-height:1.2;\n    }\n\n    .kal-arrow{\n        text-decoration:none;\n        font-size:22px;\n        font-weight:700;\n    }\n\n    .kal-grid{\n        display:grid;\n        grid-template-columns:repeat(7,1fr);\n        gap:2px;\n    }\n\n    .kal-head{\n        text-align:center;\n        font-weight:700;\n        padding:8px;\n    }\n\n    .kal-cell{\n        border:1px solid #ddd;\n        height:120px;\n        padding:4px;\n        overflow:hidden;\n        background:#fff;\n    }\n\n    .kal-today{\n        background:#fff8d7;\n    }\n\n    .kal-day{\n        font-weight:700;\n        margin-bottom:6px;\n    }\n\n    .kal-event{\n        font-size:12px;\n        padding:4px 6px;\n        margin-bottom:3px;\n        border-radius:3px;\n        color:#fff;\n        cursor:pointer;\n\n        white-space:nowrap;\n        overflow:hidden;\n        text-overflow:ellipsis;\n    }\n\n    .event-blue{\n        background:#0b67c2;\n    }\n\n    .event-red{\n        background:#d9534f;\n    }\n\n    .kal-more{\n        font-size:11px;\n        margin-top:4px;\n        font-weight:600;\n        cursor:pointer;\n    }\n\n    .empty{\n        background:#f7f7f7;\n    }\n\n    \n    #kal-tooltip{\n        position:fixed;\n        display:none;\n        width:280px;\n        background:#fff;\n        border:1px solid #ddd;\n        border-radius:8px;\n        box-shadow:0 10px 25px rgba(0,0,0,.15);\n        z-index:999999;\n        overflow:hidden;\n    }\n\n    #kal-tooltip img{width:100%;display:block;}\n    #kal-tooltip .tip-content{padding:10px;}\n    #kal-tooltip h4{margin:0 0 6px;font-size:15px;}\n    #kal-tooltip .tip-date{font-size:12px;font-weight:600;margin-bottom:6px;}\n    #kal-tooltip p{margin:0;font-size:13px;line-height:1.4;}\n\n\n    \n    #kal-modal-overlay{\n        position:fixed;\n        inset:0;\n        background:rgba(0,0,0,.7);\n        z-index:999998;\n        align-items:flex-start;\n        justify-content:center;\n        padding-top:40px;\n        box-sizing:border-box;\n    }\n\n    #kal-modal{\n        width:min(900px,90vw);\n        max-height:90vh;\n        overflow:auto;\n        background:#fff;\n        border-radius:10px;\n        padding:20px;\n    }\n\n    .kal-modal-nav{\n        display:flex;\n        justify-content:space-between;\n        margin-bottom:15px;\n        font-weight:700;\n    }\n\n    #kal-modal-close{\n        cursor:pointer;\n    }\n\n    #kal-prev-event,#kal-next-event{font-weight:700;}\n\n    .kal-open-link{\n        display:inline-block;\n        padding:10px 16px;\n        border-radius:6px;\n        text-decoration:none;\n        font-weight:700;\n        background:#0b67c2;\n        color:#fff;\n    }\n\n    \n    #kal-modal-content{\n        line-height:1.7;\n    }\n\n    #kal-modal-content h1,\n    #kal-modal-content h2,\n    #kal-modal-content h3,\n    #kal-modal-content h4{\n        margin:20px 0 12px;\n        line-height:1.3;\n    }\n\n    #kal-modal-content p,\n    #kal-modal-content ul,\n    #kal-modal-content ol{\n        margin-bottom:18px;\n    }\n\n    #kal-modal-content{\n        text-align:justify;\n    }\n\n    .kal-float-image{\n        float:left;\n        width:38%;\n        max-width:380px;\n        margin:0 25px 15px 0;\n        border-radius:8px;\n    }\n\n    @media (max-width:768px){\n        .kal-float-image{\n            float:none;\n            width:100%;\n            max-width:none;\n            margin:0 0 15px 0;\n        }\n    }\n\n\n    @media (max-width:768px){\n\n        .kal-grid{\n            font-size:12px;\n        }\n\n        .kal-cell{\n            height:90px;\n        }\n\n    }\n    <\/style>\n    \n    \n    \n    \n    <script>\n\ndocument.addEventListener('DOMContentLoaded', function(){\n\n    const tooltip = document.getElementById('kal-tooltip');\n\n    if(!tooltip){\n        return;\n    }\n\n    document.querySelectorAll('.kal-event').forEach(function(item){\n\n        item.addEventListener('mouseenter', function(){\n\n            const image   = this.dataset.image || '';\n            const title   = this.dataset.title || '';\n            const excerpt = this.dataset.excerpt || '';\n            const date    = this.dataset.date || '';\n            const type    = this.dataset.type || '';\n\n            let typeLabel = '';\n\n            if(type === 'poradame'){\n                typeLabel = 'Po\u0159\u00e1d\u00e1me';\n            } else if(type === 'ucast'){\n                typeLabel = '\u00da\u010dast';\n            } else {\n                typeLabel = type;\n            }\n\n            tooltip.innerHTML =\n                (image\n                    ? '<img decoding=\"async\" src=\"'+image+'\" alt=\"\">'\n                    : ''\n                ) +\n                '<div class=\"tip-content\">' +\n                    '<h4>'+title+'<\/h4>' +\n                    '<div class=\"tip-date\">'+date+'<\/div>' +\n                    '<div class=\"tip-date\">'+typeLabel+'<\/div>' +\n                    '<p>'+excerpt+'<\/p>' +\n                '<\/div>';\n\n            tooltip.style.display = 'block';\n\n        });\n\n        item.addEventListener('mousemove', function(e){\n\n            const offset = 20;\n\n            let left = e.clientX + offset;\n            let top  = e.clientY + offset;\n\n            const tipWidth  = tooltip.offsetWidth;\n            const tipHeight = tooltip.offsetHeight;\n\n            if (left + tipWidth > window.innerWidth - 20) {\n                left = e.clientX - tipWidth - offset;\n            }\n\n            if (top + tipHeight > window.innerHeight - 20) {\n                top = e.clientY - tipHeight - offset;\n            }\n\n            tooltip.style.left = left + 'px';\n            tooltip.style.top  = top + 'px';\n\n        });\n\n        item.addEventListener('mouseleave', function(){\n\n            tooltip.style.display = 'none';\n\n        });\n\n    });\n\n    \n    document.querySelectorAll('.kal-arrow').forEach(function(link){\n        link.addEventListener('click', function(e){\n            e.preventDefault();\n\n            const kalendar = document.querySelector('.kalendar-akci');\n\n            if(kalendar){\n                const kalTop = kalendar.getBoundingClientRect().top + window.pageYOffset;\n                sessionStorage.setItem('kalendarOffset', window.scrollY - kalTop);\n            }\n\n            const url = new URL(window.location.href);\n            url.searchParams.set('kal_mesic', this.dataset.mesic);\n            url.searchParams.set('kal_rok', this.dataset.rok);\n\n            window.location.href = url.toString();\n        });\n    });\n\n    const kalOffset = sessionStorage.getItem('kalendarOffset');\n\n    if(kalOffset !== null){\n\n        window.addEventListener('load', function(){\n\n            const kalendar = document.querySelector('.kalendar-akci');\n\n            if(kalendar){\n\n                const kalTop = kalendar.getBoundingClientRect().top + window.pageYOffset;\n\n                window.scrollTo(0, kalTop + parseInt(kalOffset, 10));\n\n            }\n\n            sessionStorage.removeItem('kalendarOffset');\n\n        });\n\n    }\n\n\n    \n    document.querySelectorAll('.kal-more').forEach(function(item){\n\n        item.addEventListener('mouseenter', function(){\n\n            let events = [];\n\n            try{\n                events = JSON.parse(this.dataset.events || '[]');\n            }catch(e){}\n\n            let html = '<div class=\"tip-content\"><h4>Dal\u0161\u00ed akce<\/h4>';\n\n            events.forEach(function(ev, index){\n\n                let typ = ev.type === 'poradame'\n                    ? 'Po\u0159\u00e1d\u00e1me'\n                    : (ev.type === 'ucast' ? '\u00da\u010dast' : ev.type);\n\n                html += '<div class=\"kal-more-item\" data-event-index=\"'+index+'\" style=\"padding:6px 0;border-bottom:1px solid #eee;cursor:pointer;\">'\n                    + '<strong>' + ev.title + '<\/strong><br>'\n                    + '<small>' + ev.date + ' | ' + typ + '<\/small>'\n                    + '<\/div>';\n            });\n\n            html += '<\/div>';\n\n            tooltip.innerHTML = html;\n            tooltip.style.display = 'block';\n            hiddenEventsCache = events;\n\n        });\n\n        item.addEventListener('mouseenter', function(){\n\n            const rect = this.getBoundingClientRect();\n\n            tooltip.style.left = (rect.right + 10) + 'px';\n            tooltip.style.top = rect.top + 'px';\n\n        });\n\n        item.addEventListener('mouseleave', function(){\n\n            setTimeout(function(){\n                if(!tooltip.matches(':hover')){\n                    tooltip.style.display = 'none';\n                }\n            },300);\n\n        });\n\n    });\n\n\n\n\n    tooltip.addEventListener('mouseleave', function(){\n        tooltip.style.display = 'none';\n    });\n\n    window.addEventListener('scroll', function(){ tooltip.style.display = 'none'; }, {passive:true});\n\n    const overlay = document.getElementById('kal-modal-overlay');\n    const closeBtn = document.getElementById('kal-modal-close');\n    const prevBtn = document.getElementById('kal-prev-event');\n    const nextBtn = document.getElementById('kal-next-event');\n    const ajaxUrl = '\/wp-admin\/admin-ajax.php';\n    const events = Array.from(document.querySelectorAll('.kal-event'));\n    const allEvents = [];\n    const modalCache = {};\n    let modalRequestId = 0;\n    let currentIndex = 0;\n    let hiddenEventsCache = [];\n\n    \n    function renderModal(index){\n\n        const modalBox = document.getElementById('kal-modal');\n        if(modalBox){\n            modalBox.scrollTop = 0;\n        }\n\n        modalRequestId++;\n        const requestId = modalRequestId;\n\n        const item = allEvents[index];\n\n        if(!item){\n            return;\n        }\n\n        const image   = item.thumbnail || '';\n        const title   = item.title || '';\n                const date    = item.date || '';\n        const type    = item.type || '';\n        const link    = item.link || '#';\n\n        let typeLabel = type;\n\n        if(type === 'poradame'){\n            typeLabel = 'Po\u0159\u00e1d\u00e1me';\n        } else if(type === 'ucast'){\n            typeLabel = '\u00da\u010dast';\n        }\n\n        if(modalCache[item.id]){\n\n            document.getElementById('kal-modal-content').innerHTML = modalCache[item.id];\n\n        } else {\n\n            fetch(ajaxUrl, {\n                method:'POST',\n                headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n                body:'action=kalendar_get_post_content&post_id=' + encodeURIComponent(item.id)\n            })\n            .then(r => r.json())\n            .then(data => {\n\n                if(requestId !== modalRequestId){\n                    return;\n                }\n\n                if(data.success){\n\n                    const html =\n                        (image ? '<img decoding=\"async\" src=\"'+image+'\" alt=\"\" class=\"kal-float-image\">' : '') +\n                        '<h2>'+title+'<\/h2>' +\n                        '<p><strong>'+date+'<\/strong> \u2022 <strong>'+typeLabel+'<\/strong><\/p>' +\n                        data.data.content +\n                        '<div style=\"clear:both;\"><\/div>' +\n                        '<p><a href=\"'+link+'\" target=\"_blank\" class=\"kal-open-link\">Otev\u0159\u00edt samostatnou str\u00e1nku<\/a><\/p>';\n\n                    modalCache[item.id] = html;\n                    document.getElementById('kal-modal-content').innerHTML = html;\n                } else {\n\n                    document.getElementById('kal-modal-content').innerHTML =\n                        '<p>Obsah \u010dl\u00e1nku se nepoda\u0159ilo na\u010d\u00edst.<\/p>';\n                }\n            })\n            .catch(function(){\n\n                if(requestId !== modalRequestId){\n                    return;\n                }\n\n                document.getElementById('kal-modal-content').innerHTML =\n                    '<p>Obsah \u010dl\u00e1nku se nepoda\u0159ilo na\u010d\u00edst.<\/p>';\n\n            });\n\n        }\n\n        prevBtn.style.opacity = (index <= 0) ? '0.4' : '1';\n        nextBtn.style.opacity = (index >= allEvents.length - 1) ? '0.4' : '1';\n    }\n\n    \n    document.addEventListener('click', function(e){\n\n        const row = e.target.closest('.kal-more-item');\n        if(!row) return;\n\n        const idx = parseInt(row.dataset.eventIndex || 0);\n        const item = (hiddenEventsCache || [])[idx];\n\n        if(!item) return;\n\n        tooltip.style.display = 'none';\n        currentIndex = allEvents.findIndex(ev => String(ev.id) === String(item.id));\n        if(currentIndex >= 0){\n            renderModal(currentIndex);\n            overlay.style.display = 'flex';\n        }\n    });\n\nevents.forEach(function(item,index){\n        item.addEventListener('click', function(){\n            const postId = item.dataset.postId;\n            currentIndex = allEvents.findIndex(ev => String(ev.id) === String(postId));\n            if(currentIndex >= 0){\n                tooltip.style.display = 'none';\n                renderModal(currentIndex);\n                overlay.style.display = 'flex';\n            }\n        });\n    });\n\n    prevBtn.addEventListener('click', function(){\n        if(currentIndex > 0){\n            currentIndex--;\n            renderModal(currentIndex);\n        }\n    });\n\n    nextBtn.addEventListener('click', function(){\n        if(currentIndex < allEvents.length - 1){\n            currentIndex++;\n            renderModal(currentIndex);\n        }\n    });\n\n    closeBtn.addEventListener('click', function(){\n        overlay.style.display = 'none';\n    });\n\n    overlay.addEventListener('click', function(e){\n        if(e.target === overlay){\n            overlay.style.display = 'none';\n        }\n    });\n\n    document.addEventListener('keydown', function(e){\n        if(e.key === 'Escape'){\n            overlay.style.display = 'none';\n        }\n    });\n\n\n});\n\n<\/script>\n    \n    \n    \n    \n    \n    \n    \n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1933","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.iternet.cz\/index.php?rest_route=\/wp\/v2\/pages\/1933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iternet.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.iternet.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.iternet.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iternet.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1933"}],"version-history":[{"count":0,"href":"https:\/\/www.iternet.cz\/index.php?rest_route=\/wp\/v2\/pages\/1933\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.iternet.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}