{"id":44924,"date":"2026-05-12T17:34:31","date_gmt":"2026-05-12T15:34:31","guid":{"rendered":"https:\/\/crta.rs\/?p=44924"},"modified":"2026-05-12T17:34:31","modified_gmt":"2026-05-12T15:34:31","slug":"when-will-the-elections-be","status":"publish","type":"post","link":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/","title":{"rendered":"When will the elections be?"},"content":{"rendered":"<p class=\"p1\">The public bids on potential election dates. When should elections be announced to be held on a specific date? Is it possible that there will also be elections at other levels during that period? Check with the due date calculator.<\/p>\n<p>&nbsp;<\/p>\n \r\n\r\n\r\n<style>\r\n\t* { box-sizing: border-box; margin: 0; padding: 0; }\r\n\thtml, body { width: 100%; overflow-x: hidden; }\r\n\tbody { font-family: 'Roboto', sans-serif; color: #000; background: #fff; padding: 1.5rem 1rem; }\r\n\t.calc-container { max-width: 600px; margin: 0 auto; width: 100%; }\r\n\r\n\t.header { margin-bottom: 1.5rem; }\r\n\t.header h1 { font-size: 19px; font-weight: 700; color: #000; margin-bottom: 8px; }\r\n\t.header p { font-size: 14px; color: #58595A; line-height: 1.6; }\r\n\r\n\t.type-label { font-size: 11px; font-weight: 700; color: #58595A; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; }\r\n\t.type-tabs { display: flex; margin-bottom: 1rem; border: 1px solid #000; overflow: hidden; width: 100%; }\r\n\t.type-tab { flex: 1; padding: 10px 6px; font-size: 13px; font-family: 'Roboto', sans-serif; font-weight: 500; color: #58595A; cursor: pointer; background: #fff; border: none; text-align: center; -webkit-tap-highlight-color: transparent; border-right: 1px solid #000; }\r\n\t.type-tab:last-child { border-right: none; }\r\n\t.type-tab.active { background: #000; color: #fff; font-weight: 700; }\r\n\r\n\t.mode-tabs { display: flex; margin-bottom: 1rem; border: 1px solid #B1B3B4; overflow: hidden; width: 100%; }\r\n\t.mode-tab { flex: 1; padding: 9px 10px; font-size: 13px; font-family: 'Roboto', sans-serif; font-weight: 500; color: #58595A; cursor: pointer; background: #fff; border: none; text-align: center; -webkit-tap-highlight-color: transparent; }\r\n\t.mode-tab:first-child { border-right: 1px solid #B1B3B4; }\r\n\t.mode-tab.active { background: #58595A; color: #fff; }\r\n\r\n\t.nepoverenje-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 1rem; padding: 10px 12px; border: 1px solid #B1B3B4; background: #FAFAFA; cursor: pointer; -webkit-tap-highlight-color: transparent; }\r\n\t.nepoverenje-row input[type=checkbox] { margin-top: 2px; flex-shrink: 0; width: 16px; height: 16px; cursor: pointer; accent-color: #E2001A; }\r\n\t.nepoverenje-lbl { font-size: 13px; color: #58595A; line-height: 1.5; cursor: pointer; user-select: none; }\r\n\t.nepoverenje-lbl strong { color: #000; }\r\n\t.nepoverenje-row.aktivan { background: #FFF0F0; border-color: #E2001A; }\r\n\r\n\t.date-box { margin-bottom: 0.75rem; }\r\n\t.date-box-label { display: block; font-size: 14px; font-weight: 500; color: #000; margin-bottom: 6px; }\r\n\t.date-box-inner input[type=date] { display: block; width: 220px; padding: 13px 14px; border: 1px solid #000; background: #fff; color: #000; font-size: 15px; font-weight: 500; font-family: 'Roboto', sans-serif; -webkit-appearance: none; appearance: none; cursor: pointer; min-height: 52px; }\r\n\t@media (max-width: 400px) { .date-box-inner input[type=date] { width: 100%; } }\r\n\r\n\t.sun-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 1rem; }\r\n\t.sun-btn { padding: 9px 14px; border: 1px solid #000; background: #fff; color: #000; font-size: 13px; font-family: 'Roboto', sans-serif; cursor: pointer; -webkit-tap-highlight-color: transparent; white-space: nowrap; }\r\n\t.sun-btn:hover { background: #F4CC67; }\r\n\t.sun-label { font-size: 14px; font-weight: 700; color: #EB690B; flex: 1; text-align: center; }\r\n\r\n\t.results { display: flex; flex-direction: column; gap: 8px; margin-top: 1.25rem; }\r\n\t.card { background: #fff; border: 1px solid #B1B3B4; padding: 0.9rem 1rem; }\r\n\t.card-label { font-size: 11px; font-weight: 700; color: #58595A; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.06em; }\r\n\t.card-val { font-size: 16px; font-weight: 700; color: #000; }\r\n\t.card-note { font-size: 12px; color: #58595A; margin-top: 2px; }\r\n\t.card.main { border-left: 4px solid #EB690B; }\r\n\t.card.ok { border-left: 4px solid #02635A; }\r\n\t.card.warn { border-left: 4px solid #BA4B00; }\r\n\t.card.info { border-left: 4px solid #185FA5; }\r\n\r\n\t.tl-wrap { margin-top: 10px; border-top: 1px solid #E8E8E8; padding-top: 10px; }\r\n\t.tl-label { font-size: 11px; font-weight: 700; color: #58595A; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }\r\n\t.tl-item { display: flex; gap: 10px; }\r\n\t.tl-left { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 10px; padding-top: 3px; }\r\n\t.tl-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }\r\n\t.tl-dot.orange { background: #EB690B; }\r\n\t.tl-dot.gray { background: #B1B3B4; }\r\n\t.tl-dot.red { background: #E2001A; }\r\n\t.tl-connector { width: 1px; background: #E0E0E0; flex: 1; min-height: 12px; margin: 2px 0; }\r\n\t.tl-right { flex: 1; padding-bottom: 10px; }\r\n\t.tl-item:last-child .tl-right { padding-bottom: 0; }\r\n\t.tl-item:last-child .tl-connector { display: none; }\r\n\t.tl-date { font-size: 13px; font-weight: 700; color: #000; }\r\n\t.tl-desc { font-size: 12px; color: #58595A; margin-top: 1px; line-height: 1.4; }\r\n\t.tl-item.nedostupan .tl-date { text-decoration: line-through; color: #B1B3B4; }\r\n\t.tl-item.nedostupan .tl-desc { color: #B1B3B4; }\r\n\t.tl-item.prosao .tl-date { text-decoration: line-through; color: #B1B3B4; }\r\n\t.tl-item.prosao .tl-desc { color: #B1B3B4; }\r\n\t.tl-item.prosao .tl-dot { background: #D0D0D0 !important; }\r\n\t.tl-badge { display: inline-block; font-size: 9px; font-weight: 700; color: #E2001A; border: 1px solid #E2001A; padding: 1px 4px; margin-left: 5px; vertical-align: middle; }\r\n\t.tl-badge-prosao { display: inline-block; font-size: 9px; font-weight: 700; color: #B1B3B4; border: 1px solid #B1B3B4; padding: 1px 4px; margin-left: 5px; vertical-align: middle; }\r\n\r\n\t.bs-wrap { margin-top: 10px; border-top: 1px solid #E8E8E8; padding-top: 10px; }\r\n\t.bs-row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 6px 0; border-bottom: 1px solid #F0F0F0; }\r\n\t.bs-row:last-child { border-bottom: none; padding-bottom: 0; }\r\n\t.bs-name { font-size: 12px; color: #58595A; flex: 1; line-height: 1.4; }\r\n\t.bs-val { font-size: 13px; font-weight: 700; color: #000; text-align: right; white-space: nowrap; }\r\n\r\n\t.spajanje { background: #F4F4F4; border: 1px solid #B1B3B4; padding: 0.9rem 1rem; margin-top: 4px; }\r\n\t.spajanje-title { font-size: 11px; font-weight: 700; color: #000; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 10px; }\r\n\t.sp-row { padding: 8px 0; border-bottom: 1px solid #D8D8D8; }\r\n\t.sp-row:last-child { border-bottom: none; padding-bottom: 0; }\r\n\t.sp-name { font-size: 14px; font-weight: 700; color: #000; margin-bottom: 5px; }\r\n\t.sp-detail { font-size: 12px; color: #58595A; margin-bottom: 3px; line-height: 1.5; }\r\n\t.sp-detail strong { color: #000; font-weight: 700; }\r\n\t.sp-row.prosao .sp-name { color: #B1B3B4; }\r\n\t.sp-row.prosao .sp-detail { color: #C0C0C0; }\r\n\t.sp-row.prosao .sp-detail strong { color: #B1B3B4; text-decoration: line-through; }\r\n\t.sp-prosao-badge { display: inline-block; font-size: 9px; font-weight: 700; color: #B1B3B4; border: 1px solid #B1B3B4; padding: 1px 4px; margin-left: 5px; vertical-align: middle; }\r\n\r\n\t.divider { font-size: 11px; font-weight: 700; color: #58595A; text-transform: uppercase; letter-spacing: 0.06em; margin: 2rem 0 0.75rem; padding-top: 1rem; border-top: 1px solid #B1B3B4; }\r\n\t.red-table { width: 100%; border-collapse: collapse; border: 1px solid #B1B3B4; font-size: 13px; table-layout: fixed; }\r\n\t.red-table th { background: #000; color: #fff; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; padding: 8px; text-align: left; }\r\n\t.red-table td { padding: 8px; border-bottom: 1px solid #B1B3B4; color: #000; vertical-align: top; word-break: break-word; }\r\n\t.red-table tr:last-child td { border-bottom: none; }\r\n\t.red-table td:first-child { color: #58595A; font-weight: 500; width: 32%; }\r\n\t.red-table td:nth-child(2) { width: 28%; }\r\n\r\n\t.acc-section-divider { font-size: 11px; font-weight: 700; color: #58595A; text-transform: uppercase; letter-spacing: 0.06em; margin: 2rem 0 0.75rem; padding-top: 1rem; border-top: 1px solid #B1B3B4; }\r\n\t.acc-outer { border: 1px solid #B1B3B4; margin-bottom: 8px; }\r\n\t.acc-outer-header { display: flex; justify-content: space-between; align-items: center; padding: 0.9rem 1rem; cursor: pointer; background: #fff; -webkit-tap-highlight-color: transparent; gap: 12px; }\r\n\t.acc-outer-header:hover { background: #F4F4F4; }\r\n\t.acc-outer.open .acc-outer-header { background: #000; }\r\n\t.acc-outer-title { font-size: 14px; font-weight: 700; color: #000; }\r\n\t.acc-outer.open .acc-outer-title { color: #fff; }\r\n\t.acc-outer-icon { font-size: 16px; color: #EB690B; flex-shrink: 0; transition: transform 0.2s; font-weight: 700; }\r\n\t.acc-outer.open .acc-outer-icon { color: #fff; transform: rotate(45deg); }\r\n\t.acc-outer-body { display: none; border-top: 1px solid #B1B3B4; }\r\n\t.acc-outer.open .acc-outer-body { display: block; }\r\n\t.acc-intro { font-size: 14px; color: #58595A; padding: 0.9rem 1rem; line-height: 1.6; border-bottom: 1px solid #B1B3B4; }\r\n\t.acc-intro strong { color: #000; font-weight: 700; }\r\n\t.acc-inner { border-bottom: 1px solid #E8E8E8; }\r\n\t.acc-inner:last-of-type { border-bottom: none; }\r\n\t.acc-inner-header { display: flex; justify-content: space-between; align-items: center; padding: 0.8rem 1rem; cursor: pointer; background: #fff; -webkit-tap-highlight-color: transparent; gap: 12px; }\r\n\t.acc-inner-header:hover { background: #F4F4F4; }\r\n\t.acc-inner.open .acc-inner-header { background: #F4F4F4; }\r\n\t.acc-inner-title { font-size: 13px; font-weight: 500; color: #000; }\r\n\t.acc-inner-icon { font-size: 14px; color: #B1B3B4; flex-shrink: 0; transition: transform 0.2s; }\r\n\t.acc-inner.open .acc-inner-icon { color: #EB690B; transform: rotate(45deg); }\r\n\t.acc-inner-body { display: none; padding: 0.8rem 1rem 0.9rem; background: #FAFAFA; border-top: 1px solid #E8E8E8; }\r\n\t.acc-inner.open .acc-inner-body { display: block; }\r\n\t.acc-inner-body p { font-size: 13px; color: #58595A; line-height: 1.65; margin-bottom: 0.5rem; }\r\n\t.acc-inner-body p:last-child { margin-bottom: 0; }\r\n\t.acc-inner-body strong { color: #000; font-weight: 700; }\r\n\t.acc-inner-body .blok { font-size: 12px; color: #58595A; border-left: 3px solid #B1B3B4; padding: 5px 8px; margin-top: 6px; background: #fff; line-height: 1.5; }\r\n\t.acc-inner-body .blok.nedostupan { border-left-color: #E2001A; color: #E2001A; }\r\n\t.acc-footer { padding: 0.9rem 1rem; background: #F4F4F4; border-top: 1px solid #B1B3B4; font-size: 13px; color: #58595A; line-height: 1.6; }\r\n\t.acc-footer strong { color: #000; }\r\n\t.obj-label { font-size: 11px; font-weight: 700; color: #58595A; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.6rem; margin-top: 1.25rem; }\r\n\t.obj-label:first-child { margin-top: 0; }\r\n\r\n\t.nedelje-wrap { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; border-top: 1px solid #E8E8E8; padding-top: 10px; }\r\n\t.nedelja-btn { padding: 8px 14px; border: 1px solid #EB690B; background: #fff; color: #EB690B; font-size: 13px; font-weight: 700; font-family: 'Roboto', sans-serif; cursor: pointer; -webkit-tap-highlight-color: transparent; }\r\n\t.nedelja-btn:hover { background: #EB690B; color: #fff; }\r\n\r\n\t.empty { color: #58595A; font-size: 14px; padding: 0.75rem 0; }\r\n\t.err { color: #E2001A; font-size: 13px; padding: 0.75rem 0; }\r\n<\/style>\r\n\r\n\r\n<div class=\"calc-container\">\r\n\r\n  <div class=\"header\">\r\n    <h1>Snap Elections in Serbia - Deadline Calculator<\/h1>\r\n    <p><strong>There is talk of elections soon - no one knows which ones or when.<\/strong><\/p>\r\n    <p style=\"margin-top:8px;\">This tool helps you navigate the legal deadlines: enter a potential election date and see the latest possible date for calling elections, when the Government must resign, when the President must step down, and when mayors must leave office. Or reverse it - enter the date elections are called and find out when voting can take place.<\/p>\r\n    <p style=\"margin-top:8px;\">Select the type of election, enter a date - and the tool will show what is still legally possible, and what deadlines have already passed.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"type-label\">Type of election<\/div>\r\n  <div class=\"type-tabs\">\r\n    <button class=\"type-tab active\" id=\"typeParl\">Parliamentary<\/button>\r\n    <button class=\"type-tab\" id=\"typePred\">Presidential<\/button>\r\n    <button class=\"type-tab\" id=\"typeLok\">Local<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"mode-tabs\">\r\n    <button class=\"mode-tab active\" id=\"modeA\">Election date<\/button>\r\n    <button class=\"mode-tab\" id=\"modeB\">Date called<\/button>\r\n  <\/div>\r\n\r\n  <label class=\"nepoverenje-row aktivan\" id=\"nepoverenjeLbl\" style=\"display:flex;\">\r\n    <input type=\"checkbox\" id=\"nepoverenje\" checked \/>\r\n    <span class=\"nepoverenje-lbl\">A <strong>vote of no confidence in the Government<\/strong> is currently underway - the Government's dissolution proposal mechanism is unavailable<\/span>\r\n  <\/label>\r\n\r\n  <div class=\"date-box\">\r\n    <span class=\"date-box-label\" id=\"dateLabel\">Parliamentary election date:<\/span>\r\n    <div class=\"date-box-inner\">\r\n      <input type=\"date\" id=\"mainDate\" \/>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"sun-nav\" id=\"sunNav\" style=\"display:none;\">\r\n    <button class=\"sun-btn\" id=\"btnPrev\">&#8592; previous Sunday<\/button>\r\n    <span class=\"sun-label\" id=\"sunLabel\"><\/span>\r\n    <button class=\"sun-btn\" id=\"btnNext\">next Sunday &#8594;<\/button>\r\n  <\/div>\r\n\r\n  <div id=\"output\"><p class=\"empty\">Enter a date to see the deadlines.<\/p><\/div>\r\n\r\n  <div class=\"acc-section-divider\">How snap elections happen<\/div>\r\n\r\n  <div class=\"obj-label\">Parliamentary elections<\/div>\r\n  <div class=\"acc-outer\" id=\"acc-parl\">\r\n    <div class=\"acc-outer-header\" id=\"acc-parl-hdr\">\r\n      <span class=\"acc-outer-title\">Snap parliamentary elections<\/span>\r\n      <span class=\"acc-outer-icon\">+<\/span>\r\n    <\/div>\r\n    <div class=\"acc-outer-body\">\r\n      <div class=\"acc-intro\">For snap parliamentary elections to be called, the National Assembly must be dissolved. There are five mechanisms.<\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">1. Government proposes dissolution<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>The Government submits a reasoned proposal to the President of the Republic, who issues a decree dissolving the Assembly. Elections are called simultaneously with the dissolution - there is no additional waiting period.<\/p>\r\n          <div class=\"blok nedostupan\">The Government cannot submit this proposal while a no-confidence motion is being debated, or while the Government itself has raised the question of confidence. A Government whose mandate has already ended also cannot propose dissolution.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">2. Vote of no confidence passed<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>A motion must be submitted by at least <strong>60 MPs<\/strong>. The Assembly debates it no sooner than <strong>5 days<\/strong> after submission. If no confidence is passed, the President initiates the formation of a new Government.<\/p>\r\n          <p>If a new Government is not formed within <strong>30 days<\/strong>, the President is obliged to dissolve the Assembly and call elections.<\/p>\r\n          <div class=\"blok\">Time gap: at least 30 days pass between the no-confidence vote and the calling of elections, and in practice often more.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">3. Confidence vote lost<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>The Government itself raises the question of confidence and loses the vote. The President initiates the formation of a new Government.<\/p>\r\n          <p>If a new Government is not formed within <strong>30 days<\/strong>, the President dissolves the Assembly and calls elections.<\/p>\r\n          <div class=\"blok\">Time gap: same as for a no-confidence vote - at least 30 days from the vote to the calling of elections.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">4. Prime Minister resigns<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>The Prime Minister submits a resignation to the Speaker of the Assembly and simultaneously informs the public. The Assembly acknowledges the resignation at its next session - the Government's mandate ends on the date of acknowledgement.<\/p>\r\n          <p>The President initiates the formation of a new Government. If a new Government is not formed within <strong>30 days<\/strong> of the resignation being acknowledged, the President dissolves the Assembly and calls elections.<\/p>\r\n          <div class=\"blok\">Time gap: at least 30 days pass from the resignation being acknowledged before elections can be called, plus however long the Assembly spends on the process in practice.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">5. Assembly fails to form a Government within 90 days of being constituted<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>If the newly elected Assembly fails to form a Government within <strong>90 days<\/strong> of being constituted, it is automatically dissolved. The President calls elections.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-footer\"><strong>Deadlines for calling and holding elections:<\/strong> Between being called and election day - 45 to 60 days. Only mechanism 1 has no time gap - dissolution and calling elections happen simultaneously. For mechanisms 2, 3 and 4, at least 30 days must pass before elections can be called.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"obj-label\">Presidential elections<\/div>\r\n  <div class=\"acc-outer\" id=\"acc-pred\">\r\n    <div class=\"acc-outer-header\" id=\"acc-pred-hdr\">\r\n      <span class=\"acc-outer-title\">Snap presidential elections<\/span>\r\n      <span class=\"acc-outer-icon\">+<\/span>\r\n    <\/div>\r\n    <div class=\"acc-outer-body\">\r\n      <div class=\"acc-intro\">Snap presidential elections are called when the President of the Republic's mandate ends before its term expires. There are two mechanisms.<\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">1. President resigns<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>The President submits a resignation to the Speaker of the Assembly and simultaneously informs the public. The mandate ends <strong>on the day the resignation is submitted<\/strong> - there is no acknowledgement process or waiting period.<\/p>\r\n          <p>The Speaker of the Assembly assumes the duties of President and is obliged to call elections so that the vote is held <strong>no later than three months<\/strong> from when the mandate ended.<\/p>\r\n          <div class=\"blok\">Time gap: none - elections can be called on the same day the resignation is submitted.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">2. President impeached<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>The process is initiated by the Assembly on the proposal of at least <strong>one third<\/strong> of MPs. The Constitutional Court has <strong>45 days<\/strong> to rule on whether the Constitution was violated. Impeachment requires a vote of <strong>at least two thirds<\/strong> of MPs.<\/p>\r\n          <div class=\"blok\">Due to the Constitutional Court's 45-day deadline, this mechanism is incompatible with a short electoral timeline in most cases.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-footer\"><strong>Deadlines for calling and holding elections:<\/strong> The Speaker of the Assembly calls elections so that the vote is held no later than three months from the end of the mandate. Between being called and election day - 30 to 60 days.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"obj-label\">Local elections<\/div>\r\n  <div class=\"acc-outer\" id=\"acc-lok\">\r\n    <div class=\"acc-outer-header\" id=\"acc-lok-hdr\">\r\n      <span class=\"acc-outer-title\">Snap local elections<\/span>\r\n      <span class=\"acc-outer-icon\">+<\/span>\r\n    <\/div>\r\n    <div class=\"acc-outer-body\">\r\n      <div class=\"acc-intro\">The decision to dissolve a local assembly is made by the <strong>Government<\/strong>, on the proposal of the ministry responsible for local self-government. There are three grounds for dissolution.<\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">1. Assembly has not met for more than 3 months<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>If the local assembly has not held a single session for more than three months, the Government may decide to dissolve it.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">2. Mayor or municipal president resigns<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>A resignation by the mayor or municipal president does not in itself lead to elections. The assembly first has <strong>one month<\/strong> to elect a replacement. Only if it fails to do so may the Government decide to dissolve it.<\/p>\r\n          <div class=\"blok\">Time gap: from the resignation to the earliest possible election day, at least one month's waiting period must pass, then the elections must be called, then a 30-day campaign. At least 2 months in total, and in practice more.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-inner\">\r\n        <div class=\"acc-inner-header\"><span class=\"acc-inner-title\">3. Assembly fails to adopt a statute or budget within the legal deadline<\/span><span class=\"acc-inner-icon\">+<\/span><\/div>\r\n        <div class=\"acc-inner-body\">\r\n          <p>If the assembly fails to adopt a statute or budget within the deadline set by law, the Government may decide to dissolve it.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"acc-footer\"><strong>Deadlines for calling and holding elections:<\/strong> The Speaker of the National Assembly calls elections within 2 months of the Government's dissolution decision. Between being called and election day - 30 to 60 days. The mandate of newly elected councillors lasts four years.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"divider\">Regular elections - statutory windows<\/div>\r\n  <table class=\"red-table\">\r\n    <thead><tr><th>Type<\/th><th>Called<\/th><th>Voting window<\/th><\/tr><\/thead>\r\n    <tbody>\r\n      <tr><td>Presidential<\/td><td>2 March 2027<\/td><td>4 Apr - 25 Apr 2027<\/td><\/tr>\r\n      <tr><td>Parliamentary<\/td><td>8 Nov 2027<\/td><td>26 Dec 2027 - 2 Jan 2028<\/td><\/tr>\r\n    <\/tbody>\r\n  <\/table>\r\n\r\n<\/div>\r\n\r\n<script>\r\nvar mode = 'izbori';\r\nvar tip = 'parl';\r\nvar currentDate = null;\r\nvar nepoverenjeAktivno = true;\r\nvar DANAS = new Date(); DANAS.setHours(0,0,0,0);\r\nvar MONTHS = ['January','February','March','April','May','June','July','August','September','October','November','December'];\r\nvar TIPOVI = {\r\n  parl: { naziv: 'parliamentary', kampanjMin: 45, kampanjMax: 60 },\r\n  pred: { naziv: 'presidential',  kampanjMin: 30, kampanjMax: 60 },\r\n  lok:  { naziv: 'local',         kampanjMin: 30, kampanjMax: 60 }\r\n};\r\n\r\nfunction prosao(d) { var dd = new Date(d.getTime()); dd.setHours(0,0,0,0); return dd < DANAS; }\r\nfunction fmt(d) { return d.getDate() + ' ' + MONTHS[d.getMonth()] + ' ' + d.getFullYear(); }\r\nfunction fmtOpseg(d1, d2) {\r\n  return d1.getDate() + ' ' + MONTHS[d1.getMonth()] + ' ' + d1.getFullYear()\r\n    + ' - ' + d2.getDate() + ' ' + MONTHS[d2.getMonth()] + ' ' + d2.getFullYear();\r\n}\r\nfunction addDays(d, n) { var r = new Date(d.getTime()); r.setDate(r.getDate() + n); return r; }\r\nfunction subDays(d, n) { return addDays(d, -n); }\r\nfunction nextSunday(d) { var day = d.getDay(); return day === 0 ? new Date(d.getTime()) : addDays(d, 7 - day); }\r\nfunction prevSundayStrict(d) { var day = d.getDay(); return day === 0 ? subDays(d, 7) : subDays(d, day); }\r\nfunction parseDate(val) {\r\n  if (!val) return null;\r\n  var p = val.split('-');\r\n  if (p.length !== 3) return null;\r\n  var y = parseInt(p[0],10), m = parseInt(p[1],10)-1, d = parseInt(p[2],10);\r\n  if (isNaN(y)||isNaN(m)||isNaN(d)) return null;\r\n  var dt = new Date(y,m,d,12,0,0);\r\n  return isNaN(dt.getTime()) ? null : dt;\r\n}\r\n\r\nfunction updateDateLabel() {\r\n  var t = TIPOVI[tip];\r\n  var lbl = mode === 'izbori'\r\n    ? (tip === 'parl' ? 'Parliamentary election date:' : tip === 'pred' ? 'Presidential election date:' : 'Local election date:')\r\n    : (tip === 'parl' ? 'Date parliamentary elections are called:' : tip === 'pred' ? 'Date presidential elections are called:' : 'Date local elections are called:');\r\n  document.getElementById('dateLabel').textContent = lbl;\r\n}\r\nfunction updateNepoverenjeVisibility() {\r\n  document.getElementById('nepoverenjeLbl').style.display = (tip === 'parl') ? 'flex' : 'none';\r\n}\r\nfunction setMode(m) {\r\n  mode = m;\r\n  document.getElementById('modeA').className = 'mode-tab' + (m==='izbori' ? ' active' : '');\r\n  document.getElementById('modeB').className = 'mode-tab' + (m==='raspisivanje' ? ' active' : '');\r\n  document.getElementById('sunNav').style.display = 'none';\r\n  document.getElementById('mainDate').value = '';\r\n  currentDate = null;\r\n  updateDateLabel();\r\n  document.getElementById('output').innerHTML = '<p class=\"empty\">Enter a date to see the deadlines.<\/p>';\r\n}\r\nfunction setTip(t) {\r\n  tip = t;\r\n  document.getElementById('typeParl').className = 'type-tab' + (t==='parl' ? ' active' : '');\r\n  document.getElementById('typePred').className = 'type-tab' + (t==='pred' ? ' active' : '');\r\n  document.getElementById('typeLok').className  = 'type-tab' + (t==='lok'  ? ' active' : '');\r\n  updateDateLabel();\r\n  updateNepoverenjeVisibility();\r\n  if (currentDate) racunaj();\r\n}\r\nfunction handleDateInput() {\r\n  var val = document.getElementById('mainDate').value;\r\n  var out = document.getElementById('output');\r\n  if (!val) {\r\n    document.getElementById('sunNav').style.display = 'none';\r\n    out.innerHTML = '<p class=\"empty\">Enter a date to see the deadlines.<\/p>';\r\n    return;\r\n  }\r\n  var d = parseDate(val);\r\n  if (!d) { out.innerHTML = '<p class=\"err\">Could not read the date. Please try again.<\/p>'; return; }\r\n  currentDate = d;\r\n  if (mode === 'izbori') {\r\n    currentDate = nextSunday(currentDate);\r\n    document.getElementById('sunNav').style.display = 'flex';\r\n    document.getElementById('sunLabel').textContent = fmt(currentDate);\r\n  } else {\r\n    document.getElementById('sunNav').style.display = 'none';\r\n  }\r\n  racunaj();\r\n}\r\n\r\nfunction tlItem(dotCls, date, desc, nedostupan) {\r\n  var jeProsao = !nedostupan && prosao(date);\r\n  var cls = nedostupan ? ' nedostupan' : (jeProsao ? ' prosao' : '');\r\n  var badge = nedostupan ? ' <span class=\"tl-badge\">NOT AVAILABLE<\/span>' : (jeProsao ? ' <span class=\"tl-badge-prosao\">DEADLINE PASSED<\/span>' : '');\r\n  return '<div class=\"tl-item' + cls + '\">'\r\n    + '<div class=\"tl-left\"><div class=\"tl-dot ' + dotCls + '\"><\/div><div class=\"tl-connector\"><\/div><\/div>'\r\n    + '<div class=\"tl-right\"><div class=\"tl-date\">' + fmt(date) + badge + '<\/div>'\r\n    + '<div class=\"tl-desc\">' + desc + '<\/div><\/div><\/div>';\r\n}\r\nfunction tlLast(dotCls, date, desc, nedostupan) {\r\n  var jeProsao = !nedostupan && prosao(date);\r\n  var cls = nedostupan ? ' nedostupan' : (jeProsao ? ' prosao' : '');\r\n  var badge = nedostupan ? ' <span class=\"tl-badge\">NOT AVAILABLE<\/span>' : (jeProsao ? ' <span class=\"tl-badge-prosao\">DEADLINE PASSED<\/span>' : '');\r\n  return '<div class=\"tl-item' + cls + '\">'\r\n    + '<div class=\"tl-left\"><div class=\"tl-dot ' + dotCls + '\"><\/div><\/div>'\r\n    + '<div class=\"tl-right\"><div class=\"tl-date\">' + fmt(date) + badge + '<\/div>'\r\n    + '<div class=\"tl-desc\">' + desc + '<\/div><\/div><\/div>';\r\n}\r\n\r\nfunction timelineZaTip(raspNajkasnije) {\r\n  var html = '';\r\n  if (tip === 'parl') {\r\n    var meh1 = raspNajkasnije;\r\n    var meh24 = subDays(raspNajkasnije, 30);\r\n    html += tlItem(nepoverenjeAktivno ? 'red' : 'orange', meh1,\r\n      'Latest: dissolution decree and calling of elections (Government proposal) - dissolution and calling happen simultaneously'\r\n      + (nepoverenjeAktivno ? '<br><span style=\"font-size:11px;color:#E2001A;\">This will become available once the no-confidence debate in the Assembly concludes<\/span>' : ''),\r\n      nepoverenjeAktivno);\r\n    html += tlLast('orange', meh24,\r\n      'Latest: no-confidence vote passed or Prime Minister\\'s resignation acknowledged - after this, 30 days run for forming a new Government before elections can be called');\r\n  } else if (tip === 'pred') {\r\n    html += tlLast('orange', raspNajkasnije,\r\n      'Latest: President\\'s resignation - mandate ends on the same day, elections can be called immediately');\r\n  } else if (tip === 'lok') {\r\n    var ostavkaNajkasnije = subDays(raspNajkasnije, 31);\r\n    html += tlItem('orange', raspNajkasnije,\r\n      'Latest: Government decision to dissolve the local assembly - the Speaker of the National Assembly calls elections within 2 months of this decision', false);\r\n    html += tlLast('gray', ostavkaNajkasnije,\r\n      'If the mechanism is a mayoral resignation: resignation must be submitted by this date at the latest - after the resignation the assembly has one month to elect a replacement, then the Government issues the dissolution decision');\r\n    html += '<div style=\"margin-top:8px;font-size:11px;color:#BA4B00;border-left:3px solid #BA4B00;padding:4px 8px;background:#fff;\">Note: for the Government to dissolve the local assembly, the legal conditions must be met. If the mechanism is a mayoral resignation, one month must pass after the resignation before the Government can act.<\/div>';\r\n  }\r\n  return html;\r\n}\r\n\r\nfunction spajanjeHtml(el) {\r\n  var html = '<div class=\"spajanje\"><div class=\"spajanje-title\">To hold other snap elections on the same day<\/div>';\r\n  var ostali = [];\r\n  if (tip !== 'parl') ostali.push('parl');\r\n  if (tip !== 'pred') ostali.push('pred');\r\n  if (tip !== 'lok')  ostali.push('lok');\r\n  for (var i = 0; i < ostali.length; i++) {\r\n    var o = ostali[i];\r\n    var t2 = TIPOVI[o];\r\n    var rMin = subDays(el, t2.kampanjMax);\r\n    var rMax = subDays(el, t2.kampanjMin);\r\n    var jeProsao = prosao(rMax);\r\n    var rowCls = jeProsao ? ' class=\"sp-row prosao\"' : ' class=\"sp-row\"';\r\n    var badge = jeProsao ? ' <span class=\"sp-prosao-badge\">DEADLINE PASSED<\/span>' : '';\r\n    html += '<div' + rowCls + '><div class=\"sp-name\">';\r\n    if (o === 'parl') html += 'Parliamentary elections';\r\n    if (o === 'pred') html += 'Presidential elections';\r\n    if (o === 'lok')  html += 'Local elections';\r\n    html += badge + '<\/div>';\r\n    html += '<div class=\"sp-detail\">Must be called: <strong>' + fmtOpseg(rMin, rMax) + '<\/strong><\/div>';\r\n    if (o === 'pred') {\r\n      html += '<div class=\"sp-detail\">President\\'s resignation: between <strong>' + fmt(rMin) + '<\/strong> and <strong>' + fmt(rMax) + '<\/strong> - elections can be called the same day<\/div>';\r\n    } else if (o === 'parl') {\r\n      html += '<div class=\"sp-detail\">Government dissolution proposal: latest <strong>' + fmt(rMax) + '<\/strong><\/div>';\r\n      html += '<div class=\"sp-detail\">No-confidence vote \/ PM resignation: latest <strong>' + fmt(subDays(rMax, 30)) + '<\/strong> - 30 days then run for forming a new Government<\/div>';\r\n    } else if (o === 'lok') {\r\n      html += '<div class=\"sp-detail\">Government dissolution decision: latest <strong>' + fmt(rMax) + '<\/strong><\/div>';\r\n      html += '<div class=\"sp-detail\">Mayor\\'s resignation: latest <strong>' + fmt(subDays(rMax, 31)) + '<\/strong> - one month then runs for the assembly to elect a replacement<\/div>';\r\n    }\r\n    html += '<\/div>';\r\n  }\r\n  html += '<\/div>';\r\n  return html;\r\n}\r\n\r\nfunction bsVal(d, prefix) {\r\n  if (prosao(d)) return '<s style=\"color:#B1B3B4;\">' + (prefix||'') + fmt(d) + '<\/s> <span class=\"tl-badge-prosao\">DEADLINE PASSED<\/span>';\r\n  return (prefix||'') + fmt(d);\r\n}\r\n\r\nfunction racunaj() {\r\n  var out = document.getElementById('output');\r\n  if (!currentDate) return;\r\n  var t = TIPOVI[tip];\r\n  var html = '<div class=\"results\">';\r\n  var tipNaziv = tip === 'parl' ? 'Parliamentary' : tip === 'pred' ? 'Presidential' : 'Local';\r\n  var tipGenitiv = tip === 'parl' ? 'parliamentary' : tip === 'pred' ? 'presidential' : 'local';\r\n\r\n  if (mode === 'izbori') {\r\n    var el = currentDate;\r\n    var raspNajkasnije = subDays(el, t.kampanjMin);\r\n    var raspNajranije  = subDays(el, t.kampanjMax);\r\n    var zaklSpiska   = subDays(el, 15);\r\n    var rokBoraviste = subDays(el, 20);\r\n    var rokUpis      = subDays(el, 3);\r\n    var rokPreb      = subDays(el, 180);\r\n\r\n    \/\/ Impossibility check\r\n    var nemoguceGranica, nemoguceOpis;\r\n    if (tip === 'parl') {\r\n      if (nepoverenjeAktivno) {\r\n        nemoguceGranica = subDays(raspNajkasnije, 30);\r\n        nemoguceOpis = 'While the no-confidence debate is ongoing, the only available mechanisms are a passed no-confidence vote or the PM\\'s resignation - after which 30 more days run for forming a new Government. The latest date for triggering that process was <strong style=\"color:#000;\">' + fmt(nemoguceGranica) + '<\/strong> - that date has passed.';\r\n      } else {\r\n        nemoguceGranica = raspNajkasnije;\r\n        nemoguceOpis = 'The latest deadline for calling elections (Government dissolution proposal) was <strong style=\"color:#000;\">' + fmt(nemoguceGranica) + '<\/strong>. The mechanisms that require a no-confidence vote or PM resignation also needed an additional 30 days, so they are closed too.';\r\n      }\r\n    } else if (tip === 'pred') {\r\n      nemoguceGranica = raspNajkasnije;\r\n      nemoguceOpis = 'The only realistic mechanism for snap presidential elections is the President\\'s resignation. The latest date for submitting the resignation was <strong style=\"color:#000;\">' + fmt(nemoguceGranica) + '<\/strong> (30 days before election day) - that date has passed.';\r\n    } else {\r\n      nemoguceGranica = subDays(raspNajkasnije, 30);\r\n      nemoguceOpis = 'For local elections on this date, the mayor or municipal president would have had to resign by <strong style=\"color:#000;\">' + fmt(nemoguceGranica) + '<\/strong> at the latest. After the resignation, the assembly has one month to elect a replacement, and only then can the Government issue a dissolution decision. That deadline has passed.';\r\n    }\r\n\r\n    if (prosao(nemoguceGranica)) {\r\n      html += '<div class=\"card main\" style=\"border-left-color:#B1B3B4;\">'\r\n        + '<div class=\"card-label\">' + tipNaziv + ' elections - election day<\/div>'\r\n        + '<div class=\"card-val\" style=\"color:#B1B3B4;text-decoration:line-through;\">' + fmt(el) + '<\/div>'\r\n        + '<div style=\"margin-top:10px;padding:8px 10px;background:#F9F9F9;border-left:3px solid #B1B3B4;font-size:12px;color:#58595A;line-height:1.6;\">'\r\n        + 'Elections on this date are not possible. ' + nemoguceOpis\r\n        + '<br><span style=\"margin-top:4px;display:inline-block;\">Try a later date.<\/span>'\r\n        + '<\/div><\/div>';\r\n      html += '<\/div>';\r\n      out.innerHTML = html;\r\n      return;\r\n    }\r\n\r\n    html += '<div class=\"card main\"><div class=\"card-label\">' + tipNaziv + ' elections - election day<\/div>'\r\n      + '<div class=\"card-val\">' + fmt(el) + '<\/div>'\r\n      + '<div class=\"tl-wrap\"><div class=\"tl-label\">What must happen before then<\/div>'\r\n      + timelineZaTip(raspNajkasnije)\r\n      + '<\/div><\/div>';\r\n\r\n    var rNajranijeKls = prosao(raspNajranije) ? ' style=\"border-left-color:#B1B3B4;opacity:0.5;\"' : '';\r\n    var rNajkasnijeKls = prosao(raspNajkasnije) ? ' style=\"border-left-color:#B1B3B4;opacity:0.5;\"' : '';\r\n    html += '<div class=\"card ok\"' + rNajranijeKls + '><div class=\"card-label\">Earliest date elections can be called<\/div>'\r\n      + '<div class=\"card-val\">' + (prosao(raspNajranije) ? '<s>' + fmt(raspNajranije) + '<\/s> <span class=\"tl-badge-prosao\">DEADLINE PASSED<\/span>' : fmt(raspNajranije)) + '<\/div>'\r\n      + '<div class=\"card-note\">' + t.kampanjMax + ' days before election day<\/div><\/div>';\r\n    html += '<div class=\"card warn\"' + rNajkasnijeKls + '><div class=\"card-label\">Latest date elections can be called<\/div>'\r\n      + '<div class=\"card-val\">' + (prosao(raspNajkasnije) ? '<s>' + fmt(raspNajkasnije) + '<\/s> <span class=\"tl-badge-prosao\">DEADLINE PASSED<\/span>' : fmt(raspNajkasnije)) + '<\/div>'\r\n      + '<div class=\"card-note\">' + t.kampanjMin + ' days before election day<\/div><\/div>';\r\n\r\n    var prebTekst = tip === 'lok'\r\n      ? 'Change of registered address must be filed (last date to change address in order to vote in local elections at the new address)'\r\n      : 'Change of registered address must be filed';\r\n    html += '<div class=\"card info\"><div class=\"card-label\">Voter register - key deadlines<\/div>'\r\n      + '<div class=\"bs-wrap\">'\r\n      + '<div class=\"bs-row\"><span class=\"bs-name\">' + prebTekst + '<\/span><span class=\"bs-val\">by ' + fmt(rokPreb) + '<\/span><\/div>'\r\n      + '<div class=\"bs-row\"><span class=\"bs-name\">Request to vote at place of temporary residence (in Serbia or abroad)<\/span><span class=\"bs-val\">' + bsVal(rokBoraviste,'by ') + '<\/span><\/div>'\r\n      + '<div class=\"bs-row\"><span class=\"bs-name\">Voter register closes<\/span><span class=\"bs-val\">' + bsVal(zaklSpiska,'') + '<\/span><\/div>'\r\n      + '<div class=\"bs-row\"><span class=\"bs-name\">Last day for registration by the Ministry<\/span><span class=\"bs-val\">' + bsVal(rokUpis,'') + '<\/span><\/div>'\r\n      + '<\/div><\/div>';\r\n\r\n    html += spajanjeHtml(el);\r\n\r\n  } else {\r\n    var rasp = currentDate;\r\n    var najranijiMogucRasp = addDays(DANAS, 30);\r\n\r\n    if (tip === 'lok') {\r\n      var raspDD = new Date(rasp.getTime()); raspDD.setHours(0,0,0,0);\r\n      if (raspDD < najranijiMogucRasp) {\r\n        html += '<div class=\"card main\" style=\"border-left-color:#B1B3B4;opacity:0.7;\">'\r\n          + '<div class=\"card-label\">Date local elections are called<\/div>'\r\n          + '<div class=\"card-val\"><s>' + fmt(rasp) + '<\/s> <span class=\"tl-badge\">NOT POSSIBLE<\/span><\/div>'\r\n          + '<\/div>';\r\n        html += '<div class=\"card\" style=\"border-left:4px solid #E2001A;background:#FFF0F0;\">'\r\n          + '<div class=\"card-label\" style=\"color:#E2001A;\">Why this date is not possible<\/div>'\r\n          + '<div style=\"font-size:13px;color:#000;margin-top:4px;line-height:1.6;\">'\r\n          + 'For the Government to dissolve a local assembly, the legal conditions must first be met - '\r\n          + 'for example, the mayor must resign and the assembly must have <strong>one month<\/strong> to elect a replacement. '\r\n          + 'Only then can the Government issue a dissolution decision.<\/div>'\r\n          + '<div style=\"font-size:12px;color:#58595A;margin-top:8px;\">Earliest possible date to call elections: <strong>' + fmt(najranijiMogucRasp) + '<\/strong><\/div>'\r\n          + '<\/div>';\r\n        html += '<\/div>';\r\n        out.innerHTML = html;\r\n        return;\r\n      }\r\n    }\r\n\r\n    var elMin = nextSunday(addDays(rasp, t.kampanjMin));\r\n    var elMax = nextSunday(addDays(rasp, t.kampanjMax));\r\n    var nedelje = [];\r\n    var n = new Date(elMin.getTime());\r\n    while (n <= elMax) { nedelje.push(new Date(n.getTime())); n = addDays(n, 7); }\r\n\r\n    html += '<div class=\"card main\"><div class=\"card-label\">Date ' + tipGenitiv + ' elections are called<\/div>'\r\n      + '<div class=\"card-val\">' + fmt(rasp) + '<\/div>'\r\n      + '<div class=\"tl-wrap\"><div class=\"tl-label\">What must have happened before this<\/div>'\r\n      + timelineZaTip(rasp)\r\n      + '<\/div><\/div>';\r\n\r\n    html += '<div class=\"card info\"><div class=\"card-label\">Possible election dates - select one to see all deadlines<\/div>'\r\n      + '<div class=\"nedelje-wrap\">';\r\n    for (var ni = 0; ni < nedelje.length; ni++) {\r\n      var nd = nedelje[ni];\r\n      var ndStr = nd.getFullYear() + '-' + ('0'+(nd.getMonth()+1)).slice(-2) + '-' + ('0'+nd.getDate()).slice(-2);\r\n      html += '<button class=\"nedelja-btn\" onclick=\"odaberiNedelju(\\'' + ndStr + '\\')\">' + fmt(nd) + '<\/button>';\r\n    }\r\n    html += '<\/div><\/div>';\r\n  }\r\n\r\n  html += '<\/div>';\r\n  out.innerHTML = html;\r\n}\r\n\r\nfunction odaberiNedelju(dateStr) {\r\n  mode = 'izbori';\r\n  document.getElementById('modeA').className = 'mode-tab active';\r\n  document.getElementById('modeB').className = 'mode-tab';\r\n  updateDateLabel();\r\n  var d = parseDate(dateStr);\r\n  if (!d) return;\r\n  currentDate = d;\r\n  document.getElementById('mainDate').value = dateStr;\r\n  document.getElementById('sunNav').style.display = 'flex';\r\n  document.getElementById('sunLabel').textContent = fmt(currentDate);\r\n  racunaj();\r\n  document.getElementById('output').scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n}\r\n\r\ndocument.getElementById('mainDate').addEventListener('change', handleDateInput);\r\ndocument.getElementById('mainDate').addEventListener('input', handleDateInput);\r\ndocument.getElementById('btnPrev').addEventListener('click', function() {\r\n  if (!currentDate) return;\r\n  currentDate = prevSundayStrict(currentDate);\r\n  document.getElementById('sunLabel').textContent = fmt(currentDate);\r\n  racunaj();\r\n});\r\ndocument.getElementById('btnNext').addEventListener('click', function() {\r\n  if (!currentDate) return;\r\n  currentDate = addDays(currentDate, 7);\r\n  document.getElementById('sunLabel').textContent = fmt(currentDate);\r\n  racunaj();\r\n});\r\ndocument.getElementById('modeA').addEventListener('click', function() { setMode('izbori'); });\r\ndocument.getElementById('modeB').addEventListener('click', function() { setMode('raspisivanje'); });\r\ndocument.getElementById('typeParl').addEventListener('click', function() { setTip('parl'); });\r\ndocument.getElementById('typePred').addEventListener('click', function() { setTip('pred'); });\r\ndocument.getElementById('typeLok').addEventListener('click',  function() { setTip('lok'); });\r\ndocument.getElementById('nepoverenje').addEventListener('change', function() {\r\n  nepoverenjeAktivno = this.checked;\r\n  var lbl = document.getElementById('nepoverenjeLbl');\r\n  if (nepoverenjeAktivno) { lbl.classList.add('aktivan'); } else { lbl.classList.remove('aktivan'); }\r\n  if (currentDate) racunaj();\r\n});\r\n\r\nfunction toggleOuter(id) {\r\n  var el = document.getElementById(id);\r\n  var isOpen = el.classList.contains('open');\r\n  var outers = document.querySelectorAll('.acc-outer');\r\n  for (var i = 0; i < outers.length; i++) {\r\n    outers[i].classList.remove('open');\r\n    var inners = outers[i].querySelectorAll('.acc-inner');\r\n    for (var j = 0; j < inners.length; j++) { inners[j].classList.remove('open'); }\r\n  }\r\n  if (!isOpen) { el.classList.add('open'); }\r\n}\r\nfunction toggleInner(el) {\r\n  var isOpen = el.classList.contains('open');\r\n  var parent = el.closest('.acc-outer-body');\r\n  var inners = parent.querySelectorAll('.acc-inner');\r\n  for (var i = 0; i < inners.length; i++) { inners[i].classList.remove('open'); }\r\n  if (!isOpen) { el.classList.add('open'); }\r\n}\r\ndocument.getElementById('acc-parl-hdr').addEventListener('click', function() { toggleOuter('acc-parl'); });\r\ndocument.getElementById('acc-pred-hdr').addEventListener('click', function() { toggleOuter('acc-pred'); });\r\ndocument.getElementById('acc-lok-hdr').addEventListener('click',  function() { toggleOuter('acc-lok'); });\r\nvar innerHeaders = document.querySelectorAll('.acc-inner-header');\r\nfor (var i = 0; i < innerHeaders.length; i++) {\r\n  innerHeaders[i].addEventListener('click', function() { toggleInner(this.parentElement); });\r\n}\r\n<\/script>\r\n\r\n\r\n\r\n\r\n\n","protected":false},"excerpt":{"rendered":"<p>The public bids on potential election dates. When should elections be announced to be held on a specific date? Is it possible that there will also be elections at other levels during that period? Check with the due date calculator. &nbsp;<\/p>\n","protected":false},"author":7,"featured_media":44901,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[218],"tags":[],"class_list":["post-44924","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-latest-en","ciTrackContent"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>When will the elections be? - CRTA<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/crta.rs\/en\/when-will-the-elections-be\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"When will the elections be? - CRTA\" \/>\n<meta property=\"og:description\" content=\"The public bids on potential election dates. When should elections be announced to be held on a specific date? Is it possible that there will also be elections at other levels during that period? Check with the due date calculator. &nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/crta.rs\/en\/when-will-the-elections-be\/\" \/>\n<meta property=\"og:site_name\" content=\"CRTA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CRTArs\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-12T15:34:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"469\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ivana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ivana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/\"},\"author\":{\"name\":\"ivana\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/#\\\/schema\\\/person\\\/18f7126b92949f8242e7b65ece92db4c\"},\"headline\":\"When will the elections be?\",\"datePublished\":\"2026-05-12T15:34:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/\"},\"wordCount\":49,\"image\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/crta.rs\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Kad-ce-izbori-Aktuelno.png\",\"articleSection\":[\"Latest\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/\",\"url\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/\",\"name\":\"When will the elections be? - CRTA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/crta.rs\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Kad-ce-izbori-Aktuelno.png\",\"datePublished\":\"2026-05-12T15:34:31+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/#\\\/schema\\\/person\\\/18f7126b92949f8242e7b65ece92db4c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#primaryimage\",\"url\":\"https:\\\/\\\/crta.rs\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Kad-ce-izbori-Aktuelno.png\",\"contentUrl\":\"https:\\\/\\\/crta.rs\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Kad-ce-izbori-Aktuelno.png\",\"width\":940,\"height\":469},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/when-will-the-elections-be\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/crta.rs\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Latest\",\"item\":\"https:\\\/\\\/crta.rs\\\/en\\\/category\\\/latest-en\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"When will the elections be?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/crta.rs\\\/en\\\/\",\"name\":\"CRTA\",\"description\":\"Mi smo grupa aktivista i novinara koja zajedno sa gra\u0111anima uti\u010de na pove\u0107anje odgovornosti institucija i javnih funkcionera kroz pra\u0107enje i kontrolu njihovog rada.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/crta.rs\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/crta.rs\\\/en\\\/#\\\/schema\\\/person\\\/18f7126b92949f8242e7b65ece92db4c\",\"name\":\"ivana\",\"url\":\"https:\\\/\\\/crta.rs\\\/en\\\/author\\\/ivana\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"When will the elections be? - CRTA","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/","og_locale":"en_US","og_type":"article","og_title":"When will the elections be? - CRTA","og_description":"The public bids on potential election dates. When should elections be announced to be held on a specific date? Is it possible that there will also be elections at other levels during that period? Check with the due date calculator. &nbsp;","og_url":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/","og_site_name":"CRTA","article_publisher":"https:\/\/www.facebook.com\/CRTArs\/","article_published_time":"2026-05-12T15:34:31+00:00","og_image":[{"width":940,"height":469,"url":"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png","type":"image\/png"}],"author":"ivana","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ivana","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#article","isPartOf":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/"},"author":{"name":"ivana","@id":"https:\/\/crta.rs\/en\/#\/schema\/person\/18f7126b92949f8242e7b65ece92db4c"},"headline":"When will the elections be?","datePublished":"2026-05-12T15:34:31+00:00","mainEntityOfPage":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/"},"wordCount":49,"image":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#primaryimage"},"thumbnailUrl":"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png","articleSection":["Latest"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/","url":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/","name":"When will the elections be? - CRTA","isPartOf":{"@id":"https:\/\/crta.rs\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#primaryimage"},"image":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#primaryimage"},"thumbnailUrl":"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png","datePublished":"2026-05-12T15:34:31+00:00","author":{"@id":"https:\/\/crta.rs\/en\/#\/schema\/person\/18f7126b92949f8242e7b65ece92db4c"},"breadcrumb":{"@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/crta.rs\/en\/when-will-the-elections-be\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#primaryimage","url":"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png","contentUrl":"https:\/\/crta.rs\/wp-content\/uploads\/2026\/04\/Kad-ce-izbori-Aktuelno.png","width":940,"height":469},{"@type":"BreadcrumbList","@id":"https:\/\/crta.rs\/en\/when-will-the-elections-be\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/crta.rs\/en\/"},{"@type":"ListItem","position":2,"name":"Latest","item":"https:\/\/crta.rs\/en\/category\/latest-en\/"},{"@type":"ListItem","position":3,"name":"When will the elections be?"}]},{"@type":"WebSite","@id":"https:\/\/crta.rs\/en\/#website","url":"https:\/\/crta.rs\/en\/","name":"CRTA","description":"Mi smo grupa aktivista i novinara koja zajedno sa gra\u0111anima uti\u010de na pove\u0107anje odgovornosti institucija i javnih funkcionera kroz pra\u0107enje i kontrolu njihovog rada.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/crta.rs\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/crta.rs\/en\/#\/schema\/person\/18f7126b92949f8242e7b65ece92db4c","name":"ivana","url":"https:\/\/crta.rs\/en\/author\/ivana\/"}]}},"_links":{"self":[{"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/posts\/44924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/comments?post=44924"}],"version-history":[{"count":3,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/posts\/44924\/revisions"}],"predecessor-version":[{"id":44927,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/posts\/44924\/revisions\/44927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/media\/44901"}],"wp:attachment":[{"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/media?parent=44924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/categories?post=44924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/crta.rs\/en\/wp-json\/wp\/v2\/tags?post=44924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}