/*
 * Cette fonction est appelée lors du chargement de la page et appele les divers
 * méthodes permettants de faire un GET de chaque informations necessaire.
 */
function criticalLoarder() {
    console.log("Loader Starting...");
    loader_primaryObjectif();
    loader_secondaryObjectif();
    loader_materials();
}

/*
 * cette méthode appele le GET de l'objectif primaire.
 */
function loader_primaryObjectif() {
    GET_PrimaryUser(getPrimarySuccess, getPrimaryFailed);
}

/*
 * cette méthode est appelée en cas de succes du GET de l'objectif primaire
 * puis appele la méthode permetant de l'afficher.
 * 
 * @param data : l'objectif primaire sous forme de JSON.
 */
function getPrimarySuccess(data) {
    console.log("Primary User Objective Succeded !");
    console.log(JSON.stringify(data));
    printPrimaryObjective(data);
}

/*
 * cette méthode est appelée en cas d'erreur lors du GET de l'objectif primaire.
 * Et print dans la console le résultat du GET.
 * 
 * @param data : le résultat du GET qui est sensé être l'objectif primaire.
 */
function getPrimaryFailed(data) {
    console.log("Primary User Objective Failed.");
    console.log(JSON.stringify(data));
}

/*
 * cette méthode permet d'afficher l'objectif primaire sur la page HTML.
 * 
 * @param primary : l'objectif primaire sous forme de JSON
 */
function printPrimaryObjective(primary) {
    if ((primary !== null)) {
        document.getElementById("image1").setAttribute("src", primary['URL']);
        document.getElementById("name1").innerHTML = primary['nom'];
        document.getElementById("desc1").innerHTML = primary['descriptif'];
    }
}

/*
 * cette méthode appele le GET de l'objectif secondaire.
 */
function loader_secondaryObjectif() {
    GET_SecondaryUser(getSecondarySuccess, getSecondaryFailed);
}

/*
 * cette méthode est appelée en cas de succes du GET de l'objectif secondaire
 * puis appele la méthode permetant de l'afficher.
 * 
 * @param data : l'objectif secondaire sous forme de JSON.
 */
function getSecondarySuccess(data) {
    console.log("Secondary User Objective Succeded !");
    console.log(JSON.stringify(data));
    printSecondaryObjective(data);
}

/*
 * cette méthode est appelée en cas d'erreur lors du GET de l'objectif secondaire.
 * Et print dans la console le résultat du GET.
 * 
 * @param data : le résultat du GET qui est sensé être l'objectif secondaire.
 */
function getSecondaryFailed(data) {
    console.log("Secondary User Objective Failed.");
    console.log(JSON.stringify(data));
}

/*
 * cette méthode permet d'afficher l'objectif secondaire sur la page HTML.
 * 
 * @param primary : l'objectif secondaire sous forme de JSON
 */
function printSecondaryObjective(secondary) {
    if ((secondary !== null)) {
        document.getElementById("image2").setAttribute("src", secondary['URL']);
        document.getElementById("name2").innerHTML = secondary['nom'];
        document.getElementById("desc2").innerHTML = secondary['descriptif'];
    }
}

/*
 * cette méthode appele le GET de les deux matériaux disponibles.
 */
function loader_materials() {
    GET_MaterialsUser(getMaterialsSuccess, getMaterialsFailed);
}

/*
 * cette méthode est appelée en cas de succes du GET des deux matériaux disponibles
 * puis appele la méthode permetant de l'afficher.
 * 
 * @param data : les deux matériaux disponibles sous forme de JSON.
 */
function getMaterialsSuccess(data) {
    console.log("Materials Succeded !");
    console.log(JSON.stringify(data));
    printMaterials(data);
}

/*
 * cette méthode est appelée en cas d'erreur lors du GET des matériaux.
 * Et print dans la console le résultat du GET.
 * 
 * @param data : le résultat du GET qui est sensé être les matériaux.
 */
function getMaterialsFailed(data) {
    console.log("Materials Failed.");
    console.log(JSON.stringify(data));
}

/*
 * cette méthode permet d'afficher les deux matériaux disponible sur la page HTML.
 * 
 * @param primary : les deux matériaux disponible sous forme de JSON
 */
function printMaterials(materialsArray) {
    if ((materialsArray !== null)) {
        var materialNo1 = materialsArray[0];
        document.getElementById("image3").setAttribute("src", materialNo1['URL']);
        document.getElementById("name3").innerHTML = materialNo1['nom'];

        var materialNo2 = materialsArray[1];
        document.getElementById("image4").setAttribute("src", materialNo2['URL']);
        document.getElementById("name4").innerHTML = materialNo2['nom'];
    }
}

/*
 * cette méthode permet de quitter la page.
 */
function doDelog() {
    window.open("index.html", "_self");
}






