var compteur = 0;


/* DEB VARIABLE SMILEY */
	var smile_name = new Array(':test11:', ':test2:', ':test3:', ':test4:', ':test5:', ':test6:', ':dsf:', ':v:', ':cx:', ':bn:', ':vbx:', ':bcvg:', ':r:', ':z:', ':ggd:', ':sdfcxvxv:', ':dsfhfgjhhk:', ':fdsez:', ':giuouuhh:', ':cvbzzz:', ':ddfgg:', ':sdfghnj:');
	var smile_path = new Array('/Images/jeu/smiley/tongue.gif', '/Images/jeu/smiley/unsure.gif', '/Images/jeu/smiley/w00t.gif', '/Images/jeu/smiley/whistling.gif', '/Images/jeu/smiley/biggrin.gif', '/Images/jeu/smiley/blink.gif', '/Images/jeu/smiley/blush.gif', '/Images/jeu/smiley/clindoeil.gif', '/Images/jeu/smiley/cool.gif', '/Images/jeu/smiley/crying.gif', '/Images/jeu/smiley/devil.gif', '/Images/jeu/smiley/dry.gif', '/Images/jeu/smiley/huh.gif', '/Images/jeu/smiley/laugh.gif', '/Images/jeu/smiley/mad.gif', '/Images/jeu/smiley/ohmy.gif', '/Images/jeu/smiley/original.gif', '/Images/jeu/smiley/ph34r.gif', '/Images/jeu/smiley/pinch.gif', '/Images/jeu/smiley/rolleyes.gif', '/Images/jeu/smiley/sad.gif', '/Images/jeu/smiley/sleep.gif');
/* FIN VARIABLE SMILEY */



/*
	Fonction appeler lors du changement du statut de la checkbox régulant l'affichage du div de prévisualisation en temps réel
	Arguments:  - id_div_prev -> Contient l'id du div dans lequel est affiché la prévisualisation en temps réel
*/
function hidden(id_div_prev)
{
	if (document.getElementById(id_div_prev).style.display == '')
		document.getElementById(id_div_prev).style.display = 'none';
	else if (document.getElementById(id_div_prev).style.display == 'none')
		document.getElementById(id_div_prev).style.display = '';
}

/*
	Fonction appeler lors de l'ajout de lettre dans le textarea
	Arguments:  - id_textarea -> Contient l'id du textarea dans lequel on tape le texte
				- id_div_prev -> Contient l'id du div dans lequel est affiché la prévisualisation en temps réel
				- id_box_prev -> Contient l'id de la checkbox permettant l'affichage ou non du div de prévisualisation
*/
function pre_parse(id_textarea, id_div_prev, id_box_prev)
{
	if (document.getElementById(id_box_prev).checked)
	{
		clearTimeout(compteur);
		compteur = setTimeout("pparse('" + id_textarea + "', '" + id_div_prev + "')", 100);
		
	}
}

/*
	Fonction appeler lors de l'ajout de lettre dans le textarea par l'intermédiaire de la fonction pre_parse
	Arguments:  - id_textarea -> Contient l'id du textarea dans lequel on tape le texte
				- id_div_prev -> Contient l'id du div dans lequel est affiché la prévisualisation en temps réel
*/
function pparse(id_textarea, id_div_prev)
{
	var textarea = document.getElementById(id_textarea);
	var div_prev = document.getElementById(id_div_prev);
	var text = textarea.value;
	
	texte = rreplace('<','&lt;', text);
	texte = rreplace('>','&gt;', texte);
	
	for (i = 0; i < smile_name.length; i++)
	{
		eval('reg = /(\\s|\\r|^|&gt;)' + smile_name[i] + '(\\s|\\r|$|&lt;)/g');
		texte = texte.replace(reg, '$1<img src="' + smile_path[i] + '" alt="' + smile_name[i] + '" />$2');
	}
	
	texte = rreplace("\n", '<br />', texte);
	
	texte = texte.replace(/\[b\]([\s\S]+?)\[\/b\]/gi, '<strong>$1</strong>');
	texte = texte.replace(/\[i\]([\s\S]+?)\[\/i\]/gi, '<em>$1</em>');
	texte = texte.replace(/\[o\]([\s\S]+?)\[\/o\]/gi, '<span style="text-decoration: overline;">$1</span>');
	texte = texte.replace(/\[s\]([\s\S]+?)\[\/s\]/gi, '<span style="text-decoration: line-through;">$1</span>');
	texte = texte.replace(/\[u\]([\s\S]+?)\[\/u\]/gi, '<span style="text-decoration: underline;">$1</span>');
	
	texte = texte.replace(/\[url\]((http:\/\/|ftp:\/\/|https:\/\/)?(.+\.)*?.{2,4}.+?)\[\/url\]/gi, '<a href="$1" title="$1">$1</a>');
	texte = texte.replace(/\[url=((http:\/\/|ftp:\/\/|https:\/\/)?(.+\.)*?.{2,4}.+?)\]([\s\S]+?)\[\/url\]/gi, '<a href="$1" title="$1">$4</a>');
	
	texte = texte.replace(/\[e?mail\]([\s\S]+?)\[\/e?mail\]/gi, '<a href="mailto: $1" title="Envoyer un mail &agrave: $1">$1</a>');
	texte = texte.replace(/\[e?mail=([\s\S]+?)\]([\s\S]+?)\[\/e?mail\]/gi, '<a href="mailto: $1" title="Envoyer un mail &agrave: $1">$2</a>');
	
	texte = texte.replace(/\[img\]((http:\/\/|https:\/\/)?(.+\.)*?.{2,4}.+?)\[\/img\]/gi, '<img src="$1" alt="$1" />');
	texte = texte.replace(/\[img=((http:\/\/|https:\/\/)?(.+\.)*?.{2,4}.+?)\]/gi, '<img src="$1" alt="$1" />');
	
	
	texte = texte.replace(/\[align=(left|center|right|justify)\]([\s\S]+?)\[\/align\]/gi, '<div style="text-align: $1;">$2</div>');
	texte = texte.replace(/\[font=([\D]+?)\]([\s\S]+?)\[\/font\]/gi, '<span style="font-family: \'$1\';">$2</span>');
	texte = texte.replace(/\[size=([\d]+?)\]([\s\S]+?)\[\/size\]/gi, '<span style="font-size: $1px;">$2</span>');
	texte = texte.replace(/\[color=(red|green|yellow|blue|purple|olive)\]([\s\S]+?)\[\/color\]/gi, '<span style="color: $1;">$2</span>');
	texte = texte.replace(/\[fond=(red|green|yellow|blue|purple|olive)\]([\s\S]+?)\[\/fond\]/gi, '<span style="background-color: $1;">$2</span>');
	
	texte = texte.replace(/\[php\]([\s\S]+?)\[\/php\]/gi, '<em style="font-style: italic;">$1</em>');
	
	var i = 0;
		while ((texte.search(/\[quote=([\s\S]+)\]([\s\S]+?)\[\/quote\]/gi) != -1 || texte.search(/\[quote\]([\s\S]+?)\[\/quote\]/gi) != -1) && i < 20)
		{
			texte = texte.replace(/\[quote=([\s\S]+)\]([\s\S]+?)\[\/quote\]/gi, '<br /><span class="quote_gras">Citer </span class="quote_gras"><em>($1)</em><span class="quote_gras"> :</span class="quote_gras"><blockquote><pre>$2</pre></blockquote>');
			texte = texte.replace(/\[quote\]([\s\S]+?)\[\/quote\]/gi, '<br /><span class="quote_gras">Citer :</span><blockquote><pre>$1</pre></blockquote>');
			i++;
		}
	
	div_prev.innerHTML = texte + '<a href="#" id="ancre"></a>';
	if (document.getElementById('ancre') )
		document.getElementById('ancre').focus();
	textarea.focus();
}

function rreplace(string_needle, string_replace, string_haystack)
{
	while (string_haystack.indexOf(string_needle) > -1) //Tant que l'on trouve le caractère ou la chaîne de caractère à remplacer, on utilise trictement supérieur à moins 1 au lieu de supérieur ou égal à 0 pour une question de rapidité (tout du moins en php, du coup ;) )
	{
		string_haystack = string_haystack.substring(0, string_haystack.indexOf(string_needle)) + string_replace + string_haystack.substring ((string_haystack.indexOf(string_needle) + string_needle.length), string_haystack.length);
	}
	return string_haystack;
}

