{"id":9210,"date":"2026-07-17T09:11:46","date_gmt":"2026-07-17T08:11:46","guid":{"rendered":"https:\/\/nsbi.org.rs\/?page_id=9210"},"modified":"2026-09-28T08:50:50","modified_gmt":"2026-09-28T07:50:50","slug":"brojalica-svetala","status":"publish","type":"page","link":"https:\/\/nsbi.org.rs\/sr\/brojalica-svetala","title":{"rendered":"Broja\u010d osvetljenosti biciklista"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Zdravo. Pred tobom se nalazi aplikacija za brojanje osvetljenosti biciklista. Ukoliko broji\u0161 prvi put, pogledaj korisni\u010dko uputstvo za kori\u0161\u0107enje aplikacije. Sretno sa brojanjem i hvala ti za pomo\u0107.<\/p>\n\n\n\n<style data-wp-block-html=\"css\">\n\/* Plavo dugme za mu\u0161karce kada NIJE izabrano *\/\nbutton.nsbi-btn-male:not(.active) {\n    border-color: #007bff !important;\n    color: #007bff !important;\n    background-color: #ffffff !important;\n}\n\n\/* Roze dugme za \u017eene kada NIJE izabrano *\/\nbutton.nsbi-btn-female:not(.active) {\n    border-color: #e83e8c !important;\n    color: #e83e8c !important;\n    background-color: #ffffff !important;\n}\n\n\/* Izabrano dugme (klasa active) uvek prelazi u zelenu boju *\/\n.nsbi-select-btn.active {\n    background-color: #eaf5ea !important;\n    border-color: #1e7e34 !important;\n    color: #1e7e34 !important;\n    font-weight: bold;\n}\n<\/style>\n\n<div class=\"nsbi-app\">\n    <h2 class=\"nsbi-title\">NSBI Broja\u010d Osvetljenosti \ud83d\udeb2\ud83d\udca1<\/h2>\n    <p class=\"nsbi-subtitle\">Selektuj karakteristike prolaznika i klikni na &#8220;Evidentiraj&#8221;.<\/p>\n\n    <!-- FAZA 1: SETUP (PO\u010cETNI EKRAN) -->\n    <div class=\"nsbi-card\" id=\"nsbi-setup\">\n        \n        <!-- DUGME ZA NASTAVAK -->\n        <button id=\"btn-nastavi\" class=\"nsbi-btn nsbi-btn-resume-main\" style=\"display: none; margin-bottom: 20px;\" onclick=\"nastaviPrethodno()\">\n            \u25b6\ufe0f NASTAVI PRETHODNO BROJANJE\n        <\/button>\n\n        <div class=\"nsbi-form-row\" style=\"display: flex; gap: 8px;\">\n            <div class=\"nsbi-form-group\" style=\"flex: 1;\">\n                <label for=\"nsbi-volonter1\">Volonter (Upisuje): <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"text\" id=\"nsbi-volonter1\" class=\"nsbi-input\" placeholder=\"Ime i prezime\">\n            <\/div>\n            <div class=\"nsbi-form-group\" style=\"flex: 1;\">\n                <label for=\"nsbi-volonter2\">Volonter (Osmatra): <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"text\" id=\"nsbi-volonter2\" class=\"nsbi-input\" placeholder=\"Ime i prezime\">\n            <\/div>\n        <\/div>\n\n        <div class=\"nsbi-form-row\">\n            <div class=\"nsbi-form-group\">\n                <label for=\"nsbi-email\">E-mail volontera \/ koordinatora: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"email\" id=\"nsbi-email\" class=\"nsbi-input\" placeholder=\"Npr. milan@gmail.com\">\n            <\/div>\n            <div style=\"text-align: left; margin-top: 8px; display: flex; align-items: center; gap: 8px;\">\n                <input type=\"checkbox\" id=\"nsbi-posalji-kopiju\" checked=\"\" style=\"width: 18px; height: 18px; cursor: pointer; accent-color: #2e7d32;\">\n                <label for=\"nsbi-posalji-kopiju\" style=\"font-size: 13px; color: #444; cursor: pointer; user-select: none;\">\ud83d\udce7 Po\u0161alji kopiju izve\u0161taja i meni na e-mail<\/label>\n            <\/div>\n        <\/div>\n\n        <div class=\"nsbi-form-row\">\n            <div class=\"nsbi-form-group\">\n                <label for=\"nsbi-lokacija-select\">Lokacija brojanja: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <select id=\"nsbi-lokacija-select\" class=\"nsbi-input\" onchange=\"proveriLokaciju(this.value)\">\n                    <option value=\"\" disabled=\"\" selected=\"\">Izaberi lokaciju&#8230;<\/option>\n                    <option value=\"0010 Beogradski kej - Dunavska\">0010 Beogradski kej &#8211; Dunavska<\/option>\n                    <option value=\"0011 Beogradski kej - Milo\u0161a Baji\u0107a\">0011 Beogradski kej &#8211; Milo\u0161a Baji\u0107a<\/option>\n                    <option value=\"0012 Kej \u017ertava racije - Sun\u010dani kej\">0012 Kej \u017ertava racije &#8211; Sun\u010dani kej<\/option>\n                    <option value=\"0013 Kej \u017ertava racije - Trg neznanog junaka\">0013 Kej \u017ertava racije &#8211; Trg neznanog junaka<\/option>\n                    <option value=\"0014 Kej \u017ertava racije - Maksima Gorkog\">0014 Kej \u017ertava racije &#8211; Maksima Gorkog<\/option>\n                    <option value=\"0015 Sun\u010dani kej - Fru\u0161kogorska\">0015 Sun\u010dani kej &#8211; Fru\u0161kogorska<\/option>\n                    <option value=\"0016 Sun\u010dani kej - Jire\u010dekova\">0016 Sun\u010dani kej &#8211; Jire\u010dekova<\/option>\n                    <option value=\"0017 Sun\u010dani kej - Most slobode\">0017 Sun\u010dani kej &#8211; Most slobode<\/option>\n                    <option value=\"0020 Bulevar cara Lazara - Balzakova\">0020 Bulevar cara Lazara &#8211; Balzakova<\/option>\n                    <option value=\"0021 Bulevar cara Lazara - Cara Du\u0161ana\">0021 Bulevar cara Lazara &#8211; Cara Du\u0161ana<\/option>\n                    <option value=\"0022 Bulevar cara Lazara - Fru\u0161kogorska\">0022 Bulevar cara Lazara &#8211; Fru\u0161kogorska<\/option>\n                    <option value=\"0023 Bulevar cara Lazara - Stra\u017eilovska\">0023 Bulevar cara Lazara &#8211; Stra\u017eilovska<\/option>\n                    <option value=\"0024 Bulevar cara Lazara - \u0160ekspirova (Limanska pijaca)\">0024 Bulevar cara Lazara &#8211; \u0160ekspirova (Limanska pijaca)<\/option>\n                    <option value=\"0030 Bulevar Evrope - Bul. patrijarha Pavla\">0030 Bulevar Evrope &#8211; Bul. patrijarha Pavla<\/option>\n                    <option value=\"0031 Bulevar Evrope - Futo\u0161ki put\">0031 Bulevar Evrope &#8211; Futo\u0161ki put<\/option>\n                    <option value=\"0032 Bulevar Evrope - Had\u017ei Ruvimova\">0032 Bulevar Evrope &#8211; Had\u017ei Ruvimova<\/option>\n                    <option value=\"0033 Bulevar Evrope - Kornelija Stankovi\u0107a\">0033 Bulevar Evrope &#8211; Kornelija Stankovi\u0107a<\/option>\n                    <option value=\"0034 Bulevar Evrope - Rumena\u010dki put\">0034 Bulevar Evrope &#8211; Rumena\u010dki put<\/option>\n                    <option value=\"0040 Bulevar Jovana Du\u010di\u0107a - Bate Brki\u0107a\">0040 Bulevar Jovana Du\u010di\u0107a &#8211; Bate Brki\u0107a<\/option>\n                    <option value=\"0041 Bulevar Jovana Du\u010di\u0107a - Bulevar kneza Milo\u0161a\">0041 Bulevar Jovana Du\u010di\u0107a &#8211; Bulevar kneza Milo\u0161a<\/option>\n                    <option value=\"0042 Bulevar Jovana Du\u010di\u0107a - Bulevar Slobodana Jovanovi\u0107a\">0042 Bulevar Jovana Du\u010di\u0107a &#8211; Bulevar Slobodana Jovanovi\u0107a<\/option>\n                    <option value=\"0050 Bulevar Mihajla Pupina - Jevrejska\">0050 Bulevar Mihajla Pupina &#8211; Jevrejska<\/option>\n                    <option value=\"0051 Bulevar Mihajla Pupina - \u017darka Zrenjanina\">0051 Bulevar Mihajla Pupina &#8211; \u017darka Zrenjanina<\/option>\n                    <option value=\"0060 Bulevar oslobo\u0111enja - Bulevar cara Lazara (Merkator-Promenada)\">0060 Bulevar oslobo\u0111enja &#8211; Bulevar cara Lazara (Merkator-Promenada)<\/option>\n                    <option value=\"0061 Bulevar oslobo\u0111enja - Bulevar kralja Petra I\">0061 Bulevar oslobo\u0111enja &#8211; Bulevar kralja Petra I<\/option>\n                    <option value=\"0062 Bulevar oslobo\u0111enja - Jevrejska (Futo\u0161ka pijaca)\">0062 Bulevar oslobo\u0111enja &#8211; Jevrejska (Futo\u0161ka pijaca)<\/option>\n                    <option value=\"0063 Bulevar oslobo\u0111enja - Pap Pavla | N. sajma\">0063 Bulevar oslobo\u0111enja &#8211; Pap Pavla | N. sajma<\/option>\n                    <option value=\"0070 Futo\u0161ka - Bra\u0107e Ribnikar\">0070 Futo\u0161ka &#8211; Bra\u0107e Ribnikar<\/option>\n                    <option value=\"0071 Futo\u0161ka - Hajduk Veljkova\">0071 Futo\u0161ka &#8211; Hajduk Veljkova<\/option>\n                    <option value=\"0072 Futo\u0161ki put - Bate Brki\u0107a\">0072 Futo\u0161ki put &#8211; Bate Brki\u0107a<\/option>\n                    <option value=\"0073 Futo\u0161ki put - Bulevar patrijarha Pavla\">0073 Futo\u0161ki put &#8211; Bulevar patrijarha Pavla<\/option>\n                    <option value=\"0074 Futo\u0161ki put - Bulevar Slobodana Jovanovi\u0107a\">0074 Futo\u0161ki put &#8211; Bulevar Slobodana Jovanovi\u0107a<\/option>\n                    <option value=\"0080 Rumena\u010dka - Bul. Ja\u0161e Tomi\u0107a\">0080 Rumena\u010dka &#8211; Bul. Ja\u0161e Tomi\u0107a<\/option>\n                    <option value=\"0081 Rumena\u010dka - Bul. kralja Petra I\">0081 Rumena\u010dka &#8211; Bul. kralja Petra I<\/option>\n                    <option value=\"0082 Rumena\u010dka - Partizanska\">0082 Rumena\u010dka &#8211; Partizanska<\/option>\n                    <option value=\"0090 Sentandrejski put - Partizanska\">0090 Sentandrejski put &#8211; Partizanska<\/option>\n                    <option value=\"0091 Sentandrejski put - Primorska\">0091 Sentandrejski put &#8211; Primorska<\/option>\n                    <option value=\"0092 Sentandrejski put - Ritska\">0092 Sentandrejski put &#8211; Ritska<\/option>\n                    <option value=\"0093 Sentandrejski put - Velebitska\">0092 Sentandrejski put &#8211; Velebitska<\/option>\n                    <option value=\"0000 Bul. Patrijarha Pavla - Suboti\u010dka\">0000 Bul. Patrijarha Pavla &#8211; Suboti\u010dka<\/option>\n                    <option value=\"0001 Bul. Patrijarha Pavla - Vr\u0161a\u010dka\">0001 Bul. Patrijarha Pavla &#8211; Vr\u0161a\u010dka<\/option>\n                    <option value=\"0002 Bul. Patrijarha Pavla - Ilirska\">0002 Bul. Patrijarha Pavla &#8211; Ilirska<\/option>\n                    <option value=\"0003 Hajduk Veljkova - Novosadskog sajma\">0003 Hajduk Veljkova &#8211; Novosadskog sajma<\/option>\n                    <option value=\"0004 Cara Du\u0161ana - Laze Nan\u010di\u0107a\">0004 Cara Du\u0161ana &#8211; Laze Nan\u010di\u0107a<\/option>\n                    <option value=\"0005 Cara Du\u0161ana - \u0110or\u0111a Magara\u0161evi\u0107a\">0005 Cara Du\u0161ana &#8211; \u0110or\u0111a Magara\u0161evi\u0107a<\/option>\n                    <option value=\"0006 Cara Du\u0161ana - Bra\u0107e Lu\u010di\u0107\">0006 Cara Du\u0161ana &#8211; Bra\u0107e Lu\u010di\u0107<\/option>\n                    <option value=\"drugo\">Dodaj drugu lokaciju&#8230; \u2795<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"nsbi-form-group\" id=\"nsbi-druga-lokacija-container\" style=\"display: none; margin-top: 8px;\">\n                <label for=\"nsbi-lokacija-custom\" style=\"color: #c62828;\">Upi\u0161i novu lokaciju: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"text\" id=\"nsbi-lokacija-custom\" class=\"nsbi-input\" placeholder=\"Npr. \u017delezni\u010dka stanica\" style=\"border-color: #f57c00;\">\n            <\/div>\n        <\/div>\n        \n        <div class=\"nsbi-form-row\">\n            <div class=\"nsbi-form-group\">\n                <label for=\"nsbi-datum\">Datum brojanja: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"date\" id=\"nsbi-datum\" class=\"nsbi-input\">\n            <\/div>\n        <\/div>\n        <div class=\"nsbi-form-row\" style=\"display: flex; gap: 8px;\">\n            <div class=\"nsbi-form-group\" style=\"flex: 1;\">\n                <label for=\"nsbi-vreme-od\">Vreme OD: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"time\" id=\"nsbi-vreme-od\" class=\"nsbi-input\">\n            <\/div>\n            <div class=\"nsbi-form-group\" style=\"flex: 1;\">\n                <label for=\"nsbi-vreme-do\">Vreme DO: <span style=\"color: #c62828;\">*<\/span><\/label>\n                <input type=\"time\" id=\"nsbi-vreme-do\" class=\"nsbi-input\">\n            <\/div>\n        <\/div>\n\n        <button class=\"nsbi-btn nsbi-btn-submit\" onclick=\"zapocniSesiju()\">Zapo\u010dni novo brojanje<\/button>\n        <button class=\"nsbi-btn nsbi-btn-info\" onclick=\"otvoriUputstvo('setup')\">\ud83d\udcd6 Kako brojati? (Uputstvo)<\/button>\n    <\/div>\n\n    <!-- FAZA 1.5: UPUTSTVO -->\n    <div id=\"nsbi-instructions-section\" style=\"display: none; text-align: left;\">\n        <h3 style=\"color: #2e7d32; margin-top: 0;\">\ud83d\udcd6 Kako pravilno brojati?<\/h3>\n        <p style=\"font-size: 14px; color: #444; line-height: 1.5;\">Ovaj broja\u010d slu\u017ei za brzu i ta\u010dnu evidenciju osvetljenosti biciklista. Evo kratkih pravila za unos:<\/p>\n        \n        <ul style=\"font-size: 13px; color: #333; padding-left: 20px; line-height: 1.6;\">\n            <li><strong>Pol i Uzrast:<\/strong> Procenjujete vizuelno u sekundi. Ako niste sigurni za uzrast, pretpostavite da je osoba starija od 18.<\/li>\n            <li><strong>Tip bicikliste:<\/strong> <em>Biciklista\/Gra\u0111anin<\/em> je klasi\u010dan biciklista, dok je <em>Dostavlja\u010d<\/em> osoba sa prepoznatljivom termo-torbom (Wolt, Glovo, itd.).<\/li>\n            <li><strong>\ud83d\udfe2 Oba svetla:<\/strong> Svetli i prednje (belo) i zadnje (crveno) svetlo na biciklu.<\/li>\n            <li><strong>\u26aa Samo prednje \/ \ud83d\udd34 Samo zadnje:<\/strong> Radi isklju\u010divo jedno od ta dva propisana svetla.<\/li>\n            <li><strong>\ud83d\udd00 Pome\u0161ana svetla:<\/strong> Nepravilno osvetljenje &#8211; npr. crveno trep\u0107u\u0107e svetlo napred, ili belo svetlo nazad.<\/li>\n            <li><strong>\u274c Bez svetala:<\/strong> Biciklista nema nikakvo osvetljenje (ili ga nije uklju\u010dio).<\/li>\n        <\/ul>\n        \n        <div style=\"background: #fff3e0; padding: 10px; border-radius: 8px; border: 1px solid #ffe0b2; margin-top: 15px;\">\n            <strong style=\"color: #e65100; font-size: 13px;\">\ud83d\udca1 Savet za rad u paru:<\/strong> \n            <span style=\"font-size: 12px; color: #555;\">Neka partner koji osmatra glasno govori karakteristike (npr. &#8220;Mu\u0161ki, bez svetala, gra\u0111anin&#8221;). Osoba koja dr\u017ei telefon samo klik\u0107e i potvr\u0111uje. Kategorije ostaju zapam\u0107ene \u2013 menjajte samo ono \u0161to se razlikuje kod slede\u0107eg prolaznika!<\/span>\n        <\/div>\n\n        <button class=\"nsbi-btn nsbi-btn-undo\" style=\"width: 100%; margin-top: 20px; font-size: 15px; padding: 12px;\" onclick=\"zatvoriUputstvo()\">\ud83d\udd19 Vrati se nazad<\/button>\n    <\/div>\n\n    <!-- FAZA 1.8: BRZA TRENUTNA STATISTIKA (PREGLED TOKOM BROJANJA) -->\n    <div id=\"nsbi-quick-stats-section\" style=\"display: none; text-align: left;\">\n        <h3 style=\"color: #0288d1; margin-top: 0;\">\ud83d\udcca Trenutna statistika brojanja<\/h3>\n        <p style=\"font-size: 13px; color: #555;\">Pregled do sada zabele\u017eenih prolaznika u ovoj smeni:<\/p>\n        \n        <div style=\"background: #e1f5fe; padding: 12px; border-radius: 8px; border: 1px solid #b3e5fc; margin-bottom: 15px; text-align: center;\">\n            <span style=\"font-size: 14px; color: #0277bd;\">Ukupno izbrojano prolaznika:<\/span><br>\n            <strong id=\"qs-tot-sve\" style=\"font-size: 26px; color: #01579b;\">0<\/strong>\n        <\/div>\n\n        <div class=\"nsbi-table-wrapper\">\n            <table class=\"nsbi-table-report\">\n                <thead>\n                    <tr>\n                        <th>Kategorija<\/th>\n                        <th>\ud83d\udfe2 Oba<\/th>\n                        <th>\u26aa Pre.<\/th>\n                        <th>\ud83d\udd34 Zad.<\/th>\n                        <th>\ud83d\udd00 Pom.<\/th>\n                        <th>\u274c Bez<\/th>\n                        <th style=\"background:#e8f5e9;\">Ukupno<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>\ud83d\ude4b\u200d\u2642\ufe0f Mu\u0161karci<\/td>\n                        <td id=\"qs-m-oba\">0<\/td><td id=\"qs-m-prednje\">0<\/td><td id=\"qs-m-zadnje\">0<\/td><td id=\"qs-m-pom\">0<\/td><td id=\"qs-m-bez\">0<\/td><td id=\"qs-m-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\ude4b\u200d\u2640\ufe0f \u017dene<\/td>\n                        <td id=\"qs-z-oba\">0<\/td><td id=\"qs-z-prednje\">0<\/td><td id=\"qs-z-zadnje\">0<\/td><td id=\"qs-z-pom\">0<\/td><td id=\"qs-z-bez\">0<\/td><td id=\"qs-z-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\udeb2 Biciklisti<\/td>\n                        <td id=\"qs-g-oba\">0<\/td><td id=\"qs-g-prednje\">0<\/td><td id=\"qs-g-zadnje\">0<\/td><td id=\"qs-g-pom\">0<\/td><td id=\"qs-g-bez\">0<\/td><td id=\"qs-g-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\udce6 Dostavlja\u010di<\/td>\n                        <td id=\"qs-d-oba\">0<\/td><td id=\"qs-d-prednje\">0<\/td><td id=\"qs-d-zadnje\">0<\/td><td id=\"qs-d-pom\">0<\/td><td id=\"qs-d-bez\">0<\/td><td id=\"qs-d-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr class=\"total-row\">\n                        <td>\ud83d\udcca UKUPNO<\/td>\n                        <td id=\"qs-tot-oba\">0<\/td><td id=\"qs-tot-prednje\">0<\/td><td id=\"qs-tot-zadnje\">0<\/td><td id=\"qs-tot-pom\">0<\/td><td id=\"qs-tot-bez\">0<\/td>\n                        <td id=\"qs-tot-sve-bottom\" style=\"background:#2e7d32; color:white;\">0<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <button class=\"nsbi-btn\" style=\"width: 100%; margin-top: 15px; font-size: 15px; padding: 12px; background-color: #0288d1; color: white;\" onclick=\"zatvoriBrzuStatistiku()\">\ud83d\udd19 Nastavi brojanje<\/button>\n    <\/div>\n\n    <!-- FAZA 2: GLAVNI BROJA\u010c -->\n    <div id=\"nsbi-counter-section\" style=\"display: none;\">\n        <div style=\"display: flex; justify-content: space-between; align-items: center;\">\n            <p id=\"nsbi-info-prikaz\" class=\"nsbi-meta-info\" style=\"margin-bottom: 0; flex: 1;\"><\/p>\n            <button class=\"nsbi-btn-info-small\" onclick=\"otvoriUputstvo('counter')\">\ud83d\udcd6 Uputstvo<\/button>\n        <\/div>\n        \n        <!-- POL -->\n        <div class=\"nsbi-group-title\">POL<\/div>\n        <div class=\"nsbi-btn-group\">\n            <button id=\"pol-M\" class=\"nsbi-select-btn nsbi-btn-male active\" onclick=\"selektuj('pol', 'M')\">\u2642\ufe0f Mu\u0161ki (M)<\/button>\n            <button id=\"pol-\u017d\" class=\"nsbi-select-btn nsbi-btn-female\" onclick=\"selektuj('pol', '\u017d')\">\u2640\ufe0f \u017denski (\u017d)<\/button>\n        <\/div>\n\n        <!-- OSVETLJENOST -->\n        <div class=\"nsbi-group-title\">Osvetljenost<\/div>\n        <div class=\"nsbi-grid-lights\">\n            <button id=\"svetlo-Oba\" class=\"nsbi-select-btn active\" onclick=\"selektuj('svetlo', 'Oba svetla (pravilno)')\">\ud83d\udfe2 Oba svetla<\/button>\n            <button id=\"svetlo-Prednje\" class=\"nsbi-select-btn\" onclick=\"selektuj('svetlo', 'Samo prednje belo')\">\u26aa Samo prednje<\/button>\n            <button id=\"svetlo-Zadnje\" class=\"nsbi-select-btn\" onclick=\"selektuj('svetlo', 'Samo zadnje crveno')\">\ud83d\udd34 Samo zadnje<\/button>\n            <button id=\"svetlo-Pomesana\" class=\"nsbi-select-btn\" onclick=\"selektuj('svetlo', 'Pome\u0161ana svetla')\">\ud83d\udd00 Pome\u0161ana<\/button>\n            <button id=\"svetlo-Bez\" class=\"nsbi-select-btn nsbi-grid-full\" onclick=\"selektuj('svetlo', 'Bez svetala')\">\u274c Bez svetala<\/button>\n        <\/div>\n\n        <!-- UZRAST -->\n        <div class=\"nsbi-group-title\">Uzrast<\/div>\n        <div class=\"nsbi-btn-group\">\n            <button id=\"uzrast-Mladi\" class=\"nsbi-select-btn\" onclick=\"selektuj('uzrast', 'Mla\u0111i od 18')\">\ud83e\uddd2 Mla\u0111i od 18<\/button>\n            <button id=\"uzrast-Stariji\" class=\"nsbi-select-btn active\" onclick=\"selektuj('uzrast', 'Stariji od 18')\">\ud83e\uddd1 Stariji od 18<\/button>\n        <\/div>\n\n        <!-- TIP VOZILA -->\n        <div class=\"nsbi-group-title\">Tip vozila<\/div>\n        <div class=\"nsbi-btn-group\">\n            <button id=\"tip-Biciklista\" class=\"nsbi-select-btn active\" onclick=\"selektuj('tip', 'Biciklista')\">\ud83d\udeb2 Biciklista<\/button>\n            <button id=\"tip-Dostavlja\u010d\" class=\"nsbi-select-btn\" onclick=\"selektuj('tip', 'Dostavlja\u010d')\">\ud83d\udce6 Dostavlja\u010d<\/button>\n            <button id=\"tip-Trotinet\" class=\"nsbi-select-btn\" onclick=\"selektuj('tip', 'El. trotinet')\">\ud83d\udef4 El. trotinet<\/button>\n            <button id=\"tip-Skuter\" class=\"nsbi-select-btn\" onclick=\"selektuj('tip', 'El. skuter')\">\ud83d\udef5 El. skuter<\/button>\n        <\/div>\n\n        <!-- TRENUTNO SELEKTOVANO (LIVE PREVIEW) -->\n        <div id=\"nsbi-live-preview\" class=\"nsbi-live-preview\"><\/div>\n\n        <!-- GLAVNO DUGME ZA EVIDENTIRANJE -->\n        <button class=\"nsbi-btn nsbi-btn-add\" onclick=\"evidentiraj()\">\u2795 EVIDENTIRAJ<\/button>\n\n        <div class=\"nsbi-control-row\">\n            <button class=\"nsbi-btn nsbi-btn-undo\" onclick=\"ponistiPoslednje()\">\u21a9\ufe0f Poni\u0161ti zadnji unos<\/button>\n            <span class=\"nsbi-mini-counter\">Izbrojano: <strong id=\"nsbi-cnt-total-live\">0<\/strong><\/span>\n        <\/div>\n\n        <!-- DUGME ZA TRENUTNU STATISTIKU -->\n        <button class=\"nsbi-btn\" style=\"background-color: #0288d1; color: white; margin-top: 12px;\" onclick=\"otvoriBrzuStatistiku()\">\ud83d\udcca TRENUTNA STATISTIKA<\/button>\n\n        <hr style=\"border:0; border-top: 1px dashed #ccc; margin: 15px 0;\">\n\n        <!-- DUGME ZA KORAK ZAVR\u0160ETKA -->\n        <button class=\"nsbi-btn nsbi-btn-finish\" onclick=\"otvoriVremenskeUslove()\">\ud83c\udfc1 ZAVR\u0160I SMENU<\/button>\n    <\/div>\n\n    <!-- FAZA 2.5: ME\u0110UKORAK - VREMENSKI USLOVI -->\n    <div id=\"nsbi-weather-section\" style=\"display: none;\">\n        <div class=\"nsbi-success-badge\" style=\"background:#fff3e0; color:#e65100; border-color:#ffe0b2;\">\ud83c\udf24\ufe0f Jo\u0161 samo jedan korak&#8230;<\/div>\n        <p style=\"font-size: 13px; color: #555; margin-bottom: 15px;\">Molimo vas da odaberete vremenske uslove tokom trajanja ove smene kako bismo poslali ta\u010dne podatke.<\/p>\n\n        <!-- TEMPERATURA -->\n        <div class=\"nsbi-group-title\">Temperatura<\/div>\n        <div class=\"nsbi-btn-group\">\n            <button id=\"temp-Toplo\" class=\"nsbi-select-btn active\" onclick=\"selektujVreme('temp', 'Toplo \/ Prijatno')\">\ud83d\udd25 Toplo<\/button>\n            <button id=\"temp-Sveze\" class=\"nsbi-select-btn\" onclick=\"selektujVreme('temp', 'Sve\u017ee \/ Prohladno')\">\ud83c\udf43 Sve\u017ee<\/button>\n            <button id=\"temp-Hladno\" class=\"nsbi-select-btn\" onclick=\"selektujVreme('temp', 'Hladno \/ Zima')\">\u2744\ufe0f Hladno<\/button>\n        <\/div>\n\n        <!-- PADAVINE \/ VREME -->\n        <div class=\"nsbi-group-title\">Vremenske prilike<\/div>\n        <div class=\"nsbi-grid-lights\">\n            <button id=\"prilike-Suvo\" class=\"nsbi-select-btn active\" onclick=\"selektujVreme('prilike', 'Suvo \/ Sun\u010dano')\">\u2600\ufe0f Suvo<\/button>\n            <button id=\"prilike-Oblacno\" class=\"nsbi-select-btn\" onclick=\"selektujVreme('prilike', 'Obla\u010dno')\">\u2601\ufe0f Obla\u010dno<\/button>\n            <button id=\"prilike-Kisa\" class=\"nsbi-select-btn\" onclick=\"selektujVreme('prilike', 'Ki\u0161ovito')\">\ud83c\udf27\ufe0f Ki\u0161a<\/button>\n            <button id=\"prilike-Sneg\" class=\"nsbi-select-btn\" onclick=\"selektujVreme('prilike', 'Sneg')\">\ud83c\udf28\ufe0f Sneg<\/button>\n            <button id=\"prilike-Vetrovito\" class=\"nsbi-select-btn nsbi-grid-full\" onclick=\"selektujVreme('prilike', 'Jak vetar \/ Ko\u0161ava')\">\ud83d\udca8 Jak vetar<\/button>\n        <\/div>\n\n        <button class=\"nsbi-btn nsbi-btn-submit\" style=\"margin-top: 25px; background-color: #2e7d32;\" onclick=\"potvrdiVremeIPrikaziIzvestaj()\">Zavr\u0161i i po\u0161alji izve\u0161taj \ud83d\udcca<\/button>\n    <\/div>\n\n    <!-- FAZA 3: FINALNI IZVE\u0160TAJ -->\n    <div id=\"nsbi-report-section\" style=\"display: none;\">\n        <div id=\"nsbi-mail-status\" class=\"nsbi-success-badge\" style=\"background-color: #e3f2fd; color: #0d47a1; border-color: #90caf9;\">\ud83d\udce7 \u0160aljem izve\u0161taj na office@nsbi.org.rs&#8230;<\/div>\n        \n        <p id=\"nsbi-report-meta\" class=\"nsbi-meta-info\"><\/p>\n\n        <h3>Unakrsni rezultati<\/h3>\n        \n        <div class=\"nsbi-table-wrapper\">\n            <table class=\"nsbi-table-report\">\n                <thead>\n                    <tr>\n                        <th>Kategorija<\/th>\n                        <th>\ud83d\udfe2 Oba<\/th>\n                        <th>\u26aa Pre.<\/th>\n                        <th>\ud83d\udd34 Zad.<\/th>\n                        <th>\ud83d\udd00 Pom.<\/th>\n                        <th>\u274c Bez<\/th>\n                        <th style=\"background:#e8f5e9;\">Ukupno<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>\ud83d\ude4b\u200d\u2642\ufe0f Mu\u0161karci<\/td>\n                        <td id=\"m-oba\">0<\/td><td id=\"m-prednje\">0<\/td><td id=\"m-zadnje\">0<\/td><td id=\"m-pom\">0<\/td><td id=\"m-bez\">0<\/td><td id=\"m-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\ude4b\u200d\u2640\ufe0f \u017dene<\/td>\n                        <td id=\"z-oba\">0<\/td><td id=\"z-prednje\">0<\/td><td id=\"z-zadnje\">0<\/td><td id=\"z-pom\">0<\/td><td id=\"z-bez\">0<\/td><td id=\"z-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83e\uddd2 &lt; 18 god.<\/td>\n                        <td id=\"u18-oba\">0<\/td><td id=\"u18-prednje\">0<\/td><td id=\"u18-zadnje\">0<\/td><td id=\"u18-pom\">0<\/td><td id=\"u18-bez\">0<\/td><td id=\"u18-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83e\uddd1 18+ god.<\/td>\n                        <td id=\"o18-oba\">0<\/td><td id=\"o18-prednje\">0<\/td><td id=\"o18-zadnje\">0<\/td><td id=\"o18-pom\">0<\/td><td id=\"o18-bez\">0<\/td><td id=\"o18-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\udeb2 Gra\u0111ani<\/td>\n                        <td id=\"g-oba\">0<\/td><td id=\"g-prednje\">0<\/td><td id=\"g-zadnje\">0<\/td><td id=\"g-pom\">0<\/td><td id=\"g-bez\">0<\/td><td id=\"g-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>\ud83d\udce6 Dostavlja\u010di<\/td>\n                        <td id=\"d-oba\">0<\/td><td id=\"d-prednje\">0<\/td><td id=\"d-zadnje\">0<\/td><td id=\"d-pom\">0<\/td><td id=\"d-bez\">0<\/td><td id=\"d-tot\" class=\"row-total\">0<\/td>\n                    <\/tr>\n                    <tr class=\"total-row\">\n                        <td>\ud83d\udcca UKUPNO<\/td>\n                        <td id=\"tot-oba\">0<\/td><td id=\"tot-prednje\">0<\/td><td id=\"tot-zadnje\">0<\/td><td id=\"tot-pom\">0<\/td><td id=\"tot-bez\">0<\/td>\n                        <td id=\"tot-sve\" style=\"background:#2e7d32; color:white;\">0<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <button class=\"nsbi-btn nsbi-btn-export\" onclick=\"preuzmiCSV()\">\ud83d\udcbe PREUZMI REZERVNI CSV FAJL<\/button>\n        <button class=\"nsbi-btn nsbi-btn-resume\" onclick=\"vratiSeNaBrojanje()\">\u21a9\ufe0f Nastavi brojanje (ako je gre\u0161ka)<\/button>\n        <button class=\"nsbi-btn nsbi-btn-reset\" onclick=\"resetujSve(true)\">\ud83d\udd04 Zapo\u010dni novo brojanje (Bri\u0161e sve)<\/button>\n    <\/div>\n<\/div>\n\n<style>\n    .nsbi-app { max-width: 500px; margin: 10px auto; padding: 15px; background: #fdfdfd; color: #222222; border: 2px solid #e0e0e0; border-radius: 14px; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; box-shadow: 0 4px 12px rgba(0,0,0,0.05); text-align: center; }\n    .nsbi-title { color: #2e7d32; margin-top: 0; margin-bottom: 3px; font-size: 21px; font-weight: bold; }\n    .nsbi-subtitle { color: #666; font-size: 13px; margin-bottom: 12px; }\n    .nsbi-card { background: #f5f5f7; padding: 15px; border-radius: 10px; margin-bottom: 15px; border: 1px solid #e8e8ed; }\n    .nsbi-form-row { margin-bottom: 12px; }\n    .nsbi-form-group { text-align: left; }\n    .nsbi-form-group label { font-size: 13px; font-weight: bold; color: #333; display: block; margin-bottom: 5px; }\n    .nsbi-input { width: 100%; padding: 10px 12px; border-radius: 8px; border: 1px solid #ccc; font-size: 15px !important; font-family: inherit; box-sizing: border-box; background-color: #ffffff; color: #222; -webkit-appearance: none; appearance: none; }\n    select.nsbi-input {\n        background-image: url(\"data:image\/svg+xml;utf8,<svg fill='%23555555' height='24' viewBox='0 0 24 24' width='24' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M7 10l5 5 5-5z'\/><path d='M0 0h24v24H0z' fill='none'\/><\/svg>\");\n        background-repeat: no-repeat;\n        background-position: right 10px center;\n        padding-right: 30px;\n        cursor: pointer;\n    }\n    .nsbi-input:focus { border-color: #2e7d32; outline: none; box-shadow: 0 0 0 2px rgba(46,125,50,0.1); }\n    .nsbi-input::placeholder { font-size: 14px !important; color: #999; opacity: 1; }\n    .nsbi-group-title { text-align: left; font-weight: bold; font-size: 11px; text-transform: uppercase; color: #777; margin: 12px 0 5px 0; letter-spacing: 0.5px; }\n    .nsbi-btn-group { display: flex; gap: 6px; }\n    .nsbi-grid-lights { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }\n    .nsbi-grid-full { grid-column: span 2; }\n    .nsbi-select-btn { flex: 1; padding: 10px 4px; border: 2px solid #ccc; background: #fff; color: #333; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.1s ease; touch-action: manipulation; font-family: inherit; }\n    .nsbi-select-btn.active { border-color: #2e7d32; background: #e8f5e9; color: #1b5e20; }\n    \n    .nsbi-live-preview {\n        background-color: #ffffff;\n        border: 2px solid #2e7d32;\n        border-radius: 10px;\n        padding: 10px 15px;\n        margin: 15px 0 10px 0;\n        font-family: monospace, monospace;\n        font-size: 16px;\n        font-weight: bold;\n        color: #111;\n        text-align: center;\n        line-height: 1.5;\n        box-shadow: 0 2px 5px rgba(0,0,0,0.05);\n    }\n\n    .nsbi-btn { display: block; width: 100%; padding: 12px 0; border: none; border-radius: 8px; font-size: 15px; font-weight: bold; cursor: pointer; margin-top: 8px; transition: opacity 0.2s; touch-action: manipulation; font-family: inherit; }\n    .nsbi-btn:active { opacity: 0.8; }\n    .nsbi-btn-submit { background-color: #2e7d32; color: white; margin-top: 15px; }\n    .nsbi-btn-info { background-color: transparent; color: #1565c0; border: 2px solid #1565c0; margin-top: 10px; }\n    .nsbi-btn-info-small { background-color: #e3f2fd; color: #1565c0; border: 1px solid #90caf9; border-radius: 6px; padding: 6px 10px; font-size: 12px; font-weight: bold; cursor: pointer; margin-left: 10px; }\n    .nsbi-btn-resume-main { background-color: #1976d2; color: white; box-shadow: 0 4px 8px rgba(25,118,210,0.2); }\n    .nsbi-btn-add { background-color: #1b5e20; color: white; font-size: 16px; padding: 14px 0; margin-top: 5px; box-shadow: 0 4px 8px rgba(27,94,32,0.15); }\n    .nsbi-control-row { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }\n    .nsbi-btn-undo { background-color: #757575; color: white; padding: 8px 12px; font-size: 12px; width: auto; margin: 0; }\n    .nsbi-mini-counter { font-size: 14px; color: #444; }\n    .nsbi-btn-finish { background-color: #f57c00; color: white; font-size: 14px; padding: 10px 0; }\n    .nsbi-success-badge { background-color: #e8f5e9; color: #1b5e20; padding: 10px; border-radius: 6px; font-weight: bold; margin-bottom: 12px; font-size: 15px; border: 1px solid #a5d6a7; }\n    .nsbi-meta-info { font-size: 12px; color: #555; background: #e0f2f1; padding: 8px 12px; border-radius: 6px; margin-bottom: 15px; line-height: 1.4; text-align: left; border: 1px solid #b2dfdb; }\n    .nsbi-table-wrapper { width: 100%; overflow-x: auto; margin: 15px 0; border-radius: 6px; border: 1px solid #ddd; }\n    .nsbi-table-report { width: 100%; border-collapse: collapse; font-size: 11px; text-align: left; min-width: 450px; }\n    .nsbi-table-report th, .nsbi-table-report td { padding: 8px 4px; border: 1px solid #ddd; text-align: center; }\n    .nsbi-table-report th { background-color: #f5f5f7; font-weight: bold; color: #333; }\n    .nsbi-table-report td:first-child { text-align: left; font-weight: bold; background-color: #fafafa; min-width: 100px; }\n    .row-total { background-color: #f1f8e9; font-weight: bold; }\n    .total-row td { font-weight: bold; background-color: #e8f5e9; color: #1b5e20; border-top: 2px solid #2e7d32; }\n    .nsbi-btn-export { background-color: #0288d1; color: white; font-size: 15px; padding: 14px 0; margin-top: 12px; }\n    .nsbi-btn-resume { background-color: #757575; color: white; font-size: 12px; padding: 8px 0; }\n    .nsbi-btn-reset { background-color: #c62828; color: white; font-size: 12px; padding: 8px 0; margin-top: 25px; }\n<\/style>\n\n<script>\n    let podaci = [];\n    let volonter1 = \"\";\n    let volonter2 = \"\";\n    let email = \"\";\n    let posaljiKopiju = true;\n    let lokacija = \"\";\n    let datumSession = \"\";\n    let vremeOdSession = \"\";\n    let vremeDoSession = \"\";\n    let prethodniEkran = \"nsbi-setup\"; \n\n    let vremeMeteo = { temp: \"Toplo \/ Prijatno\", prilike: \"Suvo \/ Sun\u010dano\" };\n    let trenutniUnos = { pol: \"M\", svetlo: \"Oba svetla (pravilno)\", uzrast: \"Stariji od 18\", tip: \"Biciklista\" };\n\n    window.addEventListener('DOMContentLoaded', () => {\n        let danas = new Date();\n        let dd = String(danas.getDate()).padStart(2, '0');\n        let mm = String(danas.getMonth() + 1).padStart(2, '0');\n        let yyyy = danas.getFullYear();\n        document.getElementById('nsbi-datum').value = `${yyyy}-${mm}-${dd}`;\n\n        let hh = danas.getHours();\n        document.getElementById('nsbi-vreme-od').value = `${String(hh).padStart(2, '0')}:00`;\n        document.getElementById('nsbi-vreme-do').value = `${String((hh + 2) % 24).padStart(2, '0')}:00`;\n\n        let sacuvaniPodaci = localStorage.getItem('nsbi_podaci');\n        let sacuvaniSetup = localStorage.getItem('nsbi_setup');\n        \n        if (sacuvaniPodaci && sacuvaniSetup) {\n            let p = JSON.parse(sacuvaniPodaci);\n            if(p.length > 0) {\n                document.getElementById('btn-nastavi').style.display = 'block';\n            }\n        }\n    });\n\n    function proveriLokaciju(vrednost) {\n        let customInputContainer = document.getElementById('nsbi-druga-lokacija-container');\n        if (vrednost === 'drugo') {\n            customInputContainer.style.display = 'block';\n            document.getElementById('nsbi-lokacija-custom').focus();\n        } else {\n            customInputContainer.style.display = 'none';\n        }\n    }\n\n    function zapocniSesiju() {\n        volonter1 = document.getElementById('nsbi-volonter1').value.trim();\n        volonter2 = document.getElementById('nsbi-volonter2').value.trim();\n        email = document.getElementById('nsbi-email').value.trim();\n        posaljiKopiju = document.getElementById('nsbi-posalji-kopiju').checked;\n        \n        let selectLokacija = document.getElementById('nsbi-lokacija-select').value;\n        let customLokacija = document.getElementById('nsbi-lokacija-custom').value.trim();\n\n        datumSession = document.getElementById('nsbi-datum').value;\n        vremeOdSession = document.getElementById('nsbi-vreme-od').value;\n        vremeDoSession = document.getElementById('nsbi-vreme-do').value;\n\n        if (!volonter1) {\n            alert(\"Polje 'Volonter (Upisuje)' je obavezno.\");\n            document.getElementById('nsbi-volonter1').focus();\n            return;\n        }\n        if (!volonter2) {\n            alert(\"Polje 'Volonter (Osmatra)' je obavezno.\");\n            document.getElementById('nsbi-volonter2').focus();\n            return;\n        }\n        if (!email) {\n            alert(\"E-mail je obavezan.\");\n            document.getElementById('nsbi-email').focus();\n            return;\n        }\n        let emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n        if (!emailRegex.test(email)) {\n            alert(\"Unesite ispravnu e-mail adresu.\");\n            document.getElementById('nsbi-email').focus();\n            return;\n        }\n        if (!selectLokacija) {\n            alert(\"Izaberite lokaciju sa spiska.\");\n            document.getElementById('nsbi-lokacija-select').focus();\n            return;\n        }\n        if (selectLokacija === 'drugo') {\n            if (!customLokacija) {\n                alert(\"Upi\u0161ite naziv nove lokacije.\");\n                document.getElementById('nsbi-lokacija-custom').focus();\n                return;\n            }\n            lokacija = customLokacija;\n        } else {\n            lokacija = selectLokacija;\n        }\n\n        if (!datumSession || !vremeOdSession || !vremeDoSession) {\n            alert(\"Datum i vreme su obavezni.\");\n            return;\n        }\n\n        podaci = [];\n        cuvajUMemoriji();\n        prikaziBrojac();\n    }\n\n    function nastaviPrethodno() {\n        let sacuvaniPodaci = JSON.parse(localStorage.getItem('nsbi_podaci'));\n        let sacuvaniSetup = JSON.parse(localStorage.getItem('nsbi_setup'));\n\n        podaci = sacuvaniPodaci;\n        volonter1 = sacuvaniSetup.volonter1 || sacuvaniSetup.volonter || \"\";\n        volonter2 = sacuvaniSetup.volonter2 || \"\";\n        email = sacuvaniSetup.email || \"\";\n        posaljiKopiju = sacuvaniSetup.posaljiKopiju !== undefined ? sacuvaniSetup.posaljiKopiju : true;\n        lokacija = sacuvaniSetup.lokacija;\n        datumSession = sacuvaniSetup.datumSession;\n        vremeOdSession = sacuvaniSetup.vremeOdSession;\n        vremeDoSession = sacuvaniSetup.vremeDoSession;\n\n        document.getElementById('nsbi-volonter1').value = volonter1;\n        document.getElementById('nsbi-volonter2').value = volonter2;\n        document.getElementById('nsbi-email').value = email;\n        document.getElementById('nsbi-datum').value = datumSession;\n        document.getElementById('nsbi-vreme-od').value = vremeOdSession;\n        document.getElementById('nsbi-vreme-do').value = vremeDoSession;\n\n        let selectElement = document.getElementById('nsbi-lokacija-select');\n        let options = Array.from(selectElement.options).map(opt => opt.value);\n        \n        if (options.includes(lokacija)) {\n            selectElement.value = lokacija;\n            document.getElementById('nsbi-druga-lokacija-container').style.display = 'none';\n        } else {\n            selectElement.value = 'drugo';\n            document.getElementById('nsbi-druga-lokacija-container').style.display = 'block';\n            document.getElementById('nsbi-lokacija-custom').value = lokacija;\n        }\n\n        prikaziBrojac();\n    }\n\n    function azurirajLivePreview() {\n        let container = document.getElementById('nsbi-live-preview');\n        if (!container) return;\n\n        let polNaziv = trenutniUnos.pol === 'M' ? 'Mu\u0161karac' : '\u017dena';\n        \n        container.innerHTML = `\n            <div>${polNaziv}<\/div>\n            <div>${trenutniUnos.svetlo}<\/div>\n            <div>${trenutniUnos.tip}<\/div>\n        `;\n    }\n\n    function prikaziBrojac() {\n        document.getElementById('nsbi-setup').style.display = 'none';\n        document.getElementById('nsbi-counter-section').style.display = 'block';\n        \n        let datDelovi = datumSession.split('-');\n        let lepsiDatum = datDelovi.length === 3 ? `${datDelovi[2]}.${datDelovi[1]}.${datDelovi[0]}.` : datumSession;\n        let imenaVolontera = volonter2 !== \"Nije naveden\" && volonter2 !== \"\" ? `${volonter1} & ${volonter2}` : volonter1;\n\n        document.getElementById('nsbi-info-prikaz').innerHTML = `\ud83d\udccd <strong>${lokacija}<\/strong><br>\ud83d\udcc5 <strong>${lepsiDatum}<\/strong> (${vremeOdSession}-${vremeDoSession}) | \ud83d\udc65 <strong>${imenaVolontera}<\/strong>`;\n        document.getElementById('nsbi-cnt-total-live').innerText = podaci.length;\n\n        azurirajLivePreview();\n    }\n\n    function otvoriBrzuStatistiku() {\n        const s = [\"Oba svetla (pravilno)\", \"Samo prednje belo\", \"Samo zadnje crveno\", \"Pome\u0161ana svetla\", \"Bez svetala\"];\n        \n        document.getElementById('qs-tot-sve').innerText = podaci.length;\n        document.getElementById('qs-tot-sve-bottom').innerText = podaci.length;\n\n        ['m','z','g','d'].forEach(pref => {\n            let k1 = pref==='m'||pref==='z' ? 'pol' : 'tip';\n            let v1 = pref==='m'?'M':pref==='z'?'\u017d':pref==='g'?'Gra\u0111anin':'Dostavlja\u010d';\n            document.getElementById(`qs-${pref}-oba`).innerText = countMatrix(k1, v1, 'svetlo', s[0]);\n            document.getElementById(`qs-${pref}-prednje`).innerText = countMatrix(k1, v1, 'svetlo', s[1]);\n            document.getElementById(`qs-${pref}-zadnje`).innerText = countMatrix(k1, v1, 'svetlo', s[2]);\n            document.getElementById(`qs-${pref}-pom`).innerText = countMatrix(k1, v1, 'svetlo', s[3]);\n            document.getElementById(`qs-${pref}-bez`).innerText = countMatrix(k1, v1, 'svetlo', s[4]);\n            document.getElementById(`qs-${pref}-tot`).innerText = countTotal(k1, v1);\n        });\n\n        document.getElementById('qs-tot-oba').innerText = countTotal('svetlo', s[0]);\n        document.getElementById('qs-tot-prednje').innerText = countTotal('svetlo', s[1]);\n        document.getElementById('qs-tot-zadnje').innerText = countTotal('svetlo', s[2]);\n        document.getElementById('qs-tot-pom').innerText = countTotal('svetlo', s[3]);\n        document.getElementById('qs-tot-bez').innerText = countTotal('svetlo', s[4]);\n\n        document.getElementById('nsbi-counter-section').style.display = 'none';\n        document.getElementById('nsbi-quick-stats-section').style.display = 'block';\n    }\n\n    function zatvoriBrzuStatistiku() {\n        document.getElementById('nsbi-quick-stats-section').style.display = 'none';\n        document.getElementById('nsbi-counter-section').style.display = 'block';\n    }\n\n    function otvoriUputstvo(odakle) {\n        prethodniEkran = odakle === 'setup' ? 'nsbi-setup' : 'nsbi-counter-section';\n        document.getElementById('nsbi-setup').style.display = 'none';\n        document.getElementById('nsbi-counter-section').style.display = 'none';\n        document.getElementById('nsbi-instructions-section').style.display = 'block';\n    }\n\n    function zatvoriUputstvo() {\n        document.getElementById('nsbi-instructions-section').style.display = 'none';\n        document.getElementById(prethodniEkran).style.display = 'block';\n    }\n\n    function selektuj(kategorija, vrednost) {\n        trenutniUnos[kategorija] = vrednost;\n        \n        let IDs = {\n            pol: { 'M': 'pol-M', '\u017d': 'pol-\u017d' },\n            uzrast: { 'Mla\u0111i od 18': 'uzrast-Mladi', 'Stariji od 18': 'uzrast-Stariji' },\n            tip: { 'Biciklista': 'tip-Biciklista', 'Gra\u0111anin': 'tip-Biciklista', 'Dostavlja\u010d': 'tip-Dostavlja\u010d', 'El. trotinet': 'tip-Trotinet', 'El. skuter': 'tip-Skuter' },\n            svetlo: { 'Oba svetla (pravilno)': 'svetlo-Oba', 'Samo prednje belo': 'svetlo-Prednje', 'Samo zadnje crveno': 'svetlo-Zadnje', 'Pome\u0161ana svetla': 'svetlo-Pomesana', 'Bez svetala': 'svetlo-Bez' }\n        };\n\n        if (IDs[kategorija]) {\n            Object.values(IDs[kategorija]).forEach(id => {\n                let el = document.getElementById(id);\n                if (el) el.classList.remove('active');\n            });\n            let targetId = IDs[kategorija][vrednost];\n            if (targetId) {\n                let targetEl = document.getElementById(targetId);\n                if (targetEl) targetEl.classList.add('active');\n            }\n        }\n        \n        azurirajLivePreview();\n\n        if (navigator.vibrate) navigator.vibrate(15);\n    }\n\n    function evidentiraj() {\n        evidentirajBiciklistu();\n    }\n\n    function evidentirajBiciklistu() {\n        let tacnoVremeUnosa = new Date().toLocaleTimeString('sr-RS');\n        podaci.push({\n            volonter1, volonter2, email, lokacija, datum: datumSession, vremeOd: vremeOdSession, vremeDo: vremeDoSession, vremeUnosa: tacnoVremeUnosa,\n            pol: trenutniUnos.pol, svetlo: trenutniUnos.svetlo, uzrast: trenutniUnos.uzrast, tip: trenutniUnos.tip\n        });\n        document.getElementById('nsbi-cnt-total-live').innerText = podaci.length;\n        cuvajUMemoriji();\n        if (navigator.vibrate) navigator.vibrate([30, 20, 30]);\n    }\n\n    function ponistiPoslednje() {\n        if (podaci.length > 0) {\n            podaci.pop();\n            document.getElementById('nsbi-cnt-total-live').innerText = podaci.length;\n            cuvajUMemoriji();\n        } else {\n            alert(\"Nema unosa za poni\u0161tavanje!\");\n        }\n    }\n\n    function cuvajUMemoriji() {\n        localStorage.setItem('nsbi_podaci', JSON.stringify(podaci));\n        localStorage.setItem('nsbi_setup', JSON.stringify({ volonter1, volonter2, email, posaljiKopiju, lokacija, datumSession, vremeOdSession, vremeDoSession }));\n    }\n\n    function otvoriVremenskeUslove() {\n        if (podaci.length === 0) { alert(\"Niste izbrojali nijednog biciklistu jo\u0161 uvek!\"); return; }\n        document.getElementById('nsbi-counter-section').style.display = 'none';\n        document.getElementById('nsbi-weather-section').style.display = 'block';\n    }\n\n    function selektujVreme(kategorija, vrednost) {\n        vremeMeteo[kategorija] = vrednost;\n        let IDs = {\n            temp: { 'Toplo \/ Prijatno': 'temp-Toplo', 'Sve\u017ee \/ Prohladno': 'temp-Sveze', 'Hladno \/ Zima': 'temp-Hladno' },\n            prilike: { 'Suvo \/ Sun\u010dano': 'prilike-Suvo', 'Obla\u010dno': 'prilike-Oblacno', 'Ki\u0161ovito': 'prilike-Kisa', 'Sneg': 'prilike-Sneg', 'Jak vetar \/ Ko\u0161ava': 'prilike-Vetrovito' }\n        };\n        if (IDs[kategorija]) {\n            Object.values(IDs[kategorija]).forEach(id => {\n                let el = document.getElementById(id);\n                if (el) el.classList.remove('active');\n            });\n            let targetId = IDs[kategorija][vrednost];\n            if (targetId) {\n                let targetEl = document.getElementById(targetId);\n                if (targetEl) targetEl.classList.add('active');\n            }\n        }\n        if (navigator.vibrate) navigator.vibrate(15);\n    }\n\n    function potvrdiVremeIPrikaziIzvestaj() {\n        document.getElementById('nsbi-weather-section').style.display = 'none';\n        prikaziIzvestaj();\n        posaljiNaMailAutomatski();\n    }\n\n    function countMatrix(k1, v1, k2, v2) { \n        return podaci.filter(p => {\n            let match1 = (p[k1] === v1) || (k1 === 'tip' && v1 === 'Gra\u0111anin' && (p[k1] === 'Biciklista' || p[k1] === 'Gra\u0111anin'));\n            return match1 && p[k2] === v2;\n        }).length; \n    }\n\n    function countTotal(k, v) { \n        return podaci.filter(p => (p[k] === v) || (k === 'tip' && v === 'Gra\u0111anin' && (p[k] === 'Biciklista' || p[k] === 'Gra\u0111anin'))).length; \n    }\n\n    function prikaziIzvestaj() {\n        document.getElementById('nsbi-report-section').style.display = 'block';\n        let datDelovi = datumSession.split('-');\n        let lepsiDatum = datDelovi.length === 3 ? `${datDelovi[2]}.${datDelovi[1]}.${datDelovi[0]}.` : datumSession;\n        let imenaVolontera = `${volonter1} & ${volonter2}`;\n\n        document.getElementById('nsbi-report-meta').innerHTML = `\ud83d\udccd <strong>${lokacija}<\/strong> | \ud83d\udcc5 <strong>${lepsiDatum}<\/strong> (${vremeOdSession}-${vremeDoSession})<br>\ud83d\udc65 Volonteri: <strong>${imenaVolontera}<\/strong><br>\ud83c\udf24\ufe0f Uslovi: <strong>${vremeMeteo.temp}<\/strong> | <strong>${vremeMeteo.prilike}<\/strong>`;\n\n        const s = [\"Oba svetla (pravilno)\", \"Samo prednje belo\", \"Samo zadnje crveno\", \"Pome\u0161ana svetla\", \"Bez svetala\"];\n        \n        ['m','z','u18','o18','g','d'].forEach(pref => {\n            let k1 = pref==='m'||pref==='z' ? 'pol' : pref==='u18'||pref==='o18' ? 'uzrast' : 'tip';\n            let v1 = pref==='m'?'M':pref==='z'?'\u017d':pref==='u18'?'Mla\u0111i od 18':pref==='o18'?'Stariji od 18':pref==='g'?'Gra\u0111anin':'Dostavlja\u010d';\n            document.getElementById(`${pref}-oba`).innerText = countMatrix(k1, v1, 'svetlo', s[0]);\n            document.getElementById(`${pref}-prednje`).innerText = countMatrix(k1, v1, 'svetlo', s[1]);\n            document.getElementById(`${pref}-zadnje`).innerText = countMatrix(k1, v1, 'svetlo', s[2]);\n            document.getElementById(`${pref}-pom`).innerText = countMatrix(k1, v1, 'svetlo', s[3]);\n            document.getElementById(`${pref}-bez`).innerText = countMatrix(k1, v1, 'svetlo', s[4]);\n            document.getElementById(`${pref}-tot`).innerText = countTotal(k1, v1);\n        });\n\n        document.getElementById('tot-oba').innerText = countTotal('svetlo', s[0]);\n        document.getElementById('tot-prednje').innerText = countTotal('svetlo', s[1]);\n        document.getElementById('tot-zadnje').innerText = countTotal('svetlo', s[2]);\n        document.getElementById('tot-pom').innerText = countTotal('svetlo', s[3]);\n        document.getElementById('tot-bez').innerText = countTotal('svetlo', s[4]);\n        document.getElementById('tot-sve').innerText = podaci.length;\n    }\n\n    function generisiCSVTekst() {\n        const s = [\"Oba svetla (pravilno)\", \"Samo prednje belo\", \"Samo zadnje crveno\", \"Pome\u0161ana svetla\", \"Bez svetala\"];\n        let m = (k1, v1, k2, v2) => countMatrix(k1, v1, k2, v2);\n        let t = (k, v) => countTotal(k, v);\n        let csv = \"\\uFEFFNSBI IZVE\u0160TAJ O OSVETLJENOSTI BICIKLISTA (SUMARNI REZULTATI)\\n\";\n        csv += `Volonter (Upisuje),\"${volonter1}\"\\nVolonter (Osmatra),\"${volonter2}\"\\nE-mail koordinatora,\"${email}\"\\nLokacija,\"${lokacija}\"\\nDatum,${datumSession}\\nSmena,${vremeOdSession} - ${vremeDoSession}\\nVremenski uslovi,\"${vremeMeteo.temp} | ${vremeMeteo.prilike}\"\\nUkupno izbrojano,${podaci.length}\\n\\n`;\n        csv += \"UNAKRSNA TABELA REZULTATA\\nKategorija,Oba svetla (pravilno),Samo prednje belo,Samo zadnje crveno,Pome\u0161ana svetla,Bez svetala,Ukupno\\n\";\n        csv += `Mu\u0161karci,${m('pol','M','svetlo',s[0])},${m('pol','M','svetlo',s[1])},${m('pol','M','svetlo',s[2])},${m('pol','M','svetlo',s[3])},${m('pol','M','svetlo',s[4])},${t('pol','M')}\\n`;\n        csv += `\u017dene,${m('pol','\u017d','svetlo',s[0])},${m('pol','\u017d','svetlo',s[1])},${m('pol','\u017d','svetlo',s[2])},${m('pol','\u017d','svetlo',s[3])},${m('pol','\u017d','svetlo',s[4])},${t('pol','\u017d')}\\n`;\n        csv += `Mla\u0111i od 18,${m('uzrast','Mla\u0111i od 18','svetlo',s[0])},${m('uzrast','Mla\u0111i od 18','svetlo',s[1])},${m('uzrast','Mla\u0111i od 18','svetlo',s[2])},${m('uzrast','Mla\u0111i od 18','svetlo',s[3])},${m('uzrast','Mla\u0111i od 18','svetlo',s[4])},${t('uzrast','Mla\u0111i od 18')}\\n`;\n        csv += `Stariji od 18,${m('uzrast','Stariji od 18','svetlo',s[0])},${m('uzrast','Stariji od 18','svetlo',s[1])},${m('uzrast','Stariji od 18','svetlo',s[2])},${m('uzrast','Stariji od 18','svetlo',s[3])},${m('uzrast','Stariji od 18','svetlo',s[4])},${t('uzrast','Stariji od 18')}\\n`;\n        csv += `Gra\u0111ani,${m('tip','Gra\u0111anin','svetlo',s[0])},${m('tip','Gra\u0111anin','svetlo',s[1])},${m('tip','Gra\u0111anin','svetlo',s[2])},${m('tip','Gra\u0111anin','svetlo',s[3])},${m('tip','Gra\u0111anin','svetlo',s[4])},${t('tip','Gra\u0111anin')}\\n`;\n        csv += `Dostavlja\u010di,${m('tip','Dostavlja\u010d','svetlo',s[0])},${m('tip','Dostavlja\u010d','svetlo',s[1])},${m('tip','Dostavlja\u010d','svetlo',s[2])},${m('tip','Dostavlja\u010d','svetlo',s[3])},${m('tip','Dostavlja\u010d','svetlo',s[4])},${t('tip','Dostavlja\u010d')}\\n`;\n        csv += `UKUPNO ZBIRNO,${t('svetlo',s[0])},${t('svetlo',s[1])},${t('svetlo',s[2])},${t('svetlo',s[3])},${t('svetlo',s[4])},${podaci.length}\\n\\n\\n`;\n        csv += \"DETALJNA LISTA POJEDINA\u010cNIH UNOSA\\nRedni broj,Vreme unosa,Pol,Uzrast,Tip,Osvetljenost\\n\";\n        podaci.forEach((p, i) => csv += `${i + 1},\"${p.vremeUnosa}\",\"${p.pol}\",\"${p.uzrast}\",\"${p.tip}\",\"${p.svetlo}\"\\n`);\n        return csv;\n    }\n\n    function posaljiNaMailAutomatski() {\n        let statusBadge = document.getElementById('nsbi-mail-status');\n        let imenaVolontera = `${volonter1} i ${volonter2}`;\n\n        fetch('\/wp-json\/nsbi\/v1\/posalji-izvestaj', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify({ \n                csvData: generisiCSVTekst(), \n                lokacija, \n                volonter: imenaVolontera, \n                datum: datumSession,\n                koordinatorEmail: email,\n                posaljiKopiju: posaljiKopiju\n            })\n        }).then(res => res.json()).then(data => {\n            if (data.success) {\n                statusBadge.style.backgroundColor = '#e8f5e9'; statusBadge.style.color = '#1b5e20'; statusBadge.style.borderColor = '#a5d6a7';\n                statusBadge.innerText = '\u2705 Izve\u0161taj uspe\u0161no poslat!';\n            } else throw new Error(\"Gre\u0161ka\");\n        }).catch(err => {\n            statusBadge.style.backgroundColor = '#ffebee'; statusBadge.style.color = '#c62828'; statusBadge.style.borderColor = '#ef9a9a';\n            statusBadge.innerText = '\u274c Automatsko slanje nije uspelo. Preuzmite CSV!';\n        });\n    }\n\n    function preuzmiCSV() {\n        let blob = new Blob([generisiCSVTekst()], { type: 'text\/csv;charset=utf-8;' });\n        let link = document.createElement(\"a\"); link.href = URL.createObjectURL(blob);\n        link.download = `nsbi_izvestaj_${lokacija.replace(\/ \/g, \"_\")}.csv`;\n        document.body.appendChild(link); link.click(); document.body.removeChild(link);\n    }\n\n    function vratiSeNaBrojanje() {\n        document.getElementById('nsbi-report-section').style.display = 'none';\n        document.getElementById('nsbi-counter-section').style.display = 'block';\n    }\n\n    function resetujSve(force = false) {\n        if (force && !confirm(\"Da li ste sigurni da \u017eelite da obri\u0161ete sve podatke i zapo\u010dnete novu smenu?\")) return;\n        podaci = [];\n        localStorage.removeItem('nsbi_podaci');\n        localStorage.removeItem('nsbi_setup');\n        \n        document.getElementById('nsbi-volonter1').value = '';\n        document.getElementById('nsbi-volonter2').value = '';\n        document.getElementById('nsbi-email').value = '';\n        document.getElementById('nsbi-lokacija-select').selectedIndex = 0;\n        document.getElementById('nsbi-druga-lokacija-container').style.display = 'none';\n        document.getElementById('nsbi-lokacija-custom').value = '';\n\n        document.getElementById('nsbi-report-section').style.display = 'none';\n        document.getElementById('nsbi-setup').style.display = 'block';\n        document.getElementById('btn-nastavi').style.display = 'none';\n        \n        let danas = new Date();\n        let dd = String(danas.getDate()).padStart(2, '0');\n        let mm = String(danas.getMonth() + 1).padStart(2, '0');\n        let yyyy = danas.getFullYear();\n        document.getElementById('nsbi-datum').value = `${yyyy}-${mm}-${dd}`;\n    }\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Zdravo. Pred tobom se nalazi aplikacija za brojanje osvetljenosti biciklista. Ukoliko broji\u0161 prvi put, pogledaj korisni\u010dko uputstvo za kori\u0161\u0107enje aplikacije. Sretno sa brojanjem i hvala ti za pomo\u0107. NSBI Broja\u010d&#8230;<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-9210","page","type-page","status-publish","hentry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marko Mazalica","author_link":"https:\/\/nsbi.org.rs\/sr\/author\/m-mazalica"},"uagb_comment_info":0,"uagb_excerpt":"Zdravo. Pred tobom se nalazi aplikacija za brojanje osvetljenosti biciklista. Ukoliko broji\u0161 prvi put, pogledaj korisni\u010dko uputstvo za kori\u0161\u0107enje aplikacije. Sretno sa brojanjem i hvala ti za pomo\u0107. NSBI Broja\u010d...","_links":{"self":[{"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/pages\/9210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/comments?post=9210"}],"version-history":[{"count":32,"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/pages\/9210\/revisions"}],"predecessor-version":[{"id":9775,"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/pages\/9210\/revisions\/9775"}],"wp:attachment":[{"href":"https:\/\/nsbi.org.rs\/sr\/wp-json\/wp\/v2\/media?parent=9210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}