function bbcode(bbdebut, bbfin) {
var input = window.document.formulaire.textarea;
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.textarea.value += '' + img + '';
}

//ajoute une balise au textarea (prompt pour l'argument)
function add_bal2(nom, val, id_textarea, id_prev)
{
var champ = document.getElementById(id_textarea);
var texte = '';
if (nom == 'citation')
{
texte = 'Veuillez renseigner l\'auteur de la citation';
bal = prompt(texte);
if (!bal && nom == 'citation')
bal = 'Pas de titre';
balise_debut = '<'+nom+' '+val+'="'+bal+'">';
balise_fin = '</'+nom+'>';
}
else if (nom == 'lien')
{
if (champ.curseur)
txt_selectionne = champ.curseur.text;
else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
else
txt_selectionne = '';

if (txt_selectionne.indexOf('http://') == 0
|| txt_selectionne.indexOf('https://') == 0
|| txt_selectionne.indexOf('ftp://') == 0
|| txt_selectionne.indexOf('apt://') == 0)
{
texte = 'Veuillez indiquer le texte du lien';
bal2 = prompt(texte);
balise_debut = '<'+nom+' '+val+'="';
balise_fin = '">'+bal2+'</'+nom+'>';
}
else if (txt_selectionne == '')
{
texte = 'Veuillez indiquer le lien';
bal = prompt(texte);
bal2 = prompt('Veuillez indiquer le texte du lien');
balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2;
balise_fin = '</'+nom+'>';
}
else
{
texte = 'Veuillez indiquer le lien';
bal = prompt(texte);
balise_debut = '<'+nom+' '+val+'="'+bal+'">';
balise_fin = '</'+nom+'>';
}
}
else if (nom == 'email')
{
texte = 'Veuillez indiquer l\'email';
bal = prompt(texte);
balise_debut = '<'+nom+' '+val+'="'+bal+'">';
balise_fin = '</'+nom+'>';
}

balise(balise_debut,balise_fin, id_textarea);parse(id_textarea, id_prev);
if (document.getElementById(nom))
document.getElementById(nom).options[0].selected = true;
}

//insère une balise dans le 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;
}

//remplace search par replace dans data
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;
}
