	
	function ajax_saveGenericHtmlPage(url, params)
	{
		var xhr = default_getXhr();
		
		// 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);
			}
		}
		
		var value = document.getElementById('textAreaGenericPage').value;
		value = default_replaceAll2(value, "+", "²plus²");
		var description = escape(value);
		var parameters = "description="+description+"&"+params;
		
		document.getElementById('genericSourcePageHidden').value = document.getElementById('textAreaGenericPage').value;

		xhr.open("POST", url, true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send(parameters);
	}
	
	function ajax_saveGenericHtmlFramePage(url, params)
	{
		var xhr = default_getXhr();
		
		var value = document.getElementById('textAreaGenericFramePage').value;
		value = default_replaceAll2(value, "+", "²plus²");
		var description = escape(value);
		var parameters = "description="+description+"&"+params;
		
		// 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);
				try
				{
					parent.frames["frameMusic"].document.body.innerHTML = unescape(description);
				}
				catch(e){alert("Vous devez redémarrer votre navigateur pour que le code soit pris en compte.");}
			}
		}

		document.getElementById('genericSourceFramePageHidden').value = document.getElementById('textAreaGenericFramePage').value;

		xhr.open("POST", url, true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send(parameters);
	}
	
	
	function ajax_saveNodeDescription(url)
	{
		var xhr = default_getXhr();
		
		// 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)
			{
				var results = xhr.responseText.split("</html>");
				if(results.length > 1)
				{
					var eltStructureNavigation = document.getElementById('structureNavigation');
					if(eltStructureNavigation)
					{
						eltStructureNavigation.innerHTML = results[1];
					}
				}

				//return xhr.responseText;
			}
		}

		var description = escape(document.getElementById('description').value);
		var parameters = "description="+description;
		
		var date = document.getElementById('date');
		if(date)
			parameters += "&date="+date.value;
		
		var nodeimage = document.getElementById('nodeimage');
		if(nodeimage)
			parameters += "&nodeimage="+nodeimage.value;
		
		var right = document.getElementById('right');
		if(right)
			parameters += "&right="+right.value;
		
		var allversion =  document.getElementById('allversion');
		if(allversion)
			parameters += "&allversion="+allversion.value;
		
		var nom =  document.getElementById('nom');
		if(nom)
			parameters += "&nom="+nom.value;
		
		var dateBegin =  document.getElementById('dateBegin');
		if(dateBegin)
			parameters += "&dateBegin="+dateBegin.value;
		
		var dateEnd =  document.getElementById('dateEnd');
		if(dateEnd)
			parameters += "&dateEnd="+dateEnd.value;
		
		var idlowlevel = document.getElementById('idlowlevel');
		if(idlowlevel)
			parameters += "&idlowlevel="+idlowlevel.value;
		
		var ordre = document.getElementById('ordre');
		if(ordre)
			parameters += "&ordre="+ordre.value;
		
		xhr.open("POST", url, true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send(parameters);
	}
	
	function executeAction(url, action, parameters)
	{
		var xhr = default_getXhr();
		
		// 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)
			{
				var results = xhr.responseText.split("</html>");
				if(results.length > 1)
				{
					var result = results[1];
					if(result.indexOf("showPaste") != -1)
					{
						document.getElementById('nodeToCopy').value = result.split(";")[1];
					}
				}
			}
		}
		//alert(url+"?action="+action+"&"+parameters);
		xhr.open("POST", url+"?action="+action+"&"+parameters, false);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		//xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=iso-8859-1');
		xhr.send(null);
	}
	
	
	/*var xhr = null; 
	 
	function getXhr(){
		if(window.XMLHttpRequest) // Firefox et autres
		   xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject){ // Internet Explorer 
		   try {
	                xhr = new ActiveXObject("Msxml2.XMLHTTP");
	            } catch (e) {
	                xhr = new ActiveXObject("Microsoft.XMLHTTP");
	            }
		}
		else { // XMLHttpRequest non supporté par le navigateur 
		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		   xhr = false; 
		} 
	}

	
	
	
	
	
	
	function runPHPProcess(valeur, url, parametre)
	{
		getHTMLResultInPOST(valeur, url, null, parametre, '');
	}
	
	function getHTMLResult(valeur, url, idResultat, parametre)
	{
		
		getHTMLResultInPOST(valeur, url, idResultat, parametre, '');
	}
	
	function executePHPFunction(url, idResultat, parametre, autreparametre)
	{
		getHTMLResultInPOST(" ", url, idResultat, parametre, autreparametre);
	}
	
	
	function ajax_sauverUnChamp(url, parametreFonction, idResultat, nomDuChampASauver, autreParametre)
	{
		var champ = document.forms[0].elements[nomDuChampASauver];
		getHTMLResultInPOST(champ.value, url, idResultat, parametreFonction, autreParametre);
	}
	
	
	
	
	function getHTMLResultInGET(valeur, url, idResultat, parametre)
	{
		valeur = taitementDeLaValeur(valeur);
		
		if(parametre == null)
			parametre = "rien";
		
		getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function()
		{
			retourAjax(idResultat);
		}
		
		xhr.open("GET", url+"?typeGet="+valeur+"&login="+mLogin+"&parametreAjax="+parametre+"&isAjaxRequest=oui", true);
		xhr.send(null);
	}
	
	function getHTMLResultInPOST(valeur, url, idResultat, parametre, autreparametre)
	{
		valeur = taitementDeLaValeur(valeur);
	
		if(parametre == null)
			parametre = "rien";
			
		getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function()
		{
			retourAjax(idResultat);
		}
		
		xhr.open("POST",url+"?parametreAjax="+parametre+"&login="+mLogin+"&isAjaxRequest=oui&"+autreparametre,true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		//xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=iso-8859-1');
		xhr.send("typePost="+valeur);
	}
	
	function retourAjax(idResultat)
	{
		// 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)
		{
			var resultat = document.getElementById(idResultat);
			if(!resultat)
				resultat = document.forms[0].elements[idResultat];
			
			if(resultat)
			{
				var tagName = resultat.tagName.toLowerCase();
				var resultatAjax = traitementResultatAjax(xhr.responseText, tagName);
				
				traitementResultatAjax(unescape(xhr.responseText));
				
				if(tagName == "span" || tagName == "div" || tagName == "td")
					resultat.innerHTML = resultatAjax;
				else if(tagName == "input" || tagName == "textarea")
					resultat.value = resultatAjax;
				else if(tagName == "select")
					resultat.innerHTML = resultatAjax;
			}
		}
	}
	
	function traitementResultatAjax(resultat, tagName)
	{
		resultat = unescape(resultat);
		
		if(tagName == "input" || tagName == "textarea" ||tagName == "select")
		{
			var index = resultat.indexOf("</html>");
			if(index != -1)
				resultat = resultat.substring(index + 7, resultat.length);	
			
			while(resultat.indexOf("<br>") != -1)
			{
				resultat = resultat.replace("<br>", "\n");
			}
			
			while(resultat.indexOf("\t") != -1)
			{
				resultat = resultat.replace("\t", " ");
			}
			
		}

		return resultat;
	}
	
	function taitementDeLaValeur(valeur)
	{
		//valeur = escape(valeur);
		//valeur = encode_utf8(valeur);
		
		
		return valeur;
	}
	
	function encode_utf8( s )
	{
	  return unescape( encodeURIComponent( s ) );
	}
	
	function decode_utf8( s )
	{
	  return decodeURIComponent( escape( s ) );
	}
	*/
	
	