{"id":21150,"date":"2025-11-11T18:01:04","date_gmt":"2025-11-11T16:01:04","guid":{"rendered":"https:\/\/ant.bg\/?page_id=21150"},"modified":"2026-01-25T15:41:16","modified_gmt":"2026-01-25T13:41:16","slug":"%d0%b0%d0%ba%d0%b0%d0%b4%d0%b5%d0%bc%d0%b8%d1%87%d0%b5%d0%bd-%d0%ba%d0%b0%d0%bb%d0%b5%d0%bd%d0%b4%d0%b0%d1%80","status":"publish","type":"page","link":"https:\/\/ant.bg\/?page_id=21150","title":{"rendered":"\u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u043d \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21150\" class=\"elementor elementor-21150\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13c3941 e-flex e-con-boxed e-con e-parent\" data-id=\"13c3941\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-04a3c7a elementor-widget elementor-widget-heading\" data-id=\"04a3c7a\" 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<h2 class=\"elementor-heading-title elementor-size-default\">\u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u043d \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5675368 elementor-widget elementor-widget-text-editor\" data-id=\"5675368\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>2025 \/ 2026<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d404ddf e-flex e-con-boxed e-con e-parent\" data-id=\"d404ddf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f76354 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"6f76354\" 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<!doctype html>\r\n<html lang=\"bg\">\r\n<head>\r\n<meta charset=\"utf-8\" \/>\r\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\r\n<style>\r\n  \/* Color Variables - Change colors here! *\/\r\n  :root {\r\n    --color-vacation: #178CA4;\r\n    --color-school-holiday: #DBE8CE;\r\n    --color-holiday: #6366f1;\r\n    --color-kangaroo: #fbbf24;\r\n    --color-nvo4: #FF6868;\r\n    --color-baloon-exam: #FF6A00;\r\n    --color-math-for-all: #33991E;\r\n    --color-pchmd-exam: #194e0f;\r\n    --color-trial-exam: #00FF21;\r\n    --color-nvo7: #D90000;\r\n    --color-excursion: #1e3a8a;\r\n    --color-trial-12: #00590A;\r\n    --color-dzi-12: #AA0000;\r\n    --color-bel-12: #D0E3EA;\r\n  }\r\n\r\n  .academic-calendar-wrapper {\r\n    all: initial !important;\r\n    display: block !important;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif !important;\r\n    padding: 32px 24px !important;\r\n    width: 100% !important;\r\n    min-height: 400px !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper *,\r\n  .academic-calendar-wrapper *::before,\r\n  .academic-calendar-wrapper *::after { \r\n    box-sizing: border-box !important;\r\n    font-family: inherit !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper .container {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper .months-grid {\r\n    display: grid !important;\r\n    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;\r\n    gap: 24px !important;\r\n    margin: 0 0 24px 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper .month-card {\r\n    background: white !important;\r\n    border-radius: 16px !important;\r\n    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;\r\n    padding: 20px !important;\r\n    margin: 0 !important;\r\n    border: 1px solid rgba(0,0,0,0.06) !important;\r\n    overflow: hidden !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper .month-title {\r\n    text-align: center !important;\r\n    font-weight: 700 !important;\r\n    margin: 0 0 16px 0 !important;\r\n    font-size: 18px !important;\r\n    padding: 0 0 12px 0 !important;\r\n    color: #111 !important;\r\n    line-height: 1.3 !important;\r\n    border-bottom: 2px solid #f0f0f0 !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    border-collapse: separate !important;\r\n    border-spacing: 2px !important;\r\n    table-layout: fixed !important;\r\n    background: #fafafa !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    display: table !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month thead {\r\n    display: table-header-group !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month thead tr {\r\n    display: table-row !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month thead th {\r\n    font-size: 13px !important;\r\n    padding: 10px 6px !important;\r\n    text-align: center !important;\r\n    color: #666 !important;\r\n    background: white !important;\r\n    border: none !important;\r\n    font-weight: 600 !important;\r\n    line-height: 1.2 !important;\r\n    margin: 0 !important;\r\n    display: table-cell !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody {\r\n    display: table-row-group !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody tr {\r\n    display: table-row !important;\r\n    border: none !important;\r\n    background: none !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody td {\r\n    border: none !important;\r\n    padding: 0 !important;\r\n    margin: 0 !important;\r\n    width: 14.28% !important;\r\n    height: 56px !important;\r\n    min-height: 56px !important;\r\n    max-height: 56px !important;\r\n    text-align: center !important;\r\n    vertical-align: middle !important;\r\n    font-size: 16px !important;\r\n    font-weight: 600 !important;\r\n    position: relative !important;\r\n    background: white !important;\r\n    color: #111 !important;\r\n    display: table-cell !important;\r\n    border-radius: 8px !important;\r\n    overflow: hidden !important;\r\n  }\r\n  \r\n  .academic-calendar-wrapper table.month tbody td.empty { \r\n    background: transparent !important;\r\n    visibility: hidden !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody td.day-cell { \r\n    cursor: default !important;\r\n    transition: transform 0.1s ease !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody td.day-cell .day-number {\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n    display: inline-block !important;\r\n    line-height: 56px !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody td.day-cell .event-stripes {\r\n    position: absolute !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    z-index: 1 !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper table.month tbody td.day-cell .event-stripe {\r\n    flex: 1 !important;\r\n    min-height: 0 !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper .tooltip-content {\r\n    display: none !important;\r\n    position: fixed !important;\r\n    background: #1a1a1a !important;\r\n    color: white !important;\r\n    padding: 12px 16px !important;\r\n    border-radius: 10px !important;\r\n    font-size: 13px !important;\r\n    min-width: 220px !important;\r\n    max-width: 300px !important;\r\n    white-space: normal !important;\r\n    text-align: center !important;\r\n    line-height: 1.6 !important;\r\n    font-weight: 400 !important;\r\n    z-index: 10000 !important;\r\n    box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  .academic-calendar-wrapper td[data-tooltip].show-tooltip .tooltip-content {\r\n    display: block !important;\r\n  }\r\n\r\n  \/* EVENT STRIPE COLORS *\/\r\n  .academic-calendar-wrapper .event-stripe.vacation-day { \r\n    background-color: var(--color-vacation) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.vacation-day) .day-number { \r\n    color: white !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.school-day-holiday { \r\n    background-color: var(--color-school-holiday) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.school-day-holiday) .day-number { \r\n    color: #111 !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.holiday { \r\n    background-color: var(--color-holiday) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.holiday) .day-number { \r\n    color: white !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.kangaroo-day { \r\n    background-color: var(--color-kangaroo) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.kangaroo-day) .day-number { \r\n    color: #111 !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.nvo4-bel-day,\r\n  .academic-calendar-wrapper .event-stripe.nvo4-math-day { \r\n    background-color: var(--color-nvo4) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.nvo4-bel-day) .day-number,\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.nvo4-math-day) .day-number { \r\n    color: white !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.baloon-exam-day { \r\n    background-color: var(--color-baloon-exam) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.baloon-exam-day) .day-number { \r\n    color: white !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.math-for-all-day { \r\n    background-color: var(--color-math-for-all) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.math-for-all-day) .day-number { \r\n    color: white !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.pchmd-exam-day { \r\n    background-color: var(--color-pchmd-exam) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.pchmd-exam-day) .day-number { \r\n    color: white !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.trial-exam-day { \r\n    background-color: var(--color-trial-exam) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.trial-exam-day) .day-number { \r\n    color: #111 !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.nvo7-bel-day,\r\n  .academic-calendar-wrapper .event-stripe.nvo7-math-day { \r\n    background-color: var(--color-nvo7) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.nvo7-bel-day) .day-number,\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.nvo7-math-day) .day-number { \r\n    color: white !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.excursion-day { \r\n    background-color: var(--color-excursion) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.excursion-day) .day-number { \r\n    color: white !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .event-stripe.trial-12-day { \r\n    background-color: var(--color-trial-12) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.trial-12-day) .day-number { \r\n    color: white !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.dzi-math-12-day,\r\n  .academic-calendar-wrapper .event-stripe.dzi-bel-12-day { \r\n    background-color: var(--color-dzi-12) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.dzi-math-12-day) .day-number,\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.dzi-bel-12-day) .day-number { \r\n    color: white !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .event-stripe.bel-12-day { \r\n    background-color: var(--color-bel-12) !important; \r\n  }\r\n  .academic-calendar-wrapper table.month tbody tr td.day-cell:has(.event-stripe.bel-12-day) .day-number { \r\n    color: #111 !important; \r\n  }\r\n\r\n  .academic-calendar-wrapper .legend {\r\n    background: white !important;\r\n    padding: 24px !important;\r\n    border-radius: 16px !important;\r\n    border: 1px solid rgba(0,0,0,0.06) !important;\r\n    margin: 0 !important;\r\n    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;\r\n    column-count: 3 !important;\r\n    column-gap: 32px !important;\r\n  }\r\n  \r\n  .academic-calendar-wrapper .legend-item {\r\n    display: flex !important;\r\n    gap: 14px !important;\r\n    align-items: center !important;\r\n    padding: 6px 0 !important;\r\n    break-inside: avoid !important;\r\n    border-bottom: none !important;\r\n    margin: 0 0 12px 0 !important;\r\n  }\r\n  \r\n  .academic-calendar-wrapper .legend-item:last-child { \r\n    border-bottom: 0 !important; \r\n  }\r\n  \r\n  .academic-calendar-wrapper .legend-swatch {\r\n    width: 48px !important;\r\n    height: 28px !important;\r\n    border-radius: 8px !important;\r\n    border: 1px solid rgba(0,0,0,0.1) !important;\r\n    flex-shrink: 0 !important;\r\n  }\r\n  \r\n  .academic-calendar-wrapper .legend-text {\r\n    font-size: 15px !important;\r\n    color: #111 !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    line-height: 1.5 !important;\r\n    font-weight: 400 !important;\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    .academic-calendar-wrapper .legend {\r\n      column-count: 2 !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 600px) {\r\n    .academic-calendar-wrapper .legend {\r\n      column-count: 1 !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width:1024px) {\r\n    .academic-calendar-wrapper .months-grid {\r\n      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper table.month tbody td {\r\n      height: 50px !important;\r\n      min-height: 50px !important;\r\n      font-size: 15px !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper table.month tbody td.day-cell .day-number {\r\n      line-height: 50px !important;\r\n    }\r\n  }\r\n  \r\n  @media (max-width:768px) {\r\n    .academic-calendar-wrapper .months-grid { \r\n      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper table.month tbody td {\r\n      height: 46px !important;\r\n      min-height: 46px !important;\r\n      font-size: 14px !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper table.month tbody td.day-cell .day-number {\r\n      line-height: 46px !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper .legend {\r\n      grid-template-columns: repeat(2, 1fr) !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width:600px) {\r\n    .academic-calendar-wrapper {\r\n      padding: 24px 12px !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper .months-grid { \r\n      grid-template-columns: 1fr !important;\r\n    }\r\n    \r\n    .academic-calendar-wrapper .legend {\r\n      grid-template-columns: 1fr !important;\r\n    }\r\n  }\r\n<\/style>\r\n<\/head>\r\n\r\n<body>\r\n  <div class=\"academic-calendar-wrapper\">\r\n    <div class=\"container\">\r\n      <div class=\"months-grid\" id=\"monthsGrid\"><\/div>\r\n      <div class=\"legend\" id=\"legend\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n  \r\n  const academicStartYear = 2025;\r\n  const startMonth = 9;\r\n  const monthsToShow = 10;\r\n  const weekdayLabels = ['\u041f','\u0412','\u0421','\u0427','\u041f','\u0421','\u041d'];\r\n  const roman = {1:'\u042f\u043d\u0443\u0430\u0440\u0438', 2:'\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438', 3:'\u041c\u0430\u0440\u0442', 4:'\u0410\u043f\u0440\u0438\u043b', 5:'\u041c\u0430\u0439', 6:'\u042e\u043d\u0438', 7:'\u042e\u043b\u0438', 8:'\u0410\u0432\u0433\u0443\u0441\u0442', 9:'\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438', 10:'\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438', 11:'\u041d\u043e\u0435\u043c\u0432\u0440\u0438', 12:'\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438'};\r\n\r\n  function getCSSVar(name) { return getComputedStyle(document.documentElement).getPropertyValue(name).trim(); }\r\n\r\n  function getKey(y, m, d){ return `${y}-${String(m).padStart(2,'0')}-${String(d).padStart(2,'0')}`; }\r\n\r\n  function parseEventRange(rangeStr, colorClass){\r\n    const result = {};\r\n    \r\n    if(rangeStr.includes(',')){\r\n      const dates = rangeStr.split(',').map(d => d.trim());\r\n      dates.forEach(dateStr => {\r\n        if (!result[dateStr]) result[dateStr] = [];\r\n        result[dateStr].push(colorClass);\r\n      });\r\n    }\r\n    else if(rangeStr.includes(' to ')){\r\n      const [startStr, endStr] = rangeStr.split(' to ');\r\n      const startDate = new Date(startStr.trim());\r\n      const endDate = new Date(endStr.trim());\r\n      endDate.setDate(endDate.getDate() + 1);\r\n      for(let d = new Date(startDate); d < endDate; d.setDate(d.getDate()+1)){\r\n        const key = getKey(d.getFullYear(), d.getMonth()+1, d.getDate());\r\n        if (!result[key]) result[key] = [];\r\n        result[key].push(colorClass);\r\n      }\r\n    }\r\n    else {\r\n      if (!result[rangeStr]) result[rangeStr] = [];\r\n      result[rangeStr].push(colorClass);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  const eventDescriptions = {\r\n    'kangaroo-day': '1. - 3. \u043a\u043b\u0430\u0441: \u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e \u043a\u0435\u043d\u0433\u0443\u0440\u0443',\r\n    'nvo4-bel-day': '4. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)',\r\n    'nvo4-math-day': '4. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)',\r\n    'baloon-exam-day': '4. \u043a\u043b\u0430\u0441: \u0421\u044a\u0441\u0442\u0435\u0437\u0430\u043d\u0438\u0435 (\u0431\u0430\u043b\u043e\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u0449\u043e)',\r\n    'math-for-all-day': '4. \u043a\u043b\u0430\u0441: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438 (\u0431\u0430\u043b\u043e\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u0449\u043e)',\r\n    'pchmd-exam-day': '4. \u043a\u043b\u0430\u0441: \u0418\u0437\u043f\u0438\u0442 \u041f\u0427\u041c\u0413',\r\n    'trial-exam-day': '7. \u043a\u043b\u0430\u0441: \u041f\u0440\u043e\u0431\u043d\u0430 \u043c\u0430\u0442\u0443\u0440\u0430',\r\n    'nvo7-bel-day': '7. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)',\r\n    'nvo7-math-day': '7. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)',\r\n    'excursion-day': '7. \u043a\u043b\u0430\u0441: \u0415\u043a\u0441\u043a\u0443\u0440\u0437\u0438\u044f',\r\n    'trial-12-day': '12. \u043a\u043b\u0430\u0441: \u041f\u0440\u043e\u0431\u0435\u043d \u0414\u0417\u0418 \u043f\u043e \u0411\u0415\u041b \u0438\u043b\u0438 \u043f\u0440\u043e\u0444\u0438\u043b \u043c\u0430\u0442e\u043c\u0430\u0442\u0438\u043a\u0430',\r\n    'dzi-bel-12-day': '12. \u043a\u043b\u0430\u0441: \u0414\u044a\u0440\u0436\u0430\u0432\u043d\u0438 \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u043d\u0438 \u0438\u0437\u043f\u0438\u0442\u0438 (\u0414\u0417\u0418)',\r\n    'dzi-math-12-day': '12. \u043a\u043b\u0430\u0441: \u0414\u044a\u0440\u0436\u0430\u0432\u043d\u0438 \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u043d\u0438 \u0438\u0437\u043f\u0438\u0442\u0438 (\u0414\u0417\u0418)',\r\n    'bel-12-day': '\u0420\u0435\u0434\u043e\u0432\u043d\u0438 \u0443\u0447\u0435\u0431\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043d\u0438\u044f',\r\n    'school-day-holiday': '\u0420\u0435\u0434\u043e\u0432\u043d\u0438 \u0443\u0447\u0435\u0431\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043d\u0438\u044f',\r\n    'vacation-day': '\u0412\u0430\u043a\u0430\u043d\u0446\u0438\u044f \/ \u043f\u043e\u0447\u0438\u0432\u043d\u0438 \u0434\u043d\u0438'\r\n  };\r\n\r\n  const eventsRaw = [\r\n    ['2025-09-21', 'bel-12-day'],\r\n    ['2025-09-28', 'bel-12-day'],\r\n    ['2025-10-05, 2025-10-12, 2025-10-19, 2025-10-26', 'bel-12-day'],\r\n    ['2025-10-31 to 2025-11-03', 'vacation-day'],\r\n    ['2025-10-31 to 2025-11-03', 'school-day-holiday'],\r\n    ['2025-11-03', 'excursion-day'],\r\n    ['2025-11-09, 2025-11-16', 'trial-exam-day'],\r\n    ['2025-11-23, 2025-11-30', 'bel-12-day'],\r\n    ['2025-12-07, 2025-12-14, 2025-12-21', 'bel-12-day'],\r\n    ['2025-12-06', 'baloon-exam-day'],\r\n    ['2025-12-24 to 2025-12-31', 'vacation-day'],\r\n    ['2026-01-04, 2026-01-11, 2026-01-18, 2026-01-25', 'bel-12-day'],\r\n    ['2026-01-01 to 2026-01-03', 'vacation-day'],\r\n    ['2026-01-31 to 2026-02-02', 'vacation-day'],\r\n    ['2026-01-31', 'school-day-holiday'],\r\n    ['2026-02-01', 'school-day-holiday'],\r\n    ['2026-02-02', 'school-day-holiday'],\r\n    ['2026-02-07', 'baloon-exam-day'],\r\n    ['2026-02-08, 2026-02-15', 'trial-exam-day'],\r\n    ['2026-02-22', 'bel-12-day'],\r\n    ['2026-03-01, 2026-03-08, 2026-03-15, 2026-03-22, 2026-03-29', 'bel-12-day'],\r\n    ['2026-03-03', 'school-day-holiday'],\r\n    ['2026-03-07', 'trial-12-day'],\r\n    ['2026-03-19', 'kangaroo-day'],\r\n    ['2026-03-28', 'baloon-exam-day'],\r\n    ['2026-04-03 to 2026-04-05', 'school-day-holiday'],\r\n    ['2026-04-04 to 2026-04-13', 'vacation-day'],\r\n    ['2026-04-18', 'trial-12-day'],\r\n    ['2026-04-19, 2026-04-26', 'trial-exam-day'],\r\n    ['2026-05-03, 2026-05-24, 2026-05-31', 'bel-12-day'],\r\n    ['2026-05-01', 'school-day-holiday'],\r\n    ['2026-05-06', 'vacation-day'],\r\n    ['2026-05-06', 'school-day-holiday'],\r\n    ['2026-05-10, 2026-05-17', 'trial-exam-day'],\r\n    ['2026-05-20', 'dzi-bel-12-day'],\r\n    ['2026-05-22', 'dzi-math-12-day'],\r\n    ['2026-05-25', 'excursion-day'],\r\n    ['2026-06-21, 2026-06-28', 'bel-12-day'],\r\n    ['2026-06-03', 'nvo4-bel-day'],\r\n    ['2026-06-04', 'nvo4-math-day'],\r\n    ['2026-06-07', 'math-for-all-day'],\r\n    ['2026-06-14', 'pchmd-exam-day'],\r\n    ['2026-06-17', 'nvo7-bel-day'],\r\n    ['2026-06-19', 'nvo7-math-day'],\r\n  ];\r\n\r\n  const events = {};\r\n  eventsRaw.forEach(([range, cls]) => {\r\n    const parsed = parseEventRange(range, cls);\r\n    for (const key in parsed) {\r\n      if (!events[key]) events[key] = [];\r\n      events[key].push(...parsed[key]);\r\n    }\r\n  });\r\n\r\n  function buildMonthTable(year, month) {\r\n    const firstDay = new Date(year, month - 1, 1);\r\n    const daysInMonth = new Date(year, month, 0).getDate();\r\n    let startWeekday = firstDay.getDay() === 0 ? 6 : firstDay.getDay() - 1;\r\n\r\n    const table = document.createElement('table');\r\n    table.className = 'month';\r\n    const thead = document.createElement('thead');\r\n    const trHead = document.createElement('tr');\r\n    weekdayLabels.forEach(d => {\r\n      const th = document.createElement('th');\r\n      th.textContent = d;\r\n      trHead.appendChild(th);\r\n    });\r\n    thead.appendChild(trHead);\r\n    table.appendChild(thead);\r\n\r\n    const tbody = document.createElement('tbody');\r\n    let day = 1;\r\n\r\n    for (let r = 0; r < 6; r++) {\r\n      const tr = document.createElement('tr');\r\n      for (let c = 0; c < 7; c++) {\r\n        const td = document.createElement('td');\r\n\r\n        if ((r === 0 && c < startWeekday) || day > daysInMonth) {\r\n          td.className = 'empty';\r\n        } else {\r\n          const dayNumber = document.createElement('span');\r\n          dayNumber.className = 'day-number';\r\n          dayNumber.textContent = day;\r\n          td.appendChild(dayNumber);\r\n          \r\n          td.className = 'day-cell';\r\n          const key = getKey(year, month, day);\r\n\r\n          const currentDate = new Date(year, month - 1, day);\r\n          const isSunday = currentDate.getDay() === 0;\r\n\r\n          let dayEvents = events[key] ? [...events[key]] : [];\r\n\r\n          if (isSunday && dayEvents.length === 0) {\r\n            dayEvents.push('vacation-day');\r\n          }\r\n\r\n          if (dayEvents.length > 0) {\r\n            \/\/ Filter out vacation-day if there are other events\r\n            let displayEvents = dayEvents;\r\n            if (dayEvents.length > 1) {\r\n              displayEvents = dayEvents.filter(cls => cls !== 'vacation-day');\r\n            }\r\n            \r\n            const stripesContainer = document.createElement('div');\r\n            stripesContainer.className = 'event-stripes';\r\n            \r\n            displayEvents.forEach(eventClass => {\r\n              const stripe = document.createElement('div');\r\n              stripe.className = 'event-stripe ' + eventClass;\r\n              stripesContainer.appendChild(stripe);\r\n            });\r\n            \r\n            td.appendChild(stripesContainer);\r\n\r\n            let tooltipTexts = dayEvents\r\n              .filter(cls => !(cls === 'vacation-day' && dayEvents.length > 1))\r\n              .map(cls => eventDescriptions[cls])\r\n              .filter(Boolean);\r\n\r\n            if (tooltipTexts.length > 0) {\r\n              td.setAttribute('data-tooltip', 'true');\r\n              const tooltipContent = document.createElement('span');\r\n              tooltipContent.className = 'tooltip-content';\r\n              tooltipContent.innerHTML = tooltipTexts.join(' \u0418 <br>');\r\n              td.appendChild(tooltipContent);\r\n              \r\n              let scrollListener = null;\r\n              \r\n              function positionTooltip(cell, tooltip) {\r\n                const rect = cell.getBoundingClientRect();\r\n                const tooltipRect = tooltip.getBoundingClientRect();\r\n                \r\n                let top = rect.top - tooltipRect.height - 12;\r\n                let left = rect.left + (rect.width \/ 2) - (tooltipRect.width \/ 2);\r\n                \r\n                if (left < 10) left = 10;\r\n                if (left + tooltipRect.width > window.innerWidth - 10) {\r\n                  left = window.innerWidth - tooltipRect.width - 10;\r\n                }\r\n                \r\n                if (top < 10) {\r\n                  top = rect.bottom + 12;\r\n                }\r\n                \r\n                tooltip.style.top = top + 'px';\r\n                tooltip.style.left = left + 'px';\r\n              }\r\n              \r\n              function hideTooltip(cell) {\r\n                cell.classList.remove('show-tooltip');\r\n                if (scrollListener) {\r\n                  window.removeEventListener('scroll', scrollListener, true);\r\n                  scrollListener = null;\r\n                }\r\n              }\r\n              \r\n              td.addEventListener('mouseenter', function(e) {\r\n                const tooltip = this.querySelector('.tooltip-content');\r\n                if (!tooltip) return;\r\n                \r\n                this.classList.add('show-tooltip');\r\n                positionTooltip(this, tooltip);\r\n                \r\n                scrollListener = () => hideTooltip(this);\r\n                window.addEventListener('scroll', scrollListener, true);\r\n              });\r\n              \r\n              td.addEventListener('mouseleave', function(e) {\r\n                hideTooltip(this);\r\n              });\r\n            }\r\n          }\r\n\r\n          day++;\r\n        }\r\n        tr.appendChild(td);\r\n      }\r\n      tbody.appendChild(tr);\r\n      if (day > daysInMonth) break;\r\n    }\r\n\r\n    table.appendChild(tbody);\r\n    return table;\r\n  }\r\n\r\n  function renderCalendar(){\r\n    const grid = document.getElementById('monthsGrid');\r\n    if (!grid) return;\r\n    \r\n    grid.innerHTML = '';\r\n    let year = academicStartYear, month = startMonth;\r\n    for(let i = 0; i < monthsToShow; i++){\r\n      const card = document.createElement('div');\r\n      card.className = 'month-card';\r\n      const title = document.createElement('div');\r\n      title.className = 'month-title';\r\n      title.textContent = `${roman[month]} ${year}`;\r\n      card.appendChild(title);\r\n      card.appendChild(buildMonthTable(year, month));\r\n      grid.appendChild(card);\r\n      month++;\r\n      if(month > 12){ month = 1; year++; }\r\n    }\r\n  }\r\n\r\n  function renderLegend(){\r\n    const legend = document.getElementById('legend');\r\n    if (!legend) return;\r\n    \r\n    legend.innerHTML = '';\r\n    const items = [\r\n      {colorVar:'--color-kangaroo', text:'1. - 3. \u043a\u043b\u0430\u0441: \u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e \u043a\u0435\u043d\u0433\u0443\u0440\u0443'},\r\n      {colorVar:'--color-baloon-exam', text:'4. \u043a\u043b\u0430\u0441: \u0421\u044a\u0441\u0442\u0435\u0437\u0430\u043d\u0438\u0435 (\u0431\u0430\u043b\u043e\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u0449\u043e)'},\r\n      {colorVar:'--color-nvo4', text:'4. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)'},\r\n      {colorVar:'--color-math-for-all', text:'4. \u043a\u043b\u0430\u0441: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438 (\u0431\u0430\u043b\u043e\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u0449\u043e)'},\r\n      {colorVar:'--color-pchmd-exam', text:'4. \u043a\u043b\u0430\u0441: \u0418\u0437\u043f\u0438\u0442 \u041f\u0427\u041c\u0413'},\r\n      {colorVar:'--color-excursion', text:'7. \u043a\u043b\u0430\u0441: \u0415\u043a\u0441\u043a\u0443\u0440\u0437\u0438\u044f'},\r\n      {colorVar:'--color-trial-exam', text:'7. \u043a\u043b\u0430\u0441: \u041f\u0440\u043e\u0431\u043d\u0430 \u043c\u0430\u0442\u0443\u0440\u0430'},\r\n      {colorVar:'--color-nvo7', text:'7. \u043a\u043b\u0430\u0441: \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u043e\u0446\u0435\u043d\u044f\u0432\u0430\u043d\u0435 (\u041d\u0412\u041e)'},\r\n      {colorVar:'--color-trial-12', text:'12. \u043a\u043b\u0430\u0441: \u041f\u0440\u043e\u0431\u0435\u043d \u0414\u0417\u0418 \u043f\u043e \u0411\u0415\u041b \u0438\u043b\u0438 \u043f\u0440\u043e\u0444\u0438\u043b \u043c\u0430\u0442e\u043c\u0430\u0442\u0438\u043a\u0430'},\r\n      {colorVar:'--color-dzi-12', text:'12. \u043a\u043b\u0430\u0441: \u0414\u044a\u0440\u0436\u0430\u0432\u043d\u0438 \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u043d\u0438 \u0438\u0437\u043f\u0438\u0442\u0438 (\u0414\u0417\u0418)'},\r\n      {colorVar:'--color-bel-12', text:'\u0420\u0435\u0434\u043e\u0432\u043d\u0438 \u0443\u0447\u0435\u0431\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043d\u0438\u044f'},\r\n      {colorVar:'--color-school-holiday', text:'\u0420\u0435\u0434\u043e\u0432\u043d\u0438 \u0443\u0447\u0435\u0431\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043d\u0438\u044f'},\r\n      {colorVar:'--color-vacation', text:'\u0412\u0430\u043a\u0430\u043d\u0446\u0438\u0438 \/ \u041f\u043e\u0447\u0438\u0432\u043d\u0438 \u0434\u043d\u0438'},\r\n    ];\r\n\r\n    items.forEach(it => {\r\n      const row = document.createElement('div');\r\n      row.className = 'legend-item';\r\n      const sw = document.createElement('div');\r\n      sw.className = 'legend-swatch';\r\n      sw.style.backgroundColor = getCSSVar(it.colorVar);\r\n      row.appendChild(sw);\r\n      const txt = document.createElement('div');\r\n      txt.className = 'legend-text';\r\n      txt.textContent = it.text;\r\n      row.appendChild(txt);\r\n      legend.appendChild(row);\r\n    });\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      renderCalendar();\r\n      renderLegend();\r\n    });\r\n  } else {\r\n    renderCalendar();\r\n    renderLegend();\r\n  }\r\n})();\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u043d \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 2025 \/ 2026<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-21150","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/pages\/21150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ant.bg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21150"}],"version-history":[{"count":172,"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/pages\/21150\/revisions"}],"predecessor-version":[{"id":22508,"href":"https:\/\/ant.bg\/index.php?rest_route=\/wp\/v2\/pages\/21150\/revisions\/22508"}],"wp:attachment":[{"href":"https:\/\/ant.bg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}