var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  previsualisation(des) {
t=document.formulaire.textarea.value 
t=code_to_html(t, des)
if (document.getElementById) document.getElementById("prev").innerHTML=t
if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
}
function automatique() {
if (document.formulaire.auto.checked) previsualisation()
}
function gotopage(url,nb_item,nbbp,apres)
{ 
	if (!apres) apres = ''; 
	if(nbbp > 0 && nb_item > 0) 
	{ 	
		var nb_page = Math.ceil(nb_item / nbbp);
		var msg = 'Veuillez saisir un numéro de page entre 1 et ' + nb_page + ' :';
	} 
	else
	{ 
		var nb_page = 0; var msg = 'Veuillez saisir un numéro de page';
	} 
	var page = prompt(msg, 0); 
	if(page > 0) 
	{
		if(page < 1) page = 1; 
		else if(page > nb_page && nb_page > 0) page = nb_page; document.location = url + '&page=' + page; 
	} 
}
function switch_spoiler(div2) 
{
	var divs = div2.getElementsByTagName('div');
	var div3 = divs[0]; 
	if (div3.style.visibility == 'visible') 
	{
		div3.style.visibility = 'hidden';
	}
	else
	{
		div3.style.visibility = 'visible';
	}
	return false; 
} 
function code_to_html(t, des)
{
t=nl2khol(t)

	t=deblaie(/(>)/g,t)
	t=remplace_tag(/<[^(br \/)]>/g,'',t) 
	t=remblaie(t)
	
	// balise Gras
	t=deblaie(/(\[\/gras\])/g,t)
	t=remplace_tag(/\[gras\](.+)\[\/gras\]/g,'<strong>$1</strong>',t) 
	t=remblaie(t)

	// balise Italique
	t=deblaie(/(\[\/italique\])/g,t)
	t=remplace_tag(/\[italique\](.+)\[\/italique\]/g,'<em>$1</em>',t) 
	t=remblaie(t)
	
	// balise Souligné
	t=deblaie(/(\[\/souligne\])/g,t)
	t=remplace_tag(/\[souligne\](.+)\[\/souligne\]/g,'<u>$1</u>',t) 
	t=remblaie(t)
	
	// balise ajout
	t=deblaie(/(\[\/ajout\])/g,t)
	t=remplace_tag(/\[ajout\](.+)\[\/ajout\]/g,'<strong><span class="vert_clair">$1</span></strong>',t) 
	t=remblaie(t)
	
	// balise retrait
	t=deblaie(/(\[\/retrait\])/g,t)
	t=remplace_tag(/\[retrait\](.+)\[\/retrait\]/g,'<strong><span class="rouge"><strike>$1</strike></span></strong>',t) 
	t=remblaie(t)
	
	// balise Souligné
	t=deblaie(/(\[\/comm\])/g,t)
	t=remplace_tag(/\[comm\](.+)\[\/comm\]/g,'<fieldset><legend>Commentaire du correcteur</legend>$1</legend></fieldset>',t) 
	t=remblaie(t)

	// balise Citation
	t=deblaie(/(\[\/citation\])/g,t)
	t=remplace_tag(/\[citation=([\s\S]*?)\](.+)\[\/citation\]/g,'<fieldset class="citation"><legend>$1 a dit :</legend>$2</fieldset>',t) 
	t=remblaie(t)
	
	t=deblaie(/(\[\/code\])/g,t)
	t=remplace_tag(/\[code\](.+)\[\/code\]/g,'<fieldset class="citation"><legend>Code forum (ce code ne sera pas interprété)</legend>$1</fieldset>',t) 
	t=remblaie(t)

	// balise Citation
	t=deblaie(/(\[\/citation_lien\])/g,t)
	t=remplace_tag(/\[citation_lien=([\s\S]*?)\|([\d]*?)\|([\d]*?)\](.+)\[\/citation_lien\]/g,'<fieldset class="citation"><legend><a href="#">$1 a dit</a> :</legend>$4</fieldset>',t) 
	t=remblaie(t)

	// balise Acronyme
	t=deblaie(/(\[\/acronyme\])/g,t)
	t=remplace_tag(/\[acronyme=(.+)\](.+)\[\/acronyme\]/g,'<acronym title="$1">$2</acronym>',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 Secret
	t=deblaie(/(\[\/secret\])/g,t)
	t=remplace_tag(/\[secret\](.+)\[\/secret\]/g,'<span class="spoiler">Secret (cliquez pour afficher)</span><div class="spoiler2" onclick="switch_spoiler(this)"><div class="spoiler3">$1</div></div>',t)
	t=remblaie(t)

	// balise URL   
	t=deblaie(/(\[\/lien\])/g,t)
	t=remplace_tag(/\[lien=([\s\S]*?)\](.+)\[\/lien\]/g,'<a href="$1">$2</a>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/couleur\])/g,t)
	t=remplace_tag(/\[couleur=(.+)\](.+)\[\/couleur\]/g,'<span class=$1>$2</span>',t)
	t=remblaie(t)

	// balise Barre
	t=deblaie(/(\[\/barre\])/g,t)
	t=remplace_tag(/\[barre\](.+)\[\/barre\]/g,'<span style="text-decoration: line-through;">$1</span>',t)
	t=remblaie(t)
	
	//TAILLES
	t=deblaie(/(\[\/minuscule\])/g,t)
	t=remplace_tag(/\[minuscule\](.+)\[\/minuscule\]/g,'<span style="font-size: xx-small;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/tres_petit\])/g,t)
	t=remplace_tag(/\[tres_petit\](.+)\[\/tres_petit\]/g,'<span style="font-size: x-small;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/petit\])/g,t)
	t=remplace_tag(/\[petit\](.+)\[\/petit\]/g,'<span style="font-size: small;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/moyen\])/g,t)
	t=remplace_tag(/\[moyen\](.+)\[\/moyen\]/g,'<span style="font-size: medium;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/grand\])/g,t)
	t=remplace_tag(/\[grand\](.+)\[\/grand\]/g,'<span style="font-size: large;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/tres_grand\])/g,t)
	t=remplace_tag(/\[tres_grand\](.+)\[\/tres_grand\]/g,'<span style="font-size: x-large;">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/geant\])/g,t)
	t=remplace_tag(/\[geant\](.+)\[\/geant\]/g,'<span style="font-size: xx-large;">$1</span>',t)
	t=remblaie(t)
	
	//SEMANTIQUE
	t=deblaie(/(\[\/titre1\])/g,t)
	t=remplace_tag(/\[titre1\](.+)\[\/titre1\]/g,'<span class="titre1_forum">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/titre2\])/g,t)
	t=remplace_tag(/\[titre2\](.+)\[\/titre2\]/g,'<span class="titre2_forum">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/titre3\])/g,t)
	t=remplace_tag(/\[titre3\](.+)\[\/titre3\]/g,'<span class="titre3_forum">$1</span>',t)
	t=remblaie(t)
	//
	t=deblaie(/(\[\/membre\])/g,t)
	t=remplace_tag(/\[membre\](.+)\[\/membre\]/g,'<a href="-$1">$1</a>',t)
	t=remblaie(t)
	
	//PARAGRAPHE 
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=gauche\](.+)\[\/aligne\]/g,'<div class=aligne_gauche>$1<div>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=centre\](.+)\[\/aligne\]/g,'<center>$1</center>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=droite\](.+)\[\/aligne\]/g,'<div class=aligne_droite>$1</div>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=justifie\](.+)\[\/aligne\]/g,'<div class=aligne_justifie>$1</div>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=flottant_gauche\](.+)\[\/aligne\]/g,'<div class=aligne_flottantg>$1</div>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/aligne\])/g,t)
	t=remplace_tag(/\[aligne=flottant_droite\](.+)\[\/aligne\]/g,'<div class=aligne_flottantd>$1</div>',t)
	t=remblaie(t)

	//  Information - Attention - Erreur - Question
	
	t=deblaie(/(\[\/information\])/g,t)
	t=remplace_tag(/\[information\](.+)\[\/information\]/g,'<p><div class=information>$1</div></p>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/attention\])/g,t)
	t=remplace_tag(/\[attention\](.+)\[\/attention\]/g,'<p><div class=attention>$1</div></p>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/erreur\])/g,t)
	t=remplace_tag(/\[erreur\](.+)\[\/erreur\]/g,'<p><div class=erreur>$1</div></p>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/question\])/g,t)
	t=remplace_tag(/\[question\](.+)\[\/question\]/g,'<p><div class=question>$1</div></p>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/livre\])/g,t)
	t=remplace_tag(/\[livre\](.+)\[\/livre\]/g,'<a href="#">$1</a>',t)
	t=remblaie(t)
	
	// Liste
	
	t=deblaie(/(\[\/puce\])/g,t)
	t=remplace_tag(/\[puce\](.+)\[\/puce\]/g,'<li>$1</li>',t)
	t=remblaie(t)
	
	t=deblaie(/(\[\/liste\])/g,t)
	t=remplace_tag(/\[liste\](.+)\[\/liste\]/g,'<ul>$1</ul>',t)
	t=remblaie(t)
	
	// smilies 
	t=remplace_tag(/;\)/g,'<img class="decale" src="images/design'+des+'/smilies/clin.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:\(/g,'<img class="decale" src="images/design'+des+'/smilies/triste.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/\^\^/g,'<img class="decale" src="images/design'+des+'/smilies/hihi.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:-o/g,'<img class="decale" src="images/design'+des+'/smilies/siffle.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:\)/g,'<img class="decale" src="images/design'+des+'/smilies/smile.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:D/g,'<img class="decale" src="images/design'+des+'/smilies/heureux.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:p/g,'<img class="decale" src="images/design'+des+'/smilies/langue.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:lol:/g,'<img class="decale" src="images/design'+des+'/smilies/rire.gif" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:euh:/g,'<img class="decale" src="images/design'+des+'/smilies/unsure.gif" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:o/g,'<img class="decale" src="images/design'+des+'/smilies/huh.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/o_O/g,'<img class="decale" src="images/design'+des+'/smilies/blink.gif" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:rouge:/g,'<img class="decale" src="images/design'+des+'/smilies/rouge.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:soleil:/g,'<img class="decale" src="images/design'+des+'/smilies/soleil.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:\'\(/g,'<img class="decale" src="images/design'+des+'/smilies/pleure.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:waw:/g,'<img class="decale" src="images/design'+des+'/smilies/waw.png" alt="" />',t)
	t=remblaie(t)
	
	t=remplace_tag(/:@/g,'<img class="decale" src="images/design'+des+'/smilies/mechant.png" alt="" />',t)
	t=remblaie(t)
	
	// POLICES
	t=deblaie(/(\[\/police\])/g,t)
	t=remplace_tag(/\[police=([\s\S]*?)\](.+)\[\/police\]/g,'<span style="font-family:$1;">$2</span>',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');
} 
function save(f,id)
{
	var texte = document.formulaire.textarea.value;
	var xhr;
	if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
	else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
	else
	{
		alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
		return;
	}
	xhr.open('POST','js_xhr.php?id=save&id2=' + id,true);
	xhr.onreadystatechange = function()
		{
		if (xhr.readyState == 4)
			{
			if (document.getElementById) document.getElementById(id).innerHTML = xhr.responseText;
			}
		}
	xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	var data = 'texte='+escape(texte);
	xhr.send(data);
	setTimeout(1,20000);
	save(f,id);
}