_AJAX = {
    
   GetXmlResponse : function( url , method , reponseType , func , paramList )
   {
        var xhr = _AJAX.getXMLHttpRequest();        xhr.onreadystatechange = function()        {
           if(xhr.readyState == 4 && xhr.status == 200)             {                switch( reponseType )                {                     case 'xml' :                        response = _AJAX.cleanXML(xhr.responseXML.documentElement);						if( func != '' )							eval( func + '(response)' );                    break                    case 'text' : 						response = xhr.responseText;						if( func != '' )							eval( func + '(response)' );                    break;                }            }        }		        xhr.open (method , url, true);				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');		xhr.setRequestHeader("Content-length", paramList.length);		xhr.setRequestHeader("Connection", "close");		// ne pas oublier de poster les arguments		strParam="";		for ( i = 0 ; i < paramList.length ; i++)		{			if( i==0)				strParam += paramList[i][0]+"="+encodeURIComponent(paramList[i][1]);			else				strParam += "&" + paramList[i][0]+"="+encodeURIComponent(paramList[i][1]);					}		xhr.send( strParam );
        /* A préciser pour les requêtes de type POST
	          xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	        */
        //xhr.send(null);
    }    
    ,
    getXMLHttpRequest : function() 
    {
	    var xhr = null
	    if(window.XMLHttpRequest) 
	    {
	        xhr = new XMLHttpRequest()
        }
	    else if(window.ActiveXObject) 
	    {
		    try 
		    {
			    xhr = new ActiveXObject("Msxml2.XMLHTTP")
		    } 
		    catch (e) 
		    {
			    xhr = new ActiveXObject("Microsoft.XMLHTTP")
		    }
	    }
	    else 
	        xhr = false
	    return xhr
    }
    ,
    nodeCleaner : function ( node ) 
    {
	    if(! node.data.replace(/\s/g,'') ) 
	        node.parentNode.removeChild(node)
    }
    ,
    cleanXML : function ( docElement )
    {
	    var node = docElement.getElementsByTagName('*')
	    for( i = 0 ; i < node.length ; i++) 
	    {
		    a = node[i].previousSibling
		    if(a && a.nodeType == 3) 
		        _AJAX.nodeCleaner(a)
		        
		    b = node[i].nextSibling
		    if(b && b.nodeType == 3) 
		        _AJAX.nodeCleaner(b)
	    }
	    return docElement
    }
}