var MsgErrGetXhr="Votre navigateur ne supporte pas les objets XMLHTTPRequest...";
var MsgErrRetourXML="Un problème est survenu avec la requête.";
var retourrequete1;

function Ajax(){var xhr = null;var Methode = "POST" ;var RetourXml = 0 ;	var Synchro = true ; var Data = null;var ElementById;var RetourAjax=null;var NumFonction=null;this.SetMethode = SetMethode;this.SetRetourXml = SetRetourXml;this.SetSynchro = SetSynchro ;this.SetData = SetData ;this.SetElementById = SetElementById;this.getXhr = getXhr;this.EnvoiRequete = EnvoiRequete;this.RetourInformation =RetourInformation;this.SetNumFonctionRetour = SetNumFonctionRetour;this.SetTitreRetour =SetTitreRetour;




// fonction set
	function SetMethode(methode){
		Methode=methode;
	}


	function SetRetourXml(xml){
		RetourXml=xml;
	}

	function SetSynchro(synchro){
		Synchro=synchro;
	}

	function SetData(data){
		Data=data;
	}


	function SetElementById(elementbyid){
		ElementById=elementbyid;
	}
	
	function SetNumFonctionRetour(numfonction){
		NumFonction=numfonction;
	}

	// fontion de modification du message d'attente
	function SetTitreRetour (titreretour){
		if (titreretour != null){
		TitreRetour = "<span><img src='./images/loader.gif'>&nbsp;"+ titreretour +"</span>";
		}
		else {
			TitreRetour = "<span><img src='./images/loader.gif'> Chargement en cours...</span>";	
		}//fin du else
	}



	function getXhr(){
		if(window.XMLHttpRequest){// Firefox et autres
			xhr = new XMLHttpRequest();
            if (RetourXml == 1) {
            	if (xhr.overrideMimeType) {
                xhr.overrideMimeType('text/xml');
                }//if xhr.overide
            }//if Retour Xml

		}//if
		else if(window.ActiveXObject){ // Internet Explorer
			   try {
					xhr = new ActiveXObject("Msxml2.XMLHTTP");
				}//try
				catch (e) {
				    xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}//catch
			}//else if

		else { // XMLHttpRequest non supporté par le navigateur
	   alert(MsgErrGetXhr);
	   xhr = false;
		}//else
	return xhr;
	}//fin fonction


//Pose la question methode GET and POST
    function EnvoiRequete(url){
        var http_request = getXhr();
		if (Methode == "POST") {
		http_request.onreadystatechange = function() { RetourInformation(http_request); };
		http_request.open(Methode, url, Synchro);
		http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
        http_request.send(Data);
		}
		else{					//alors GET
		http_request.onreadystatechange = function() { RetourInformation(http_request); };
		http_request.open(Methode, url, Synchro);
        http_request.send(null);
		}
    }//fin fonction Envoirequete



    function RetourInformation(http_request) {
        if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				if (RetourXml == 1) {
//					return http_request.responseXML;
/*					var xmldoc = http_request.responseXML;
					var root_node = xmldoc.getElementsByTagName('sousroot').item(0);
					alert(root_node.firstChild.data);
*/
						switch(NumFonction){
							case 10:
								RetourClassAutoCompletion(http_request.responseXML);
								break;
							case 9:
								Affichage9(http_request.responseXML,ElementById);
								break;
							case 8:
								Affichage8(http_request.responseXML,ElementById);
								break;
							case 7:
								Affichage7(http_request.responseXML,ElementById);
								break;
							case 6:
								Affichage6(http_request.responseXML,ElementById);
								break;
							case 5:
								Affichage5(http_request.responseXML,ElementById);
								break;
							case 4:
								Affichage4(http_request.responseXML,ElementById);
								break;
							case 3:
								Affichage3(http_request.responseXML,ElementById);
								break;
							case 2:
								Affichage2(http_request.responseXML,ElementById);
								break;
							case 1:
								Affichage1(http_request.responseXML,ElementById);
								break;
							default:			//retour Simple
							Affichage(http_request.responseXML,ElementById);
						} // switch
				    }//if

				else{
					switch(NumFonction){
						case 100:
							eval(http_request.responseText);
							break;

						case 10:
							Affichage10(http_request.responseText,ElementById);
							break;
						case 9:
							Affichage9(http_request.responseText,ElementById);
							break;
						case 8:
							Affichage8(http_request.responseText,ElementById);
							break;
						case 7:
							Affichage7(http_request.responseText,ElementById);
							break;
						case 6:
							Affichage6(http_request.responseText,ElementById);
							break;
						case 5:
							Affichage5(http_request.responseText,ElementById);
							break;
						case 4:
							Affichage4(http_request.responseText,ElementById);
							break;
						case 3:
							Affichage3(http_request.responseText,ElementById);
							break;
						case 2:
							Affichage2(http_request.responseText,ElementById);
							break;
						case 1:
							Affichage1(http_request.responseText,ElementById);
							break;
						default:			//retour Simple
						Affichage(http_request.responseText,ElementById);
					} // switch


				//document.getElementById(ElementCacher).value=http_request.responseText;
//				Affichage(http_request.responseText);
				}
			}//if status == 200
			else {
				alert(MsgErrRetourXML);
            }//else status=200

//		document.getElementById(ElementById).innerHTML  = "";
        }//if ReadyState
		else
		{
		document.getElementById(ElementById).innerHTML  = TitreRetour;
		}//else
    }//fonction




}// fin class Fonction Ajax
