<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>c-base alien alarm</title>
    <link rel="stylesheet" href="../theme/c-base.css">
    <style>
      body.alarm {
        background-color: hsl(0, 98%, 46%);
        animation: color 0.5s infinite linear alternate;
      }
      h1 {
        text-align: center;
        font-size: 20vmin;
        margin-top: 10vmin;
        white-space: nowrap;
        width: 100vw;
        overflow: hidden;
        text-transform: lowercase;
        line-height: 20vmin;
      }
      h2 {
        text-align: center;
        font-size: 16vmin;
        text-transform: lowercase;
        line-height: 20vmin;
        font-weight: normal;
      }
      body.alarm h1, body.alarm h2 {
        color: black;
      }
      @keyframes color {
        0%, 20% {
          background-color: hsl(35, 98%, 46%);
        }
        80%, 100% {
          background-color: hsl(0, 98%, 46%);
        }
      }
    </style>
  </head>
  <body class="station">
    <h1 id="title">Crash Alarm</h1>
    <h2 id="countdown">12:01</h2>
    <script>
      var fallback = {
        time: '2038-01-19T03:14:07Z',
        message: 'Crash Alarm',
        body: 'station',
      };
      function prettyPrintTime(value) {
        var sec_num = parseInt(value, 10);
        if (sec_num < 0) {
          return '00:00';
        }
        var hours   = Math.floor(sec_num / 3600);
        var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
        var seconds = sec_num - (hours * 3600) - (minutes * 60);

        if (hours   < 10) {hours   = "0"+hours;}
        if (minutes < 10) {minutes = "0"+minutes;}
        if (seconds < 10) {seconds = "0"+seconds;}
        if (hours < 1) {
          return minutes+':'+seconds;
        }
        return hours+':'+minutes+':'+seconds;
      }
      document.addEventListener('DOMContentLoaded', function () {
        var countdown = document.getElementById('countdown');
        var display = {};
        function updateCountDown() {
          var now = new Date();
          var seconds = (display.time.getTime() - now.getTime()) / 1000;
          countdown.innerHTML = prettyPrintTime(seconds);
          if (seconds > 0) {
            setTimeout(updateCountDown, 1000);
          }
        }
        var values = [];
        if (window.location.search) {
          values = decodeURIComponent(window.location.search.substr(1)).split('&');
        }
        display.time = new Date(values[0] || fallback.time);
        display.message = values[1] || fallback.message;
        display.body = values[2] || fallback.body;
        var title = document.getElementById('title');
        document.body.className = display.body;
        title.innerHTML = display.message;
        updateCountDown();
        window.waitUntil = display.time.getTime();
        if (window.parent) {
          setTimeout(() => {
            window.parent.postMessage({
              waitUntil: window.waitUntil,
            }, '*');
          }, 10000);
        }
      });
    </script>
  </body>
</html>