function new_xhr() {
	var xhr_object = null;
	if(window.XMLHttpRequest)
	   xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) {
	   try {
                xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else {
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	   xhr_object = false;
	}
	return xhr_object;
}


function ajax( url, vars, callback, emt ) {
	// emt : affichage du texte dans la section d'identifiant emt (<div id="emt" ..) de la page appelant la methode ajax
	var xhr = new_xhr();
	
	xhr.onreadystatechange = function() {
		if ( xhr.readyState == 4 ) {
			if( xhr.status  != 200 ) {
				if ( emt ) {
					document.getElementById( emt ).innerHTML = "Error code " + xhr.status;
				}
			} else {
				if( xhr.responseText) {
					//callback( xhr.responseXML);
					callback( xhr.responseText, emt );
				}
			}
		/*
		} else {
			if ( emt ) {
				document.getElementById( emt ).innerHTML = "Chargement en cours ...<br /><img src='../images/loading.gif' alt=''/>";
			}
		*/
		}
	};
	
	if ( vars ) {
		xhr.open('POST', url, true); 					// asynchrone
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	} else {
		xhr.open('GET', url, true);						// asynchrone
	}
	xhr.send( vars );									// NULL avec GET. Avec POST : donnees à envoyer au serveur.
}


// fonction de callback qui affiche le retour 'content' dans l'element 'emt'
function affichage( content, emt ) {
	document.getElementById( emt ).innerHTML = content;
}