var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  previsualisation() {
t=document.formulaire.textarea.value 
t=code_to_html(t)
if (document.getElementById) document.getElementById("prev").innerHTML=t
if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
<!-- 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.auto.checked) previsualisation() <!-- si on a coché la case d'aperçu automatique -->
}
function code_to_html(t) {
t=nl2khol(t)

// balise Gras <!-- on lui dit que telle balise correspond à tel code en HTML -->
t=deblaie(/(\[\/g\])/g,t)
t=remplace_tag(/\[g\](.+)\[\/g\]/g,'<b>$1</b>',t) 
t=remblaie(t)

t=deblaie(/(\<\/gras\>)/g,t)
t=remplace_tag(/\<gras\>(.+)\<\/gras\>/g,'<b>$1</b>',t) 
t=remblaie(t)

// balise Italic
t=deblaie(/(\[\/i\])/g,t)
t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<em>$1</em>',t) 
t=remblaie(t)

t=deblaie(/(\<\/italique\>)/g,t)
t=remplace_tag(/\<italique\>(.+)\<\/italique\>/g,'<em>$1</em>',t) 
t=remblaie(t)

// balise barrer
t=deblaie(/(\[\/barrer\])/g,t)
t=remplace_tag(/\[barrer\](.+)\[\/barrer\]/g,'<strike>$1</strike>',t) 
t=remblaie(t)

t=deblaie(/(\<\/barre\>)/g,t)
t=remplace_tag(/\<barre\>(.+)\<\/barre\>/g,'<strike>$1</strike>',t) 
t=remblaie(t)

// balise Citation
t=deblaie(/(\[\/cite\])/g,t)
t=remplace_tag(/\[cite auteur=([\s\S]*?)\](.+)\[\/cite\]/g,'<strong>Citation $1 :</strong><div style="border: 1px solid #000000; width: 98%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$2</div>',t) 
t=remblaie(t)

// balise Citation
t=deblaie(/(\[\/cite\])/g,t)
t=remplace_tag(/\[cite\](.+)\[\/cite\]/g,'<strong>Citation :</strong><div style="border: 1px solid #000000; width: 98%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$1</div>',t) 
t=remblaie(t)

t=deblaie(/(\<\/citation\>)/g,t)
t=remplace_tag(/\<citation\>(.+)\<\/citation\>/g,'<strong>Citation :</strong><div style="border: 1px solid #000000; width: 98%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$1</div>',t) 
t=remblaie(t)

// balise lien
t=deblaie(/(\[\/url\])/g,t)
t=remplace_tag(/\[url\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$1</a>',t)
t=remblaie(t)

t=deblaie(/(\<\/lien\>)/g,t)
t=remplace_tag(/\<lien\>(.+)\<\/lien\>/g,'<a href="$1" target="_blank">$1</a>',t) 
t=remblaie(t)

// balise lien avec nom
t=deblaie(/(\[\/url\])/g,t)
t=remplace_tag(/\[url=(.+)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t)
t=remblaie(t)

t=deblaie(/(\<\/lien\>)/g,t)
t=remplace_tag(/\<lien url="(.+)"\>(.+)\<\/lien\>/g,'<a href="$1" target="_blank">$2</a>',t) 
t=remblaie(t)

//couleur
t=deblaie(/(\[\/couleur\])/g,t)
t=remplace_tag(/\[couleur=(.+)\](.+)\[\/couleur\]/g,'<span style="color:$1;">$2</span>',t)
t=remblaie(t)

t=deblaie(/(\<\/couleur\>)/g,t)
t=remplace_tag(/\<couleur valeur="(.+)"\>(.+)\<\/couleur\>/g,'<span style="color:$1;">$2</span>',t) 
t=remblaie(t)

//taille
t=deblaie(/(\[\/taille\])/g,t)
t=remplace_tag(/\[taille=(.+)\](.+)\[\/taille\]/g,'<span style="font-size:$1px;">$2</span>',t)
t=remblaie(t)

// balise souligner
t=deblaie(/(\[\/s\])/g,t)
t=remplace_tag(/\[s\](.+)\[\/s\]/g,'<u>$1</u>',t)
t=remblaie(t)

t=deblaie(/(\<\/souligne\>)/g,t)
t=remplace_tag(/\<souligne\>(.+)\<\/souligne\>/g,'<u>$1</u>',t) 
t=remblaie(t)

// balise titres
t=deblaie(/(\[\/titre1\])/g,t)
t=remplace_tag(/\[titre1\](.+)\[\/titre1\]/g,'<h1>$1</h1>',t)
t=remblaie(t)
t=deblaie(/(\[\/titre2\])/g,t)
t=remplace_tag(/\[titre2\](.+)\[\/titre2\]/g,'<h2>$1</h2>',t)
t=remblaie(t)
t=deblaie(/(\[\/titre3\])/g,t)
t=remplace_tag(/\[titre3\](.+)\[\/titre3\]/g,'<h3>$1</h3>',t)
t=remblaie(t)

// balise tableau
t=deblaie(/(\[\/tableau\])/g,t)
t=remplace_tag(/\[tableau\](.+)\[\/tableau\]/g,'<table>$1</table>',t)
t=remblaie(t)
t=deblaie(/(\[\/colone\])/g,t)
t=remplace_tag(/\[colone\](.+)\[\/colone\]/g,'<tr>$1</tr>',t)
t=remblaie(t)
t=deblaie(/(\[\/ligne\])/g,t)
t=remplace_tag(/\[ligne\](.+)\[\/ligne\]/g,'<td>$1</td>',t)
t=remblaie(t)

// balise droite
t=deblaie(/(\[\/droite\])/g,t)
t=remplace_tag(/\[droite\](.+)\[\/droite\]/g,'<span class="floatdroite">$1</span>',t)
t=remblaie(t)

t=deblaie(/(\<\/aligner\>)/g,t)
t=remplace_tag(/\<aligner valeur="droite"\>(.+)\<\/aligner\>/g,'<div style="text-align:right;">$1</div>',t) 
t=remblaie(t)

// balise centrer
t=deblaie(/(\[\/centrer\])/g,t)
t=remplace_tag(/\[centrer\](.+)\[\/centrer\]/g,'<center>$1</center>',t)
t=remblaie(t)

t=deblaie(/(\<\/aligner\>)/g,t)
t=remplace_tag(/\<aligner valeur="centrer"\>(.+)\<\/aligner\>/g,'<center>$1</center>',t) 
t=remblaie(t)

// balise image
t=deblaie(/(\[\/img\])/g,t)
t=remplace_tag(/\[img\](.+)\[\/img\]/g,'<img src="$1" border="0" alt="Image utilisateur">',t)
t=remblaie(t)

t=deblaie(/(\<\/image\>)/g,t)
t=remplace_tag(/\<image\>(.+)\<\/image\>/g,'<img src="$1" border="0" alt="Image utilisateur">',t) 
t=remblaie(t)

// exposant indice

t=deblaie(/(\<\/exposant\>)/g,t)
t=remplace_tag(/\<exposant\>(.+)\<\/exposant\>/g,'<sup>$1</sup>',t) 
t=remblaie(t)

t=deblaie(/(\<\/indice\>)/g,t)
t=remplace_tag(/\<indice\>(.+)\<\/indice\>/g,'<sub>$1</sub>',t) 
t=remblaie(t)

// smilies Smile <!-- on oublie pas les smilies -->
t=remplace_tag(/:-\)/g,'<img src="images/smileys/content.gif" title="content" alt="content" />',t)
t=remplace_tag(/:-\(/g,'<img src="images/smileys/pas content.gif" title="pas content" alt="pas content" />',t)
t=remplace_tag(/#-\(/g,'<img src="images/smileys/blesse.gif" title="blesse" alt="blesse" />',t)
t=remplace_tag(/:\)/g,'<img src="images/smileys/content.gif" title="content" alt="content" />',t)
t=remplace_tag(/:\(/g,'<img src="images/smileys/pas content.gif" title="pas content" alt="pas content" />',t)
t=remplace_tag(/#\(/g,'<img src="images/smileys/blesse.gif" title="blesse" alt="blesse" />',t)
t=remplace_tag(/:tenerve:/g,'<img src="images/smileys/tenerve.gif" title="tenerve" alt="tenerve" />',t)
t=remplace_tag(/:choc:/g,'<img src="images/smileys/choc.gif" title="choc" alt="choc" />',t)
t=remplace_tag(/:oula:/g,'<img src="images/smileys/oula.gif" title="oula" alt="oula" />',t)
t=remplace_tag(/:enerve:/g,'<img src="images/smileys/enerve.gif" title="enerve" alt="enerve" />',t)
t=remplace_tag(/:love:/g,'<img src="images/smileys/love.gif" title="love" alt="love" />',t)
t=remplace_tag(/:ouch:/g,'<img src="images/smileys/ouch.gif" title="ouch" alt="ouch" />',t)
t=remplace_tag(/:bouhou:/g,'<img src="images/smileys/bouhou.gif" title="bouhou" alt="bouhou" />',t)
t=remplace_tag(/:clin:/g,'<img src="images/smileys/clin.gif" title="clin" alt="clin" />',t)
t=remplace_tag(/:cool:/g,'<img src="images/smileys/cool.gif" title="cool" alt="cool" />',t)
t=remplace_tag(/:freedent:/g,'<img src="images/smileys/freedent.gif" title="freedent" alt="freedent" />',t)
t=remplace_tag(/:hihi:/g,'<img src="images/smileys/hihi.gif" title="hihi" alt="hihi" />',t)
t=remplace_tag(/:lol:/g,'<img src="images/smileys/lol.gif" title="lol" alt="lol" />',t)
t=remplace_tag(/:mega-triste:/g,'<img src="images/smileys/mega-triste.gif" title="mega-triste" alt="mega-triste" />',t)
t=remplace_tag(/:mort_de_rire:/g,'<img src="images/smileys/mort_de_rire.gif" title="mort_de_rire" alt="mort_de_rire" />',t)
t=remplace_tag(/:niark:/g,'<img src="images/smileys/niark.gif" title="niark" alt="niark" />',t)
t=remplace_tag(/:ouf:/g,'<img src="images/smileys/ouf.gif" title="ouf" alt="ouf" />',t)
t=remplace_tag(/:pensif:/g,'<img src="images/smileys/pensif.gif" title="pensif" alt="pensif" />',t)
t=remplace_tag(/:pleur:/g,'<img src="images/smileys/pleur.gif" title="pleur" alt="pleur" />',t)
t=remplace_tag(/:pleurs:/g,'<img src="images/smileys/pleurs.gif" title="pleurs" alt="pleurs" />',t)
t=remplace_tag(/:p/g,'<img src="images/smileys/langue.gif" title="langue" alt="langue" />',t)
t=remplace_tag(/:rien:/g,'<img src="images/smileys/rien.gif" title="rien" alt="rien" />',t)
t=remplace_tag(/:rouge:/g,'<img src="images/smileys/rouge.gif" title="rouge" alt="rouge" />',t)
t=remplace_tag(/:sifle:/g,'<img src="images/smileys/sifle.gif" title="sifle" alt="sifle" />',t)
t=remplace_tag(/:t_t:/g,'<img src="images/smileys/t_t.gif" title="t_t" alt="t_t" />',t)
t=remplace_tag(/:wink:/g,'<img src="images/smileys/wink.gif" title="wink" alt="wink" />',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) {
textarea=new String(t);
return textarea.replace(reg,'$1\n');
}
function remblaie(t) {
textarea=new String(t);
return textarea.replace(/\n/g,'');
}
function remplace_tag(reg,rep,t) {
textarea=new String(t);
return textarea.replace(reg,rep);
}
function nl2br(t) {
textarea=new String(t);
return textarea.replace(/\n/g,'<br/>');
}
function nl2khol(t) {
textarea=new String(t);
return textarea.replace(/\n/g,ptag);
}
function unkhol(t) {
textarea=new String(t);
return textarea.replace(new RegExp(ptag,'g'),'\n');
}
