function insertTag(startTag, endTag, textareaId, tagType) {
        var field  = document.getElementById(textareaId); 
        var scroll = field.scrollTop;
        field.focus();
        
        /* === Partie 1 : on récupère la sélection === */
        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);               
        }
        
        /* === Partie 2 : on analyse le tagType === */
        if (tagType) {
                switch (tagType) {                        
                        case "citation":
				        endTag = "[/quote]";
				        if (currentSelection) { // Il y a une sélection
				                if (currentSelection.length > 30) { // La longueur de la sélection est plus grande que 30. C'est certainement la citation, le pseudo fait rarement 20 caractères
				                        var auteur = prompt("Quel est l'auteur de la citation ?") || "";
				                        startTag = "[quote=" + auteur + "]";
				                } else { // On a l'Auteur, on demande la citation
				                        var citation = prompt("Quelle est la citation ?") || "";
				                        startTag = "[quote=" + currentSelection + "]";
				                        currentSelection = citation;    
				                }
				        } else { // Pas de selection, donc on demande l'Auteur et la Citation
				                var auteur = prompt("Quel est l'auteur de la citation ?") || "";
				                var citation = prompt("Quelle est la citation ?") || "";
				                startTag = "[quote=" + auteur + "]";
				                currentSelection = citation;    
				        }
						break;
                }
        }
        
        /* === Partie 3 : on insère le tout === */
        if (window.ActiveXObject) {
                textRange.text = startTag + currentSelection + endTag;
                textRange.moveStart("character", -endTag.length - currentSelection.length);
                textRange.moveEnd("character", -endTag.length);
                textRange.select();     
        } else {
                field.value = startSelection + startTag + currentSelection + endTag + endSelection;
                field.focus();
                field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
        } 

        field.scrollTop = scroll;     
}

function bbcode(bbdebut, bbfin) {
    // Sélection du texte voulu
    var input = document.getElementById('message');
    input.focus();
    // Utilisation de IE 
    if(typeof document.selection != 'undefined') {
        // Créé un objet de type tete correspondant à la sélection
        var range = document.selection.createRange();
        // Récupère le texte dans une variable
        var insText = range.text;
        // Insertion du BBCODE en début et fin de la sélection (balisage)
        range.text = bbdebut + insText + bbfin;
        range = document.selection.createRange();
        // Si le texte sélectionné n'est composé de rien
        if (insText.length == 0) {
            //Insère la balise à l'endroit sélectionné et place le curseur au milieu de la balise de BBCODE
            range.move('character', -bbfin.length);
        }
        // Si le texte sélectionné contient des éléments
        else {
            // Place la balise autour du texte sélectionné et le curseur en fin de sélection
            range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
        }
        range.select();
    }
    // Utilisation de Firefox
    else if(typeof input.selectionStart != 'undefined') {
        // Récupération des positions de début et de fin de la sélection
        var start = input.selectionStart;
        var end = input.selectionEnd;
        // récupère le texte sélectionné
        var insText = input.value.substring(start, end);
        // Insertion des balises de BBCode
        input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
        var pos;
        // Position du curseur après insertion
        if (insText.length == 0) {
            pos = start + bbdebut.length;
        }
        else {
            pos = start + bbdebut.length + insText.length + bbfin.length;
        }
        input.selectionStart = pos;
        input.selectionEnd = pos;
    }
    else {
        var pos;
        // création d'un objet représentant une expression régulière formée de 3 chiffres
        var re = new RegExp('^[0-9]{0,3}$');
        while(!re.test(pos)) {
            pos = prompt("insertion (0.." + input.value.length + "):", "0");
        }
        if(pos > input.value.length) {
            pos = input.value.length;
        }
        var insText = prompt("Veuillez taper le texte");
        input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
    }
}

function smilies(img) {
    document.getElementById('MessageC').value += ' ' + img + ' ';
}

function affiche() {
    document.getElementById("previsu").style.visibility="visible";
    document.getElementById("btn_ajout").disabled=false;
    var msg = document.getElementById("MessageC").value;
    
    // ici pour ajouter des smiley
    msg2 = msg.replace(/:happy:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/happy.gif" alt="happy" title="happy" />');
    msg2 = msg2.replace(/:hap:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/hap.gif" alt="hap" title="hap" />');
    msg2 = msg2.replace(/:nohap:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/nohap.gif" alt="nohap" title="nohap" />');
    msg2 = msg2.replace(/:rire:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/rire.gif" alt="rire" title="Rire" />');
    msg2 = msg2.replace(/:rire2:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/rire2.gif" alt="rire2" title="Rire2" />');
    msg2 = msg2.replace(/:ok:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/ok.gif" alt="ok" title="OK" />');
	msg2 = msg2.replace(/:noel:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/noel.gif" alt="noel" title="Noël" />');
    msg2 = msg2.replace(/:coeur:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/coeur.gif" alt="coeur" title="coeur" />');
    msg2 = msg2.replace(/:bave:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/bave.gif" alt="bave" title="Bave" />');
    msg2 = msg2.replace(/:honte:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/honte.gif" alt="honte" title="Honte" />');
    msg2 = msg2.replace(/:ouch:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/ouch.gif" alt="ouch" title="Ouch" />');
    msg2 = msg2.replace(/:non:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/non.gif" alt="non" title="Non" />');
    msg2 = msg2.replace(/:ange:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/ange.gif" alt="ange" title="Ange" />');
    msg2 = msg2.replace(/:cool:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/cool.gif" alt="cool" title="Cool" />');
    msg2 = msg2.replace(/:fete:/g,'<img src="http://localhost/sitev3/ressources_site/graphisme/menus/smiley/fete.gif" alt="fête" title="Fête" />');
	
	msg2 = msg2.replace(/\n/g,'<br/>');
	
	msg2 = msg2.replace(/\[quote(.?)\]([\s\S].*?)\[\/quote\]/g, '<div class="quote"><span class="gras">Citation:</span><br />$2</div>');
	msg2 = msg2.replace(/\[quote=(.*?)\]([\s\S].*?)\[\/quote\]/g, '<div class="quote"><span class="gras">$1 a écrit:</span><br />$2</div>');
	msg2 = msg2.replace(/\[spoil\]([\s\S]*?)\[\/spoil\]/g, '<a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class="spoil">Spoil <img src="ressources_site/graphisme/menus/spoil.png" alt="Spoil" title="Spoil" /></div></a><span style="display: none;" class="italique">$1</span>');
		
    document.getElementById("texte_prev").innerHTML=msg2;
}

/*function preview(textareaId, previewDiv) {
	var field = textareaId.value;
	if (document.getElementById('previsualisation').checked && field) {
		
		var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
		var smiliesUrl  = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
		var smiliesPath = "http:...";
	
		field = field.replace(/&/g, '&amp;');
		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
								
		field = field.replace(/\[gras\]([\s\S]*?)\[\/gras\]/g, '<strong>$1</strong>');
		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
		field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
		field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
		field = field.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
		field = field.replace(/&lt;citation lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
		field = field.replace(/&lt;citation nom=\"(.*?)\" lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
		field = field.replace(/&lt;citation lien=\"(.*?)\" nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
		field = field.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
		field = field.replace(/&lt;taille valeur=\"(.*?)\"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
		field = field.replace(/\[quote(.?)\]([\s\S].*?)\[\/quote\]/g, '<div class="quote"><span class="gras">Citation:</span><br />$2</div>');
		field = field.replace(/\[quote=(.*?)\]([\s\S].*?)\[\/quote\]/g, '<div class="quote"><span class="gras">$1 a écrit:</span><br />$2</div>');
		field = field.replace(/\[spoil\]([\s\S]*?)\[\/spoil\]/g, '<a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class="spoil">Voir/ masquer</div></a><span style="display: none;" class="italique">$1</span>');
		for (var i=0, c=smiliesName.length; i<c; i++) {
			field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), "&nbsp;<img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" />&nbsp;");
		}		
		document.getElementById(previewDiv).innerHTML = field;
	}
}*/

function getXMLHttpRequest() {
	var xhr = null;
	
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest();
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
	
	return xhr;
}

function view(textareaId, viewDiv){
	var content = encodeURIComponent(document.getElementById(textareaId).value);
	var xhr = getXMLHttpRequest();
	
	if (xhr && xhr.readyState != 0) {
		xhr.abort();
		delete xhr;
	}
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200){
			document.getElementById(viewDiv).innerHTML = xhr.responseText;
		} else if (xhr.readyState == 3){
			document.getElementById(viewDiv).innerHTML = "<div style=\"text-align: center;\">Chargement en cours...</div>";
		}
	}
	
	xhr.open("POST", "./view.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send("string=" + content);
}

function spoil(myElem)
{
	if (myElem.nextSibling.style.display == "none" )
	{
	myElem.nextSibling.style.display = "block";
	}
	else
	{
	myElem.nextSibling.style.display = "none";
	}
}
