
// ------------------------------
// Fonctions de gestion de l'AJAX
// ------------------------------
// retourne un objet xmlHttpRequest.
// méthode compatible entre tous les navigateurs (IE/Firefox/Opera)
function ajax_getXMLHTTP(){
   var xhr=null;
   if(window.XMLHttpRequest) // Firefox et autres navigateurs récents
   xhr = new XMLHttpRequest();
   else if(window.ActiveXObject){ // Internet Explorer
      try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e1) {
            xhr = null;
         }
      }
   }
   else { // XMLHttpRequest non supporté par le navigateur
      //alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      //On affiche une version de la page qui n'utilise pas l'AJAX
      var posPointInterro = document.URL.indexOf('?', 0);
      if (posPointInterro == -1) {
         location.href = document.URL + '?ajax=non';
      } else {
         location.href = document.URL + '&ajax=non';
      }
   }
   return xhr;
}
// Affichage asynchrone de "monURL" dans la <div> ayant l'id "monId"
function ajax_afficherAsynchro(monId, monURL) { 
	var element = document.getElementById(monId); 
	//element.innerHTML = '<p style="font-style:italic;font-size:12px;">Chargement ...</p>'; 
	var xhr = ajax_getXMLHTTP()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			//alert(xhr.responseText);
			element.innerHTML = xhr.responseText;
		} else {
			if(xhr.readyState == 4) {
				element.innerHTML = '<b style="color:#FF0000;font-size:12px;">erreur !</b>';
			}
		}
	}
	xhr.open("GET",monURL,true);
	xhr.send(null);
} 
// Affichage asynchrone de "monURL" dans la <div> ayant l'id "monId"
function ajax_afficherAsynchroOnglet(monId, monURL, monOnglet) { 
	var element = document.getElementById(monId); 
	var element2 = document.getElementById(monOnglet);
	//element.innerHTML = '<p style="font-style:italic;font-size:12px;">Chargement ...</p>'; 
	var xhr = ajax_getXMLHTTP()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// Enlever l'animation de l'onglet sélectionné
			element2.className= "babel_selec";
			//alert(xhr.responseText);
			element.innerHTML = xhr.responseText;
		} else {
			if(xhr.readyState == 4) {
   			// Indiquer l'erreur sur l'onglet
   			element2.className= "babel_selec_err";
				element.innerHTML = '<b style="color:#FF0000;font-size:12px;">erreur !</b>';
			}
		}
	}
	xhr.open("GET",monURL,true);
	xhr.send(null);
} 
// Affichage dans une zone avec des onglets numérotés
function ajax_selectOnglet(pNom, pNb, pNum, pZone, pURL) {
	// pNom : racine du nom de l'onglet
	// pNb : nombre d'onglets
	// pNum : numéro de l'onglet
	// pZone : id de la zone d'affichage des données AJAX
	// pURL : page des données à afficher
	for(i=1;i<(pNb+1);i++){
		var element = document.getElementById(pNom + i);
		if (i == pNum) {
			element.className= "babel_selec2";
		} else {
			element.className= "babel_nonsel";
		}
	}	
	// Afficher les données AJAX
	ajax_afficherAsynchroOnglet(pZone, pURL, pNom + pNum);
}

