/**
 * 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
	switch (xhr.status)
	{
		case 200:
			return;

		case 500:
			window.alert("Erreur : Vous devez vous authentifier !\n");
			return;

		default:
			window.alert("Une erreur 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)
	{
		window.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();
	}
}
