<?php
require_once("config.php");

session_start();

if (!isset($_POST["password"])) {
    header("Location: login.php");
    exit();
}

if ($_POST["password"] != "forallexists") {
    header("Location: login.php?msg=wrong");
    exit();
}
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Graf alternatiu FME</title>

    <meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="manifest" href="manifest.json">

    <link rel="stylesheet" href="css/styles.css">
      
    <!-- Seach Bar CSS files -->  
    <link rel="stylesheet" href="./css/modal.css"></link>
    <link rel="stylesheet" href="./css/autocomplete.css"></link>

    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.blue_grey-blue.min.css" />

    <!-- Apple web app -->
    <link rel="apple-touch-icon" href="img/graf.png">
    <meta name="apple-mobile-web-app-title" content="Graf FME">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
  </head>
  <body>
    <button id="zoomin" class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-js-ripple-effect mdl-button--colored"><i class="material-icons">zoom_in</i></button>
    <button id="zoomout" class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-js-ripple-effect mdl-button--colored"><i class="material-icons">zoom_out</i></button>
    
    <!-- Trigger/Open The Search Box -->
    <button id="searchButton"class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-js-ripple-effect mdl-button--colored">Busca</button>
      
    <div id="backdrop-container" style="display: none;">
      <div id="backdrop"></div>
    </div>
    <div id="dialog" class="mdl-shadow--2dp" style="display: none;">
      <button id="quit-dialog" class="mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect"><i class="material-icons">close</i></button>
      <button id="min-dialog" class="mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect"><i class="material-icons">remove</i></button>
      <div id="dialog-vertex">
        <h2 data-fill="name"></h2>
        <ul>
          <li><b>Any:</b> <span data-fill="year"></span></li>
          <li><b>Sexe:</b> <span data-fill="sex"></span></li>
          <li><b>ID:</b> <span data-fill="id"></span></li>
        </ul>
        <h3>Arestes (<span data-fill="n-edges"></span>):</h3>
        <ul data-fill="edges">
        </ul>
      </div>
      <div id="dialog-edge" style="display: none;">
      </div>
    </div>
    <div id="summary-dialog" class="mdl-shadow--2dp" style="display: none;">
      <button id="quit2-dialog" class="mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect"><i class="material-icons">close</i></button>
      <button id="max-dialog" class="mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect"><i class="material-icons">add</i></button>
      <div id="summary-vertex">
        <h2 data-fill="name"></h2>
        <p><span data-fill="year"></span>, <span data-fill="sex"></span>, <span data-fill="id"></span></p>
      </div>
    </div>
    <!-- Search Box -->
    <div id="searchBox" class="modal">
      <!-- Search Box Content -->
      <div class="modal-content">
        <span class="closeBox">&times;</span>

        <div class="in-box-content">
            <center>
                <form autocomplete="off">
                  <div class="autocomplete">
                    <input id="searchInput" type="text" placeholder="Busca una persona al graf">
                  </div>
                </form>
            </center>
        </div>
      </div>
    </div>
       
    <div id="graf"></div>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/sigma.js/1.2.0/sigma.min.js"></script>
    <script src="js/script.js"></script>
    
    <!-- Search Bar JS files -->
    <script src="./js/modal.js"></script>
    <script src="./js/autocomplete.js" ></script>
    <script>
        /*initiate the autocomplete function on the "searchInput" element,
        and pass along the nodes' names array as possible autocomplete values:*/
        autocomplete(document.getElementById("searchInput"), graf.nodes);
    </script>
      
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
    <!--<script src="js/service-worker.js"></script>-->
  </body>
</html>
