var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  previsualisation() {
t=document.formulaire.bbcode.value 
t=code_to_html(t)
if (document.getElementById) document.getElementById("prev").innerHTML=t
if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,0)
<!-- le "1" est le temps que met le texte à s'afficher, "1" : le texte s'affichera en même temps que l'on écrit (en s) !-->
}
function automatique() {
if (document.formulaire.bbcode) previsualisation()
}
function code_to_html(t) {
t=nl2khol(t)
// Balise Gras <!-- on lui dis que telles balises correspondent à tels codes en HTML -->
t=deblaie(/(\[\/gras\])/g,t)
t=remplace_tag(/\[gras\](.+)\[\/gras\]/g,'<span style="font-weight: bold;">$1</span>',t) 
t=remblaie(t)

// Balise Italic
t=deblaie(/(\[\/italic\])/g,t)
t=remplace_tag(/\[italic\](.+)\[\/italic\]/g,'<span style="font-style: italic;">$1</span>',t) 
t=remblaie(t)

// Balise Souligné
t=deblaie(/(\[\/souligne\])/g,t)
t=remplace_tag(/\[souligne\](.+)\[\/souligne\]/g,'<span style="text-decoration: underline;">$1</span>',t)
t=remblaie(t)

// Balise Barré
t=deblaie(/(\[\/barre\])/g,t)
t=remplace_tag(/\[barre\](.+)\[\/barre\]/g,'<span style="text-decoration: line-through;">$1</span>',t)
t=remblaie(t)

// Balise Image
t=deblaie(/(\[\/image\])/g,t)
t=remplace_tag(/\[image\](.+)\[\/image\]/g,'<img src="$1" />',t)
t=remblaie(t)

// Balise URL   
t=deblaie(/(\[\/url\])/g,t)
t=remplace_tag(/\[\url=([\s\S]*?)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t)
t=remblaie(t)

// Balise email
t=deblaie(/(\[\/email\])/g,t)
t=remplace_tag(/\[\email=([\s\S]*?)\](.+)\[\/email\]/g,'<a href="mailto:$1">$2</a>',t)
t=remblaie(t)

// Smilies
t=remplace_tag(/:smile:/g,'<img src="./smilies/smile.png" alt="smile" />',t)
t=remplace_tag(/:heureux:/g,'<img src="./smilies/heureux.png" alt="heureux" />',t)
t=remplace_tag(/:clin:/g,'<img src="./smilies/clin.png" alt="clin" />',t)
t=remplace_tag(/:langue:/g,'<img src="./smilies/langue.png" alt="langue" />',t)

t=remplace_tag(/:lol:/g,'<img src="./smilies/rire.gif" alt="rire" />',t)
t=remplace_tag(/:euh:/g,'<img src="./smilies/unsure.gif" alt="unsure" />',t)
t=remplace_tag(/:triste:/g,'<img src="./smilies/triste.png" alt="triste" />',t)
t=remplace_tag(/:huh:/g,'<img src="./smilies/huh.png" alt="huh" />',t)

t=remplace_tag(/:colere:/g,'<img src="./smilies/mechant.png" alt="mechant" />',t)
t=remplace_tag(/o_O/g,'<img src="./smilies/blink.gif" alt="blink" />',t)
t=remplace_tag(/\^\^/g,'<img src="./smilies/hihi.png" alt="hihi" />',t)
t=remplace_tag(/:siffle:/g,'<img src="./smilies/siffle.png" alt="siffle" />',t)

t=remplace_tag(/>_</g,'<img src="./smilies/pinch.png" alt="pinch" />',t)
t=remplace_tag(/:honte:/g,'<img src="./smilies/rouge.png" alt="rouge" />',t)
t=remplace_tag(/:soleil:/g,'<img src="./smilies/soleil.png" alt="soleil" />',t)
t=remplace_tag(/:pleure:/g,'<img src="./smilies/pleure.png" alt="pleure" />',t)

t=remplace_tag(/:ninja:/g,'<img src="./smilies/ninja.png" alt="ninja" />',t)
t=remplace_tag(/:magicien:/g,'<img src="./smilies/magicien.png" alt="magicien" />',t)

t=remplace_tag(/:pirate:/g,'<img src="./smilies/pirate.png" alt="pirate" />',t)
t=remplace_tag(/:zorro:/g,'<img src="./smilies/zorro.png" alt="zorro" />',t)
t=remplace_tag(/:waw:/g,'<img src="./smilies/waw.png" alt="waw" />',t)

t=remplace_tag(/:diable:/g,'<img src="./smilies/diable.png" alt="diable" />',t)
t=remplace_tag(/:colere2:/g,'<img src="./smilies/angry.gif" alt="angry" />',t)
t=remplace_tag(/:ange:/g,'<img src="./smilies/ange.png" alt="ange" />',t)
t=remblaie(t)
t=unkhol(t)
t=nl2br(t)
return t
}
<!-- tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP !-->
function deblaie(reg,t) {
bbcode=new String(t);
return bbcode.replace(reg,'$1\n');
}
function remblaie(t) {
bbcode=new String(t);
return bbcode.replace(/\n/g,'');
}
function remplace_tag(reg,rep,t) {
bbcode=new String(t);
return bbcode.replace(reg,rep);
}
function nl2br(t) {
bbcode=new String(t);
return bbcode.replace(/\n/g,'<br/>');
}
function nl2khol(t) {
bbcode=new String(t);
return bbcode.replace(/\n/g,ptag);
}
function unkhol(t) {
bbcode=new String(t);
return bbcode.replace(new RegExp(ptag,'g'),'\n');
}   