/**
 * Librairie javascript de la reaction
 *
 * @package       lesite
 * @subpackage    js
 * @author        Kris
 * @author        $Author: kris $
 * @version       $Revision: 19631 $
 * @date          $Date: 2007-04-02 18:32:14 +0200 (lun., 02 avr. 2007) $
 * @id            $Id: login.js 19631 2007-04-02 16:32:14Z kris $
 */



if (undefined===window.MIA)
{
   var MIA = {};
}
MIA.Reaction =
{
   class_name : "Reaction",
   
   annonce_deja_affichee : false,
   
   /**
    * Fonction qui charge le formulaire de la réaction
    *
    * @author     Kris
    * @access     public
    */
   chargerFormulaireReaction : function()
   {  
      if (document.getElementById('item_reactions_ouvertes').value == 1)
		{
         var id_item = document.getElementById("item_id").value;
	      if (MIA.Perso.estEnregistre)
	      {
	         //utilisateur enregistre - formulaire reaction logue
	         MIA.Dom.demanderChargementFragmentFromURL(document.getElementById("mareaction"), MIA.Conf.reaction.form_reaction_logue, MIA.Reaction.updateFormulaireReaction, id_item);
	      }
	      else
	      {
	         //utilisateur anonyme - formulaire reaction non logue
	         MIA.Dom.demanderChargementFragmentFromURL(document.getElementById("mareaction"), MIA.Conf.reaction.form_reaction_nonlogue, MIA.Reaction.updateFormulaireReaction, id_item);
	      }
		}
		else
		{
			if (document.getElementById('item_reactions_ouvertes').value == 2 && MIA.Perso.estEnregistre)
			{
			   var id_item = document.getElementById("item_id").value;
				//utilisateur enregistre - formulaire reaction logue
            MIA.Dom.demanderChargementFragmentFromURL(document.getElementById("mareaction"), MIA.Conf.reaction.form_reaction_logue, MIA.Reaction.updateFormulaireReaction, id_item);
            
            document.getElementById('reactionsInscription').style.display = 'none';
			}
			else
			{
			   //document.getElementById('mareaction').style.padding = '0';
				document.getElementById('mareaction').style.display = 'none';
				/*if (document.getElementById('reactions_navbar') && document.getElementById('item_reactions_ouvertes').value == 0)
				{
				   document.getElementById('reactions_navbar').style.display = 'none';
				}*/
				document.getElementById('maReactionLien').style.display = 'none';
				var elements = YAHOO.util.Dom.getElementsByClassName('respond', 'div', 'page_module');
				for (cpt = 0 ; cpt < elements.length ; cpt ++)
				{
					elements[cpt].style.display = 'none';
				}
			}
		}
   },


   /**
    * Fonction qui modifie le formulaire de la réaction
    *
    * @author     Kris
    * @param      int    id_item    l'identifiant de l'item
    * @access     public
    */
   updateFormulaireReaction : function(id_item)
   {
      //alert('updateFormulaireReaction - ' + id_item);
      var node = document.getElementById('id_item');
      node.setAttribute("value", id_item);

      node = document.getElementById('rea_bouton');
      node.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
      
      if (MIA.Perso.estEnregistre)
      {
        document.getElementById('rea_sign_avatar').setAttribute('src', MIA.Conf.general.medias_url + MIA.Perso.infos.avatar);
        document.getElementById('rea_sign_pseudo').innerHTML = '<b>' + MIA.Perso.infos.pseudo + '</b>';
      }
   },


   /**
    * Fonction qui valide (ou non) le formulaire de reaction
    * S'il est validé, la fonction submit le formulaire
    *
    * @author     Kris
    * @access     public
    */
   verifierFormulaireReaction : function()
   {
      // le formulaire
      var reaction_form = document.form_reaction;
		
		
		var btn_reaction = reaction_form.rea_bouton;
      btn_reaction.onclick = null;


      //----- TEXTE DE LA REACTION
      // Vérification que le champ ne soit pas vide
      var texte = MIA.Tool.trim(reaction_form.rea_texte.value);
		if (texte == "")
      {
         MIA.Reaction.afficherErreurReaction( MIA.Tool.utf8_decode("Vous n'avez pas saisi de texte à votre réaction"));
			btn_reaction.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
         return false;
      }
      // verification de la longueur du champ
      if (texte.length > MIA.Conf.reaction.longueur_texte) 
      {
         MIA.Reaction.afficherErreurReaction( MIA.Tool.utf8_decode("Votre réaction est trop longue - Taille maximale : " + MIA.Conf.reaction.longueur_texte));
			btn_reaction.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
         return false;
      }
      
     /* var anonym_log = false;
      if (reaction_form.sign_type)
      {
         for (i=0; i<reaction_form.sign_type.length; i++) {
            if (reaction_form.sign_type[i].value == "1" && reaction_form.sign_type[i].checked)
               anonym_log = true;
         }
      }*/
      
      //----- PSEUDO DE LA REACTION
      if (reaction_form.rea_pseudo)// || (reaction_form.rea_pseudo_logue && anonym_log)) // Si le pseudo existe ou si réaction anonyme
      {
         var pseudo = reaction_form.rea_pseudo.value; //reaction_form.rea_pseudo ? reaction_form.rea_pseudo.value : reaction_form.rea_pseudo_logue.value;
         pseudo = MIA.Tool.trim(pseudo);
         // Vérification que le champ ne soit pas vide
         if (pseudo == "")
         {
            MIA.Reaction.afficherErreurReaction( MIA.Tool.utf8_decode("Vous n'avez pas saisi de pseudo pour votre réaction"));
				btn_reaction.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
            return false;
         }

         // Vérification de la taille du pseudo
         if (pseudo.length > MIA.Conf.general.pseudo_length_max || pseudo.length < MIA.Conf.general.pseudo_length_min)
         {
            MIA.Reaction.afficherErreurReaction( MIA.Tool.utf8_decode("La taille du pseudo est incorrecte - Taille entre : " + MIA.Conf.general.pseudo_length_min + " et " + MIA.Conf.general.pseudo_length_max + " caractères"));
				btn_reaction.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
            return false;
         }

         // Test de la validite du pseudo
         var message_validation_pseudo = '';
         if(reaction_form.rea_pseudo)
            message_validation_pseudo = MIA.Validator.valideSyntaxeAlias(reaction_form.rea_pseudo);
         else
            message_validation_pseudo = MIA.Validator.valideSyntaxeAlias(reaction_form.rea_pseudo_logue);
         
         if (message_validation_pseudo != "ok")
         {
            MIA.Reaction.afficherErreurReaction(message_validation_pseudo);
				btn_reaction.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
            return false;
         }
      }
		
		//----- LE CAPTCHA - UNIQUEMENT POUR LES MEMBRES NON LOGUES
		if (MIA.Conf.general.afficher_captcha == 1 && !MIA.Perso.estEnregistre)
		{
         // Vérification que le champ ne soit pas vide
			if (reaction_form.cptc_valeur.value == "") {
            MIA.Reaction.afficherErreurReaction(MIA.Tool.utf8_decode("Vous n'avez pas saisi le code de sécurité"));
				return false;
         }
				
			// Vérification du captcha via requête ajax
			var objets = {};
			objets.cptc_valeur =  MIA.AjaxTools.Encoder.sanitizeForJson( reaction_form.cptc_valeur.value );
			objets.cptc_defaut =  MIA.AjaxTools.Encoder.sanitizeForJson( reaction_form.cptc_defaut.value );
			var args = {};
         args.rea_type    = 'reaction';
			var callback = MIA.Reaction._callbackVerifierCaptcha;
         MIA.Communication.appelServeur('process.verifier_captcha', objets, callback, '', args);
         return true;
      }
		else
      {
         reaction_form.submit();
      }
      return true;
   },
	
	
	_callbackVerifierCaptcha : function(args)
	{
		var retObjets = MIA.Communication.traiterReponseServeur( args );
      if (retObjets['error'] == 0)
		{
			if (args.argument.rea_type == 'reaction')
			{
            document.form_reaction.submit();
         }
			else
			{
				document.getElementById('form_' + args.argument.id_reaction).submit();
			}
		}
		else
		{
			if (args.argument.rea_type == 'reaction')
			{
            MIA.Reaction.afficherErreurReaction(MIA.Tool.utf8_decode("Le code de sécurité saisi est incorrect"));
         }
         else
         {
            MIA.Reaction.afficherErreurReponse(MIA.Tool.utf8_decode("Le code de sécurité saisi est incorrect"));
         }
         return false;
		}
	},
   

   /**
    * Fonction qui affiche le message d'erreur "message" à l'utilsiateur
    *
    * @author     Kris
    * @param      string   message  le message d'erreur
    * @access     public
    */
   afficherErreurReaction : function(message)
   {
      //alert(message);
      document.getElementById('error_message_reaction').style.display = "block";
      document.getElementById('error_message_reaction').innerHTML = message;
   },


   /**
    * Fonction qui cree ou supprime le formulaire de reponse à une reaction
    *
    * @author     Kris
    * @param      int      id_reaction       l'identifiant de la reaction mere
    * @param      int      id_item           l'identifiant de l'item
    * @access     public
    */
   afficheFormulaireReponse : function(id_reaction, id_item)
   {
      var url = window.location.host;
      var url_form_logue, url_form_non_logue;
      
      if (document.getElementById('item_reactions_ouvertes').value == 1)
		{
			if (document.getElementById(id_reaction).style.display == "none")
	      {
	         // Affichage du formulaire
	         document.getElementById(id_reaction).style.display = "block";
	         if (MIA.Perso.estEnregistre == true)
	         {
	            MIA.Dom.demanderChargementFragmentFromURL(document.getElementById(id_reaction), MIA.Conf.reaction.form_reponse_logue, MIA.Reaction.updateFormulaireReponse, new Array(id_reaction, id_item));
	         }
	         else
	         {
	            MIA.Dom.demanderChargementFragmentFromURL(document.getElementById(id_reaction), MIA.Conf.reaction.form_reponse_nonlogue, MIA.Reaction.updateFormulaireReponse, new Array(id_reaction, id_item));
	         }
	      }
	      else
	      {
	         // Suppression du formulaire
	         var node = document.getElementById(id_reaction);
	         while (node.firstChild)
	         {
	            node.removeChild(node.firstChild);
	         }
	         document.getElementById(id_reaction).style.display = "none";
	      }
		}
		else
		{
			if (document.getElementById('item_reactions_ouvertes').value == 2 && MIA.Perso.estEnregistre)
			{
				if (document.getElementById(id_reaction).style.display == "none")
				{
					document.getElementById(id_reaction).style.display = "block";
					MIA.Dom.demanderChargementFragmentFromURL(document.getElementById(id_reaction), MIA.Conf.reaction.form_reponse_logue, MIA.Reaction.updateFormulaireReponse, new Array(id_reaction, id_item));
				}
				else
				{
					// Suppression du formulaire
	            var node = document.getElementById(id_reaction);
	            while (node.firstChild)
	            {
	               node.removeChild(node.firstChild);
	            }
	            document.getElementById(id_reaction).style.display = "none";
				}
			}
		}
   },
   
   
   /**
    * Fonction qui modifie le formulaire de la reponse
    *
    * @author     Kris
    * @param      Array   tab_param  2 paramètres : [0]-> identifiant de la reaction / [1]-> identifiant de l'item
    * @access     public
    */
   updateFormulaireReponse : function( tab_param )
   {
      var id_reaction = tab_param[0];
      var id_item     = tab_param[1];

      var node = document.getElementById('form_reponse');
      node.removeAttribute("name");
      node.removeAttribute("id");
      node.setAttribute("name", "form_" + id_reaction);
      node.setAttribute("id", "form_" + id_reaction);
      
      node = document.getElementById('id_rea');
      node.removeAttribute('id');
      node.setAttribute('id', 'id_rea_' + id_reaction);
      node.setAttribute("value", id_reaction);

      node = document.getElementById('id_item');
      node.removeAttribute('id');
      node.setAttribute('id', 'id_item_' + id_reaction);
      node.setAttribute("value", id_item);

      node = document.getElementById('rea_bouton');
      node.removeAttribute('id');
      node.setAttribute('id', 'rea_bouton_' + id_reaction);
      node.onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
      
      node = document.getElementById('rea_texte');
      node.removeAttribute('id');
      node.setAttribute('id', 'rea_texte_' + id_reaction);
      
      node = document.getElementById('error_message_reponse');
      node.removeAttribute('id');
      node.setAttribute('id', 'error_message_reponse_' + id_reaction);
      
      if (MIA.Perso.estEnregistre)
      {
         // L'avatar
         node = document.getElementById('rea_sign_avatar');
         node.removeAttribute('id');
         node.setAttribute('id', 'rea_sign_avatar_' + id_reaction);
         node.setAttribute('src', MIA.Conf.general.medias_url + MIA.Perso.infos.avatar);
         
         // Le pseudo
         node = document.getElementById('rea_sign_pseudo');
         node.removeAttribute('id');
         node.setAttribute('id', 'rea_sign_pseudo_' + id_reaction);
         node.innerHTML = '<b>' + MIA.Perso.infos.pseudo + '</b>';
         
         //document.getElementById('rea_sign_avatar').setAttribute('src', MIA.Conf.general.medias_url + MIA.Perso.infos.avatar);
         //document.getElementById('rea_sign_pseudo').innerHTML = '<b>' + MIA.Perso.infos.pseudo + '</b>';
      }
      else
      {
         node = document.getElementById('rea_pseudo');
         node.removeAttribute('id');
         node.setAttribute('id', 'rea_pseudo_' + id_reaction);
      }
   },


   /**
    * Fonction qui valide (ou non) le formulaire de reponse a une reaction
    * S'il est validé, la fonction submit le formulaire
    *
    * @author     Kris
    * @param      int      id_reaction    l'identifiant de la reaction mere
    * @access     public
    */
   verifierFormulaireReponse : function(id_reaction)
   {
      // On masque le potentiel message d'erreur affiché
      document.getElementById('error_message_reponse_' + id_reaction).style.display = "none";
      document.getElementById('error_message_reponse_' + id_reaction).innerHTML = '';
      
      // le formulaire
      var form = document.getElementById("form_" + id_reaction);
		
      // On désactive le bouton valide
      document.getElementById('rea_bouton_' + id_reaction).onclick = null;

      //----- LE TEXTE DE LA REPONSE
      // Verification des champs vide
		var texte = MIA.Tool.trim(document.getElementById('rea_texte_' + id_reaction).value);
      if (texte == '')
      {
         MIA.Reaction.afficherErreurReponse( MIA.Tool.utf8_decode("Vous n'avez pas saisi de texte à votre réponse"), id_reaction);
         document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
			return false;
      }
      // verification de la longueur du champ
      if (texte.length > MIA.Conf.reaction.longueur_texte)
      {
         MIA.Reaction.afficherErreurReponse( MIA.Tool.utf8_decode("Le texte de votre réponse est trop long - Taille maximale : " + MIA.Conf.reaction.longueur_texte), id_reaction);
         document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
			return false;
      }

      /*var anonym_log = false;
      if (form.sign_type)
      {
         for (i=0; i<form.sign_type.length; i++) {
            if (form.sign_type[i].value == "1" && form.sign_type[i].checked)
               anonym_log = true;
         }
      }*/
      
      //----- LE PSEUDO DE LA REACTION - S'IL EXISTE DANS LE FORMULAIRE
      if (document.getElementById('rea_pseudo_' + id_reaction))// || (form.rea_pseudo_logue && anonym_log))
      {
         var pseudo = document.getElementById('rea_pseudo_' + id_reaction).value;
         pseudo = MIA.Tool.trim(pseudo);
         // Verification du champs vide
         if (pseudo == "")
         {
            MIA.Reaction.afficherErreurReponse( MIA.Tool.utf8_decode("Vous n'avez pas saisi de pseudo pour votre réponse"), id_reaction);
            document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
				return false;
         }

         // Vérification de la taille du champ
         if (pseudo.length < MIA.Conf.general.pseudo_length_min)
         {
            MIA.Reaction.afficherErreurReponse( MIA.Tool.utf8_decode("Le pseudo de votre réponse est trop court - Taille minimale : " + MIA.Conf.general.pseudo_length_min), id_reaction);
            document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
				return false;
         }
			if (pseudo.length > MIA.Conf.general.pseudo_length_max)
			{
				MIA.Reaction.afficherErreurReponse( MIA.Tool.utf8_decode("Le pseudo de votre réponse est trop long - Taille maximale : " + MIA.Conf.reaction.longueur_texte));
				document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
				return false;
			}
			
			// Test de la validite du pseudo
         var message_validation_pseudo = 'ok';
         if(document.getElementById('rea_pseudo_' + id_reaction))
         {
            message_validation_pseudo = MIA.Validator.valideSyntaxeAlias(document.getElementById('rea_pseudo_' + id_reaction));
         }
         //else
         //   message_validation_pseudo = MIA.Validator.valideSyntaxeAlias(form.rea_pseudo);
         
         if (message_validation_pseudo != "ok")
         {
            MIA.Reaction.afficherErreurReponse(message_validation_pseudo, id_reaction);
            document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReaction(); };
            return false;
         }
      }
		
      //----- LE CAPTCHA - UNIQUEMENT POUR LES MEMBRES NON LOGUES
      if (MIA.Conf.general.afficher_captcha == 1 && !MIA.Perso.estEnregistre)
      {
         // Vérification que le champ ne soit pas vide
         if (form.elements['cptc_valeur'].value == "") {
            MIA.Reaction.afficherErreurReponse(MIA.Tool.utf8_decode("Vous n'avez pas saisi le code de sécurité"), id_reaction);
            document.getElementById('rea_bouton_' + id_reaction).onclick = function(evnt){ MIA.Reaction.verifierFormulaireReponse(id_reaction); };
				return false;
         }
            
         // Vérification du captcha via requête ajax
         var objets = {};
         objets.cptc_valeur =  MIA.AjaxTools.Encoder.sanitizeForJson( form.elements['cptc_valeur'].value );
         objets.cptc_defaut =  MIA.AjaxTools.Encoder.sanitizeForJson( form.elements['cptc_defaut'].value );
         var args = {};
			args.id_reaction = id_reaction;
			args.rea_type    = 'reponse';
         var callback = MIA.Reaction._callbackVerifierCaptcha;
         MIA.Communication.appelServeur('process.verifier_captcha', objets, callback, '', args);
         return true;
      }
      else
      {
         form.submit();
      }
      return true;
   },


   /**
    * Fonction qui affiche le message d'erreur "message" à l'utilisateur sur le formulaire de réponse
    *
    * @author     Kris
    * @param      string   message  le message d'erreur
    * @access     public
    */
   afficherErreurReponse : function(message, id_reaction)
   {
      document.getElementById('error_message_reponse_' + id_reaction).style.display = "block";
      document.getElementById('error_message_reponse_' + id_reaction).innerHTML = message;
   },


   /**
    * Fonction qui affiche le message de validation de creation d'une réaction/réponse en etat de modération
    *
    * @author     Kris
    * @access     public
    */
   chargeMessageCreationModeree : function()
   {
      // Création du tableau
      var validateMessage = new Array(2);
      validateMessage['rea-ok'] = 'Votre r&eacute;action est prise en compte. Cependant, elle n\'appara&icirc;tra parmi les autres r&eacute;actions qu\'apr&eacute;s la validation de celle-ci par une personne de notre &eacute;quipe de mod&eacute;ration';
      validateMessage['rep-ok'] = 'Votre r&eacute;ponse &agrave; la r&eacute;action est prise en compte. Cependant, elle n\'appara&icirc;tra parmi les autres r&eacute;ponses qu\'apr&eacute;s la validation de celle-ci par une personne de notre &eacute;quipe de mod&eacute;ration';
      
      var code_validation = MIA.Conf.variablesEnGet.validCode;

      // Le message pour la création d'une réaction
      if (code_validation)
      {
         MIA.Header.afficherMessageTemporaire('information', validateMessage[code_validation]);
      }
   },


   /**
    * Affichage un message d'erreur lorsque l'utilisateur est en quarantaine ou supprimé
    */
   chargeMessageError : function()
   {      
      // Création du tableau
      var errorMessage = new Array(2);
      errorMessage['40aine'] = 'Votre compte a &eacute;t&eacute; plac&eacute; en quarantaine. Vous ne pouvez plus effectuer de r&eacute;action tant que celui-ci ne sera pas d&eacute;bloqu&eacute; par notre &eacute;quipe de mod&eacute;ration.';
      errorMessage['supp']   = 'Votre compte a &eacute;t&eacute; supprim&eacute;. Vous ne pouvez plus effectuer de r&eacute;action.';
          
      var code_error = MIA.Conf.variablesEnGet.errorCode;

      // Le message pour la création d'une réaction
      if (code_error)
      {
         MIA.Header.afficherMessageTemporaire('information', errorMessage[code_error]);
      }
   },
   
   
   /**
    * Fonction parcouant le DOM est affichant les boutons "rejeter" qu'elle trouve
    *
    * @param    string   type_objet   le type d'élément (reaction ou reponse)
    * @param    string   dom_elt      l'id de la div générale dans laquelle rechercher les boutons "rejeter"
    * @author   Kris
    * @access   public
    */
   afficherBoutonRejeter : function(type_objet, dom_elt)
   {
      // Définition du nombre de caractères pour la vérification du nom des divs (refuser_reaction / refuser_reponse)
      var nb_char = 16;
      if (type_objet == 'reponse') nb_char--;
      
      // L'utilisateur peut supprimer les réactions
      if (dom_elt)
      {
         // Nous sommes dans le cas des réponses
         var elts_du_dom = document.getElementById(dom_elt).getElementsByTagName('*');
      }
      else
      {
         // Nous sommes dans le cas des réactions
         var elts_du_dom = document.getElementsByTagName('*');
      }
      
      var id_objet;
     
      for (var i = 0; i < elts_du_dom.length ; i++)
      {
         if ((elts_du_dom[i].id).substr(0, nb_char) == ('refuser_' + type_objet))
         {
            // Il s'agit d'un bouton 'rejeter'
            // On récupère l'identifiant de la réaction
            id_objet = (elts_du_dom[i].id).split('_');
            // Affichage du lien 'rejeter'
            elts_du_dom[i].style.display = 'inline';
            // Ajout de l'action sur le lien 'rejeter'
            YAHOO.util.Event.addListener(document.getElementById('lien_refuser_' + type_objet + '_' + id_objet[2]), "click", MIA.Reaction.rejeterReaction, {id_objet : id_objet[2], type_objet : type_objet});
         }
      }
   },
   
   
   /**
    * Fonction utiliser lors du chargement des blocs de réponses afin de définir si l'utilisateur peut rejeter ou non les réponses
    *
    * @param    string   type_objet   le type d'élément (reaction ou reponse - ici reponse)
    * @param    string   dom_elt      l'id de la div générale dans laquelle ont été insérés les réponses
    * @author   Kris
    * @access   public
    */
   optionRejeterReponses : function(type_objet, dom_elt)
   {
      if (MIA.Item.testDroitsUtilisateur())
      {
         // L'utilisateur a les droits sur le module -> Affichage du lien rejeter
         MIA.Reaction.afficherBoutonRejeter(type_objet, dom_elt);
      }
   },
   
   
   /**
    * Fonction qui rejete une réaction/réponse (appel du traitement)
    *
    * @param    objet   e     obligé pour l'API yahoo
    * @param    objet   obj   l'objet passé en paramètre
    * @author   Kris
    * @access   public
    */
   rejeterReaction : function(e, obj)
   {
      if (MIA.Perso.estEnregistre && MIA.Item.testDroitsUtilisateur())
      {
         // Si l'utilisateur est loggué et qu'il a les droits sur le module
         var objets = {};
         objets.id_objet   = obj.id_objet;
         objets.type_objet = obj.type_objet;
         
         var arg = '';
         var callback = MIA.Reaction.rejeterReactionCallback;
         MIA.Communication.appelServeur('process.module.reaction.rejeter', objets, callback, '', arg); 
      }
   },
   
   
   /**
    * Fonction de callback de rejet d'une réaction (fonction rejeterReaction)
    * Suppression du DOM de la réaction/réponse
    *
    * @param    objet   arg    le retour du traitement
    * @author   Kris
    * @access   public
    */
   rejeterReactionCallback : function(args)
   {
      try
      {
         var retObjets = MIA.Communication.traiterReponseServeur(args);
         if (retObjets)
         {
            if (retObjets['error'] == 1)
            {
               // Erreur -> affichage du message
               alert(MIA.Tool.utf8_decode(retObjets['error_message']));
            }
            else
            {
               // On supprime le div de la réaction/réponse
               var element = document.getElementById('bloc_' + retObjets['type_objet'] + '_' + retObjets['id_objet']);
               while (element.firstChild) {
                  element.removeChild(element.firstChild);
               }
               element.parentNode.removeChild(element); 
            }
         }
      }
      catch(e)
      {  
         if (e.message != null)
         {   
            //cas d une erreur javascript
            
            //alert(e.message); //mode debug 
            alert(MIA.Conf.traitement_front_erreurs[0]); //mode "user friendly"
         }
         else
         {
            //cas d une exception du a une erreur dans le traitement
            alert(e);
         }
      }
      
   },
   
   
   /**
    * Fonction qui charge le blocs de réponses suivante sur de réaction
    *
    * @param    int      id_reaction    l'identifiant de la réaction
    * @param    string   fragment_url   l'url du fragment à charger dans le DOM
    * @author   Kris
    * @access   public
    */
   chargerPageSuivante : function(id_reaction, fragment_url)
   {
      MIA.Dom.demanderChargementFragmentFromURL(document.getElementById('reponses_' + id_reaction), fragment_url, function() { MIA.Reaction.optionRejeterReponses('reponse', 'reponses_' + id_reaction); MIA.Logr.initCompteur(null, document.getElementById('reponses_' + id_reaction)); MIA.Logr.initBouton(null, document.getElementById('reponses_' + id_reaction)); MIA.Logr.initPouce(null, document.getElementById('reponses_' + id_reaction)); });
   },
   
   
   /**
    * Fonction qui charge les blocs de réponses sur la page de module
    *
    * @author   Kris
    * @access   public
    */
   /*initFragmentReponses : function()
   {
      var elts_du_dom = document.getElementsByTagName('*');
      for (var j = 0; j < elts_du_dom.length ; j++)
      {
         function load_fragment() {
            var i = j;
            if(elts_du_dom[i].getAttribute('load_fragment_reaction'))
            {
               var node = elts_du_dom[i].id;
               MIA.Dom.demanderChargementFragmentFromURL(elts_du_dom[i],elts_du_dom[i].getAttribute('load_fragment_reaction'), function() { MIA.Reaction.optionRejeterReponses('reponse', node); MIA.Reaction.chargeMessageCreationAnonyme(); });
               elts_du_dom[i].removeAttribute('load_fragment_reaction');
            }
         };
         load_fragment();
      }
   },*/
   
   /**
    * Fonction qui charge l'annonce au dessus de la réaction/réponse crée par un anonyme
    *
    * @author   Kris
    * @access   public
    */
   chargeMessageCreationAnonyme : function()
   {
      if (MIA.Conf.variablesEnGet.annonce && document.getElementById('reaction_annonce_' + MIA.Conf.variablesEnGet.id_reaction) && !MIA.Reaction.annonce_deja_affichee)
      {
         var annonce = '<a href="' + MIA.Conf.general.url_login + '?a=creer">' + MIA.Tool.utf8_decode('Merci de votre réaction. Pourquoi ne pas créer un compte ?<br />C\'est rapide et gratuit !') + '</a>';
         document.getElementById('reaction_annonce_' + MIA.Conf.variablesEnGet.id_reaction).innerHTML = annonce;
         MIA.Reaction.annonce_deja_affichee = true;
      }
   },
	
	/**
	 * Change le style pour les réactions en tant qu'identifié en anonyme
	 * @param  int   radio_value    la valeur du radio bouton
	 */
	reagirLoggueAnonyme : function(radio_value)
	{
      if(radio_value == 1) // Mode anonyme selectionné
      {
         document.getElementById('div_signature_log').className = "noSelect";
         document.getElementById('div_signature_ano').className = "select";
      }
      else
      {
         document.getElementById('div_signature_log').className = "select";
         document.getElementById('div_signature_ano').className = "noSelect";
      }
	}
} // fin classe MIA.Reaction


/**
 * Declarations d'evenements
 */
MIA.Perso.evtStatutUtilisateurDetecte.subscribe(MIA.Reaction.chargerFormulaireReaction, MIA.Reaction);
YAHOO.util.Event.addListener(window, "load", MIA.Reaction.chargeMessageCreationModeree);
YAHOO.util.Event.addListener(window, "load", MIA.Reaction.chargeMessageCreationAnonyme);
YAHOO.util.Event.addListener(window, "load", MIA.Reaction.chargeMessageError);
//YAHOO.util.Event.addListener(window, "load", MIA.Reaction.initFragmentReponses);
