<?php
include "script.php";

$refresh_rate = 15; //refresh rate en seconde (en gros on refresh la page toute les 15sec)

if($user['perm'] < 1) {
    header('Location: deco.php');
}

if(isset($_POST['start1'])) {
    $req = $db->prepare("UPDATE ville SET state = ?, time_begin = ? WHERE session = 1");
    $req->execute(array(1, time()));
    header('Refresh: 0');
}
if(isset($_POST['start2'])) {
    $req = $db->prepare("UPDATE ville SET state = ?, time_begin = ? WHERE session = 2");
    $req->execute(array(1, time()));
    header('Refresh: 0');
}

if(isset($_POST['stop1'])) {
    $req = $db->query("UPDATE ville SET state = 2 WHERE session = 1");
    header('Refresh: 0');
}
if(isset($_POST['stop2'])) {
    $req = $db->query("UPDATE ville SET state = 2 WHERE session = 2");
    header('Refresh: 0');
}

if(isset($_POST['reset1'])) {
    if(htmlspecialchars($_POST['code']) == "anti-missclick") {
        $req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 1");
        $req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id < 17");
        header('Refresh: 0');
    }
}
if(isset($_POST['reset2'])) {
    if(htmlspecialchars($_POST['code']) == "anti-missclick") {
        $req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 2");
        $req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id > 16");
        header('Refresh: 0');
    }
}

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Admin / Com'ville</title>
    <link rel="stylesheet" type="text/css" href="com_ville.css" />
</head>
<body>
    <main>
        <?php
        if(isset($_GET['session']) AND !empty($_GET['session']))
        {
            $session = (int) htmlspecialchars($_GET['session']);
            if($session == 1) {
                ?>
                    <a href="ville.php?session=1" class="href_session_selected">Session matin</a>
                    <a href="ville.php?session=2" class="href_session">Session aprem</a>
                    <br>
                    <?php
                    $req = $db->query("SELECT state FROM ville WHERE session = 1");
                    $r = $req -> fetchAll(PDO::FETCH_ASSOC);

                    if($r[0]['state'] == 0) {
                        ?>
                        <font color="green">Session non demarré, </font>
                        <form method="POST">
                            <input type="submit" name="start1" value="Démarrer la session" class="submit_inline"></form>
                        </form>
                        <?php
                    } elseif($r[0]['state'] >= 1) {
                        if($r[0]['state'] == 1) {
                            ?>
                            <font color="orange">Session en cours, </font>
                            <form method="POST">
                                <input type="submit" name="stop1" value="Stopper la session" class="submit_inline"></form>
                            </form>

                            <META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>"> 

                            <?php
                        } elseif($r[0]['state'] == 2) {
                           ?>
                            <font color="red">Session terminé, </font>
                            <form method="POST">
                                <input type="text" name="code" placeholder="anti-missclick" class="input_inline">
                                <input type="submit" name="reset1" value="Reset la session" class="submit_inline"></form>
                            </form>
                            <?php
                        }
                        echo "<br><br><br>";

                        $reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 1");
                        $rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);

                        $reqe = $db->query('SELECT * FROM ville_equipe WHERE id < 17');
                        while($e = $reqe->fetch()) {
                            $temps_init = $e["temps"];
                            $tab_time = NULL;
                            $tab_time = explode(";", $temps_init);
                            $temps_begin = date("H:i:s",$rs[0]['time_begin']);

                            if($temps_init == NULL) {
                                $avancement = (int) 0;
                                $delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
                            } else {
                                $avancement = count($tab_time);
                                $def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
                                $delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);              
                            }

                            //node 0
                        ?>
                        <div class="cmv-progress">
                            <h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
                            <div class="cmv-container">
                                <div class="cmv-step fait">0
                                    <div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
                                </div>

                                <div class="cmv-way fait">
                                    <div class="cmv-relative"><?= $delta_time_0 ?></div>
                                </div>

                                <?php

                                /** Pour une équipe donnée */

                                /** $depart : Le point de départ de cette équipe */
                                $depart = $e['begin'];

                                /** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
                                //$etape = 1;

                                /** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
                                for ($i = 1; $i <= 17; $i++) {

                                    /** $node : Le numéro dans la node à l'emplacement $i
                                     * exemple : si une équipe commence au point 7 alors la première node ($i = 1)
                                     * va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
                                    $node = ($i + $depart - 2) % 17 + 1;

                                    /** $current : À quel index est placé la node correspondante à l'$etape
                                     * exemple : une équipe qui commence au point 17 en est au point 3,
                                     * elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
                                     * puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */

                                    //$current = $etape - $depart + 1;

                                    $current = $avancement+1;

                                    if ($current < 0) {
                                        $current = $current + 17;
                                    }

                                    /** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
                                    $state = '';
                                    if ($i < $current) {
                                        $state = ' fait';
                                    } elseif ($i === $current) {
                                        $state = ' active';
                                    }


                                    echo '<div class="cmv-step'.$state.'">';
                                    echo $node;

                                    if ($i <= $current) {
                                        // --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
                                        if($i == $current) {
                                            echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
                                        } else {
                                            echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
                                        }
                                    }
                                    echo '</div>';

                                    if ($i < 17) {
                                        echo '<div class="cmv-way'.$state.'">';
                                        if ($i < $current) {
                                            if($i < $current-1) {
                                                echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
                                            } else {
                                                echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
                                            }
                                            
                                        }
                                        echo '</div>';
                                    }
                                }

                                ?>

                            </div>

                        </div>
                        <?php
                        } //fin du while e
                    }







            } elseif($session == 2) {




                ?>
                    <a href="ville.php?session=1" class="href_session">Session matin</a>
                    <a href="ville.php?session=2" class="href_session_selected">Session aprem</a>
                    <br>
                    <?php
                    $req = $db->query("SELECT state FROM ville WHERE session = 2");
                    $r = $req -> fetchAll(PDO::FETCH_ASSOC);

                    if($r[0]['state'] == 0) {
                        ?>
                        <font color="green">Session non demarré, </font>
                        <form method="POST">
                            <input type="submit" name="start2" value="Démarrer la session" class="submit_inline"></form>
                        </form>
                        <?php
                    } elseif($r[0]['state'] >= 1) {
                        if($r[0]['state'] == 1) {
                            ?>
                            <font color="orange">Session en cours, </font>
                            <form method="POST">
                                <input type="submit" name="stop2" value="Stopper la session" class="submit_inline"></form>
                            </form>

                            <META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>"> 

                            <?php
                        } elseif($r[0]['state'] == 2) {
                           ?>
                            <font color="red">Session terminé, </font>
                            <form method="POST">
                                <input type="text" name="code" placeholder="anti-missclick" class="input_inline">
                                <input type="submit" name="reset2" value="Reset la session" class="submit_inline"></form>
                            </form>
                            <?php
                        }
                        echo "<br><br><br>";

                        $reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 2");
                        $rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);

                        $reqe = $db->query('SELECT * FROM ville_equipe WHERE id > 16');
                        while($e = $reqe->fetch()) {
                            $temps_init = $e["temps"];
                            $tab_time = NULL;
                            $tab_time = explode(";", $temps_init);
                            $temps_begin = date("H:i:s",$rs[0]['time_begin']);

                            if($temps_init == NULL) {
                                $avancement = (int) 0;
                                $delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
                            } else {
                                $avancement = count($tab_time);
                                $def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
                                $delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);              
                            }

                            //node 0
                        ?>
                        <div class="cmv-progress">
                            <h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
                            <div class="cmv-container">
                                <div class="cmv-step fait">0
                                    <div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
                                </div>

                                <div class="cmv-way fait">
                                    <div class="cmv-relative"><?= $delta_time_0 ?></div>
                                </div>

                                <?php

                                /** Pour une équipe donnée */

                                /** $depart : Le point de départ de cette équipe */
                                $depart = $e['begin'];

                                /** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
                                //$etape = 1;

                                /** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
                                for ($i = 1; $i <= 17; $i++) {

                                    /** $node : Le numéro dans la node à l'emplacement $i
                                     * exemple : si une équipe commence au point 7 alors la première node ($i = 1)
                                     * va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
                                    $node = ($i + $depart - 2) % 17 + 1;

                                    /** $current : À quel index est placé la node correspondante à l'$etape
                                     * exemple : une équipe qui commence au point 17 en est au point 3,
                                     * elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
                                     * puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */

                                    //$current = $etape - $depart + 1;

                                    $current = $avancement+1;

                                    if ($current < 0) {
                                        $current = $current + 17;
                                    }

                                    /** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
                                    $state = '';
                                    if ($i < $current) {
                                        $state = ' fait';
                                    } elseif ($i === $current) {
                                        $state = ' active';
                                    }


                                    echo '<div class="cmv-step'.$state.'">';
                                    echo $node;

                                    if ($i <= $current) {
                                        // --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
                                        if($i == $current) {
                                            echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
                                        } else {
                                            echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
                                        }
                                    }
                                    echo '</div>';

                                    if ($i < 17) {
                                        echo '<div class="cmv-way'.$state.'">';
                                        if ($i < $current) {
                                            if($i < $current-1) {
                                                echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
                                            } else {
                                                echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
                                            }
                                            
                                        }
                                        echo '</div>';
                                    }
                                }

                                ?>

                            </div>

                        </div>
                        <?php
                        } //fin du while e
                    } 



















            } else {
                header('Location: ../error.php');
            }
        } else {
        ?>
            <a href="ville.php?session=1" class="href_session">Session matin</a>

            <a href="ville.php?session=2" class="href_session">Session aprem</a>

            <table class="acces">
                <tr>
                    <th width="10%">ID (db)</td>
                    <th width="70%">Indice</td>
                    <th width="10%">reponse</td>
                    <th width="10%">photos</td>
                </tr>
                <?php
                $req = $db->query('SELECT id, indice, reponse, photo FROM ville_epreuve');
                while($epreuve = $req->fetch()) {
                ?>
                    <tr>
                        <td><?= $epreuve['id'] ?></td>
                        <td><?= $epreuve['indice'] ?></td>
                        <td><?= $epreuve['reponse'] ?></td>
                        <td><?php if(isset($epreuve['photo'])) { ?><img src="../assets/img/com_ville/<?= $epreuve['photo'] ?>" style="height: 100px;"><?php } else { echo "<font color='red'>no photos</font>"; }?></td>
                    </tr>
                <?php } ?>
            </table>

        <?php } ?>
    </main>
</body>
</html>