{"id":1009,"date":"2019-05-26T19:47:44","date_gmt":"2019-05-26T17:47:44","guid":{"rendered":"http:\/\/tozabljak.hola.rs\/?page_id=1009"},"modified":"2026-06-04T14:10:12","modified_gmt":"2026-06-04T12:10:12","slug":"vremenska-prognoza","status":"publish","type":"page","link":"https:\/\/tozabljak.hola.rs\/?page_id=1009","title":{"rendered":"VREMENSKA PROGNOZA"},"content":{"rendered":"\n<div class=\"wp-block-columns header-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:10%\">\n<figure class=\"wp-block-image size-full back-image\"><img loading=\"lazy\" decoding=\"async\" width=\"57\" height=\"57\" src=\"http:\/\/tozabljak.hola.rs\/wp-content\/uploads\/2023\/05\/Back.png\" alt=\"\" class=\"wp-image-3616\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:30%\"><\/div>\n\n\n\n<div class=\"wp-block-column last-header-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n\n<\/div>\n<\/div>\n\n\n\n<section class=\"wp-block-qi-blocks-columns qodef-gutenberg-section qodef--template qodef-block-fd5c50d0 qodef-col-num--1 qodef-col-layout--100 qodef-content--boxed\"><div class=\"qodef-section-background-overlay\"><\/div><div class=\"qodef-gutenberg-row\">\n<div class=\"wp-block-qi-blocks-column qodef-gutenberg-column qodef-block-dc3ecb2d\"><div class=\"qodef-gutenberg-column-inner\">\n<div id=\"weather-zabljak\">\n  <div class=\"w-city\">\u017dabljak<\/div>\n\n  <div class=\"w-hero\">\n    <div class=\"w-temp\" id=\"wTemp\">&#8211;\u00b0<\/div>\n    <div class=\"w-desc\" id=\"wDesc\">U\u010ditavanje prognoze\u2026<\/div>\n    <div class=\"w-meta\" id=\"wMeta\">\u2014<\/div>\n  <\/div>\n\n  <div class=\"w-forecast\" id=\"wForecast\"><\/div>\n  <div class=\"w-updated\" id=\"wUpdated\">\u2014<\/div>\n  <div class=\"w-air\" id=\"wAir\">KVALITET VAZDUHA: \u2014<\/div>\n<\/div>\n\n<style>\n  #weather-zabljak{\n    width:100%;\n    padding:40px 20px;\n    box-sizing:border-box;\n    font-family:Arial, Helvetica, sans-serif;\n    text-align:center;\n  }\n\n  #weather-zabljak .w-city{\n    font-size:70px;\n    font-weight:900;\n    margin-bottom:40px;\n  }\n\n  #weather-zabljak .w-temp{\n    font-size:200px;\n    font-weight:900;\n    line-height:1;\n  }\n\n  #weather-zabljak .w-desc{\n    margin-top:10px;\n    font-size:26px;\n  }\n\n  #weather-zabljak .w-meta{\n    margin-top:6px;\n    font-size:18px;\n    opacity:.8;\n  }\n\n  #weather-zabljak .w-forecast{\n    margin-top:30px;\n    display:flex;\n    gap:20px;\n    flex-wrap:wrap;\n    justify-content:center;\n  }\n\n  #weather-zabljak .w-card{\n    min-width:180px;\n    padding:15px;\n    border-radius:12px;\n    background:rgba(0,0,0,0.05);\n  }\n\n  #weather-zabljak .w-day{\n    font-size:18px;\n    margin-bottom:6px;\n    text-transform:capitalize;\n  }\n\n  #weather-zabljak .w-minmax{\n    font-size:22px;\n    font-weight:700;\n  }\n\n  #weather-zabljak .w-small{\n    font-size:16px;\n    opacity:.7;\n    margin-top:6px;\n  }\n\n  #weather-zabljak .w-updated{\n    margin-top:20px;\n    font-size:14px;\n    opacity:.6;\n  }\n\n  #weather-zabljak .w-air{\n    margin-top:12px;\n    font-size:20px;\n    font-weight:700;\n  }\n\n  #weather-zabljak .w-air.good{ color:#2ecc71; }\n  #weather-zabljak .w-air.moderate{ color:#f1c40f; }\n  #weather-zabljak .w-air.bad{ color:#e74c3c; }\n<\/style>\n\n<script>\n(function () {\n\n  const LAT = 43.1547;\n  const LON = 19.1233;\n\n  const wTemp = document.getElementById(\"wTemp\");\n  const wDesc = document.getElementById(\"wDesc\");\n  const wMeta = document.getElementById(\"wMeta\");\n  const wForecast = document.getElementById(\"wForecast\");\n  const wUpdated = document.getElementById(\"wUpdated\");\n  const wAir = document.getElementById(\"wAir\");\n\n  function weatherCodeToSr(code) {\n    const map = {\n      0:\"Vedro\",1:\"Prete\u017eno vedro\",2:\"Delimi\u010dno obla\u010dno\",3:\"Obla\u010dno\",\n      45:\"Magla\",48:\"Magla\",\n      51:\"Slaba rosulja\",53:\"Umerena rosulja\",55:\"Jaka rosulja\",\n      61:\"Slaba ki\u0161a\",63:\"Umerena ki\u0161a\",65:\"Jaka ki\u0161a\",\n      71:\"Slab sneg\",73:\"Umeren sneg\",75:\"Jak sneg\",\n      80:\"Pljuskovi\",81:\"Pljuskovi\",82:\"Pljuskovi\",\n      95:\"Grmljavina\"\n    };\n    return map[code] || \"\";\n  }\n\n  function dayName(isoDate){\n    const d = new Date(isoDate + \"T00:00:00\");\n    return d.toLocaleDateString(\"sr-Latn-RS\",{weekday:\"long\"});\n  }\n\n  async function fetchWeather(){\n    const url =\n      \"https:\/\/api.open-meteo.com\/v1\/forecast\"\n      + \"?latitude=\" + LAT\n      + \"&longitude=\" + LON\n      + \"&current=temperature_2m,weather_code,wind_speed_10m\"\n      + \"&daily=temperature_2m_max,temperature_2m_min,weather_code\"\n      + \"&timezone=Europe%2FBelgrade\";\n\n    const res = await fetch(url,{cache:\"no-store\"});\n    return res.json();\n  }\n\n  async function fetchAir(){\n    const url =\n      \"https:\/\/air-quality-api.open-meteo.com\/v1\/air-quality\"\n      + \"?latitude=\" + LAT\n      + \"&longitude=\" + LON\n      + \"&hourly=pm2_5\"\n      + \"&timezone=Europe%2FBelgrade\";\n\n    const res = await fetch(url,{cache:\"no-store\"});\n    return res.json();\n  }\n\n  function pm25ToLabel(pm){\n    if(pm <= 12) return {text:\"DOBAR\",cls:\"good\"};\n    if(pm <= 35) return {text:\"UMEREN\",cls:\"moderate\"};\n    return {text:\"LO\u0160\",cls:\"bad\"};\n  }\n\n  async function loadWeather(){\n\n    const data = await fetchWeather();\n\n    const curT = Math.round(data.current.temperature_2m);\n    const code = data.current.weather_code;\n    const wind = Math.round(data.current.wind_speed_10m);\n\n    wTemp.textContent = curT + \"\u00b0\";\n    wDesc.textContent = weatherCodeToSr(code);\n    wMeta.textContent = \"Vetar: \" + wind + \" km\/h\";\n\n    wForecast.innerHTML = \"\";\n\n    for(let i=0;i<3;i++){\n\n      const card = document.createElement(\"div\");\n      card.className = \"w-card\";\n\n      card.innerHTML =\n        '<div class=\"w-day\">'+dayName(data.daily.time[i])+'<\/div>'+\n        '<div class=\"w-minmax\">'+\n        Math.round(data.daily.temperature_2m_min[i])+\"\u00b0 \/ \"+\n        Math.round(data.daily.temperature_2m_max[i])+\"\u00b0\"+\n        '<\/div>'+\n        '<div class=\"w-small\">'+weatherCodeToSr(data.daily.weather_code[i])+'<\/div>';\n\n      wForecast.appendChild(card);\n    }\n\n    wUpdated.textContent = \"A\u017eurirano: \" + new Date().toLocaleString(\"sr-RS\");\n\n    try{\n      const aq = await fetchAir();\n      const pm = aq.hourly.pm2_5[0];\n      const q = pm25ToLabel(pm);\n\n      wAir.className = \"w-air \" + q.cls;\n      wAir.textContent = \"KVALITET VAZDUHA: \" + q.text;\n\n    }catch(e){\n      wAir.textContent = \"KVALITET VAZDUHA: NEMA PODATAKA\";\n    }\n  }\n\n  loadWeather();\n  setInterval(loadWeather,600000);\n\n})();\n<\/script>\n<\/div><\/div>\n<\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1009","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/pages\/1009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1009"}],"version-history":[{"count":81,"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/pages\/1009\/revisions"}],"predecessor-version":[{"id":26701,"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=\/wp\/v2\/pages\/1009\/revisions\/26701"}],"wp:attachment":[{"href":"https:\/\/tozabljak.hola.rs\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}