/**
 * Script permettant de définir la méthode JavaScript réalisant des traitements avant l'envoi de la requête Ajax
 */

/**
 * Fonction appelée avant l'envoi de la requête Ajax
 * 
 * @todo Remplacer la fonction findPos par une version JQuery
 * @todo Pb de décalage de 92 pixels l'image si la tétière n'est pas présente
 * 
 * @param XMLHttpRequest xhr object XMLHttpRequest de la connexion en cours
 * @param object cur_elt element du DOM déclenchant l'événement
 * @param string id_requete ID de la requête Ajax, calculé par la fonction appelScriptAction()
 */
function avantEnvoiAction(xhr, cur_elt, id_requete) {
	// Affichage du sablier
	var coords = findPos(cur_elt);
	supprimeMessageConfirmation(id_requete);
	// Si la tétière est présente, on décale de 92 pixel vers le haut
	var offset_y = -12;
	if($("#tetiere-box").get()[0]){
		offset_y = -92;
	}
	$(cur_elt).after("<img id=\"ajax_icone_chargement_"+id_requete+"\" style=\"float:left; position:absolute;  top:"+(coords[1]+offset_y)+"px; left:"+(coords[0]-25)+"px;\" src=\"/tshirt/framework/lib/js/image/chargement.gif\"/>");
}

/**
 * Permet de déterminer la position d'un element de la page
 * 
 * @param object obj element du DOM dont on recherche
 */
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

/**
 * Permet de supprimer les précédent message de confirmation
 * 
 * @param string id_requete ID de la requête Ajax, calculé par la fonction appelScriptAction()
 */
function supprimeMessageConfirmation(id_requete) {
	$("#message_de_confirmation").remove();
	$("#message_de_confirmation_alerte").remove();
	$("#message_de_confirmation_erreur").remove();
}