<!DOCTYPE html>

<head>
  <meta charset="UTF-8" />

  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <link
    href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css"
    rel="stylesheet"
    integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor"
    crossorigin="anonymous"
  />
</head>

<body>
  <nav class="navbar navbar-expand-lg bg-light">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">WAVL Tree Visualization</a>
      <button
        class="navbar-toggler"
        type="button"
        data-bs-toggle="collapse"
        data-bs-target="#navbarNav"
        aria-controls="navbarNav"
        aria-expanded="false"
        aria-label="Toggle navigation"
      >
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link active" aria-current="page" href="#"
              >Visualization</a
            >
          </li>
          <li class="nav-item">
            <a class="nav-link" href="./comparator.html">Comparator</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <div class="container px-5 py-5">
    <div class="row">
      <div class="col-auto">
        <form class="row" id="insertTree" onSubmit="return insertCallback()">
          <div class="col-auto">
            <input
              class="form-control"
              id="insertInput"
              type="text"
              placeholder="Number to insert"
              autofocus
            />
          </div>
          <div class="col-auto">
            <button class="btn btn-primary" type="submit">Insert</button>
          </div>
        </form>
      </div>

      <div class="col-auto">
        <form class="row" id="deleteTree" onSubmit="return deleteCallback()">
          <div class="col-auto">
            <input
              class="form-control"
              id="deleteInput"
              type="text"
              placeholder="Number to delete"
            />
          </div>
          <div class="col-auto">
            <input class="btn btn-primary" type="submit" value="Delete" />
          </div>
        </form>
      </div>

      <div class="col-auto">
        <div class="row">
          <h4 class="col-auto">Choose a tree:</h4>
          <div class="btn-group col-auto" role="group">
            <input
              type="radio"
              class="btn-check"
              name="treeSelection"
              id="avlTreeBtn"
              autocomplete="off"
              onclick="switchTree(AVLTree)"
            />
            <label class="btn btn-outline-primary" for="avlTreeBtn">AVL</label>

            <input
              type="radio"
              class="btn-check"
              name="treeSelection"
              id="wavlTreeBtn"
              checked
              autocomplete="off"
              onclick="switchTree(WAVLTree)"
            />
            <label class="btn btn-outline-primary" for="wavlTreeBtn"
              >WAVL</label
            >

            <input
              type="radio"
              class="btn-check"
              name="treeSelection"
              id="ravlTreeBtn"
              autocomplete="off"
              onclick="switchTree(RAVLTree)"
            />
            <label class="btn btn-outline-primary" for="ravlTreeBtn"
              >rAVL</label
            >
          </div>
        </div>
      </div>
    </div>

    <div class="row py-3">
      <h4 class="col-auto">Prepared scenarios</h4>

      <div
        class="col-auto btn-group"
        role="group"
        aria-label="Prepared scenarios"
      >
        <button
          type="button"
          class="btn btn-outline-primary"
          onclick="prepareSingleRotationAfterDelete()"
          data-bs-toggle="tooltip"
          data-bs-placement="auto"
          title="This scenario shows a single rotation being performed after a deletion of key 2 from the prepared tree."
        >
          Single rotation
        </button>
        <button
          type="button"
          class="btn btn-outline-primary"
          onclick="prepareDoubleRotationAfterDelete()"
          data-bs-toggle="tooltip"
          data-bs-placement="auto"
          title="This scenario shows a double rotation being performed after a deletion of key 1 from the prepared tree."
        >
          Double rotation
        </button>
        <button
          type="button"
          class="btn btn-outline-primary"
          onclick="prepareDemotionOfBothNodesDuringDelete()"
          data-bs-toggle="tooltip"
          data-bs-placement="auto"
          title="This scenario shows a demotion of both parent and sibling of the current node after a deletion of key 2 from the prepared tree."
        >
          Demotion of both parent and sibling
        </button>
      </div>
    </div>

    <div class="row py-3">
      <div class="col-3"></div>
      <div class="col alert alert-info" role="alert">
        <h5 class="alert-heading">Current operation</h5>
        <p id="comment"></p>
      </div>
      <div class="col-3"></div>
    </div>

    <div class="row py-3">
      <div class="col" id="graph" style="text-align: center"></div>
    </div>
  </div>

  <script src="https://d3js.org/d3.v5.min.js"></script>
  <script src="https://unpkg.com/@hpcc-js/wasm@0.3.11/dist/index.min.js"></script>
  <script src="https://unpkg.com/d3-graphviz@3.0.5/build/d3-graphviz.js"></script>

  <script src="utils.js"></script>

  <script src="node.js"></script>
  <script src="ranked_tree.js"></script>
  <script src="avl.js"></script>
  <script src="wavl.js"></script>
  <script src="ravl.js"></script>

  <script src="recorder.js"></script>

  <script
    src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2"
    crossorigin="anonymous"
  ></script>
  <script src="visualization.js"></script>
</body>