/**
* Created by : Julien Dubois.
* Version : 2;
* Update date : 13.05.2022
*/

/**
 * Cette fonction est appelé au chagrment de la page et
 * a pour but de faire un pond vers une requête HTTP qui permettra
 * de charger les stages.
 */
function loadStages() {
  GET_getStage(stageSuccess, stageError);
}

/**
 * Cette fonction est appelé en cas de succès de la méthode GET_getStage().
 * Elle a pour but d'afficher les stages sur l'index.
 *
 * @param data le retour de la méthode GET_getStage() sous format XML.
 * @param text le status de l'opération de GET_getStage().
 * @param jqXHR les données en raw
 */
function stageSuccess(data, text, jqXHR) {
  console.log(data);
  let string = "";
  $(data)
    .find("stage")
    .each(function () {
      string =
        string +
        '<div class="card">' +
        '<img src="images/' +
        $(this).find("imgPath").text() +
        '" alt="Avatar" style="width:100%">' +
        '<div class="container">' +
        '<h2 class="titleCard">' +
        $(this).find("nom").text() +
        "</h2>" +
        "<p>" +
        $(this).find("desc").text() +
        "</p>";
      if (sessionStorage.getItem("logged")) {
        string =
          string +
          '<a href="/DeadlierC3llsProject/Client/stage.html?stage=' +
          $(this).find("pk").text() +
          '"><img src="images/loupe.png" style="width:6%"></a>';
      }
      string = string + "</div>" + "</div>" + "<br>";
    });
  appendToId("#row", string);
}

/**
 * Cette fonction est appelé en cas d'erreur de la méthode GET_getStage().
 * Elle a pour but de mentionner l'erreur.
 *
 * @param request le retour de la méthode GET_getStage() sous format XML.
 * @param status le status de l'opération de GET_getStage().
 * @param error l'erreur complète
 */
function stageError(request, status, error) {
  console.log("Loader FAILED [" + error + "]  status :" + status);
}

/**
 * But de la fonction : ajouter des donées a une balise dans la page.
 *
 * @param id l'id ou les données vont être ajouter
 * @param string les données a ajouter
 */
function appendToId(id, string) {
  $(id).append(string);
}

/**
 * Cette fonction sert a afficher ou non le bouton permettant de
 * se débonnecter.
 */
$(document).ready(function () {
  var path = window.location.pathname;
  var page = path.split("/").pop();
  if (sessionStorage.getItem("logged")) {
    $("#connect").remove();
  } else {
    $("#profile").remove();
    $("#disconnect").remove();
  }
});

/**
 * Cette fontion a pour but de déconnecter l'utilisateur en appellant la
 * méthode GET_logout().
 */
function delogg() {
  GET_logout(logoutSucc, logouterror);
}

/**
 * Cette fonction est appelé en cas de succès de la méthode GET_logout().
 * Elle a pour but de déconnecter l'utilisateur.
 *
 * @param data le retour de la méthode GET_logout() sous format XML.
 * @param text le status de l'opération de GET_logout().
 * @param jqXHR les données en raw
 */
function logoutSucc(data, text, jqXHR) {
  sessionStorage.removeItem("logged");
  sessionStorage.removeItem("pseudo");
  window.open("connexion.html", "_self");
}

/**
 * Cette fonction est appelé en cas d'erreur de la méthode  GET_logout().
 * Elle a pour but de mentionner l'erreur.
 *
 * @param request le retour de la méthode  GET_logout() sous format XML.
 * @param status le status de l'opération de  GET_logout().
 * @param error l'erreur complète
 */
function logouterror(request, status, error) {
  console.log("Logout Failed [" + error + "]");
}
