//******************************************************************************************
//*		Script 'ajax.js' v 0.1.1
//*-----------------------------------------------------------------------------------------
//*		Description  : 	Fonction utils pour l'utilisation de ajax			
//*
//*		Programmeurs :	Christian Charest 	[CC] 
//*
//*		0.1.0 -> 0.1.1 : modification de la fonction getInfo pour acceter les requete sans container
//*
//******************************************************************************************

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();

    //on d�finit lappel de la fonction au retour serveur	
    if (funcReady != null)
    if (container != null)
		rAct.onreadystatechange = function() { funcReady(rAct, container); };
	else
		rAct.onreadystatechange = function() { funcReady(rAct); };
	
	
    //on appelle le fichier				    		   
    rAct.open("GET", URL, true);
    rAct.send(null);				    
}

function setInfos(URL)
{
    var rAct=null;
    rAct = initXMLHttpClient();	    
    //on appelle le fichier				    		   
    rAct.open("GET", URL, true);
    rAct.send(null);				    
}

function getInfosPOST(URL, data, container, funcReady)
{
    var rAct=null;
    rAct = initXMLHttpClient();
   				    
    //on d�finit lappel de la fonction au retour serveur	
    if (funcReady != null)
    if (container != null)
		rAct.onreadystatechange = function() { funcReady(rAct, container); };
	else
		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, 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].name.length > 0 || 
		sForm.elements[i].type == "radio" && sForm.elements[i].checked)	
		data = data + "&"+sForm.elements[i].name+"="+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;
	}
}
