/**
 * Script permettant de définir les méthodes JavaScript traitant le retour des appels Ajax
 * Sauf le retour OK
 */

/**
 * Fonction appelée pour traiter le retour ko de l'action distante
 *
 * @param XMLHttpRequest xhr object XMLHttpRequest de la connexion en cours
 */
function traiteRetourErreur (xhr) {
	// Traitement des erreurs en fonction des codes HTTP
	// Les codes gérés par la classes ObjControleurAjax sont les suivants : 200, 400, 403, 404, 407 et 500
	if(xhr.status == 500){
		alert("Erreur : Vous devez vous authentifier !\n");
	}else if(xhr.status != 200){
		alert("Une erreur empêche l'exécution de votre action !\n");
	}else{
		// Le status est égal à 200 donc pas de problème mais JQuery appel tout de même cette méthode callback
		// ??????????????
		//alert("Une erreur incompréhensible empêche l'exécution de votre action !\n");
	}
}

/**
 * Fonction appelée pour traiter les retours indépendemment de leur status
 * 
 * @todo comprendre pourquoi cette fonction est appelée mais 
 * dans le cadre d'une requête Ajax renvoyant un code 200 cad OK
 * 
 * @remarks after success and error callbacks are executed
 * @remarks Cette fonction contrôle la validité du format JSON
 * 
 * @param XMLHttpRequest xhr object XMLHttpRequest de la connexion en cours
 * @param string msg Message describing the type of success of the request
 * @param string id_requete ID de la requête Ajax, calculé par la fonction appelScriptAction()
 */
function apresTraiteRetourAction (xhr, msg, id_requete) {

	$("#ajax_icone_chargement_"+id_requete).remove();
	// Test la validitée du formatage de la réponse
	if(xhr.responseText.indexOf("code_retour") != 2){
		alert("Une erreur de donnée empêche l'exécution de votre action !\n");
		// On stop le traitement de la requête Ajax
		xhr.abort();
	}
}
