
/*
	Traitement d'une requête AJAX.
	@param fichier url appelée
	@return le résultat de la requête
*/
function file(fichier){	
	// Construction de l'objet de requête
    if(window.XMLHttpRequest) // FIREFOX
         xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
         xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
         return(false);
	// Astuce pour éviter que le navigateur
	// Ne garde la page en cache (ce qui détruit le système AJAX)	
	d = new Date(); 
    trick = d.getYear() + ":" + d.getMonth() + ":" + d.getDate() + ":" + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + ":" + d.getMilliseconds();       	
	if(fichier.indexOf('?',0) > -1){
		sep = '&';
	}else{
		sep = '?';
	}
	fichier += sep + "trick=" + trick;		
	// Envoi de la requête
	xhr_object.open("GET", fichier, false);	
    xhr_object.send(null);
	// Réception de la réponse
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
}

/*
	Equivalent de la fonction trim dans beaucoup de langages.
	@param  s la chaine de caractères à traiter
	@return le resultat du traitement, chaine de caractères
*/
function trim(s) {
    return s.replace(/^\s+/, '').replace(/\s+$/, '');
}

/*
	Mise à jour du contenu HTML d'un élément (div, span, etc.).
	@param element l'élément Javascript DOM obtenu par exemple avec document.getElementById
	@param contenu le contenu HTML textuel à insérer dans l'élément
	@param trick   booleen, permet de gerer le problème de IE qui saute une ligne si on place un contenu vide
*/
function changeContenu(element,contenu,trick){
	// patch ie - saut de ligne
	if(trick){
		if(contenu != ''){
			element.style.position = 'relative';
		}else{
			element.style.position = 'absolute';
		}
	}
	// mise à jour du contenu
	element.innerHTML = contenu;
}
