/**
 *Ce script javaScript rassemble les fonctions ajax qui permettent de récupérer les données utiles a un changement partiel de la page en cours  
 *
 *@author VACHETTA Patrice
 *@date 04/09/2006    
 *@version 0.1 04/09/2006 
 */ 
    
    /**    
     *Fonction de lancement de la requete HTTP
     *@param
     *@return    
     **/
    function ouvrir(url,id) {

//         var http_request = false;
//         /*
//         Afin de faire une requête HTTP vers le serveur à l'aide de JavaScript, il faut disposer d'une instance d'une classe fournissant cette fonctionnalité. 
//         Une telle classe a d'abord été introduite dans Internet Explorer sous la forme d'un objet ActiveX appelé XMLHTTP. 
//         Par la suite, Mozilla, Safari et d'autres navigateurs ont suivi en implémentant une classe XMLHttpRequest qui fournit les mêmes méthodes et propriétés que l'objet ActiveX original de Microsoft.
//         
//         Par conséquent, il faut donc créer une instance de la classe (un objet) fonctionnant sur plusieurs navigateurs : 
//         */
//         if (window.XMLHttpRequest) { // pour Mozilla, Safari,...
//             http_request = new XMLHttpRequest();
//              /*
//              Certaines versions de certains navigateurs Mozilla ne fonctionneront pas correctement si la réponse du serveur n'a pas un en-tête de type mime XML.
//              Pour les satisfaire, nous ecrasons l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml.
//              */
//             if (http_request.overrideMimeType) {
//                 http_request.overrideMimeType('text/xml');
//             }
//         } else if (window.ActiveXObject) { // pour IE
//             try {
//                 http_request = new ActiveXObject("Msxml2.XMLHTTP");
//             } catch (e) {
//                 try {
//                     http_request = new ActiveXObject("Microsoft.XMLHTTP");
//                 } catch (e) {}
//             }
//         }

//         /*
//         Si l'instance de la classe ne se crée pas ou s'il y a un probleme
//         */
//         if (!http_request) {
//             alert('Abandon :( Impossible de créer une instance XMLHTTP');
//             return false;
//         }
//         /*
//         La chose suivante à faire est décider ce que nous voulons faire après avoir reçu la réponse du serveur.
//         À ce stade, nous indiquons à l'objet de requête HTTP quelle fonction JavaScript utilisera la réponse.
//         */
//         http_request.onreadystatechange = function() { traitement(http_request,id); };
//         /*
//         Lancement de la requete
//         Le premier paramètre de l'appel à open() est la méthode de requête HTTP  GET, POST, HEAD ou toute autre méthode que vous voulez utiliser et est gérée par le serveur.
//         Le second paramètre est l'URL de la page dont vous faites la requête. Pour des raisons de sécurité, il n'est pas possible d'appeler des pages se situant sur un autre domaine.
//         Le troisième paramètre précise si la requête est asynchrone. Si mis à TRUE, l'exécution de la fonction JavaScript se poursuivra en attendant l'arrivée de la réponse du serveur.
//         */
//         http_request.open('GET', url, true);
//         /*
//         Le paramètre de la méthode send() peut être n'importe quelle donnée que vous voulez envoyer au serveur en cas d'utilisation de la méthode POST. Les données doivent être sous la forme d'une chaîne de requête
//         */
//         http_request.send(null);
	//new Ajax.Updater(id,url,  method:'get', { onSuccess:function(){},onFailure: function(){alert('Un problème est survenu avec la requête.'); }   }); 
	new Ajax.Updater(id,url, { method: 'get',evalScripts: true ,onFailure: function(){alert('Un problème est survenu avec la requête.'); } });
	//new Ajax.Request(url,  method:'get', {onSuccess: function(transport,id){ $(id).innerHTML=transport.responseText },     onFailure: function(){alert('Un problème est survenu avec la requête.'); }   }); 

    }
    
     /**    
     *Fonction traitant la réponse fournie par la fonction de lancement de la requete HTTP
     *@param
     *@return    
     **/
    function traitement(http_request,iddiv) {
        /*
        Vérification de l'état de la requete
            * 0 (non initialisée)
            * 1 (en cours de chargement)
            * 2 (chargée)
            * 3 (en cours d'interaction)
            * 4 (terminée) 
        */
        if (http_request.readyState == 4) {
            /*
            vérification du code d'état HTTP de la réponse du serveur (pour les codes allez voir http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)
                * 200 ok
            */
            if (http_request.status == 200) {   
                /*
                modifie le code du div s'il est différent
                */
                if($(iddiv).innerHTML != http_request.responseText){
               $(iddiv).innerHTML = http_request.responseText;
                }
            } else {
                alert('Un problème est survenu avec la requête.');
            }
        }

    }


