<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <title>Matrix of Life</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
  <style>
    html {
      width: 100%;
      min-height: 100%;
    }

    #wsMessages {
      font-size: 0.7rem;
    }
  </style>
</head>

<body class="w-100 min-vh-100 d-flex align-items-center py-3" data-bs-theme="dark">

  <div class="container justify-content-center">

    <div class="row">

      <div class="col-lg-4 offset-lg-2">

        <div class="mb-3">

          <div class="card">
            <h5 class="card-header">
              Matrix of Life <div id="spinner" class="spinner-border spinner-border-sm" role="status">
                <span class="visually-hidden">Loading...</span>
              </div>
            </h5>
            <div class="card-body text-center">

              <!-- color mode -->
              <div class="row mb-3 px-3">
                <div class="btn-group" role="group">
                  <input type="radio" class="btn-check btnColorMode" id="btnColorMode_0" data-mode="0" data-control="#collapseColorpicker" autocomplete="off" disabled>
                  <label class="btn btn-outline-primary" for="btnColorMode_0">Static</label>
                
                  <input type="radio" class="btn-check btnColorMode" id="btnColorMode_1" data-mode="1" autocomplete="off" disabled>
                  <label class="btn btn-outline-primary" for="btnColorMode_1">Simple</label>
                
                  <input type="radio" class="btn-check btnColorMode" id="btnColorMode_2" data-mode="2" data-control="#collapseDecay" autocomplete="off" disabled>
                  <label class="btn btn-outline-primary" for="btnColorMode_2">Dynamic</label>
                </div>
              </div>
              <!-- // color mode -->

              <div class="row mb-2 px-3 collapse collapseSettings" id="collapseColorpicker">
                <div id="colorpicker" class="d-flex justify-content-center"></div>
              </div>
              <div class="row mb-2 px-3 collapse collapseSettings" id="collapseDecay">
                <label for="rangeDecay" class="col-form-label">Cell Aging</label>
                <input type="range" class="form-range rangeSetting" id="rangeDecay" data-name="colorDecay" min="1"
                  max="100" steps="1" disabled>
              </div>
              <div class="row mb-2 px-3">
                <label for="rangeBrightness" class="col-form-label">Brightness</label>
                <input type="range" class="form-range rangeSetting" id="rangeBrightness" data-name="brightness" min="1"
                  max="100" steps="1" disabled>
              </div>
              <div class="row mb-2 px-3">
                <label for="rangeSpeed" class="col-form-label">Speed</label>
                <input type="range" class="form-range rangeSetting" id="rangeSpeed" data-name="interval" min="1" max="100"
                  steps="10" disabled>
              </div>
              <div class="row px-3 mt-4">
                <button type="button" class="btn btn-primary btnAction" data-action="addGlider" disabled>Add
                  Glider</button>
              </div>

            </div>

            <!-- card footer -->
            <div class="card-footer text-body-secondary py-3">
              <div class="row">
                <div class="col-6">
                  <button type="button" class="btn btn-sm btn-success btnAction me-1" data-action="loadSettings"
                    disabled>Load</button>
                  <button type="button" class="btn btn-sm btn-success btnAction" data-action="saveSettings"
                    disabled>Save</button>
                </div>
                <div class="col-6 text-end">
                  <button type="button" class="btn btn-sm btn-outline-secondary me-1" data-bs-toggle="collapse"
                    data-bs-target="#debug">Debug</button>
                </div>
              </div>
            </div>
            <!-- // card footer -->

          </div>

        </div> <!-- main -->

      </div>

      <div class="col-lg-4">

        <div class="mb-3" id="scores">

          <div class="card">
            <h5 class="card-header">
              Last Game / Highscores
            </h5>
            <div class="card-body">

              <div class="row mb-1">
                <div class="col col-lg-3 text-end">Games</div>
                <div class="col col-lg-8 pt-1">
                  <div class="progress-stacked">
                    <div class="progress" role="progressbar" style="width: 0%" id="lastGame">
                      <div class="progress-bar progress-bar-striped progress-bar-animated bg-success"></div>
                    </div>
                    <div class="progress" role="progressbar" style="width: 0%" id="hsGames">
                      <div class="progress-bar bg-primary"></div>
                    </div>
                  </div>
                </div>
              </div>

              <div class="row mb-1">
                <div class="col col-lg-3 text-end">Ticks</div>
                <div class="col col-lg-8 pt-1">
                  <div class="progress-stacked">
                    <div class="progress" role="progressbar" style="width: 0%" id="lastTicks">
                      <div class="progress-bar progress-bar-striped progress-bar-animated bg-success"></div>
                    </div>
                    <div class="progress" role="progressbar" style="width: 0%" id="hsTicks">
                      <div class="progress-bar bg-primary"></div>
                    </div>
                  </div>
                </div>
              </div>

              <div class="row">
                <div class="col col-lg-3 text-end">Cells</div>
                <div class="col col-lg-8 pt-1">
                  <div class="progress-stacked">
                    <div class="progress" role="progressbar" style="width: 0%" id="lastCells">
                      <div class="progress-bar progress-bar-striped progress-bar-animated bg-success"></div>
                    </div>
                    <div class="progress" role="progressbar" style="width: 0%" id="hsCells">
                      <div class="progress-bar bg-primary"></div>
                    </div>
                  </div>
                </div>
              </div>

            </div>
          </div>

        </div> <!-- scores -->

        <div class="collapse" id="debug">

          <div class="card">
            <h5 class="card-header">
              Debug
            </h5>
            <div class="card-body">

              <textarea id="wsMessages" class="form-control mb-2 font-monospace" rows="10" spellcheck="false"></textarea>
              <div id="input_div">
                <div class="input-group">
                  <span class="input-group-text">➡️</span>
                  <input type="text" id="prompt" class="form-control form-control-sm font-monospace">
                </div>

              </div>

            </div>

            <div class="card-footer text-body-secondary py-3">
              <div class="row">
                <div class="col-6">
                  <button type="button" class="btn btn-sm btn-warning btnConfirm" data-action="reboot" data-title="Reboot"
                    data-text="reboot?" disabled>Reboot</button>
                </div>
                <div class="col-6 text-end">
                  <button type="button" class="btn btn-sm btn-danger btnConfirm" data-action="reset"
                    data-title="Factory Reset" data-text="erase all highscores and settings?" disabled>Factory
                    Reset</button>
                </div>
              </div>
            </div>

          </div>

        </div> <!-- debug -->

      </div>

    </div>

  </div>

  <div class="modal fade" id="modalConfirm" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content">
        <div class="modal-header">
          <h1 class="modal-title fs-5"></h1>
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body"></div>
        <div class="modal-footer">
          <button type="button" class="btn btn-success" data-bs-dismiss="modal">Cancel</button>
          <button type="button" class="btn btn-danger btnAction" data-action="">Confirm</button>
        </div>
      </div>
    </div>
  </div>


  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
    crossorigin="anonymous"></script>
  <script src="https://code.jquery.com/jquery-3.7.0.min.js"
    integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=" crossorigin="anonymous"></script>
  <script
    src="https://cdn.jsdelivr.net/gh/jbloemendal/jquery-simple-websocket@master/dist/jquery.simple.websocket.min.js"
    crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/@jaames/iro@5.5.2/dist/iro.min.js"
    integrity="sha256-XQju26ya9yEvX99+M2rrLah6xHsjZIGK1LvX/L3RjQ0=" crossorigin="anonymous"></script>
  <script>
    var colorPicker = new iro.ColorPicker('#colorpicker', {
      layout: [
        {
          component: iro.ui.Wheel,
        }
      ]
    });
  </script>
  <script src="main.js"></script>

</body>

</html>