const Cookie = {
  get: name => {
    const c = document.cookie.match(`(?:(?:^|.*; *)${name} *= *([^;]*).*$)|^.*$`)[1];
    if(c) return decodeURIComponent(c);
  },
  set: (name, value, opts = {}) => {
    if(opts.days) {
      opts['max-age'] = opts.days * 60 * 60 * 24;
      delete opts.days;
    }
    opts.SameSite = 'Strict';
    opts = Object.entries(opts).reduce((accumulatedStr, [k, v]) => `${accumulatedStr}; ${k}=${v}`, '');
    document.cookie = name + '=' + encodeURIComponent(value) + opts
  }
};

(() => {
  const acttheme = Cookie.get('theme') ?? "w0bm";
  const themecontainer = document.querySelector("li#themes > ul.dropdown-menu");
  const themes = [...themecontainer.querySelectorAll("li > a")].map(t => t.innerText.toLowerCase());
  if(acttheme !== document.documentElement.getAttribute("theme") && themes.includes(acttheme))
    document.documentElement.setAttribute("theme", acttheme);
  [...themecontainer.querySelectorAll("li > a")].forEach(t => t.addEventListener("click", e => {
    e.preventDefault();
    const _theme = e.target.innerText.toLowerCase();
    document.documentElement.setAttribute("theme", _theme);
    document.querySelector("#themes > a").setAttribute("content", _theme);
    Cookie.set("theme", _theme, { path: "/", days: 360 });
    return false;
  }));

  document.addEventListener("keydown", e => {
    if(e.target.tagName === "INPUT" ||  e.target.tagName === "TEXTAREA")
      return;
    const acttheme = Cookie.get('theme') ?? "w0bm";
    const themes = [...themecontainer.querySelectorAll("li > a")].map(t => t.innerText.toLowerCase());
    const k = e.key;
    if(k === "t") {
      e.preventDefault();
      let i = themes.indexOf(acttheme);
      if(++i >= themes.length)
        i = 0;
      document.documentElement.setAttribute("theme", themes[i]);
      document.querySelector("#themes > a").setAttribute("content", themes[i]);
      Cookie.set("theme", themes[i], { path: "/", days: 360 });
    }
  });

  if(tbuttonfull = document.querySelector('svg#a_tfull')) {
    tbuttonfull.addEventListener('click', e => {
      let f = Cookie.get('fullscreen');
      if(f == 1) {
        Cookie.set('fullscreen', 0);
        document.querySelector('html').setAttribute('res', '');
        tbuttonfull.innerHTML = `<use href="/s/img/iconset.svg#window-maximize"></use>`;
      }
      else {
        Cookie.set('fullscreen', 1);
        document.querySelector('html').setAttribute('res', 'fullscreen');
        tbuttonfull.innerHTML = `<use href="/s/img/iconset.svg#window-minimize"></use>`;
      }
      return true;
    });
  }
})();
