/**
 * Fonction permettant l'affichage du groupe auquel on appartient ainsi que la liste des membre du groupe et le chat du groupe.
 */
function voirGroupe()
{
    $ugm = new User_GroupeManager(connexionDb());
    $groupeId = $ugm->getGroupeIdByUserId($_SESSION['User']);
    $gm = new GroupeManager(connexionDb());
    $am = new ActivityManager(connexionDb());
    $um = new UserManager(connexionDb());
    $amiM = new AmisManager(connexionDb());
    $gmm = new Groupe_MessageManager(connexionDb());
    $groupe = $gm->getGroupeByIdGroupe($groupeId[0]['id_groupe']);
    $leader = $um->getUserById($groupe->getIdLeader());
    $act = $am->getActivityById($groupe->getIdActivity());
    $membres = $ugm->getUserIdByGroupeId($groupe);
    $messages = $gmm->getMessageByGroup($groupe);
    $existe = false;
    $autreMembre = false;
    formGroupe($groupe);
    echo "<div class='titleGroupe'>";
    echo "<div class='photoGroupe'>";
    echo "<img class='photoAct' src='../Images/activite/" . $act->getId() . ".jpg' alt='photoActivite' />";
    echo "</div>";
    echo "<h1 align='center'>" . $act->getLibelle() . "</h1>";
    echo "<h2 align='center'> Chef de groupe : " . $leader->getUserName() . "</h2>";
    echo "</div>";
    echo "<h3 align='center'> Description de votre activité :</h3>";
    echo "<div class='well well-lg'><h4 align='center'>" . $act->getDescription() . "</h4></div>";
    echo "<h3 align='center'> Description de votre groupe : </h3>";
    echo "<div class='well well-lg'><h3 align='center'>" . $groupe->getDescription() . " </h3></div>";
    ?>
    <div class="table-responsive">
    <table class="table table-striped">
        <caption> <h2> Membres du groupe </h2></caption>
        <tr>
            <th> Utilisateur </th>
            <th> Date de dernière connexion</th>
            <th> Ajouter en ami </th>
            <?php 
    if ($groupe->getIdLeader() == $_SESSION['User']->getId()) {
        ?>
                <th> Supprimer du groupe </th>
                <th> Nommer chef de groupe </th>
            <?php 
    }
    ?>
        </tr>
        <?php 
    foreach ($membres as $elem) {
        $user = $um->getUserById($elem['id_user']);
        $id = $user->getId();
        if ($user->getId() != $_SESSION['User']->getId()) {
            $autreMembre = true;
            $amiTest1 = $amiM->getAmisById1AndId2($user->getId(), $_SESSION['User']->getId());
            $amiTest2 = $amiM->getAmisById1AndId2($_SESSION['User']->getId(), $user->getId());
            echo "<tr> <td>" . $user->getUserName() . " </td><td>" . $user->getDateLastConnect() . " </td><td>";
            if ($amiTest1->getIdUser1() == NULL && $amiTest2->getIdUser1() == NULL) {
                echo "<a href='demandeAmi.page.php?membre=" . $user->getId() . "'> Ajouter comme ami </a>";
            } else {
                echo "Vous êtes déjà ami avec cette personne !";
            }
            echo "</td>";
            if ($groupe->getIdLeader() == $_SESSION['User']->getId()) {
                echo "<td><form class='form-horizontal col-sm-12' name='suppression{$id}' action='groupe.page.php?to=voirGroupe' method='post'>";
                echo "<input type='hidden'  name='idMembre{$id}'  value='" . $id . "''>";
                echo "<button class='btn btn-danger col-sm-10' type='submit' id='formulaire' name='supprimerMembre{$id}'>Supprimer ce membre</button>";
                echo "</form>";
                echo "</td>";
                echo "<td><form class='form-horizontal col-sm-12' name='nommerLead{$id}' action='groupe.page.php?to=voirGroupe' method='post'>";
                echo "<input type='hidden'  name='idMembre{$id}'  value='" . $id . "''>";
                echo "<button class='btn btn-success col-sm-10' type='submit' id='formulaire' name='nommerLead{$id}'>Nommer chef de groupe</button>";
                echo "</form>";
                echo "</td>";
            }
            echo "</tr>";
        }
    }
    if (!$autreMembre) {
        echo "<tr> <td> Vous êtes le seul membre du groupe pour le moment !</td></tr>";
    }
    ?>
    </table>
    </div>
    <?php 
    echo "<br> <br>";
    echo "<h2> Messagerie du groupe : </h2><br>";
    echo "<div class='messagerieGroupe'>";
    include "../Form/groupeMessage.form.php";
    echo "<br>";
    ?>
    <div class="table-responsive">
        <table class="table table-striped">
            <tr>
                <th> Utilisateur</th>
                <th> Date </th>
                <th> Message </th>
            </tr>
            <?php 
    foreach ($messages as $elem) {
        $user = $um->getUserById($elem['id_user']);
        echo "<tr> <td>" . $user->getUserName() . " </td><td>" . $elem['date'] . " </td><td>";
        echo $elem['description'];
        echo "</td></tr>";
        $existe = false;
    }
    if ($messages == NULL || $existe) {
        echo "<tr> <td> Aucun message pour le moment !</td></tr>";
    }
    ?>
        </table>
    </div>
    <?php 
    echo "</div>";
}
/**
 * Fonction faisant quitter le groupe d'activité que l'user possédait si il essaye de changer d'activité. Si il était chef
 * de groupe, il passe le lead à un autre membre du groupe ou le supprimer si il était le seul membre de ce groupe.
 */
function leaveGroupe()
{
    require "../Manager/Groupe_InvitationManager.manager.php";
    $ugm = new User_GroupeManager(connexionDb());
    $gmm = new Groupe_MessageManager(connexionDb());
    $gim = new Groupe_InvitationManager(connexionDb());
    $idGr = $ugm->getGroupeIdByUserId($_SESSION['User']);
    if (isset($idGr[0]['id_groupe'])) {
        $groupe = new Groupe(array("id_groupe" => $idGr[0]['id_groupe']));
        if (hasGroupe()) {
            $nom = $_SESSION['User']->getUserName();
            $desc = "L'utilisateur {$nom} a quitté le groupe suite à un changement d'activité.";
            $gmm->addMess($groupe, $_SESSION['User'], $desc);
            $ugm->deleteUserGroupe($_SESSION['User']);
        }
        if (isLeader()) {
            $autreMembre = false;
            $gm = new GroupeManager(connexionDb());
            $tabUser = $ugm->getUserIdByGroupeId($groupe);
            foreach ($tabUser as $elem) {
                if ($elem['id_user'] != $_SESSION['User']->getId()) {
                    if (isset($elem['id_user']) && $elem['id_user'] != 0) {
                        $autreMembre = true;
                        $idNewLeader = $elem['id_user'];
                        $nom = $_SESSION['User']->getUserName();
                        $um = new UserManager(connexionDb());
                        $newLead = $um->getUserById($idNewLeader);
                        $userName = $newLead->getUserName();
                        $desc = "L'utilisateur {$nom} a quitté le groupe suite à un changement d'activité. {$userName} est dorénavant votre nouveau chef de groupe.";
                        $gmm->addMess($groupe, $_SESSION['User'], $desc);
                    }
                }
            }
            if ($autreMembre) {
                $gm->updateLeader($groupe, $idNewLeader);
            } else {
                $ugm->deleteGroupe($groupe);
                $gmm->deleteMessByGroupe($groupe);
                $gim->deleteInvitByGroupeId($groupe);
                $gm->deleteGroupe($_SESSION['User']->getId());
            }
        }
    }
}