	//Fonction permettant demander avant d'aller à une page de suppression
	function vraimentSupprimer(lien) {
		if (confirm("Vraiment supprimer ?\nCeci est définitif et irrémédiable !")) {
			window.location.href = lien;
		}
	}
	
	// Fonction pour afficher / masquer un objet
	function affEffDescr(idObj){
		if (document.getElementById(idObj).style.display == 'block') {
			document.getElementById(idObj).style.display = 'none';
		} else {
			document.getElementById(idObj).style.display = 'block';
		}
		return false;
	}
	// Fonction pour afficher / masquer une ligne de tableau
	function affEffLTab(idObj){
		if (document.getElementById(idObj).style.display == 'table-row') {
			document.getElementById(idObj).style.display = 'none';
		} else {
			document.getElementById(idObj).style.display = 'table-row';
		}
		return false;
	}
	
	// Fonction pour ajouter un champ
	function addChamp(nom) {
		document.getElementById('form' + nom).appendChild(document.getElementById('formLigne' + nom).cloneNode(true));
	}
	
	//Fonctions d'ajout des balises de mise en forme	
	function balisePMod(id_textarea, champ_valeur) {
		if (document.getElementById(champ_valeur).value != '') {
			balise_debut = 'p' + document.getElementById(champ_valeur).value + '. ';
			balise(balise_debut, '', id_textarea);
		}
	}
	
	function baliseSpanMod(id_textarea, champ_valeur) {
		if (document.getElementById(champ_valeur).value != '') {
			balise_debut = '%' + document.getElementById(champ_valeur).value;
			balise(balise_debut, '%', id_textarea);
		}
	}
	
	function baliseDonnees(balise_debut, balise_milieu, balise_fin, id_textarea) {
		var donnees = prompt("Entrez les données nécessaires (adresse du lien, de l'image, numéro de la note de pied de page, ...)");
		balise_fin = balise_milieu + donnees + balise_fin;
		balise(balise_debut, balise_fin, id_textarea);
	}
	
	function balise(balise_debut, balise_fin, id_textarea) {
		var champ = document.getElementById(id_textarea);
		var scroll = champ.scrollTop;
		balise_debut = remplace(balise_debut, '<br />', "\n");
/*
		if( balise_fin == '') {
			balise_debut = ' ' + balise_debut + ' ';
		}
*/
		if (champ.curseur) {
			champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
			
		} else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0) {
			var debut = champ.value.substring(0, champ.selectionStart);
			var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
			var fin = champ.value.substring(champ.selectionEnd);
			champ.value = debut + balise_debut + entre + balise_fin + fin;
			champ.focus();
			champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
			
		} else {
			champ.value += balise_debut + balise_fin;
			champ.focus();
		}
		champ.scrollTop = scroll;
	}
	function remplace(data, search, replace)
	{
		var temp = data;
		var longueur = search.length;
		
		while (temp.indexOf(search) > -1) {
			pos = temp.indexOf(search);
			temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length));
		}
		
		return temp;
	}
	
	/* Fonctions AJAX */
	
	// Fonction de récupération
	function textilise(idZoneTexte, idZoneAUpdater) { 
		var xhr; 
		try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
				try {  xhr = new XMLHttpRequest();     }
				catch (e3) {  xhr = false;   }
			}
		}
		
		xhr.onreadystatechange = function()	{ 
			if(xhr.readyState == 4) {
				if(xhr.status == 200) 
					document.getElementById(idZoneAUpdater).innerHTML = xhr.responseText;
				else 
					document.getElementById(idZoneAUpdater).innerHTML = "<p>Réponse en attente...</p>";
			}
		};

		xhr.open("POST", "ajax.textilise.php",  true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("texte=" + document.getElementById(idZoneTexte).value);
	}
	
	/*	Fonction pour prendre l'arme
	 *	On a seulement besoin de l'ID du perso, cette ID nous donne le § en cours et donc l'arme en question.
	 */
	function prendreArme(idPerso) {
		var xhr; 
		try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
				try {  xhr = new XMLHttpRequest();     }
				catch (e3) {  xhr = false;   }
			}
		}
		
		xhr.onreadystatechange = function()	{ 
			if (xhr.readyState == 4) {
				if (xhr.status == 200) {
					var tab = xhr.responseText.split("</span><span>");
					document.getElementById("prendreArme").innerHTML = tab[0];
					document.getElementById("arme").innerHTML = tab[1];
				} else {
					document.getElementById("prendreArme").innerHTML = "Réponse en attente...";
				}
			}
		};

		xhr.open("POST", "ajax.arme.php",  true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("perso=" + idPerso);
	} 
	
	/*	Fonction pour prendre l'armure
	 *	On a seulement besoin de l'ID du perso, cette ID nous donne le § en cours et donc l'armure en question.
	 */
	function prendreArmure(idPerso) {
		var xhr; 
		try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
				try {  xhr = new XMLHttpRequest();     }
				catch (e3) {  xhr = false;   }
			}
		}
		
		xhr.onreadystatechange = function()	{ 
			if(xhr.readyState == 4) {
				if (xhr.status == 200) {
					var tab = xhr.responseText.split("</span><span>");
					document.getElementById("prendreArmure").innerHTML = tab[0];
					document.getElementById("armure").innerHTML = tab[1];
				} else {
					document.getElementById("prendreArmure").innerHTML = "Réponse en attente...";
				}
			}
		};

		xhr.open("POST", "ajax.armure.php",  true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("perso=" + idPerso);
	} 
	
	/*	Fonction pour frapper un ennemi
	 *	On a seulement besoin de l'ID du perso, qui nous donne n'ennemi en cours
	 */
	function frapper(idPerso) {
		var xhr; 
		try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
				try {  xhr = new XMLHttpRequest();     }
				catch (e3) {  xhr = false;   }
			}
		}
		
		xhr.onreadystatechange = function()	{ 
			if(xhr.readyState == 4) {
				if (xhr.status == 200) {
					document.getElementById("blocCombats").innerHTML += xhr.responseText;
					document.getElementById("statutCombat").innerHTML = "Statut : Choisissez une action.";
					if (xhr.responseText.indexOf("Vous avez vaincu tous les ennemis de ce paragraphe !") != -1) {
						document.getElementById("statutCombat").style.display = 'none';
						document.getElementById("listeChoix").style.display = 'none';
						document.getElementById("blocCacheCombats").style.display = 'block';
					}
					if (xhr.responseText.indexOf("Votre personnage est mort !") != -1) {
						document.getElementById("statutCombat").style.display = 'none';
						document.getElementById("listeChoix").style.display = 'none';
					}
				} else {
					document.getElementById("statutCombat").innerHTML = "Statut : En attente de réponse";
				}
			}
		};

		xhr.open("POST", "ajax.frapper.php",  true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("perso=" + idPerso);
	}
	
	/*	Fonction pour s'enfuir
	 *	On a seulement besoin de l'ID du perso, qui nous donne n'ennemi en cours
	 */
	function fuir(idPerso) {
		var xhr; 
		try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
				try {  xhr = new XMLHttpRequest();     }
				catch (e3) {  xhr = false;   }
			}
		}
		
		xhr.onreadystatechange = function()	{ 
			if(xhr.readyState == 4) {
				if (xhr.status == 200) {
					document.getElementById("blocCombats").innerHTML += xhr.responseText;
					document.getElementById("statutCombat").innerHTML = "Statut : Choisissez une action.";
					if (xhr.responseText.indexOf("Vous avez vaincu tous les ennemis de ce paragraphe !") != -1) {
						document.getElementById("listeChoix").style.display = 'none';
						document.getElementById("blocCacheCombats").style.display = 'block';
					}
					if (xhr.responseText.indexOf("Votre personnage est mort !") != -1) {
						document.getElementById("listeChoix").style.display = 'none';
					}
				} else {
					document.getElementById("statutCombat").innerHTML = "Statut : En attente de réponse";
				}
			}
		};

		xhr.open("POST", "ajax.fuir.php",  true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("perso=" + idPerso);
	}
	
	/*	Fonction pour tricher 1 combat
	 *	On a seulement besoin de l'ID du perso, qui nous donne n'ennemi en cours
	 */
	function tricher(idPerso) {
		if (confirm("Tricher est une action honteuse qui déteint irrémédiablement sur l'avatar qui la commet.\nVoulez-vous réellement tricher pour gagner ce combat ?")) {
			var xhr; 
			try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
			catch (e) 
			{
				try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
				catch (e2) 
				{
					try {  xhr = new XMLHttpRequest();     }
					catch (e3) {  xhr = false;   }
				}
			}
			
			xhr.onreadystatechange = function()	{ 
				if(xhr.readyState == 4) {
					if (xhr.status == 200) {
						document.getElementById("blocCombats").innerHTML += xhr.responseText;
						document.getElementById("statutCombat").innerHTML = "Statut : Choisissez une action.";
						if (xhr.responseText.indexOf("Vous avez vaincu tous les ennemis de ce paragraphe !") != -1) {
							document.getElementById("listeChoix").style.display = 'none';
							document.getElementById("blocCacheCombats").style.display = 'block';
						}
						if (xhr.responseText.indexOf("Votre personnage est mort !") != -1) {
							document.getElementById("listeChoix").style.display = 'none';
						}
					} else {
						document.getElementById("statutCombat").innerHTML = "Statut : En attente de réponse";
					}
				}
			};

			xhr.open("POST", "ajax.tricher.php",  true);
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.send("perso=" + idPerso);
		}
	}
	
	/*	Fonction pour tricher tous les combats
	 *	On a seulement besoin de l'ID du perso, qui nous donne n'ennemi en cours
	 */
	function tricherParagraphe(idPerso) {
		if (confirm("Tricher est une action honteuse qui déteint irrémédiablement sur l'avatar qui la commet.\nVoulez-vous réellement tricher pour gagner tous les combats de ce paragraphe ?")) {
			var xhr; 
			try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
			catch (e) 
			{
				try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
				catch (e2) 
				{
					try {  xhr = new XMLHttpRequest();     }
					catch (e3) {  xhr = false;   }
				}
			}
			
			xhr.onreadystatechange = function()	{ 
				if(xhr.readyState == 4) {
					if (xhr.status == 200) {
						document.getElementById("blocCombats").innerHTML += xhr.responseText;
						document.getElementById("statutCombat").innerHTML = "Statut : Choisissez une action.";
						if (xhr.responseText.indexOf("Vous avez vaincu tous les ennemis de ce paragraphe !") != -1) {
							document.getElementById("listeChoix").style.display = 'none';
							document.getElementById("blocCacheCombats").style.display = 'block';
						}
						if (xhr.responseText.indexOf("Votre personnage est mort !") != -1) {
							document.getElementById("listeChoix").style.display = 'none';
						}
					} else {
						document.getElementById("statutCombat").innerHTML = "Statut : En attente de réponse";
					}
				}
			};

			xhr.open("POST", "ajax.tricher_paragraphe.php",  true);
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.send("perso=" + idPerso);
		}
	} 
