//Shaper
function insertTag(startTag, endTag, textareaId, tagType) {
	var field = document.getElementById(textareaId);
	field.focus();
	var curseur = field.scrollTop;
	
	if (window.ActiveXObject) {
		var textRange = document.selection.createRange();            
		var currentSelection = textRange.text;
	} else {
		var startSelection   = field.value.substring(0, field.selectionStart);
		var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
		var endSelection     = field.value.substring(field.selectionEnd);
	}
	
	if (tagType) {
		switch (tagType) {
			case "lien":
					endTag = "</lien>";
					if (currentSelection) {
							if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
									var label = prompt("Quel est le libellé du lien ?") || "";
									startTag = "<lien url=\"" + currentSelection + "\">";
									currentSelection = label;
							} else {
									var URL = prompt("Quel est le lien ?");
									startTag = "<lien url=\"" + URL + "\">";
							}
					} else {
							var URL = prompt("Quel est le lien ?") || "";
							var label = prompt("Quel est le libellé du lien ?") || "";
							startTag = "<lien url=\"" + URL + "\">";
							currentSelection = label;                     
					}
			break;
			case "citation":
					endTag = "</citation>";
					if (currentSelection) {
							if (currentSelection.length > 15) {
									var auteur = prompt("Quel est l'auteur de la citation ?") || "";
									startTag = "<citation nom=\"" + auteur + "\">";
							} else {
									var citation = prompt("Quelle est la citation ?") || "";
									startTag = "<citation nom=\"" + currentSelection + "\">";
									currentSelection = citation;    
							}
					} else {
							var auteur = prompt("Quel est l'auteur de la citation ?") || "";
							var citation = prompt("Quelle est la citation ?") || "";
							startTag = "<citation nom=\"" + auteur + "\">";
							currentSelection = citation;    
					}
			break;
			case "liste":
					endTag = "</liste>";
					if(currentSelection) {
						startTag = "<liste>\n<puce>"+ currentSelection + "</puce>\n";
						var first = 2;
					}
					else {
						startTag = "<liste>\n";
						var first = 1;
					}
					var thepuce;
					for(i = first; thepuce != ""; i++) {
						thepuce = prompt("Quel est le contenu de la puce n°"+ i +"?\n (Annuler pour arrêter)") || "";
						if(thepuce != "") {
							currentSelection += "<puce>"+ thepuce +"</puce>\n";
						}
					} 
			break;
			case "secret":
			endTag = "</secret>";
			if(currentSelection.length > 10) {
					var titre = prompt("Quel est le titre du secret?") || "";
					startTag = '<secret titre="'+ titre +'">';
			}
			else {
				if(currentSelection == null || currentSelection == "") {
					var titre = prompt("Quel est le titre du secret?") || "";
					currentSelection = prompt("Quel est le contenu du secret?") || "";
				}
				else {
					var titre = currentSelection;
					currentSelection = prompt("Quel est le contenu du secret?") || "";
				}
			}
			startTag = '<secret titre="'+ titre +'">';
		}
	}
	
	if (window.ActiveXObject) {
		textRange.text = startTag + currentSelection + endTag;
		textRange.moveStart('character', -endTag.length-currentSelection.length);
		textRange.moveEnd('character', -endTag.length);
		textRange.select();  
	} else { // Ce n'est pas IE
		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
		field.focus();
		field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
	}
	field.scrollTop = curseur;
}
	var xhr = null;
	// Fonction de creation de l'objet XMLHttpRequest qui resservira pour chaques fonctions AJAX 
	function getXhr() { 
		if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject) { 
			try { 
				xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
			} 
			catch (e) { 
				xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		} 
		else { 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour");
			xhr = false; 
		} 
	} 
	// Premiere fonction : remplacer le contenu d'un div
	 // Sans recuperation de valeur 
	 function preview(fam) {
		 var contenu = encodeURIComponent(fam);
		 var field = document.getElementById('message');
		 var preview = document.getElementById('preview');
		 getXhr();
		 xhr.onreadystatechange = function() {
			 if(xhr.readyState == 4 && xhr.status == 200) {
				document.getElementById('preview').innerHTML = xhr.responseText;
			 }
		 }
		 xhr.open("POST",'./parsage.php',true);
		 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		 xhr.send("message="+contenu);
		 if(field.scrollTop > 75) {
			preview.scrollTop = field.scrollTop + 75;
		 }
		 else {
			 preview.scrollTop = 0;
		 }
	 } 
