
/*------------------------------------------------------------------------------------------
chargerXMLDoc(url)
	script de creation de la XMLHttpRequest, gestion des differents navigateurs
------------------------------------------------------------------------------------------*/


function chargerXMLDocMessagerie(url, fonctionDeRetour) {
	
	try {
		// Mozilla, Firefox, Safari, Netscape
		if (window.XMLHttpRequest) {
			
			// demande de privileges pour executer des XMLHttpRequest en "cross domain"
			/*if (typeof netscape != 'undefined' && typeof netscape.security != 'undefined') {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
			*/
				// creation d'un objet natif XMLHttpRequest
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
				}
			//}
		
		}
		
		// Microsoft Internet Explorer
		else if (window.ActiveXObject) {
		
			// création d'un objet Active X
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
		}

		// defini la fonction appelee a chaque changement d'etat[0-4] de la page
		http_request.onreadystatechange = fonctionDeRetour;
	
		http_request.open("GET", url, true);
		http_request.send(null);
		return http_request;
	
	} catch (error) { 
		errorMessage = 'Votre navigateur ne semble pas supporter ou autoriser l\'objet Javascript XMLHttpRequest.\n\n';
		alert(errorMessage+'function chargerXMLDoc(url)\n'+error.name+'\n'+error.message);
	}
}





/*------------------------------------------------------------------------------------------
traiterChangementRequete()
	appelee a chaque changement d'etat de la page demandee par XMLHttpRequest
	verifie si le processus s’est termine et continue uniquement s’il a reussi
------------------------------------------------------------------------------------------*/

function traiterChangementRequete() {
	
	// seulement si requete terminee
	if (http_request.readyState == 4) {
		
		// seulement si statut OK
		if (http_request.status == 200) {
			
			// lit la reponse XML
			reponse = http_request.responseXML.documentElement;
			alert(http_request.responseText);
			
			var methode = reponse.getElementsByTagName('methode')[0].firstChild.data;
			
			var resultat = reponse.getElementsByTagName('resultat')[0];
			
			// redirige le traitement vers la methode associee
			tabFonction[methode](1,resultat);
			
		} else {
			alert('Echec à la récupération des données XML :\n' + http_request.status +' '+ http_request.statusText);
		}
	}
}




