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, container, funcReady)
{
	var rAct=null;
	rAct = initXMLHttpClient();

    if (funcReady != null)
    if (container != null)
		rAct.onreadystatechange = function() { funcReady(rAct, container); };
	else
		rAct.onreadystatechange = function() { funcReady(rAct); };

	rAct.open("GET", URL, true);
	rAct.send(null);				    
}

function setInfos(URL)
{
	var rAct=null;
	rAct = initXMLHttpClient();

	rAct.open("GET", URL, true);
	rAct.send(null);
}

function getInfosPOST(URL, data, container, funcReady)
{
	var rAct=null;
	rAct = initXMLHttpClient();

	if (funcReady != null)
	if (container != null)
		rAct.onreadystatechange = function() { funcReady(rAct, container); };
	else
		rAct.onreadystatechange = function() { funcReady(rAct); };

	rAct.open("POST", URL, true);

	rAct.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	rAct.send(data);		
}

function processForm(formId, processPage, container, 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, container, funcDone);
}

function fillContainer(rAct, container)
{
	if (rAct.readyState == 4 && rAct.status == 200)					
	{		
		if (container == null)
		{
			// Créé un div seulement pour emuler outerHTML avec firefox
			container = document.createElement("DIV");
			document.body.appendChild(container);
		}
		container.innerHTML = rAct.responseText;
	}
}
