<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Buzzers</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADuUlEQVRoge2YW2hcVRSGv31ym2YyoraasanFEWtaQW0StAYRB2JRFAKCpm1C6c0bSCg++dKHWH32QX0Sq7QkLZlSxcubUGpS0Je0RtJipZnElIIWhlDmkrn1LB9mjMnkzLnMnDO2MN/LMGuvtde/zl57nz0DderUuaNRbk0ku0JPguoD9QxIJ/Ag0FYcTgALoP5Ayc+InFXjc9Nu5K2qAOnvDODLvoXSDoFscxh+GTiGvu5zdfpSolINFRUg4XAjwYVhhCPAvZUmLyiQGKI+4u/Nn6lz5/KOw50GyJ6HtqJrp4DtTmMtZr6Izh51eu6KkyhHBcjuUD+ixvivt1fzaDfseAm2dMGGjdB2N0RnYGSX3RRxRIZUZO57uwGNdh1ld2gvor40jXn/GPjvsjulEQGU+loGQgdUZG7UToCtFSg++TOUiu/pg3wOpicK35/th/s2wew0XL8KiZuQTTsroUAeeFWNR3+wcrQsQAYf3sItpoDAsrGhAfaPwM5BSMXhoMvboUACTX9KnZr/3cxJMxuUcLiRW0QoFX/404L4bBq++sAduWtpQ9fGJBw2bXPTAgguDFN62uwfgadfhORNODoIk99UK9SMbtoX3jVzKNtCsrfdT9Y/D2xYNva+Aoc/KTz5o0Nw9VfXlJZXKDFSzSH13ZW40XD5Fci0vsNK8QD7jhQ+j39YG/EAotazLvdmueHy/VW4Hqy2nf8WtAY4O+6aPpscAj42GjBsoeLFrEaP2C7qcTU+O1NqNW4h4QXP9ThG+oysxgUobYenWipCeo2sZTaxbPVSSmWoTiNrmRWQjZ5qqYxNRsYye0AFDO3/L4aa7F3mzvAAOvNAs5uKTMghhNQA160cza8S/6LzNrUTD9CEouzLayXWt9EIzSj+BIJVy3LGDfxsVi+TMXOyXgGNAWovHuB+krxm5WRdgDDsipzKeM/Kwfgqcbn0EnR7oB5bq9feJr6Nsf2j3gkXoh1EfnmC2b/WA/BIMMbrvb/RHbI8FR3jeguNTnRxYqLHcGzf81MMPXex0qm9b6GpaAcnJnoQIJNKkFiMEV+MkU4lEeD4Tz1ciHa4mdLdAkYnuwHIpJJklpbQdR3RdbJLKTKpZNGny82U7hSQzjUyNtnFpWvtAOQza/8LyqULtplrQU6e304m7872M9wDOwffqOoYjS/GEF1fnUhrIHBPdf8D/3jyi9oco00tPgNbixepvDlGW1r9AOSKrdTU4lu2uY0nBSjA1+rH55Holdzxb+J6AXXq1KlTFf8AtEULoLOzQvEAAAAASUVORK5CYII=">
    <link rel="stylesheet" href="/style.css">
  </head>
  <body>
    <header>
      <h1>{{room}}</h1>
    </header>

    <main>
      <h2>Oh hi, {{name}} <img src="{{character}}"/></h2>
  
      <button id="buzzer">
        BUZZ
      </button>
    </main>
    
    <div id="messageBox" class="hide">
      
    </div>
    
    <script>
      let socket = new WebSocket(`wss://${window.location.hostname}/{{room}}`);

      socket.onopen = function(e) {
        socket.send(JSON.stringify({
          type: "join",
          data: {
            participantId: '{{participantId}}',
            participantName: '{{participantName}}',
          }
        }));
      };

      socket.onmessage = function(event) {
        let msg = JSON.parse(event.data);
        if (msg.type === "buzz") {
          showMessage(msg.msg);
        }
      };
      
      document.getElementById('buzzer').addEventListener('touchstart', function() {
        beep();
        socket.send(JSON.stringify({ 
          type: "buzz" 
        }));
      });
      
      document.getElementById('buzzer').addEventListener('mousedown', function() {
        beep();
        socket.send(JSON.stringify({ 
          type: "buzz" 
        }));
      });
      
      function showMessage(msg) {
        window.navigator.vibrate(500);
        document.getElementById('buzzer').disabled = true;
        let mb = document.getElementById('messageBox');
        mb.innerHTML = msg;
        mb.classList.remove('hide');
        setTimeout(() => {
          document.getElementById('buzzer').disabled = false;
          mb.classList.add('hide');
        }, 5000)
      }
      
      function beep() {
        window.navigator.vibrate(500);
      }
    </script>
  </body>
</html>