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 "lien":
                                endTag = "[/lien]";
                                if (currentSelection) { // Il y a une sélection
                                        if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
                                                // La sélection semble être un lien. On demande alors le libellé
                                                var label = prompt("Quel est le libellé du lien ?") || "";
                                                startTag = "[lien url=" + currentSelection + "]";
                                                currentSelection = label;
                                        } else {
                                                // La sélection n'est pas un lien, donc c'est le libelle. On demande alors l'URL
                                                var URL = prompt("Quelle est l'url ?");
                                                startTag = "[lien url=" + URL + "]";
                                        }
                                } else { // Pas de sélection, donc on demande l'URL et le libelle
                                        var URL = prompt("Quelle est l'url ?") || "";
                                        var label = prompt("Quel est le libellé du lien ?") || "";
                                        startTag = "[lien url=" + URL + "]";
                                        currentSelection = label;
                                }
                        break;
                        case "citation":
                                // Si c'est une 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 smilies(img)
        {
        window.document.formulaire.message.value += '' + img + '';
        }
<!--
        function bbcodestr (str) {
        str = str.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
        str.replace("\n","<br />");
        var
        tab = [
        ["\\[lien url=(.+?)\\](.+?)\\[/lien\\]", "<a href=\"$1\">$2</a>"],
        ["\\[citation auteur=(.+?)\\]([^ ]+)\\[/citation\\]", "<fieldset><legend><img src=\"../../design/defaut/icones/quote.png\" style=\"vertical-align: -2px;\" /> $1</legend>$2</fieldset>"],
        ["\\[gras\\](.+?)\\[/gras\\]", "<strong>$1</strong>"],
        ["\\[italique\\](.+?)\\[/italique\\]", "<i>$1</i>"],
        ["\\[souligne\\](.+?)\\[/souligne\\]", "<u>$1</u>"],
        ["\\[titre1\\](.+?)\\[/titre1\\]", "<h1>$1</h1>"],
        ["\\[titre2\\](.+?)\\[/titre2\\]", "<h3>$1</h3>"],
        ["\\[image\\](.+?)\\[/image\\]", "<img src=\"$1\" />"],
        ["\\[info\\](.+?)\\[/info\\]", "<div id=\"info\">$1</div>"],
        ["\\[question\\](.+?)\\[/question\\]", "<p class=\"rmq question\">$1</p>"],
        ["\\[attention\\](.+?)\\[/attention\\]", "<div class='rmq attention'>$1</div>"],
        ["\\[barre\\](.+?)\\[/barre\\]", "<strike>$1</strike>"],
        ["\\[agauche\\](.+?)\\[/agauche\\]", "<p align='left'>$1</p>"],
        ["\\[adroite\\](.+?)\\[/adroite\\]", "<p align='right'>$1</p>"],
        ["\\[centre\\](.+?)\\[/centre\\]", "<p align='center'>$1</p>"],
        ["\\[code=\"(.+?)\"\\](.+?)\\[/code\\]", "<pre class=\"brush: $1\">$2</pre>"],
        ["\n", "<br />"],
        [":@", "<img src='design/defaut/smileys/colere.png' style='vertical-align:-5px;' alt=':@' /> "],
        [":p", "<img src='design/defaut/smileys/langue.gif' style='vertical-align:-5px;' alt=':p' /> "],
        [":\\-\\(", "<img src='design/defaut/smileys/pleure.png' style='vertical-align:-5px;' alt=':\\-\\(' /> "],
        [":non:", "<img src='design/defaut/smileys/non.gif' style='vertical-align:-5px;' alt=':non:' /> "],
        [";\\)", "<img src='design/defaut/smileys/CD.png' style='vertical-align:-5px;' alt=';)' /> "],
        [":\\)", "<img src='design/defaut/smileys/smile.png' style='vertical-align:-5px;' alt=':)' /> "],
        [":oui:", "<img src='design/defaut/smileys/oui.gif' style='vertical-align:-5px;' alt=':oui:' /> "],
        ["\\^\\^", "<img src='design/defaut/smileys/hihi.png' style='vertical-align:-5px;' alt='\\^\\^' /> "],
        [":lol:", "<img src='design/defaut/smileys/lol.gif' style='vertical-align:-5px;' alt='lol' /> "],
        ["\\+1", "<img src='design/defaut/smileys/plusun.gif' style='vertical-align:-5px;' alt='plus' /> "],
        [":O", "<img src='design/defaut/smileys/oo.png' style='vertical-align:-5px;' alt=':O' /> "],
        [":\\-\\/", "<img src='design/defaut/smileys/heu.png' style='vertical-align:-5px;' alt=':\\/' /> "],
		[":°", "<img src='design/defaut/smileys/siffle.gif' style='vertical-align:-5px;' alt=':°' /> "],
        [":\\(", "<img src='design/defaut/smileys/triste.png' style='vertical-align:-5px;' alt=':\\(' /> "],
        ]; // fin
        for
        (var i=0; i < tab.length; i++) {
        str = str.replace(new RegExp(tab[i][0], "g"), tab[i][1]);
        }
        return str;
        }
        function keyup (champ, id) {

        var
        str = bbcodestr(champ.value);
        document.getElementById(id).innerHTML = str;
        }

// -->
