/*
	Auteur: the angel
	Dernière mise à jours: 
	Mail: the_angel@hotmail.fr
	Si vous trouvez des bugs, merci de les signaler
	Code inspiré de celui du Site du Zéro: http://siteduzero.com
*/

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:', ':sdfghnj:', ':oups:', ':tien:', ':dsfsdfsf:');
	var smile_path = new Array('./smiley/tongue.gif', './smiley/unsure.gif', './smiley/w00t.gif', './smiley/whistling.gif', './smiley/biggrin.gif', './smiley/blink.gif', './smiley/blush.gif', './smiley/clindoeil.gif', './smiley/cool.gif', './smiley/crying.gif', './smiley/devil.gif', './smiley/dry.gif', './smiley/huh.gif', './smiley/laugh.gif', './smiley/mad.gif', './smiley/ohmy.gif', './smiley/original.gif', './smiley/ph34r.gif', './smiley/pinch.gif', './smiley/rolleyes.gif', './smiley/sleep.gif', './smiley/oups.jpg', './smiley/tien.jpg', './smiley/sad.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('<','<', text);
	texte = rreplace('>','>', texte);
	
	for (i = 0; i < smile_name.length; i++)
	{
		eval('reg = /(\\s|\\r|^|>)' + smile_name[i] + '(\\s|\\r|$|<)/g');
		texte = texte.replace(reg, '$1<img src="' + smile_path[i] + '" alt="' + smile_name[i] + '" />$2');
	}
	
	texte = rreplace("\n", '<br />', texte);
		
	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;
}