/* FONCTIONS RELATIVE À L'AJAX */

// Création d'un objet AJAX
function getAJAXObject(){
	// Création d'un objet vide
	var oAJAX = false;
	// On tente de créer l'objet AJAX via XMLHttpRequest, le plus simple...
	if(window.XMLHttpRequest){
		// Le browser aime l'AJAX, ça tombe bien!
		oAJAX = new XMLHttpRequest();
		// On écrase le type MIME si possible
		if(oAJAX.overrideMimeType)
			oAJAX.overrideMimeType('text/xml');
	}
	// Le browser est n'aime pas AJAX... Aimera-t-il ActiveX?
	else if(window.ActiveXObject){
		try{
			oAJAX = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			// Aie! Dernière tentative...
			try{
				oAJAX = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				// Hé ben non, il veut pas. :(
			}
		}
	}
	// La création a-t-elle échouée?
	if(!oAJAX){
		alert("Impossible de créer l'objet AJAX.");
		return false;
	}
	// Ça a marché! On retourne l'objet AJAX.
	return oAJAX;
}// Fin Création d'un objet AJAX

// Changer dynamiquement le contenu d'une élément en JavaScript
function changeHTML(page_url, element_id, parameters){
	var XhrObj=getAJAXObject();
	if(XhrObj){
		// Définition de l'endroit d'affichage (à approfondir pour la compatibilité)
		var content = document.getElementById(element_id);
		// On ouvre la page en POST
		XhrObj.open("POST", page_url);
		// Au changement de l'état...
		XhrObj.onreadystatechange = function(){
			if(XhrObj.readyState == 4 && XhrObj.status == 200){
				content.innerHTML = XhrObj.responseText; // On change si c'est bon
			}
		}
		// On envoie les données sous form d'URL encodée
		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(parameters);
	}else return false;
}

// Changer dynamiquement le contenu de plusieurs éléments en JavaScript
function multipleChangeHTML(parameters, page_url_1, element_id_1){
	var i;
	for(i=1; i<arguments.length; i=i+2){
		if(arguments[i] && arguments[i+1]){
			changeHTML(arguments[i], arguments[i+1], parameters);
		}else break;
	}
}

// Récupérer les données d'un formulaire en URL (GET)
function post_to_get(id_form){
	if(!id_form) return false;
	oForm=document.getElementById(id_form);
	var str_get='';
	for(i=0; i<oForm.elements.length; ++i){
		str_get+=oForm.elements[i].name+'='+oForm.elements[i].value+'&';
	}
	return trim(str_get, '&');
}
// TRIM !
function trim(sString, strToRemove){
	if(!strToRemove) strToRemove=' ';
	while (sString.substring(0,1) == strToRemove){
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == strToRemove){
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}