{"version":3,"names":["FS_KEY","FS_STEPS","FS_DEFAULT","$","sel","root","document","querySelector","$$","Array","prototype","slice","call","querySelectorAll","isLoggedIn","documentElement","classList","contains","syncLoginState","loggedIn","body","toggle","banner","getElementById","hidden","closeSub","panel","getAttribute","setAttribute","closeAllSubs","forEach","initSubmenus","dataset","jnBound","addEventListener","open","initMenuToggle","readStep","stored","parseInt","window","localStorage","getItem","isNaN","Math","min","max","length","applyStep","step","announce","style","setProperty","setItem","String","e","up","down","disabled","status","textContent","initFontSize","btn","jnFs","target","closest","key","focus","init","readyState","setTimeout"],"sources":["theme-7-inline-common-header.js"],"sourcesContent":["\n(function () {\n  \"use strict\";\n\n  var FS_KEY = \"jn-font-size\";\n  var FS_STEPS = [16, 18, 20, 22, 24];   // px, html-elementin fonttikoko\n  var FS_DEFAULT = 1;                    // 18px = Discoursen nykyinen oletus\n\n  function $(sel, root) { return (root || document).querySelector(sel); }\n  function $$(sel, root) { return Array.prototype.slice.call((root || document).querySelectorAll(sel)); }\n\n  /* ---------- 1. Kirjautumistilan tunnistus ---------- */\n\n  function isLoggedIn() {\n    if (document.documentElement.classList.contains(\"anon\")) return false;\n    return !!(\n      document.querySelector(\"#current-user\") ||\n      document.querySelector(\".header-dropdown-toggle.current-user\") ||\n      document.querySelector(\".d-header .current-user\")\n    );\n  }\n\n  function syncLoginState() {\n    var loggedIn = isLoggedIn();\n    document.body.classList.toggle(\"jn-logged-in\", loggedIn);\n    var banner = document.getElementById(\"jn-anon-banner\");\n    if (banner) banner.hidden = loggedIn;\n  }\n\n  /* ---------- 2. Alavalikko (Ikääntymisen ennakointi) ---------- */\n\n  function closeSub(toggle) {\n    var panel = document.getElementById(toggle.getAttribute(\"aria-controls\"));\n    toggle.setAttribute(\"aria-expanded\", \"false\");\n    if (panel) panel.hidden = true;\n  }\n\n  function closeAllSubs() {\n    $$(\".jn-sub-toggle\").forEach(closeSub);\n  }\n\n  function initSubmenus() {\n    $$(\".jn-sub-toggle\").forEach(function (toggle) {\n      if (toggle.dataset.jnBound) return;\n      toggle.dataset.jnBound = \"1\";\n      toggle.addEventListener(\"click\", function () {\n        var panel = document.getElementById(toggle.getAttribute(\"aria-controls\"));\n        var open = toggle.getAttribute(\"aria-expanded\") === \"true\";\n        closeAllSubs();\n        if (!open) {\n          toggle.setAttribute(\"aria-expanded\", \"true\");\n          if (panel) panel.hidden = false;\n        }\n      });\n    });\n  }\n\n  /* ---------- 3. Mobiilivalikko ---------- */\n\n  function initMenuToggle() {\n    var toggle = $(\".jn-menu-toggle\");\n    if (!toggle || toggle.dataset.jnBound) return;\n    toggle.dataset.jnBound = \"1\";\n    toggle.addEventListener(\"click\", function () {\n      var open = toggle.getAttribute(\"aria-expanded\") === \"true\";\n      toggle.setAttribute(\"aria-expanded\", open ? \"false\" : \"true\");\n      document.getElementById(\"jn-header\").classList.toggle(\"jn-nav-open\", !open);\n      if (open) closeAllSubs();\n    });\n  }\n\n  /* ---------- 4. Tekstikoon säätö ---------- */\n\n  function readStep() {\n    var stored = parseInt(window.localStorage.getItem(FS_KEY), 10);\n    return isNaN(stored) ? FS_DEFAULT : Math.min(Math.max(stored, 0), FS_STEPS.length - 1);\n  }\n\n  function applyStep(step, announce) {\n    document.documentElement.style.setProperty(\"font-size\", FS_STEPS[step] + \"px\", \"important\");\n    try { window.localStorage.setItem(FS_KEY, String(step)); } catch (e) {}\n    var up = $('.jn-fs[data-jn-fs=\"up\"]');\n    var down = $('.jn-fs[data-jn-fs=\"down\"]');\n    if (up) up.disabled = step >= FS_STEPS.length - 1;\n    if (down) down.disabled = step <= 0;\n    if (announce) {\n      var status = document.getElementById(\"jn-fs-status\");\n      if (status) status.textContent = \"Tekstin koko \" + FS_STEPS[step] + \" pikseliä.\";\n    }\n  }\n\n  function initFontSize() {\n    applyStep(readStep(), false);\n    $$(\".jn-fs\").forEach(function (btn) {\n      if (btn.dataset.jnBound) return;\n      btn.dataset.jnBound = \"1\";\n      btn.addEventListener(\"click\", function () {\n        var step = readStep() + (btn.dataset.jnFs === \"up\" ? 1 : -1);\n        step = Math.min(Math.max(step, 0), FS_STEPS.length - 1);\n        applyStep(step, true);\n      });\n    });\n  }\n\n  /* ---------- 5. Yleiset kuuntelijat ---------- */\n\n  document.addEventListener(\"click\", function (e) {\n    if (!e.target.closest || !e.target.closest(\".jn-nav__item--sub\")) closeAllSubs();\n  });\n\n  document.addEventListener(\"keydown\", function (e) {\n    if (e.key !== \"Escape\") return;\n    var open = $('.jn-sub-toggle[aria-expanded=\"true\"]');\n    if (open) { closeSub(open); open.focus(); }\n  });\n\n  function init() {\n    syncLoginState();\n    initSubmenus();\n    initMenuToggle();\n    initFontSize();\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n  document.addEventListener(\"discourse:page-changed\", syncLoginState);\n  setTimeout(init, 800);\n  setTimeout(syncLoginState, 2000);\n})();\n"],"mappings":"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","ignoreList":[]}