var Loading = "<table width='100%' height='100%'><tr><td align='center' valign='center'><img src='/images/loading_black.gif' border='0' /></td></tr></table>";

//Fonction d'initialisation de l'objet XHTTPRequest elle permet
//de renvoyer un objet de ce type en fonction du navigateur
function GetXhr()
{
	var xhr = null; 
	//Declaration pour Geko et autres moteurs
	if(window.XMLHttpRequest)
		xhr = new XMLHttpRequest();
	//declaration pour IE
	else if(window.ActiveXObject)
		xhr = new ActiveXObject('Microsoft.XMLHTTP');
	else 
	{
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest.'); 
		xhr = false; 
	} 
	return xhr
}

//Fonction qui charge via XHTTPrequest la requete (req) de maniere asynchrone dans un div (Dest) et lance la fonction (doAfter)
//0 dans Dest si on ne souhaite pas d'affichage en retour 0 dans doAfter si on ne souhaite pas executer de fonction
function ChargeContenuWithoutLoading(Req,Dest,doAfter)
{
	//document.getElementById(Dest).innerHTML = Loading;
	var Xhr = GetXhr();
	Xhr.onreadystatechange = function(){
		if(Xhr.readyState == 4){
			if(!(Dest == 0)){
				document.getElementById(Dest).innerHTML=Xhr.responseText;
			}
			if(doAfter != 0){
				doAfterLoad(doAfter);
			}
			return true;
		}
	}
	Xhr.open('GET',Req,true);
	Xhr.send(null);	
}


function ChargeContenu(Req,Dest,doAfter)
{
	document.getElementById(Dest).innerHTML = Loading;
	ChargeContenuWithoutLoading(Req,Dest,doAfter);
}


//Cette fonction Execute une requete(Req) synchrone en GET grace à XHTTPRequest et renvoi le resultat dans
//une div passe en parrametre(Dest)
function ChargeContenuSync(Req,Dest,doAfter)
{
	document.getElementById(Dest).innerHTML = Loading;
	var Xhr = GetXhr();
	Xhr.open('GET',Req,false);
	Xhr.send(null);
	if(Xhr.readyState == 4)
	{
		if(!(Dest == 0)){
			document.getElementById(Dest).innerHTML=Xhr.responseText;
		}
		if(doAfter != 0){
			doAfterLoad(doAfter);
		}
		return true;
	}
}

//Cette fonction effectue un appel synchrone vers un script
//serveur et renvoi le resultat du test
function AjaxTest(Req){
	var Xhr = GetXhr();
	Xhr.open('GET',Req,false);
	Xhr.send(null);
	if(Xhr.readyState == 4)
	{
		return Xhr.responseText;
	}
}

//Cette fonction Execute une requete(Req) synchrone grace à XHTTPRequest et renvoi le resultat dans
//une div passe en parrametre(Dest)
function PostForm(Req,Dest,nameForm,doAfter){
	var data = recupDataForm(nameForm);
	var Xhr = GetXhr();
	Xhr.onreadystatechange = function(){
		if(Xhr.readyState == 4){
			if(!(Dest == 0)){
				document.getElementById(Dest).innerHTML=Xhr.responseText;
			}
			if(doAfter != 0){
				doAfterLoad(doAfter);
			}
			return true;
		}
	}
	document.getElementById(Dest).innerHTML = Loading;
	Xhr.open('POST',Req,true);
	Xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
	Xhr.send(data);
}

//Recupere les element d'un formulaire pour construire la requete POST
function recupDataForm(nameForm){
	var f = document.forms[nameForm];
	var data;
	for(i=0;i<f.elements.length;i++){
		var elem = f.elements[i];
		if(i == 0){
			data = elem.name+'='+elem.value;
		}else{
			data += '&'+elem.name+'='+elem.value;
		}
	}
	return(data);
}

//Cette fonction appelé après un appel ajax permet d'effecuter un traitement
//specifique a la page en cour à placer de preference dans le js de la page courrante
function doAfterLoad(a){
	switch(a){
		case 'action1':{
			break;
		}
	}
}