// JavaScript Auteur: http://tofem.net/ressources
var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  visualisation() {
	t=document.formu.texte.value  
	t=code_to_html(t)
	if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
	if (document.formu.auto.checked) timer=setTimeout(visualisation,1000)
}
function automatique() {
	if (document.formu.auto.checked) visualisation()
}
function code_to_html(t) {
	t=nl2khol(t)
// balise Gras
	t=deblaie(/(\[\/b\])/g,t)
	t=remplace_tag(/\[b\](.+)\[\/b\]/g,'<b>$1</b>',t)  
	t=remblaie(t)
// balise Italique
	t=deblaie(/(\[\/i\])/g,t)
	t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<i>$1</i>',t)  
	t=remblaie(t)
// balise Underline
	t=deblaie(/(\[\/u\])/g,t)
	t=remplace_tag(/\[u\](.+)\[\/u\]/g,'<u>$1</u>',t)  
	t=remblaie(t)
// balise Img
	t=deblaie(/(\[\/img\])/g,t)
	t=remplace_tag(/\[img\](.+)\[\/img\]/g,'<img src="$1" alt=""/>',t)
	t=remblaie(t)
// balise URL	
	t=remplace_tag(/\[url=([^\s<>]+)\](.+)\[\/url\]/g,'<a href="$1">$2</a>',t)
// balise Color	
	t=deblaie(/(\[\/color\])/g,t)
	t=remplace_tag(/\[color=(#[a-fA-F0-9]{6}|[a-z]{3,8})\](.+)\[\/color\]/g,'<font color="$1">$2</font>',t)
	t=remblaie(t)

	t=unkhol(t)
	t=nl2br(t)
	return t
}
function deblaie(reg,t) {
	texte=new String(t);
	return texte.replace(reg,'$1\n');
}
function remblaie(t) {
	texte=new String(t);
	return texte.replace(/\n/g,'');
}
function remplace_tag(reg,rep,t) {
	texte=new String(t);
	return texte.replace(reg,rep);
}
function nl2br(t) {
	texte=new String(t);
	return texte.replace(/\n/g,'<br/>');
}
function nl2khol(t) {
	texte=new String(t);
	return texte.replace(/\n/g,ptag);
}
function unkhol(t) {
	texte=new String(t);
	return texte.replace(new RegExp(ptag,'g'),'\n');
}

function boutons_bbcodes(tag, value_id, champ)
{
	var textarea = document.getElementById(champ);
	var texta_valu = textarea.value;
	var tag_deb = '[' + tag + ']';
	var tag_fin = '[/' + tag + ']';
	
	if (typeof document.selection != 'undefined') { //Pour IE
		textarea.focus();
		var range = document.selection.createRange();
		var selection = range.text;
		if (selection.length > 0) //Si on a sélectionné du texte
			range.text = tag_deb + selection + tag_fin;
		else { //Sinon on a pas sélectionné de texte
			if (document.getElementById(value_id).value == value_id) { //Si on a pas encore cliqué sur le bouton
				range.text = tag_deb;
				document.getElementById(value_id).value += "*";
			} //Fin du si on a pas cliqué sur le bouton
			else { //Sinon on a déjà cliqué sur le bouton
				range.text = tag_fin;
				document.getElementById(value_id).value = value_id;
			} //Fin du si on a déjà cliqué sur le bouton
		}
	} //Fin du code pour IE

	else { //pour les navigateurs plus récent
		var ff_pos_selection_deb = textarea.selectionStart; //Retourne la position de départ su texte sélectionné
		var ff_pos_selection_fin = textarea.selectionEnd; //Retourne la position de fin du texte sélectionné
		var ff_size_text = textarea.value.length;
		
		var ff_string_deb = texta_valu.substring(0 , ff_pos_selection_deb);
		var ff_selection = texta_valu.substring(ff_pos_selection_deb ,ff_pos_selection_fin);
		var ff_string_fin = texta_valu.substring(ff_pos_selection_fin , ff_size_text);
		
		if (ff_selection.length > 0) { //Si quelque chose est sélectionné
			var ff_string_replace = ff_string_deb + tag_deb + ff_selection + tag_fin + ff_string_fin;
			textarea.value = ff_string_replace;
			var length_focus = ff_string_deb.length + tag_deb.length + ff_selection.length + tag_fin.length;
		} //Fin du si quelque chose est sélectionné
		else { //Si rien n'est sélectionné
			if (document.getElementById(value_id).value == value_id) { //Si on a pas encore cliqué sur le bouton
				textarea.value = ff_string_deb + tag_deb + ff_string_fin;
				document.getElementById(value_id).value += "*";
				var length_focus = ff_string_deb.length + tag_deb.length;
			} //Fin du si on a pas encore cliqué sur le bouton
			else { //Si on à déjà cliquer sur le bouton
				document.getElementById(value_id).value = value_id;
				textarea.value = ff_string_deb + tag_fin + ff_string_fin;
				var length_focus = ff_string_deb.length + tag_fin.length;
			}
		} //Fin du si rien n'est sélectionné
		//Ces trois lignes permettent de placer le curseur dans le textarea justa après le bbcode ajouté.
		textarea.selectionStart = length_focus;
		textarea.selectionEnd = length_focus;
		textarea.focus();
	} //Fin du code pour les navigateurs plus récents
}

