function initXMLHttpClient() 
{
	var xmlhttp;
	
	try 
	{
	  // Mozilla / Safari / IE7
	  xmlhttp = new XMLHttpRequest();
	} 
	catch (e) 
	{
	   // IE
	   var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
	                               'MSXML2.XMLHTTP.4.0',
	                               'MSXML2.XMLHTTP.3.0',
	                               'MSXML2.XMLHTTP',
	                               'Microsoft.XMLHTTP' );
	  var success = false;
	  for (var i=0;i < XMLHTTP_IDS.length && !success; i++) 
	  {
	      try {
	           xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
	              success = true;
	        } catch (e) {}
	  }
	  
	  if (!success) 
	  {
	      throw new Error('Unable to create XMLHttpRequest.');
	  }
	}
	return xmlhttp;
}
 
function getInfos(URL, funcReady)
{
    var rAct=null;
    rAct = initXMLHttpClient();
   				    
    //on définit lappel de la fonction au retour serveur				    
	rAct.onreadystatechange = function() { funcReady(rAct); };
    
    //on appelle le fichier				    		   
    rAct.open("GET", URL, true);
    rAct.send(null);				    
}

function getInfosPOST(URL, data, funcReady)
{
    var rAct=null;
    rAct = initXMLHttpClient();
   				    
    //on définit lappel de la fonction au retour serveur				    
	rAct.onreadystatechange = function() { funcReady(rAct); };
    
    //on appelle le fichier				    		   
    rAct.open("POST", URL, true);
    
    rAct.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   
    rAct.send(data);				    
}

function processForm(formId, processPage, funcDone)
{
	var sForm = document.getElementById(formId);

	var data = "";				
	for (var i = 0; i < sForm.elements.length; i++)				
	if (sForm.elements[i].type != "radio" && sForm.elements[i].id.length > 0 || 
		sForm.elements[i].type == "radio" && sForm.elements[i].checked)	
		data = data + "&"+sForm.elements[i].id+"="+sForm.elements[i].value;
					
	getInfosPOST(processPage, data, funcDone);
}
