function bbcode(bbdebut, bbfin)
{
var input = window.document.formulaire.message;
input.focus();
/* pour IE (toujous un cas appar lui ;) )*/
if(typeof document.selection != 'undefined')
{
var range = document.selection.createRange();
var insText = range.text;
range.text = bbdebut + insText + bbfin;
range = document.selection.createRange();
if (insText.length == 0)
{
range.move('character', -bbfin.length);
}
else
{
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
}
range.select();
}
/* pour les navigateurs plus récents que IE comme Firefox... */
else if(typeof input.selectionStart != 'undefined')
{
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
var pos;
if (insText.length == 0)
{
pos = start + bbdebut.length;
}
else
{
pos = start + bbdebut.length + insText.length + bbfin.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* pour les autres navigateurs comme Netscape... */
else
{
var pos;
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)
{
window.document.formulaire.message.value += '' + img + '';
}

// La fonction prend en argument la liste déroulante qui l'a appelée
// Comme ça on peut récuperer facilement toutes ses propriétés
function doAligne(positionList) {
        // Si la fonction a été appelée depuis la liste
        if(positionList) {
                // On récupère la valeur de position selectionnée dans la liste
                var positionValue = positionList.options[positionList.selectedIndex].value;
                // ATTENTION : Ici on considère que la valeur par défaut est la PREMIERE option de la liste
                // On remet la liste sur la position par défaut
                positionList.options[positionList.selectedIndex].selected = false;
                positionList.options[0].selected = true;
                
                // On appelle la fonction d'insertion si la valeur n'est pas vide
                if(positionValue != '') {
                        bbcode('[align='+positionValue+']', '[/align]');
                }
        }
}


function doPosition(positionList) {
        // Si la fonction a été appelée depuis la liste
        if(positionList) {
                // On récupère la valeur de position selectionnée dans la liste
                var positionValue = positionList.options[positionList.selectedIndex].value;
                // ATTENTION : Ici on considère que la valeur par défaut est la PREMIERE option de la liste
                // On remet la liste sur la position par défaut
                positionList.options[positionList.selectedIndex].selected = false;
                positionList.options[0].selected = true;
                
                // On appelle la fonction d'insertion si la valeur n'est pas vide
                if(positionValue != '') {
                        bbcode('[pos='+positionValue+']', '[/pos]');
                }
        }
}

function doColor(positionList) {
        // Si la fonction a été appelée depuis la liste
        if(positionList) {
                // On récupère la valeur de position selectionnée dans la liste
                var positionValue = positionList.options[positionList.selectedIndex].value;
                // ATTENTION : Ici on considère que la valeur par défaut est la PREMIERE option de la liste
                // On remet la liste sur la position par défaut
                positionList.options[positionList.selectedIndex].selected = false;
                positionList.options[0].selected = true;
                
                // On appelle la fonction d'insertion si la valeur n'est pas vide
                if(positionValue != '') {
                        bbcode('[color='+positionValue+']', '[/color]');
                }
        }
}

function doTaille(positionList) {
        // Si la fonction a été appelée depuis la liste
        if(positionList) {
                // On récupère la valeur de position selectionnée dans la liste
                var positionValue = positionList.options[positionList.selectedIndex].value;
                // ATTENTION : Ici on considère que la valeur par défaut est la PREMIERE option de la liste
                // On remet la liste sur la position par défaut
                positionList.options[positionList.selectedIndex].selected = false;
                positionList.options[0].selected = true;
                
                // On appelle la fonction d'insertion si la valeur n'est pas vide
                if(positionValue != '') {
                        bbcode('[taille='+positionValue+']', '[/taille]');
                }
        }
}
