{"id":821,"date":"2023-10-24T14:45:21","date_gmt":"2023-10-24T14:45:21","guid":{"rendered":"https:\/\/slezanopava.cz\/sachy\/?page_id=821"},"modified":"2025-10-30T20:44:04","modified_gmt":"2025-10-30T20:44:04","slug":"kalendar2","status":"publish","type":"page","link":"https:\/\/slezanopava.cz\/sachy\/kalendar2\/","title":{"rendered":"Kalend\u00e1\u0159"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"821\" class=\"elementor elementor-821\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c040ffb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c040ffb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-44bfaa3\" data-id=\"44bfaa3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-51a75a3 elementor-widget elementor-widget-heading\" data-id=\"51a75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Kalend\u00e1\u0159<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b77223a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b77223a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4ad5982\" data-id=\"4ad5982\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f19016 elementor-widget elementor-widget-html\" data-id=\"2f19016\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  table { font-family: 'REM', sans-serif; width:100%; border-collapse:collapse; }\n  thead th { background:#1222FE; color:#fff; font-weight:600; font-size:14px; text-align:left; padding:12px; }\n  tbody td { padding:12px; border-top:1px solid #eee; }\n\n  \/* Badges *\/\n  .c-badge{\n    display:inline-flex; align-items:center; gap:6px;\n    font-weight:800; font-size:12px; padding:4px 10px;\n    border-radius:9999px; border:1px solid #dbeafe; background:#eff6ff;\n    white-space:nowrap;\n  }\n  .c-badge--now{ border-color:#bbf7d0; background:#ecfdf5; }\n  .c-badge--soon{ border-color:#fde68a; background:#fffbeb; }\n\n  \/* Mobiln\u00ed stack tabulky *\/\n  @media only screen and (max-width: 600px) {\n    table, thead, tbody, th, td, tr { text-align:center; }\n    thead tr { position:absolute; top:-9999px; left:-9999px; }\n\n    tr { margin:0 0 1rem 0; border:1px solid #ddd; }\n    tbody tr {\n      background:#fff; border-radius:0; box-shadow:0 1px 3px rgba(0,0,0,0.1);\n      margin-bottom:15px; padding:0;\n    }\n\n    table, thead, tbody, th, td, tr { display:block; border:none; }\n    tr { border:none; }\n    td { display:block; width:100%; text-align:center; margin-bottom:10px; border:none; padding:10px 5px; }\n\n    td:before {\n      display:block; font-weight:bold; margin-bottom:5px;\n    }\n    td:nth-of-type(1):before { content:\"N\u00e1zev akce\"; }\n    td:nth-of-type(2):before { content:\"Datum od\"; }\n    td:nth-of-type(3):before { content:\"Datum do\"; }\n    td:nth-of-type(4):before { content:\"M\u00edsto\"; }\n\n    \/* Skryt\u00ed minul\u00fdch ud\u00e1lost\u00ed na mobilu *\/\n    tr.past-event { display:none; }\n  }\n<\/style>\n\n<table border=\"1\" style=\"width: 100%; border-collapse: collapse;\">\n  <thead>\n    <tr>\n      <th>N\u00e1zev akce<\/th>\n      <th>Datum od<\/th>\n      <th>Datum do<\/th>\n      <th>M\u00edsto<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody id=\"tournament-table\">\n    <!-- Z\u00c1\u0158\u00cd 2025 -->\n    <tr><td>M\u010cR ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>13.09.2025<\/td><td>14.09.2025<\/td><td>Harrachov<\/td><\/tr>\n    <tr><td>Scouting - 4. soust\u0159ed\u011bn\u00ed Morava<\/td><td>19.09.2025<\/td><td>21.09.2025<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>Memori\u00e1l Karla Osman\u010d\u00edka<\/td><td>20.09.2025<\/td><td>20.09.2025<\/td><td>Doln\u00ed Bene\u0161ov<\/td><\/tr>\n    <tr><td>M\u010cR v rapid \u0161achu U16+U18+U20<\/td><td>20.09.2025<\/td><td>21.09.2025<\/td><td>Harrachov<\/td><\/tr>\n    <tr><td>Soust\u0159ed\u011bn\u00ed KTCM<\/td><td>21.09.2025<\/td><td>21.09.2025<\/td><td>Fr\u00fddek-M\u00edstek<\/td><\/tr>\n    <tr><td>Krajsk\u00fd p\u0159ebor ml\u00e1de\u017ee v praktick\u00e9m \u0161achu<\/td><td>26.09.2025<\/td><td>28.09.2025<\/td><td>Fr\u00fddek-M\u00edstek<\/td><\/tr>\n\n    <!-- \u0158\u00cdJEN 2025 -->\n    <tr><td>Ml\u00e1de\u017enick\u00e9 ligy - Extraliga a I. liga ml\u00e1de\u017ee<\/td><td>04.10.2025<\/td><td>05.10.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>1. turnaj GP Krajsk\u00e9ho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>11.10.2025<\/td><td>11.10.2025<\/td><td>B\u00edlovec<\/td><\/tr>\n    <tr><td>1. kolo: II. liga, KS a OS<\/td><td>12.10.2025<\/td><td>12.10.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>18.10.2025<\/td><td>18.10.2025<\/td><td><\/td><\/tr>\n    <tr><td>1. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>19.10.2025<\/td><td>19.10.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Mistrovstv\u00ed Moravy a Slezska ml\u00e1de\u017ee 2025<\/td><td>25.10.2025<\/td><td>31.10.2025<\/td><td>Byst\u0159ice nad Pern\u0161tejnem<\/td><\/tr>\n\n    <!-- LISTOPAD 2025 -->\n    <tr><td>2. kolo: II. liga, KS a OS<\/td><td>02.11.2025<\/td><td>02.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>08.11.2025<\/td><td>08.11.2025<\/td><td><\/td><\/tr>\n    <tr><td>2. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>10.11.2025<\/td><td>10.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>2. turnaj GP Krajsk\u00e9ho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>15.11.2025<\/td><td>15.11.2025<\/td><td>Ba\u0161ka<\/td><\/tr>\n    <tr><td>Polofin\u00e1le M\u010cR U18+U20<\/td><td>15.11.2025<\/td><td>22.11.2025<\/td><td>Harrachov<\/td><\/tr>\n    <tr><td>3. kolo: II. liga, KS a OS<\/td><td>16.11.2025<\/td><td>16.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>3. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>23.11.2025<\/td><td>23.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Extraliga<\/td><td>29.11.2025<\/td><td>30.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>4. kolo: II. liga, KS a OS<\/td><td>30.11.2025<\/td><td>30.11.2025<\/td><td>dle rozpisu<\/td><\/tr>\n\n    <!-- PROSINEC 2025 -->\n    <tr><td>Ml\u00e1de\u017enick\u00e9 ligy - Extraliga a I. liga ml\u00e1de\u017ee<\/td><td>06.12.2025<\/td><td>06.12.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>4. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>07.12.2025<\/td><td>07.12.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Extraliga<\/td><td>13.12.2025<\/td><td>14.12.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>5. kolo: II. liga, KS a OS<\/td><td>14.12.2025<\/td><td>14.12.2025<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>M\u010cR v bleskov\u00e9m \u0161achu<\/td><td>20.12.2025<\/td><td>20.12.2025<\/td><td>Brno<\/td><\/tr>\n\n    <!-- LEDEN 2026 -->\n    <tr><td>Voln\u00e1 sobota<\/td><td>03.01.2026<\/td><td>03.01.2026<\/td><td><\/td><\/tr>\n    <tr><td>3. turnaj GP Krajsk\u00e9ho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>10.01.2026<\/td><td>10.01.2026<\/td><td>Ostrava<\/td><\/tr>\n    <tr><td>Extraliga<\/td><td>10.01.2026<\/td><td>11.01.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>6. kolo: II. liga, KS a OS<\/td><td>11.01.2026<\/td><td>11.01.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>KP dru\u017estev \u0161kol 1. - 5. t\u0159\u00edda<\/td><td>13.01.2026<\/td><td>13.01.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>KP dru\u017estev \u0161kol 6. - 9. t\u0159\u00edda<\/td><td>14.01.2026<\/td><td>14.01.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>KP dru\u017estev \u0161kol st\u0159edn\u00ed \u0161koly<\/td><td>15.01.2026<\/td><td>15.01.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>17.01.2026<\/td><td>17.01.2026<\/td><td><\/td><\/tr>\n    <tr><td>6. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>18.01.2026<\/td><td>18.01.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Ml\u00e1de\u017enick\u00e9 ligy: Extraliga a I. liga ml\u00e1de\u017ee<\/td><td>24.01.2026<\/td><td>24.01.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>7. kolo: II. liga, KS a OS<\/td><td>25.01.2026<\/td><td>25.01.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>31.01.2026<\/td><td>31.01.2026<\/td><td><\/td><\/tr>\n\n    <!-- \u00daNOR 2026 -->\n    <tr><td>7. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>01.02.2026<\/td><td>01.02.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>4. turnaj GP Okresn\u00edho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>07.02.2026<\/td><td>07.02.2026<\/td><td>Krnov<\/td><\/tr>\n    <tr><td>8. kolo: II. liga, KS a OS<\/td><td>08.02.2026<\/td><td>08.02.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>14.02.2026<\/td><td>14.02.2026<\/td><td><\/td><\/tr>\n    <tr><td>8. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>15.02.2026<\/td><td>15.02.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Extraliga<\/td><td>21.02.2026<\/td><td>22.02.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>9. kolo: II. liga, KS a OS<\/td><td>22.02.2026<\/td><td>22.02.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>KP dru\u017estev mlad\u0161\u00edch \u017e\u00e1k\u016f<\/td><td>28.02.2026<\/td><td>28.02.2026<\/td><td>Konkurz<\/td><\/tr>\n\n    <!-- B\u0158EZEN 2026 -->\n    <tr><td>9. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>01.03.2026<\/td><td>01.03.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>M\u010cR ml\u00e1de\u017ee do 16 let<\/td><td>07.03.2026<\/td><td>14.03.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>M\u010cR U18+U20<\/td><td>07.03.2026<\/td><td>14.03.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>10. kolo: II. liga, KS a OS<\/td><td>15.03.2026<\/td><td>15.03.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>KP dru\u017estev star\u0161\u00edch \u017e\u00e1k\u016f<\/td><td>21.03.2026<\/td><td>21.03.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>10. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>22.03.2026<\/td><td>22.03.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>Extraliga<\/td><td>27.03.2026<\/td><td>29.03.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>11. kolo: II. liga, KS a OS<\/td><td>29.03.2026<\/td><td>29.03.2026<\/td><td>dle rozpisu<\/td><\/tr>\n\n    <!-- DUBEN 2026 -->\n    <tr><td>Turnaj \u0161achov\u00fdch nad\u011bj\u00ed - 36. ro\u010dn\u00edk<\/td><td>02.04.2026<\/td><td>06.04.2026<\/td><td>Fr\u00fddek-M\u00edstek<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>11.04.2026<\/td><td>11.04.2026<\/td><td><\/td><\/tr>\n    <tr><td>11. kolo: I. liga V\u00fdchod, KP a OP<\/td><td>12.04.2026<\/td><td>12.04.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>M\u010cR ml\u00e1de\u017ee do 8 let<\/td><td>18.04.2026<\/td><td>19.04.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>Ml\u00e1de\u017enick\u00e9 ligy: Extraliga a I. liga ml\u00e1de\u017ee<\/td><td>24.04.2026<\/td><td>26.04.2026<\/td><td>dle rozpisu<\/td><\/tr>\n    <tr><td>5. turnaj GP Krajsk\u00e9ho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>25.04.2026<\/td><td>25.04.2026<\/td><td>Orlov\u00e1<\/td><\/tr>\n    <tr><td>Mistrovstv\u00ed Evropy \u0161kol<\/td><td>26.04.2026<\/td><td>05.05.2026<\/td><td>Chorvatsko<\/td><\/tr>\n\n    <!-- KV\u011aTEN 2026 -->\n    <tr><td>Voln\u00e1 sobota<\/td><td>09.05.2026<\/td><td>09.05.2026<\/td><td><\/td><\/tr>\n    <tr><td>6. turnaj GP Krajsk\u00e9ho p\u0159eboru ml\u00e1de\u017ee v rapid \u0161achu<\/td><td>16.05.2026<\/td><td>16.05.2026<\/td><td>Doln\u00ed Bene\u0161ov<\/td><\/tr>\n    <tr><td>Voln\u00e1 sobota<\/td><td>23.05.2026<\/td><td>23.05.2026<\/td><td><\/td><\/tr>\n    <tr><td>M\u010cR dru\u017estev star\u0161\u00edch \u017e\u00e1k\u016f<\/td><td>30.05.2026<\/td><td>31.05.2026<\/td><td>Konkurz<\/td><\/tr>\n\n    <!-- \u010cERVEN 2026 -->\n    <tr><td>M\u010cR dru\u017estev mlad\u0161\u00edch \u017e\u00e1k\u016f<\/td><td>12.06.2026<\/td><td>14.06.2026<\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>M\u010cR dru\u017estev \u0161kol 1.-5. t\u0159\u00edda<\/td><td><\/td><td><\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>M\u010cR dru\u017estev \u0161kol 6.-9. t\u0159\u00edda<\/td><td><\/td><td><\/td><td>Konkurz<\/td><\/tr>\n    <tr><td>M\u010cR dru\u017estev st\u0159edn\u00edch \u0161kol<\/td><td><\/td><td><\/td><td>Konkurz<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  const currentDate = new Date(); \/\/ dne\u0161ek\n  const rows = Array.from(document.querySelectorAll('#tournament-table tr'));\n  const monthSelect = document.getElementById('month-filter');\n  const clearBtn = document.getElementById('clear-filter');\n  const visibleCount = document.getElementById('visible-count');\n\n  let upcomingEventHighlighted = false;\n  let pastEvents = [];\n\n  \/\/ CZ n\u00e1zvy m\u011bs\u00edc\u016f\n  const MONTHS = [\"leden\",\"\u00fanor\",\"b\u0159ezen\",\"duben\",\"kv\u011bten\",\"\u010derven\",\"\u010dervenec\",\"srpen\",\"z\u00e1\u0159\u00ed\",\"\u0159\u00edjen\",\"listopad\",\"prosinec\"];\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n\n  function parseCzechDate(str){\n    if(!str) return null;\n    const m = str.match(\/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$\/);\n    if(!m) return null;\n    const d = Number(m[1]), mo = Number(m[2]), y = Number(m[3]);\n    return new Date(y, mo - 1, d);\n  }\n\n  function formatMonthKey(d){ return d ? `${d.getFullYear()}-${pad(d.getMonth()+1)}` : \"\"; }\n  function formatMonthLabel(d){ return d ? `${MONTHS[d.getMonth()]} ${d.getFullYear()}` : \"\"; }\n\n  \/\/ 1) Pr\u016fchod a logika zv\u00fdrazn\u011bn\u00ed + \u201eDnes prob\u00edh\u00e1\u201c\n  rows.forEach(row => {\n    const nameCell = row.children[0];\n    const dateFromText = row.children[1]?.textContent.trim();\n    const dateToText   = row.children[2]?.textContent.trim();\n\n    const dateFrom = parseCzechDate(dateFromText);\n    const dateTo   = parseCzechDate(dateToText) || dateFrom;\n\n    \/\/ Ulo\u017eit month-key pro filtr\n    const filterKey = dateFrom ? formatMonthKey(dateFrom) : \"\";\n    row.dataset.month = filterKey;\n\n    \/\/ Badge a zv\u00fdrazn\u011bn\u00ed\n    if (dateFrom && dateTo) {\n      const isRunningNow = currentDate >= stripTime(dateFrom) && currentDate <= endOfDay(dateTo);\n      if (isRunningNow) {\n        appendBadge(nameCell, \"Dnes prob\u00edh\u00e1\", \"now\"); \/\/ zelen\u00fd badge\n      } else if (!upcomingEventHighlighted && stripTime(dateFrom) >= stripTime(currentDate)) {\n        \/\/ prvn\u00ed budouc\u00ed akce = \u201enejbli\u017e\u0161\u00ed\u201c (sv\u011btle modr\u00fd podklad + \u017elut\u00fd badge \u201eBrzy\u201c)\n        row.style.backgroundColor = '#caf0f8';\n        appendBadge(nameCell, \"Brzy\", \"soon\");\n        upcomingEventHighlighted = true;\n      }\n\n      \/\/ minul\u00e9 akce (cel\u00e9 rozmez\u00ed skon\u010dilo d\u0159\u00edv ne\u017e dnes)\n      if (endOfDay(dateTo) < currentDate) {\n        row.classList.add('past-event');\n        pastEvents.push(row);\n      }\n    }\n  });\n\n  \/\/ Skryje v\u0161echny minul\u00e9 turnaje krom\u011b posledn\u00edch dvou\n  pastEvents.slice(0, -2).forEach(row => row.style.display = 'none');\n\n  \/\/ 2) Napln\u011bn\u00ed filtru podle m\u011bs\u00edc\u016f (z viditeln\u00fdch \u0159\u00e1dk\u016f po p\u0159edchoz\u00ed logice)\n  const monthSet = new Map(); \/\/ key -> label\n  rows.forEach(row => {\n    if (row.style.display === 'none') return; \/\/ u\u017e skryt\u00e9 minul\u00e9 akce (krom\u011b 2) nenech\u00e1me plnit filtr\n    const key = row.dataset.month;\n    if (!key) return;\n    const [y, m] = key.split('-').map(Number);\n    const date = new Date(y, m - 1, 1);\n    monthSet.set(key, formatMonthLabel(date));\n  });\n\n  \/\/ Se\u0159adit m\u011bs\u00edce\n  const sortedKeys = Array.from(monthSet.keys()).sort((a,b) => a.localeCompare(b));\n  sortedKeys.forEach(key => {\n    const opt = document.createElement('option');\n    opt.value = key;\n    opt.textContent = monthSet.get(key);\n    monthSelect.appendChild(opt);\n  });\n\n  \/\/ 3) Filtr ud\u00e1lost\u00ed\n  function applyFilter(){\n    const sel = monthSelect.value;\n    let shown = 0;\n    rows.forEach(row => {\n      \/\/ pokud byl \u0159\u00e1dek tvrd\u011b skryt\u00fd jako \u201ed\u00e1vno minul\u00fd\u201c (display:none z d\u0159\u00edv\u011bj\u0161ka), nech\u00e1me ho skryt\u00fd\n      const isHardHidden = row.style.display === 'none' && !row.classList.contains('past-event');\n      if (isHardHidden) return;\n\n      \/\/ defaultn\u00ed viditelnost\n      row.style.display = '';\n\n      \/\/ filtr m\u011bs\u00edce\n      if (sel && row.dataset.month !== sel) {\n        row.style.display = 'none';\n      }\n      \/\/ mobiln\u00ed pravidlo: minul\u00e9 ud\u00e1losti (class past-event) se na mobilu skr\u00fdvaj\u00ed p\u0159es media query,\n      \/\/ tady nech\u00e1v\u00e1me desktopov\u00e9 chov\u00e1n\u00ed beze zm\u011bny\n\n      if (row.style.display !== 'none') shown++;\n    });\n    visibleCount.textContent = `Zobrazeno: ${shown}`;\n  }\n\n  monthSelect.addEventListener('change', applyFilter);\n  clearBtn.addEventListener('click', () => {\n    monthSelect.value = '';\n    applyFilter();\n  });\n\n  applyFilter(); \/\/ inicializace po\u010dtu\n\n  \/\/ Pomocn\u00e9 funkce\n  function appendBadge(cell, text, variant){\n    const badge = document.createElement('span');\n    badge.className = 'c-badge ' + (variant === 'now' ? 'c-badge--now' : 'c-badge--soon');\n    badge.textContent = text;\n    badge.style.marginLeft = '8px';\n    cell.appendChild(badge);\n  }\n  function stripTime(d){ return new Date(d.getFullYear(), d.getMonth(), d.getDate()); }\n  function endOfDay(d){ return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59, 999); }\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Kalend\u00e1\u0159 N\u00e1zev akce Datum od Datum do M\u00edsto M\u010cR ml\u00e1de\u017ee v rapid \u0161achu 13.09.2025 14.09.2025 Harrachov Scouting &#8211; 4. soust\u0159ed\u011bn\u00ed Morava 19.09.2025 21.09.2025 Konkurz Memori\u00e1l Karla Osman\u010d\u00edka 20.09.2025 20.09.2025 Doln\u00ed Bene\u0161ov M\u010cR v rapid \u0161achu U16+U18+U20 20.09.2025 21.09.2025 Harrachov Soust\u0159ed\u011bn\u00ed KTCM 21.09.2025 21.09.2025 Fr\u00fddek-M\u00edstek Krajsk\u00fd p\u0159ebor ml\u00e1de\u017ee v praktick\u00e9m \u0161achu 26.09.2025 28.09.2025 Fr\u00fddek-M\u00edstek Ml\u00e1de\u017enick\u00e9 ligy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-821","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/pages\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/comments?post=821"}],"version-history":[{"count":129,"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/pages\/821\/revisions"}],"predecessor-version":[{"id":2858,"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/pages\/821\/revisions\/2858"}],"wp:attachment":[{"href":"https:\/\/slezanopava.cz\/sachy\/wp-json\/wp\/v2\/media?parent=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}