BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
PRODID:-//WordPress - MECv7.33.0//EN
X-ORIGINAL-URL:https://sportplus.mk/
X-WR-CALNAME:Sport Plus Macedonia
X-WR-CALDESC:
X-WR-TIMEZONE:Europe/Skopje
BEGIN:VTIMEZONE
TZID:Europe/Skopje
X-LIC-LOCATION:Europe/Skopje
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:20260329T030000
RRULE:FREQ=YEARLY;BYMONTH=03;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:20261025T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=4SU
END:STANDARD
END:VTIMEZONE
REFRESH-INTERVAL;VALUE=DURATION:PT1H
X-PUBLISHED-TTL:PT1H
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
UID:MEC-b31cb66ed0e7cc748e7fd59e47ca4bf9@sportplus.mk
DTSTART;TZID=Europe/Skopje:20260724T170000
DTEND;TZID=Europe/Skopje:20260726T192000
DTSTAMP:20260715T013824Z
RDATE;TZID=Europe/Skopje:20260724T170000,20260829T163000,20260905T170000,20260912T163000,20260919T170000,20261009T170000,20261017T170000,20261024T170000,20261031T170000
CREATED:20260715
LAST-MODIFIED:20260829
PRIORITY:5
SEQUENCE:810
TRANSP:OPAQUE
SUMMARY:ФУДБАЛ | ПМФЛ – СЕЗОНА 2026/27
DESCRIPTION:\n\nСИТЕ АКТУЕЛНОСТИ ЗА 1МФЛ НА ЕДНО МЕСТО\n\n\n\n\n\n\nРЕЗУЛТАТИ И ТАБЕЛА ВО ЖИВО \n\n\n\n🇲🇰⚽🇲🇰 Овде може да ги следите резултатите од натпреварите во ПМФЛ 2026/2027🇲🇰⚽🇲🇰 По завршување на секое коло ќе може да ги видите СИТЕ ГОЛОВИ во прегледот (Хајлајтсот) од колото.\n\n\n\n\n\n\n\n\n\n\n\nВЕСТИ | ФФМ\n\n\n\nРЕЗУЛТАТИ-ТАБЕЛА\n\n\n\nВО ЖИВО\n\n\n\nВИДЕА | МАК-ФУДБАЛ\n\n\n\nВИДЕА\n\n\n\n\n\n\n  \n    @import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;700&display=swap');\n    #league-2026 { \n      font-family: 'Roboto Condensed', sans-serif; \n      padding: 5px; \n      background: #fff;\n    }\n    #league-2026 .section-title { \n      color: #b30000; \n      font-size: 15px; \n      text-transform: uppercase; \n      border-bottom: 2px solid #b30000; \n      padding-bottom: 3px; \n      margin: 15px 0 10px 0; \n      font-weight: 700;\n    }\n    #league-2026 .nav-wrapper { \n      display: flex; \n      align-items: center; \n      gap: 4px; \n      margin-bottom: 10px;\n    }\n    #league-2026 .arrow { \n      font-size: 16px; \n      cursor: pointer; \n      color: #b30000; \n      font-weight: bold; \n      user-select: none;\n      padding: 5px;\n    }\n    #league-2026 .rounds-wrapper { \n      display: flex; \n      overflow-x: auto; \n      gap: 5px; \n      padding: 2px 0; \n      scrollbar-width: none; \n      flex: 1; \n    }\n    #league-2026 .rounds-wrapper::-webkit-scrollbar { \n      display: none; \n    }\n    #league-2026 .round-pill { \n      padding: 6px 12px; \n      background: #f0f0f0; \n      border-radius: 4px; \n      font-weight: 700; \n      font-size: 12px; \n      cursor: pointer; \n      color: #333; \n      min-width: 20px; \n      text-align: center; \n    }\n    #league-2026 .round-pill.active { \n      background: #b30000; \n      color: #fff; \n    }\n    #league-2026 .matches-box {\n      border: 1px solid #e0e0e0; \n      border-radius: 6px; \n      overflow: hidden;\n      box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n    }\n    #league-2026 .match-row { \n      display: flex; \n      align-items: center; \n      padding: 10px 8px; \n      border-bottom: 1px solid #eeeeee; \n      font-size: 11px; \n      background: #fff; \n      gap: 6px; \n    }\n    #league-2026 .match-row:last-child {\n      border-bottom: none;\n    }\n    #league-2026 .match-info { \n      width: 75px; \n      color: #777; \n      font-size: 9px; \n      line-height: 1.2; \n      text-align: left; \n    }\n    #league-2026 .match-teams { \n      flex: 1; \n      display: flex; \n      align-items: center; \n      justify-content: center; \n      gap: 6px; \n      font-weight: 700; \n      color: #111;\n    }\n    #league-2026 .match-teams span { \n      white-space: nowrap; \n      overflow: hidden; \n      text-overflow: ellipsis; \n      max-width: 90px; \n    }\n    #league-2026 .score-box { \n      background: #f5f5f5; \n      padding: 4px 10px; \n      border-radius: 4px; \n      color: #b30000; \n      font-weight: 700; \n      min-width: 28px; \n      text-align: center; \n      font-size: 12px;\n      border: 1px solid #e8e8e8;\n    }\n    #league-2026 .t-logo { \n      width: 18px; \n      height: 18px; \n      object-fit: contain; \n      vertical-align: middle; \n      flex-shrink: 0;\n    }\n    #league-2026 .table-logo { \n      margin-right: 6px; \n    }\n    #league-2026 .wc-table { \n      width: 100%; \n      border-collapse: collapse; \n      font-size: 11px; \n      margin-top: 5px; \n      background: #fff;\n    }\n    #league-2026 .wc-table th { \n      background-color: #b30000; \n      color: white; \n      padding: 6px 3px; \n      text-align: center; \n      font-weight: 700;\n    }\n    #league-2026 .wc-table td { \n      padding: 6px 3px; \n      border-bottom: 1px solid #eee; \n      text-align: center; \n      color: #333;\n      background-color: #fff;\n    }\n    #league-2026 .team-name { \n      text-align: left !important; \n      padding-left: 6px !important; \n      font-weight: 700; \n      display: flex; \n      align-items: center; \n    }\n    #league-2026 .num-col { width: 22px; } \n    #league-2026 .gr-col { width: 75px; white-space: nowrap; } \n    #league-2026 .pts-cell { \n      font-weight: 700; \n      background: #fff9e6; \n      width: 25px; \n    }\n    #league-2026 tr.pos-cl td:first-child { border-left: 4px solid #1565c0; }     \n    #league-2026 tr.pos-uefa td:first-child { border-left: 4px solid #2e7d32; }     \n    #league-2026 tr.pos-playoff td:first-child { border-left: 4px solid #ef6c00; } \n    #league-2026 tr.pos-rel td:first-child { border-left: 4px solid #c62828; }     \n    #league-2026 .table-legend {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 12px;\n      font-size: 10px;\n      color: #555;\n      margin-top: 8px;\n      padding: 0 4px;\n    }\n    #league-2026 .legend-item {\n      display: flex;\n      align-items: center;\n      gap: 4px;\n    }\n    #league-2026 .legend-color {\n      width: 10px;\n      height: 10px;\n      border-radius: 2px;\n    }\n  \n  Распоред\n  \n    ◀\n    \n    ▶\n  \n  \n    Се вчитуваат резултатите…\n  \n  Табела\n  \n    \n      \n        #\n        Екипа\n        ОН\n        П\n        Н\n        Пр\n        ГР\n        Б\n      \n    \n    \n  \n  \n     Лига шампиони\n     Конференциска лига\n     Бараж за опстанок\n     Испаѓање\n  \n\n\n(function() {\n  const TEAMS = [\n    { name: "ВАРДАР", logo: "https://i.ibb.co/Q3CXGnJN/vardar.png" },\n    { name: "БРЕГАЛНИЦА", logo: "https://i.ibb.co/kp91r8L/bregalnica-shtip.png" },\n    { name: "ШКЕНДИЈА (Т)", logo: "https://i.ibb.co/fVdd8gDG/Shkendija-tetovo.png" },\n    { name: "СКОПЈЕ", logo: "https://i.ibb.co/yBmFk1b5/skopje.png" },\n    { name: "СТРУГА ТЛ", logo: "https://i.ibb.co/1tTVbZtC/struga.png" },\n    { name: "ШКЕНДИЈА (А)", logo: "https://i.ibb.co/hRPs3bRF/shkendija-aracinovo-2.png" },\n    { name: "СИЛЕКС", logo: "https://i.ibb.co/wZV0nMjk/sileks.png" },\n    { name: "БАШКИМИ", logo: "https://i.ibb.co/9kTpTXmq/bashkimi-1947.png" },\n    { name: "ТИКВЕШ", logo: "https://i.ibb.co/mVJBW3sq/tikves.png" },\n    { name: "АРЕСИМИ", logo: "https://i.ibb.co/MDMqHD8V/arsimi.png" }\n  ];\n  const MATCHES = [\n    { round: 1, date: "24.јули", time: "17:00", hName: "ТИКВЕШ", aName: "АРЕСИМИ", score: "5:1" },\n    { round: 1, date: "25.јули", time: "17:00", hName: "ВАРДАР", aName: "БРЕГАЛНИЦА", score: "2:0" },\n    { round: 1, date: "25.јули", time: "17:00", hName: "СТРУГА ТЛ", aName: "ШКЕНДИЈА (А)", score: "3:0" },\n    { round: 1, date: "26.јули", time: "17:00", hName: "СИЛЕКС", aName: "БАШКИМИ", score: "6:0" },\n    { round: 1, date: "26.јули", time: "19:00", hName: "ШКЕНДИЈА (Т)", aName: "СКОПЈЕ", score: "3:0" },\n    { round: 2, date: "08.авг", time: "19:00", hName: "БРЕГАЛНИЦА", aName: "АРЕСИМИ", score: "4:0" },\n    { round: 2, date: "08.авг", time: "17:00", hName: "БАШКИМИ", aName: "ТИКВЕШ", score: "0:5" },\n    { round: 2, date: "07.авг", time: "17:00", hName: "ШКЕНДИЈА (А)", aName: "СИЛЕКС", score: "1:1" },\n    { round: 2, date: "09.авг", time: "17:00", hName: "СКОПЈЕ", aName: "СТРУГА ТЛ", score: "1:1" },\n    { round: 2, date: "09.авг", time: "17:00", hName: "ВАРДАР", aName: "ШКЕНДИЈА (Т)", score: "0:2" },\n    { round: 3, date: "16.авг", time: "19:00", hName: "ШКЕНДИЈА (Т)", aName: "БРЕГАЛНИЦА", score: "4:1" },\n    { round: 3, date: "16.авг", time: "16:30", hName: "СТРУГА ТЛ", aName: "ВАРДАР", score: "1:0" },\n    { round: 3, date: "15.авг", time: "16:30", hName: "СИЛЕКС", aName: "СКОПЈЕ", score: "3:0" },\n    { round: 3, date: "15.авг", time: "16:30", hName: "ТИКВЕШ", aName: "ШКЕНДИЈА (А)", score: "0:1" },\n    { round: 3, date: "14.авг", time: "16:30", hName: "АРЕСИМИ", aName: "БАШКИМИ", score: "1:0" },\n    { round: 4, date: "24.авг", time: "17:00", hName: "ВАРДАР", aName: "СИЛЕКС", score: "4:1" },\n    { round: 4, date: "24.авг", time: "19:00", hName: "ШКЕНДИЈА (Т)", aName: "СТРУГА ТЛ", score: "2:1" },\n    { round: 4, date: "21.авг", time: "17:00", hName: "СКОПЈЕ", aName: "ТИКВЕШ", score: "1:1" },\n    { round: 4, date: "21.авг", time: "19:00", hName: "БРЕГАЛНИЦА", aName: "БАШКИМИ", score: "3:0" },\n    { round: 4, date: "22.авг", time: "16:30", hName: "ШКЕНДИЈА (А)", aName: "АРЕСИМИ", score: "0:2" },\n    { round: 5, date: "28.авг", time: "16:00", hName: "СИЛЕКС", aName: "ШКЕНДИЈА (Т)", score: "0:2" },\n    { round: 5, date: "28.авг", time: "17:00", hName: "СТРУГА ТЛ", aName: "БРЕГАЛНИЦА", score: "4:0" },\n    { round: 5, date: "29.авг", time: "16:30", hName: "АРЕСИМИ", aName: "СКОПЈЕ", score: "" },\n    { round: 5, date: "30.авг", time: "16:30", hName: "БАШКИМИ", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 5, date: "31.авг", time: "17:00", hName: "ТИКВЕШ", aName: "ВАРДАР", score: "" },\n    { round: 6, date: "05.сеп", time: "17:00", hName: "БРЕГАЛНИЦА", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 6, date: "05.сеп", time: "17:00", hName: "СКОПЈЕ", aName: "БАШКИМИ", score: "" },\n    { round: 6, date: "05.сеп", time: "17:00", hName: "ВАРДАР", aName: "АРЕСИМИ", score: "" },\n    { round: 6, date: "05.сеп", time: "17:00", hName: "ШКЕНДИЈА (Т)", aName: "ТИКВЕШ", score: "" },\n    { round: 6, date: "05.сеп", time: "17:00", hName: "СТРУГА ТЛ", aName: "СИЛЕКС", score: "" },\n    { round: 7, date: "12.сеп", time: "17:00", hName: "СИЛЕКС", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 7, date: "12.сеп", time: "17:00", hName: "ТИКВЕШ", aName: "СТРУГА ТЛ", score: "" },\n    { round: 7, date: "12.сеп", time: "17:00", hName: "АРЕСИМИ", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 7, date: "12.сеп", time: "17:00", hName: "БАШКИМИ", aName: "ВАРДАР", score: "" },\n    { round: 7, date: "12.сеп", time: "17:00", hName: "ШКЕНДИЈА (А)", aName: "СКОПЈЕ", score: "" },\n    { round: 8, date: "19.сеп", time: "16:30", hName: "БРЕГАЛНИЦА", aName: "СКОПЈЕ", score: "" },\n    { round: 8, date: "19.сеп", time: "16:30", hName: "ВАРДАР", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 8, date: "19.сеп", time: "16:30", hName: "ШКЕНДИЈА (Т)", aName: "БАШКИМИ", score: "" },\n    { round: 8, date: "19.сеп", time: "16:30", hName: "СТРУГА ТЛ", aName: "АРЕСИМИ", score: "" },\n    { round: 8, date: "19.сеп", time: "16:30", hName: "СИЛЕКС", aName: "ТИКВЕШ", score: "" },\n    { round: 9, date: "26.сеп", time: "16:30", hName: "ТИКВЕШ", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 9, date: "26.сеп", time: "16:30", hName: "АРЕСИМИ", aName: "СИЛЕКС", score: "" },\n    { round: 9, date: "26.сеп", time: "16:30", hName: "БАШКИМИ", aName: "СТРУГА ТЛ", score: "" },\n    { round: 9, date: "26.сеп", time: "16:30", hName: "ШКЕНДИЈА (А)", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 9, date: "26.сеп", time: "16:30", hName: "СКОПЈЕ", aName: "ВАРДАР", score: "" },\n    { round: 10, date: "03.окт", time: "15:30", hName: "БРЕГАЛНИЦА", aName: "ВАРДАР", score: "" },\n    { round: 10, date: "03.окт", time: "15:30", hName: "СКОПЈЕ", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 10, date: "03.окт", time: "15:30", hName: "ШКЕНДИЈА (А)", aName: "СТРУГА ТЛ", score: "" },\n    { round: 10, date: "03.окт", time: "15:30", hName: "БАШКИМИ", aName: "СИЛЕКС", score: "" },\n    { round: 10, date: "03.окт", time: "15:30", hName: "АРЕСИМИ", aName: "ТИКВЕШ", score: "" },\n    { round: 11, date: "10.окт", time: "15:30", hName: "АРЕСИМИ", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 11, date: "10.окт", time: "15:30", hName: "ТИКВЕШ", aName: "БАШКИМИ", score: "" },\n    { round: 11, date: "10.окт", time: "15:30", hName: "СИЛЕКС", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 11, date: "10.окт", time: "15:30", hName: "СТРУГА ТЛ", aName: "СКОПЈЕ", score: "" },\n    { round: 11, date: "10.окт", time: "15:30", hName: "ШКЕНДИЈА (Т)", aName: "ВАРДАР", score: "" },\n    { round: 12, date: "17.окт", time: "15:30", hName: "БРЕГАЛНИЦА", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 12, date: "17.окт", time: "15:30", hName: "ВАРДАР", aName: "СТРУГА ТЛ", score: "" },\n    { round: 12, date: "17.окт", time: "15:30", hName: "СКОПЈЕ", aName: "СИЛЕКС", score: "" },\n    { round: 12, date: "17.окт", time: "15:30", hName: "ШКЕНДИЈА (А)", aName: "ТИКВЕШ", score: "" },\n    { round: 12, date: "17.окт", time: "15:30", hName: "БАШКИМИ", aName: "АРЕСИМИ", score: "" },\n    { round: 13, date: "24.окт", time: "15:30", hName: "БАШКИМИ", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 13, date: "24.окт", time: "15:30", hName: "АРЕСИМИ", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 13, date: "24.окт", time: "15:30", hName: "ТИКВЕШ", aName: "СКОПЈЕ", score: "" },\n    { round: 13, date: "24.окт", time: "15:30", hName: "СИЛЕКС", aName: "ВАРДАР", score: "" },\n    { round: 13, date: "24.окт", time: "15:30", hName: "СТРУГА ТЛ", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 14, date: "31.окт", time: "14:30", hName: "БРЕГАЛНИЦА", aName: "СТРУГА ТЛ", score: "" },\n    { round: 14, date: "31.окт", time: "14:30", hName: "ШКЕНДИЈА (Т)", aName: "СИЛЕКС", score: "" },\n    { round: 14, date: "31.окт", time: "14:30", hName: "ВАРДАР", aName: "ТИКВЕШ", score: "" },\n    { round: 14, date: "31.окт", time: "14:30", hName: "СКОПЈЕ", aName: "АРЕСИМИ", score: "" },\n    { round: 14, date: "31.окт", time: "14:30", hName: "ШКЕНДИЈА (А)", aName: "БАШКИМИ", score: "" },\n    { round: 15, date: "07.ное", time: "14:30", hName: "ШКЕНДИЈА (А)", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 15, date: "07.ное", time: "14:30", hName: "БАШКИМИ", aName: "СКОПЈЕ", score: "" },\n    { round: 15, date: "07.ное", time: "14:30", hName: "АРЕСИМИ", aName: "ВАРДАР", score: "" },\n    { round: 15, date: "07.ное", time: "14:30", hName: "ТИКВЕШ", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 15, date: "07.ное", time: "14:30", hName: "СИЛЕКС", aName: "СТРУГА ТЛ", score: "" },\n    { round: 16, date: "14.ное", time: "14:30", hName: "БРЕГАЛНИЦА", aName: "СИЛЕКС", score: "" },\n    { round: 16, date: "14.ное", time: "14:30", hName: "СТРУГА ТЛ", aName: "ТИКВЕШ", score: "" },\n    { round: 16, date: "14.ное", time: "14:30", hName: "ШКЕНДИЈА (Т)", aName: "АРЕСИМИ", score: "" },\n    { round: 16, date: "14.ное", time: "14:30", hName: "ВАРДАР", aName: "БАШКИМИ", score: "" },\n    { round: 16, date: "14.ное", time: "14:30", hName: "СКОПЈЕ", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 17, date: "21.ное", time: "14:30", hName: "СКОПЈЕ", aName: "БРЕГАЛНИЦА", score: "" },\n    { round: 17, date: "21.ное", time: "14:30", hName: "ШКЕНДИЈА (А)", aName: "ВАРДАР", score: "" },\n    { round: 17, date: "21.ное", time: "14:30", hName: "БАШКИМИ", aName: "ШКЕНДИЈА (Т)", score: "" },\n    { round: 17, date: "21.ное", time: "14:30", hName: "АРЕСИМИ", aName: "СТРУГА ТЛ", score: "" },\n    { round: 17, date: "21.ное", time: "14:30", hName: "ТИКВЕШ", aName: "СИЛЕКС", score: "" },\n    { round: 18, date: "28.ное", time: "14:30", hName: "БРЕГАЛНИЦА", aName: "ТИКВЕШ", score: "" },\n    { round: 18, date: "28.ное", time: "14:30", hName: "СИЛЕКС", aName: "АРЕСИМИ", score: "" },\n    { round: 18, date: "28.ное", time: "14:30", hName: "СТРУГА ТЛ", aName: "БАШКИМИ", score: "" },\n    { round: 18, date: "28.ное", time: "14:30", hName: "ШКЕНДИЈА (Т)", aName: "ШКЕНДИЈА (А)", score: "" },\n    { round: 18, date: "28.ное", time: "14:30", hName: "ВАРДАР", aName: "СКОПЈЕ", score: "" }\n  ];\n  const nav = document.getElementById('rounds-nav');\n  const display = document.getElementById('matches-display');\n  const tbody = document.querySelector("#standings-table tbody");\n  const mkMonths = { \n    'јан': 0, 'фев': 1, 'мар': 2, 'апр': 3, 'мај': 4, 'јун': 5, \n    'јул': 6, 'авг': 7, 'сеп': 8, 'окт': 9, 'ное': 10, 'дек': 11 \n  };\n  function parseDateTime(dateStr, timeStr) {\n    const year = 2026;\n    let day = 1;\n    let monthIdx = 0;\n    let clean = dateStr.trim().replace(/\./g, ' ');\n    if (clean.includes('/')) {\n      const parts = clean.split('/');\n      const firstPart = parts[0].trim();\n      const secondPart = parts[1].trim();\n      const cleanFirst = firstPart.replace(/(\d+)([a-zA-ZЀ-ӿ]+)/gi, '$1 $2');\n      const cleanSecond = secondPart.replace(/(\d+)([a-zA-ZЀ-ӿ]+)/gi, '$1 $2');\n      const firstWords = cleanFirst.split(/\s+/);\n      if (firstWords.length > 1) {\n        day = parseInt(firstWords[0], 10);\n        const mStr = firstWords[1].toLowerCase().substring(0, 3);\n        monthIdx = mkMonths[mStr] !== undefined ? mkMonths[mStr] : 0;\n      } else {\n        day = parseInt(firstWords[0], 10);\n        const secondWords = cleanSecond.split(/\s+/);\n        if (secondWords.length > 1) {\n          const mStr = secondWords[1].toLowerCase().substring(0, 3);\n          monthIdx = mkMonths[mStr] !== undefined ? mkMonths[mStr] : 0;\n        }\n      }\n    } else {\n      const cleanSingle = clean.replace(/(\d+)([a-zA-ZЀ-ӿ]+)/gi, '$1 $2');\n      const words = cleanSingle.split(/\s+/);\n      day = parseInt(words[0], 10) || 1;\n      if (words[1]) {\n        const mStr = words[1].toLowerCase().substring(0, 3);\n        monthIdx = mkMonths[mStr] !== undefined ? mkMonths[mStr] : 0;\n      }\n    }\n    let hours = 0;\n    let minutes = 0;\n    if (timeStr) {\n      const cleanTime = timeStr.replace(/[^0-9:]/g, '');\n      const tParts = cleanTime.split(':');\n      hours = parseInt(tParts[0], 10) || 0;\n      minutes = parseInt(tParts[1], 10) || 0;\n    }\n    return new Date(year, monthIdx, day, hours, minutes);\n  }\n  function getLogo(teamName) {\n    const found = TEAMS.find(t => t.name === teamName);\n    return found ? found.logo : '';\n  }\n  function calculateStandings() {\n    const tableData = TEAMS.map(t => ({\n      name: t.name,\n      logo: t.logo,\n      played: 0,\n      won: 0,\n      drawn: 0,\n      lost: 0,\n      goalsFor: 0,\n      goalsAgainst: 0,\n      points: 0\n    }));\n    const findTeam = (name) => tableData.find(t => t.name === name);\n    MATCHES.forEach(m => {\n      if (!m.score || m.score.trim() === "" || (m.score.includes(':') && m.score.trim().length === 1)) {\n        return;\n      }\n      const scoreParts = m.score.split(':');\n      if (scoreParts.length === 2) {\n        const homeScore = parseInt(scoreParts[0].trim(), 10);\n        const awayScore = parseInt(scoreParts[1].trim(), 10);\n        if (!isNaN(homeScore) && !isNaN(awayScore)) {\n          const homeTeam = findTeam(m.hName);\n          const awayTeam = findTeam(m.aName);\n          if (homeTeam && awayTeam) {\n            homeTeam.played += 1;\n            awayTeam.played += 1;\n            homeTeam.goalsFor += homeScore;\n            homeTeam.goalsAgainst += awayScore;\n            awayTeam.goalsFor += awayScore;\n            awayTeam.goalsAgainst += homeScore;\n            if (homeScore > awayScore) {\n              homeTeam.won += 1;\n              homeTeam.points += 3;\n              awayTeam.lost += 1;\n            } else if (homeScore < awayScore) {\n              awayTeam.won += 1;\n              awayTeam.points += 3;\n              homeTeam.lost += 1;\n            } else {\n              homeTeam.drawn += 1;\n              awayTeam.drawn += 1;\n              homeTeam.points += 1;\n              awayTeam.points += 1;\n            }\n          }\n        }\n      }\n    });\n    tableData.sort((a, b) => {\n      if (b.points !== a.points) {\n        return b.points - a.points;\n      }\n      const gdA = a.goalsFor - a.goalsAgainst;\n      const gdB = b.goalsFor - b.goalsAgainst;\n      if (gdB !== gdA) {\n        return gdB - gdA;\n      }\n      return b.goalsFor - a.goalsFor;\n    });\n    tbody.innerHTML = tableData.map((t, index) => {\n      const gd = t.goalsFor - t.goalsAgainst;\n      const gdFormatted = gd > 0 ? `+${gd}` : gd;\n      let rowClass = '';\n      if (index === 0) {\n        rowClass = 'pos-cl';       \n      } else if (index >= 1 && index = 8) {\n        rowClass = 'pos-rel';       \n      }\n      return `\n        \n          ${index + 1}\n          \n            ${t.logo ? `` : ''}\n            ${t.name}\n          \n          ${t.played}\n          ${t.won}\n          ${t.drawn}\n          ${t.lost}\n          ${t.goalsFor}:${t.goalsAgainst} (${gdFormatted})\n          ${t.points}\n        `;\n    }).join('');\n  }\n  function showRound(r) {\n    const filteredMatches = MATCHES.filter(m => m.round == r);\n    filteredMatches.sort((a, b) => {\n      return parseDateTime(a.date, a.time) - parseDateTime(b.date, b.time);\n    });\n    display.innerHTML = filteredMatches.map(m => {\n      const homeLogo = getLogo(m.hName);\n      const awayLogo = getLogo(m.aName);\n      return `\n      \n        ${m.date}${m.time}\n        \n          ${homeLogo ? `` : ''}\n          ${m.hName}\n          -\n          ${m.aName}\n          ${awayLogo ? `` : ''}\n        \n        ${m.score || ':'}\n      `;\n    }).join('');\n  }\n  window.scrollRounds = function(dir) {\n    nav.scrollBy({ left: dir * 100, behavior: 'smooth' });\n  };\n  for(let i=1; i p.classList.remove('active'));\n      this.classList.add('active');\n      showRound(i);\n    };\n    nav.appendChild(div);\n  }\n  let currentRound = 1;\n  for (let r = 1; r  m.round === r);\n    const hasUnplayed = roundMatches.some(m => m.score === ":" || m.score === "");\n    if (hasUnplayed) {\n      currentRound = r;\n      break;\n    }\n  }\n  setTimeout(() => {\n    const pills = document.querySelectorAll('.round-pill');\n    if(pills[currentRound - 1]) {\n      pills[currentRound - 1].click();\n      pills[currentRound - 1].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n    }\n  }, 100);\n  calculateStandings();\n})();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nПМФЛ стартува на 25 јули, првото дерби Вардар – Шкендија во второто коло ( https://sportplus.mk/2026/06/10/pmfl-startuva-na-25-juni-prvoto-derbi-vardar-shkendija-vo-vtoroto-kolo/ )\n\n\n\n\n\n\n\nФУДБАЛ | ПМФЛ – СЕЗОНА 2025/26 ( https://sportplus.mk/nastani/vo-zhivo-pmfl-366-973/ )\n\n\n\n\n\n\n\n\n\nФУДБАЛ | ПМФЛ – СЕЗОНА 2024/25 ( https://sportplus.mk/nastani/vo-zhivo-pmfl-366/ )\n\n\n\n\n\n\n\n▶🔴 ВО ЖИВО | ПМФЛ – 10.КОЛО ( https://sportplus.mk/nastani/vo-zhivo-pmfl/ )\n\n\n\n
URL:https://sportplus.mk/nastani/vo-zhivo-pmfl-366-973-352/
CATEGORIES:ФУДБАЛ
ATTACH;FMTTYPE=image/jpeg:https://sportplus.mk/wp-content/uploads/2026/07/fudbal-mkd-1mfl-za-kalendar-4.jpg
END:VEVENT
END:VCALENDAR
