function getHTTPObject()
{
  var xmlhttp = false;

  /* Compilation conditionnelle d'IE */
  /*@cc_on
  @if (@_jscript_version >= 5)
     try
     {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e)
     {
        try
        {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
        {
           xmlhttp = false;
        }
     }
  @else
     xmlhttp = false;
  @end @*/

  /* on essaie de creer l'objet si ce n'est pas deja fait */
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
  {
     try
     {
        xmlhttp = new XMLHttpRequest();
     }
     catch (e)
     {
        xmlhttp = false;
     }
  }

  if (xmlhttp)
  {
     /* on definit ce qui doit se passer quand la page repondra */
     xmlhttp.onreadystatechange=function()
     {
        if (xmlhttp.readyState == 4) /* 4 : état "complete" */
        {
           if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
           {
              /*
              Traitement de la réponse.
              Ici on affiche la réponse dans une boite de dialogue.
              */
  
      //On teste si le retour est de la forme delXXXX , XXXX etant l'id du objet, on le supprime de l'affichage.
      
			  var exp = new RegExp("^del+[0-9]+","g");
			  if ( exp.test(xmlhttp.responseText) )  //Cas d'une suppression
			  {
			      var objet_id = xmlhttp.responseText.substring(3,xmlhttp.responseText.length);
			      document.getElementById('object'+objet_id).innerHTML = '' ;
			      
			      //on test si l'element que l'on vient de supprimer n'est pas l'élément en cours de consultation.
			      // Dans ce cas on réactive le bouton "ajouter à mes favoris"
			      
			      if(objet_id == document.getElementById('currentObjectId').value){
			          document.getElementById('favouriteAddRequest').style.display    = "block" ;
			          document.getElementById('favouriteRequestResult').style.display = "none" ;
			      } 
			  }
              else
              {
                  document.getElementById('favouriteAddRequest').style.display = "none" ;
                  
                  //On casse le message reçu pour envoyer le message d'etat d'un coté, et le contenu dans le listing
                  var message_info  = xmlhttp.responseText.substring(0, xmlhttp.responseText.indexOf("</span>", 0)+7 );
                  var list_content  = xmlhttp.responseText.substring(xmlhttp.responseText.indexOf("</span>", 0)+8, xmlhttp.responseText.length);
                  
                  document.getElementById('favouriteRequestResult').innerHTML  = message_info ;
                  document.getElementById('favouriteRequestResult').style.display = "block" ;
                  document.getElementById('favourites_list').innerHTML         = "<"+list_content ;
              }
              document.getElementById('favouriteLoader').innerHTML = '' ;
           }
        }
     }
  }
  return xmlhttp;
}

function addFavourite(ObjectId, feedback_success, feedback_unconnected, module_id, module_name, category_id) {

	var element		= 'favouriteAddRequest' ;

	//vire l'url pour bloquer la redirection
 	var url			= document.getElementById(element).href ;

	// affichage image d'attente
 	document.getElementById('favouriteLoader').innerHTML = '<img src="/i/indicator.gif" alt="..." width="16" height="16" style="padding-top:2px;"/>' ;
    
    //envoi des donnees
    return !sendData(
       'POST',
       url,
       'xmlhttp=1&'+
       'ObjectId='+ObjectId+'&'+
       'feedbackSuccess='+feedback_success+'&'+
       'feedbackUnconnected='+feedback_unconnected+'&'+
       'module_id='+module_id+'&'+
       'module_name='+module_name+'&'+
       'category_id='+category_id+'&'+
       'action=FavouriteAction');
 }
 
 function delFavourite(ObjectId, feedback_success, feedback_unconnected, module_id, module_name, category_id) {

	var element		= 'favourite'+ObjectId ;

	//vire l'url pour bloquer la redirection
 	var url			= document.getElementById(element).href ;
	document.getElementById(element).href	= "" ;

	// affichage image d'attente
 	document.getElementById(element).innerHTML = '<img src="/i/indicator.gif" alt="..." width="16" height="16" style="padding-top:2px;"/>' ;
    
    //envoi des donnees
    return !sendData(
       'POST',
       url,
       'xmlhttp=1&'+
       'del=1'+'&'+
       'ObjectId='+ObjectId+'&'+
       'feedbackSuccess='+feedback_success+'&'+
       'feedbackUnconnected='+feedback_unconnected+'&'+
       'module_id='+module_id+'&'+
       'module_name='+module_name+'&'+
       'category_id='+category_id+'&'+
       'action=FavouriteAction');
 }

 
 /**
  * Envoie des donn?es ? l'aide d'XmlHttpRequest?
  * @param string methode d'envoi ['GET'|'POST']
  * @param string url
  * @param string donn?es ? envoyer sous la forme var1=value1&var2=value2...
  */
 function sendData(method, url, data)
 {
    var xmlhttp = getHTTPObject();

    if (!xmlhttp)
    {
        return false;
    }

    if(method == "GET")
     {
     if(data == 'null')
     {
            xmlhttp.open("GET", url, true); //ouverture asynchrone
     }
     else
     {
            xmlhttp.open("GET", url+"?"+data, true);
     }
        xmlhttp.send(null);
     }
     else if(method == "POST")
     {
        xmlhttp.open("POST", url, true); //ouverture asynchrone
        xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xmlhttp.send(data);
     }
    return true;
 }
 
 function listFavouritesThumb(nb_object){
     if(document.getElementById("favourites_list").style.display == "block"){
         closeListFavouritesThumb();
     }
     else
     {
         document.getElementById("favoris_thumb").style.height = parseInt(260)+63+'px' ;
         document.getElementById("favourites_list").style.height = 260+'px' ;
         document.getElementById("favourites_list").style.overflow  = "auto" ;
         document.getElementById("favourites_list").style.display = "block" ;
         document.getElementById("list_footer").style.display = "block" ;
         document.getElementById("favourites_list").style.display = "block" ;
         document.getElementById("favourite_triangle").className = "icon_triangle_down" ;
     }
 }
 
  function closeListFavouritesThumb()
  {
     document.getElementById("favoris_thumb").style.height = "50px" ;
     document.getElementById("favourites_list").style.display = "none" ;
     document.getElementById("list_footer").style.display = "none" ;
     document.getElementById("favourite_triangle").className = "icon_triangle_right" ;
  }