/* Bibliothèque XMLHttpRequest */

var reponse; // responseText global
var destination; // destination de HTML a afficher


function GetXMLHttpRequest() { 
  var xhr = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xhr = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){ // Internet Explorer
		try {
			var progId = pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
			xhr = new ActiveXObject(progId);
		}
		catch(e) {
			xhr = null;
		}
	}
	return xhr;
}

function pickRecentProgID(idList){
	 // found progID flag
     var bFound = false;
     for(var i=0; i < idList.length && !bFound; i++){
        try{
             var oDoc = new ActiveXObject(idList[i]);
             o2Store = idList[i];
             bFound = true;
         }catch (objException){
             // trap; try next progID
         };
     };
     if (!bFound) 
		throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez à mettre à jour votre navigateur");
     idList = null;
     return o2Store;
} 

function RempliPage() {
	document.getElementById(destination).innerHTML = reponse;
	//il faut exécuter toutes les balise script :
    var AllScripts=document.getElementById(destination).getElementsByTagName("script")
     for (var i=0; i<AllScripts.length; i++) {
     	var s=AllScripts[i];
		 	// si c'est externe ou interne
      if (s.src && s.src!="") {
				// si c'est IE ou FF
				if (window.ActiveXObject) {
					window.execScript(getFileContent(s.src));
				}
			} else {
			if (window.ActiveXObject) {
				window.execScript(s.innerHTML.replace(/<!--/,"").replace(/\/\/-->/,""));
			} else {
	    	window.eval(s.innerHTML.replace(/<!--/,"").replace(/\/\/-->/,""));		
			}
		}
	}
	// reload
	reloaded()
}
 
function AfficherPage(url,contenu) {
	// Création de l'objet
	xhr = GetXMLHttpRequest();
	// message de page en cours de chargement
	document.getElementById(contenu).innerHTML = '<br /><div align="center" class="texte">Veuillez patienter pendant le chargement de la page ...</div><br>'
	//On se sert de l'événement OnReadyStateChange 
	xhr.onreadystatechange = function() {
		 try {
			//Si le chargement est terminé
			if (xhr.readyState == 4) {
				if(xhr.status == 200) {
					// affectations
					reponse = xhr.responseText
				    destination = contenu
					// rempli la page dans x millisecondes, prend ton temps
					window.setTimeout("RempliPage()", 30);
				}
				else {
					document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur pas 200 s\'est produite dans le chargement de la page, veuillez contacter un administrateur ...</div><br>';
				}
			}
		 }
		catch( e ) {
    	document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur s\'est produite dans le chargement de la page, veuillez contacter un administrateur ... <br /> '+e+' </div><br>';
		}
	}
  xhr.open('POST', 'index.php', true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send('contenu=' + contenu + '&' + 'affichageAJAX'+traiteUrl(url));
  return true; 
}

function AfficheForm(obj, page, contenu) {
	// Création de l'objet
	xhr = GetXMLHttpRequest();
	// message de page en cours de chargement	
	//document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Veuillez patienter pendant le chargement de la page ...</div><br>'
	//On se sert de l'événement OnReadyStateChange 
	xhr.onreadystatechange = function() {
		 try {
			//Si le chargement est terminé
			if (xhr.readyState == 4) {
				if(xhr.status == 200) {
					// affectations
					reponse = xhr.responseText
				    destination = contenu
					// rempli la page dans x millisecondes, prend ton temps
					window.setTimeout("RempliPage()", 30);
				}
				else {
					document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur pas 200 s\'est produite dans le chargement de la page, veuillez contacter un administrateur ...</div><br>';
				}
			}
		 }
		catch( e ) {
    	document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur s\'est produite dans le chargement de la page, veuillez contacter un administrateur ... <br /> '+e+' </div><br>';
		}
	}
  xhr.open('POST', page, true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send('contenu=' + contenu + '&' + 'affichageAJAX' + traiteUrl(page) + '&' + TraitePost(obj));
  return true; 
}

function AfficheFormErreur(obj, page, contenu) {
	// Création de l'objet
	xhr = GetXMLHttpRequest();
	// message de page en cours de chargement	
	//document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Veuillez patienter pendant le chargement de la page ...</div><br>'
	//On se sert de l'événement OnReadyStateChange 
	xhr.onreadystatechange = function() {
		 try {
			//Si le chargement est terminé
			if (xhr.readyState == 4) {
				if(xhr.status == 200) {
					if((xhr.responseText).search("<!-- Balise Erreur -->") != -1) {
						contenu = 'Erreur';
					}
					// affectations
					reponse = xhr.responseText
				    destination = contenu
					// rempli la page dans x millisecondes, prend ton temps
					window.setTimeout("RempliPage()", 30);
				}
				else {
					document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur pas 200 s\'est produite dans le chargement de la page, veuillez contacter un administrateur ...</div><br>';
				}
			}
		 }
		catch( e ) {
    	document.getElementById(contenu).innerHTML = '<br><div align="center" class="texte">Une erreur s\'est produite dans le chargement de la page, veuillez contacter un administrateur ... <br /> '+e+' </div><br>';
		}
	}
  xhr.open('POST', page, true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send('contenu=' + contenu + '&' + 'affichageAJAX' + traiteUrl(page) + '&' + TraitePost(obj));
  return true; 
}

function TraitePost(obj) {
  var poststr;
	for (i = 0; i < document.forms[obj].length;i++)
	{
	 if (i >= 0)
	  { poststr = poststr + "&"; }
	
	  poststr = poststr + document.forms[obj].elements[i].name + "=" + document.forms[obj].elements[i].value;
	}
  return poststr;
}

function traiteUrl(url) {
	// traitement coupure au = pour récupere l'alias de la page
	temp = url.split('=');
	var temp2 = '';
	for(var i=1;i < temp.length;i++){
		temp2 =  temp2 + '=' + temp[i];
	}
	return temp2;
}

function reloaded() {
	if(typeof trytoload== "function") {
		trytoload('lanceurChrono');
	}
}

function reloaded2() {
	if(typeof trytoload== "function") {
		trytoload('lanceurChrono2');
	}
}