	
	 function onAjaxBegin(){}
	/**
	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
	 */

	function sendData(data, page, method, maj, funcOnSuccess, funcOnError, errorDiv)
	{
		//netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
		if(document.all)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}//fin if
		else
		{
		    //Mozilla
			var XhrObj = new XMLHttpRequest();
		}//fin else
		
		//d?finition de l'endroit d'affichage:
		if(maj!=''){
			var content = document.getElementById(maj);
		}
		//si on envoie par la m?thode GET:
		if(method == "GET")
		{
			if(data == 'null')
			{
				//ouvertur du fichier s?lectionn?:
				XhrObj.open("GET", page);
			}//fin if
			else
			{
				//Ouverture du fichier testGet.php en methode GET
				XhrObj.open("GET", page+"?"+data);
			}//fin else
		}//fin if
		else if(method == "POST")
		{
			//Ouverture du fichier testPost.php en methode POST
			XhrObj.open("POST", page);
		}//fin elseif
	
		//Ok pour la page cible
		
		XhrObj.onreadystatechange = function() 
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200){
				if(maj!=''){
					if(XhrObj.responseText!=""){
						content.innerHTML = filterFullHTML(XhrObj.responseText) ;
					}
				}
				else return filterFullHTML(XhrObj.responseText) ;
				
				onAjaxBegin();
				
				if (funcOnSuccess != 'null'){
				  // appel des fonctions de reussite
				  for (i=0;i<funcOnSuccess.length;i++)
				  {
				    eval(funcOnSuccess[i])
				  }
				}
			}
			else if (XhrObj.readyState == 4 && ((XhrObj.status == 500) || (XhrObj.status == 404))){

			  // On redirige l'erreur ver le DIV souhait?
			  if (errorDiv != 'null' && getObj(errorDiv)){
			  
			    // On récupère la date et l'heure ? laquelle est survenue l'erreur
			    var dateTime = new Date();
			    var now = dateTime.getHours() +":"
			            + dateTime.getMinutes() +":"
			            + dateTime.getSeconds();
			    
			    // On remplit le div de l'erreur
			    document.getElementById(errorDiv).innerHTML=document.getElementById(errorDiv).innerHTML
			          +"<hr><b>Erreur survenue &agrave; "+now+" pour l'url <font>"+page+"</font></b><br>"
			          +filterFullHTML(XhrObj.responseText);
			  }
			
			  if (funcOnError != 'null'){
			    // TODO executer les fonctions d'echec
			    for (i=0;i<funcOnError.length;i++){
			      eval(funcOnError[i])
			    }
			  }
			}					
		
		}	
	
		if(method == "GET")
		{
			XhrObj.send(null);
		}//fin if
		else if(method == "POST")
		{
			XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			XhrObj.send(data);
		}//fin elseif
		return XhrObj;		//bertrand: je retourne l'objet pour avoir le statut de chargement XhrObj.readyState
	}//fin fonction SendData
	
	function filterFullHTML(content){
	  var contentFiltered = content;
	  if (content.indexOf('<body>') > -1 ){
	    var startAt = content.indexOf('<body>');
	    var endAt = content.length;
	    
	    if (content.indexOf('</body>') > -1 ){
  	      endAt = content.indexOf('</body>');
	    }
	    contentFiltered = content.substring(startAt, endAt);
	  }
	  return contentFiltered;
	}
	
	/**
	 * Permet de récupérer les donn?es d'un fichier via les XmlHttpRequest:
	 */
	function getFile(page,maj, funcOnSuccess, funcOnError, errorDiv)
	{
		return sendData('null', page, 'POST', maj, funcOnSuccess, funcOnError, errorDiv);
	}//fin fonction getFile