// JavaScript Document
<!--
// validation formulaire français
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- le champ '+nm+' doit contenir une adresse e-mail valide.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- le champ '+nm+' est vide.\n'; }
    } if (errors) alert('ATTENTION !\n'+errors);
    document.MM_returnValue = (errors == '');
} }



// 	AJAX
if(document.all && !window.opera) {
	//si Internet Explorer ou Opera
	var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else {
	//si Mozilla
	var XhrObj = new XMLHttpRequest();
}
	
function gestionstatechange() {
 	var elt = document.getElementById('loading');
	switch (XhrObj.readyState) {
 		case 1:
			// 1 (loading)	début du transfert des données : loading visible
 			elt.style.display="block";
 			break;
 		case 2:
 			// 2 (loaded)	données transférées : loading visible
 			elt.style.display="block";
 			break;
 		case 3:
 			// 3 (interactive)	les données reçues sont accssibles en partie : loading visible
 			elt.style.display="block";
			break;
		case 4:
 			//si la page cible est OK (code HTTP 200) et 4 (complete :les données sont complètement accessibles), loading caché
 			// NB : Firefox declanche avec "status" tant que le code de chargement n'est pas à  4
 			if (XhrObj.status == 200) 
 				{
 					//définition de l'endroit d'affichage:
 					var content = document.getElementById("contenu");
 					//on affecte à  l'endroit d'affichage la valeur du fichier distant recupéré avec  la propriété .responseText
 					content.innerHTML = XhrObj.responseText ;
 					// s'il y avait un Javascript à  interpreter dans le fichier distant, on ecrirait : eval(XhrObj.responseText);
 				}
 			elt.style.display="none";
 			break;
 		default:
 			// 0 (uninitialized)	non initialisé
 			alert('Le serveur est bloqué. Veuillez recommencer.');
 			break;
 	}
}

// Fonction d'envoi des données sur le fichier PHP distant
  function envoi(donnees, page) {
  	// On spécifie la page cible et les modalité d"envoi (true spécifie le mode asynchrone)
  	var sURL = page;
  	// on peut aussi utiliser GET ou HEAED
  	XhrObj.open("POST",sURL,true);
  	// declanche la fonction qui affiche le loading en fonction de l'etat de la requetet
  	XhrObj.onreadystatechange = gestionstatechange;
  	// et on execute la requete elle-meme  ( send ) : header puisque c'est une methode POST, puis données
  	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  	XhrObj.send(donnees);
}
-->