<!DOCTYPE html> <html lang=β€œ{{ page.lang | default: site.lang | default: ”enβ€œ }}”>

{% include head.html %}

<body>

  {{ content }}

  {% include footer.html %}

  <script>

      const colors = ['green', 'amber'];

      let randomColor = (colors) => {
          return colors[Math.floor(Math.random()*colors.length)]
      };

      let saveColor = (color) => {
          localStorage.setItem("monitor", color);
      }

      let savedColor = localStorage.getItem("monitor");
      document.body.className = savedColor ? savedColor : randomColor(colors);

      saveColor(document.body.className);

      let toggleColor = (colors, currentColor) => {
          return colors.find(color => color !== currentColor);
      };
      let colorChanger = () => {
          let p = document.createElement('p');
          let a = document.createElement('a');
          let t = document.createTextNode('change color');
          p.appendChild(a);
          a.appendChild(t);
          a.addEventListener("click", () => {
              beep(100, 1000, 0.5);
              let color = toggleColor(colors, localStorage.getItem("monitor"));
              saveColor(color);
              document.body.className = color;
          });
          return p;
      };

      document.querySelector('div.footer').appendChild(colorChanger());

      var audioCtx = new (window.AudioContext || window.webkitAudioContext || window.audioContext);

      function beep(duration, frequency, volume, type, callback) {
          var oscillator = audioCtx.createOscillator();
          var gainNode = audioCtx.createGain();

          oscillator.connect(gainNode);
          gainNode.connect(audioCtx.destination);

          if (volume){gainNode.gain.value = volume;};
          if (frequency){oscillator.frequency.value = frequency;}
          if (type){oscillator.type = type;}
          if (callback){oscillator.onended = callback;}

          oscillator.start();
          oscillator.stop(audioCtx.currentTime + duration/1000);
      };

  </script>
</body>

</html>