//---------------------------------------------------------------------------------------
// A D D E O _ R E Q U E S T _ XMLHTTP . J S 
// RA 07/2003
//---------------------------------------------------------------------------------------

var xml_http_simulation=0;
var XML_HTTP_SEPARATEUR_LIGNES="XXRCXX";
var XML_HTTP_SEPARATEUR_CHAMPS="xxxSCxxx";

//---------------------------------------------------------------------------------------
// constructeur d'une requete "� la addeo"
// on definit la fct ex�cut�e pdt la r�ception et celle ex�cut�e 
// en fin de r�ception compl�te des donn�es
function addeo_xmlhttp(url, F_callback, param_F_callback)
{
	var xml_http;
	
	// cr�ation objet <> selon navigateur
	if(window.ActiveXObject)
		xml_http = new ActiveXObject("Microsoft.XmlHttp");
	
	// NS/moz
	if (window.XMLHttpRequest)
		xml_http = new XMLHttpRequest();
	
	if(xml_http == null)	
		{
		alert("echec creation xmlhttp");
		return;
		}
	
	this.xmlhttp = xml_http;
	this.url = url;
	this.resultat = null;
	this.traiter_reception = F_callback;
	this.param_traiter_reception = param_F_callback;
	this.ouvrir = ouvrir_requete;
	this.fermer = fermer_requete;
	this.envoyer = envoyer_requete
	this.methode = ""; 
	if(F_callback)
		xml_http.onreadystatechange = F_callback;
	
	return(this);
}

//---------------------------------------------------------------------------------------
// Destruction de la requete (objet et objet ActiveX inclus)
// A lancer au bon moment (i.e. apr�s r�ception des donn�es)

function detruire_addeo_xmlhttp(r)
{
	r.xmlhttp = null;
	r = null;
}

//---------------------------------------------------------------------------------------
// connexion serveur (m�thode = POST ou GET)
function ouvrir_requete(methode)
{
	var xmlhttp;
	var async;
	
	xmlhttp = this.xmlhttp;
	// mode async => traitement	n'attend pas la r�ception de donn�es (non bloquant)	
	async = ((this.traiter_reception != null) ? true : false);
	this.methode = methode;
	xmlhttp.open(methode, this.url, async);
}

//---------------------------------------------------------------------------------------
// DEconnexion serveur
function fermer_requete()
{
	var xmlhttp;
	
	xmlhttp = this.xmlhttp;
	xmlhttp.abort();
}

//---------------------------------------------------------------------------------------
// lancement de la requete
function envoyer_requete(str)
{
	var xmlhttp, str;
	
	
	xmlhttp = this.xmlhttp;
	if(str == "")
		xmlhttp.send("");
	else
		{
		if(this.methode == "POST")
			//xmlhttp.setRequestHeader("Content-Type:", "application/x-www-form-urlencoded\r\n\r\n");
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xmlhttp.send(str);
		}
}

	

//---------------------------------------------------------------------------------------
function addeo_envoyer_requete_xmlhttp(url, param, methode)
{			
	if (xml_http_simulation==1)
		return (xml_http_simuler(url, param));
		
	var x = new addeo_xmlhttp(url, null, null);
		
	if(!methode || methode.length<1) methode="POST";	
	x.ouvrir(methode);
	
	x.envoyer(param);			
	x.resultat = x.xmlhttp.responseText;

	var resultat=x.resultat;
	x.fermer();
	detruire_addeo_xmlhttp(x);
	return resultat;
}

//---------------------------------------------------------------------------------------
function xml_http_simuler(url, param)
{	
	var resultat;
    
    document.formulaire.xmlhttp_url.value=url;
    document.formulaire.xmlhttp_param.value=param;
    document.formulaire.xmlhttp_resultat.value="xmlhttp"
    location.replace("XMLHTTP"+url+"?"+param);
    
    while(document.formulaire.xmlhttp_resultat.value=="xmlhttp");
    
	resultat=document.formulaire.xmlhttp_resultat.value;
    return(resultat);
}


