var antiflood = false;	
var last = 0;

var smilies = new Array(':me:',':hu:','\\^_\\^',':o',';\\)',':p',':D',':lol:','B\\)',':rolleyes:','\\-_\\-',
						'\\(_\\(',':\\)',':angry:',':\\(',':unsure:',':wacko:',':blink:',':dark:',':sad:',':wub:',
						':ah:');
						
var smilies_url = new Array('emot1.gif','emot2.gif','emot3.gif','emot4.gif','emot5.gif','emot6.gif','emot7.gif',
							'emot8.gif','emot9.gif','emot10.gif','emot11.gif','emot12.gif','emot13.gif',
							'emot14.gif','emot15.gif','emot16.gif','emot17.gif','emot18.gif','emot19.gif',
							'emot20.gif','emot21.gif','emot22.gif');
		
			
function MM_openBrWindow(theURL,winName,features)
{
	window.open(theURL,winName,features);
}

function decision(message, url)
{
	if(confirm(message)) location.href = url;
}

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 true;
}

function zik(id_liste, id_textarea, id_prev)
{
	var url  = prompt("Entrez l'url de la musique.","http://");
	
	if(url != "" && url != "http://")
	{
		var smiley = '<zik>'+url+'</zik>';	
		document.news.texte.value += smiley+" ";
		document.news.texte.focus();
	}
	
	parse(id_textarea, id_prev);
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}

function video(id_liste, id_textarea, id_prev)
{
	var url  = prompt("Entrez l'url de la vidéo.","http://");
	var largeur  = prompt("Entrez la largeur de la vidéo (si vous ne savez pas mettez un chiffre grand).","");
	var hauteur  = prompt("Entrez la hauteur de la vidéo (si vous ne savez pas mettez un chiffre grand).","");
	
	if(url != "" && url != "http://")
	{
		var smiley = '<video="'+largeur+'x'+hauteur+'">'+url+'</video>';	
		document.news.texte.value += smiley+" ";
		document.news.texte.focus();
	}
	
	parse(id_textarea, id_prev);
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}

function storeCaret(id_textarea)
{ 
	champ = document.getElementById(id_textarea);
	
	if (champ.createTextRange)
		champ.curseur = document.selection.createRange().duplicate();
}
	
function balise(balise_debut, balise_fin, id_textarea, id_liste)
{
	var champ = document.getElementById(id_textarea);
	var scroll = champ.scrollTop;
	
	if(balise_fin == '')
		balise_debut = ' ' + balise_debut + ' ';

	if (champ.curseur)
	{
		champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
	}
	
	else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
	{
		var debut = champ.value.substring(0, champ.selectionStart);
		var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
		var fin = champ.value.substring(champ.selectionEnd);
		champ.value = debut + balise_debut + entre + balise_fin + fin;
		champ.focus();
		champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
	}
	
	else
	{
		champ.value  += balise_debut + balise_fin;
		champ.focus();
	}
	champ.scrollTop = scroll;
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}
	
function parse(id_textarea, id_prev)
{
	if (document.getElementById('activ_'+id_textarea).checked)
	{
		clearTimeout(last);
		last = setTimeout('parse2(\''+id_textarea+'\',\''+id_prev+'\')',100);
		antiflood = true;
	}
}

function parse2(id_textarea, id_prev)
{
	var champ = document.getElementById(id_textarea);
	var div_prev = document.getElementById(id_prev);
	var contenu = champ.value;
	antiflood = false;
	
	if (document.body.scrollTop)
		var scroll = document.body.scrollTop;
	else
		var scroll = window.pageYOffset;

	contenu = contenu.replace(/&/g,'&amp;');

	if (champ.selectionStart != 'undefined' && !champ.curseur)
	{
		var pos = champ.selectionStart;
		contenu = remplace(remplace(contenu.substring(0, pos),'>','&gt;'),'<','&lt;') + '<a href="#" name="prev_ancre_suivi" id="prev_ancre_suivi"></a>' + 
		remplace(remplace(contenu.substring(pos),'>','&gt;'),'<','&lt;');
	}
	else
		contenu = remplace(remplace(contenu,'>','&gt;'),'<','&lt;');

	var reg = '';
	
	for (i=0;i<smilies.length;i++)
	{
		eval('reg = /(\\s|\\r|^|&gt;)'+smilies[i]+'(\\s|\\r|$|&lt;)/g');
		contenu = contenu.replace(reg, '$1<img src="http://www.insa-bicoque.com/forum/img/emoticones/'+smilies_url[i]+'" alt="Smiley" />$2');
	}

	contenu = remplace(contenu, "\n", '<br />');
	
	contenu = contenu.replace(/&lt;gr&gt;([\s\S]*?)&lt;\/gr&gt;/g, '<strong>$1</strong>');
	contenu = contenu.replace(/&lt;it&gt;([\s\S]*?)&lt;\/it&gt;/g, '<em>$1</em>');
	contenu = contenu.replace(/&lt;sl&gt;([\s\S]*?)&lt;\/sl&gt;/g, '<ins>$1</ins>');
	contenu = contenu.replace(/&lt;br&gt;([\s\S]*?)&lt;\/br&gt;/g, '<span style="text-decoration:line-through">$1</span>');
	contenu = contenu.replace(/&lt;pt="(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40)"&gt;([\s\S]*?)&lt;\/pt&gt;/g, '<span style="font-size:$1pt">$2</span>');
	contenu = contenu.replace(/&lt;centre&gt;([\s\S]*?)&lt;\/centre&gt;/g, '<div style="text-align:center">$1</div>');
	contenu = contenu.replace(/&lt;url&gt;(http:\/\/[\s\S]*?)&lt;\/url&gt;/g, '<a href="$1">$1</a>');
	contenu = contenu.replace(/&lt;url="(http:\/\/[\s\S]*?)"&gt;([\s\S]*?)&lt;\/url&gt;/g, '<a href="$1">$2</a>');
	contenu = contenu.replace(/&lt;img&gt;(http:\/\/[\s\S]*?)&lt;\/img&gt;/g, 'Image');
	contenu = contenu.replace(/&lt;img url="(http:\/\/[\s\S]*?)"&gt;(http:\/\/[\s\S]*?)&lt;\/img&gt;/g, '<a href="$1">Image</a>');
	contenu = contenu.replace(/&lt;mail&gt;([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4})&lt;\/mail&gt;/g, '<a href="mailto:$1">$1</a>');
	contenu = contenu.replace(/&lt;mail="([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4})"&gt;([\s\S]*?)&lt;\/mail&gt;/g, '<a href="mailto:$1">$2</a>');
	contenu = contenu.replace(/&lt;spoil&gt;([\s\S]*?)&lt;\/spoil&gt;/g, '<span class="spoilertexte">Texte caché : cliquez sur le cadre pour l\'afficher</span><div class="spoiler" onclick="switch_spoiler(this)"><div style="visibility: hidden;" class="spoiler3">$1</div></div>');
	contenu = contenu.replace(/&lt;zik&gt;(http:\/\/[\s\S]*?)&lt;\/zik&gt;/gi, 'Musique');
	contenu = contenu.replace(/&lt;video="([0-9]+)x([0-9]+)"&gt;(http:\/\/[\s\S]*?)&lt;\/video&gt;/g, 'Vidéo $1x$2');
	contenu = contenu.replace(/&lt;liste&gt;<br \/>/g, '&lt;liste&gt;');
	contenu = contenu.replace(/&lt;\/liste&gt;<br \/>/g, '&lt;/liste&gt;');
	contenu = contenu.replace(/&lt;\/puce&gt;<br \/>/g, '&lt;/puce&gt;');
	contenu = contenu.replace(/&lt;liste&gt;([\s\S]*?)&lt;\/liste&gt;/g, '<ul>$1</ul>');
	contenu = contenu.replace(/&lt;puce&gt;([\s\S]*?)&lt;\/puce&gt;/g, '<li class="puce">$1</li>');
	contenu = contenu.replace(/&lt;couleur="(rouge|bleu|vert|jaune|or|noir|blanc|orange|marron|rose)"&gt;([\s\S]*?)&lt;\/couleur&gt;/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/&lt;couleur="(#[0-9a-fA-F]{6})"&gt;([\s\S]*?)&lt;\/couleur&gt;/g, '<span style="color:$1">$2</span>');
	
	var i = 0;
	while ((contenu.search(/&lt;citation=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g) != -1 || contenu.search(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g) != -1) && i < 20)
	
	{
		contenu = contenu.replace(/&lt;citation=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<blockquote><h6>$1 a dit :</h6>$2</blockquote>');
		contenu = contenu.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<blockquote><h6>Citation :</h6>$1</blockquote>');
		i++;
	}
	
	div_prev.innerHTML = contenu;
	
	if (document.getElementById('prev_ancre_suivi'))
		document.getElementById('prev_ancre_suivi').focus();
	
	document.getElementById(id_textarea).focus();
}
	
function remplace(data, search, replace)
{
	var temp = data;
	var longueur = search.length;
	
	while (temp.indexOf(search) > -1)
	{
		pos = temp.indexOf(search);
		temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length));
	}
	
	return temp;
}
	
function add_bal(nom, id_liste, id_textarea, id_prev)
{
	bal = document.getElementById(id_liste).value;
	
	if (bal != '')
		balise('<'+nom+'="'+bal+'">','</'+nom+'>', id_textarea);
	
	else
		balise('<'+nom+'>','</'+nom+'>', id_textarea);
	
	parse(id_textarea, id_prev);
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}	
	
function add_bal2(nom, id_textarea, id_prev, id_liste)
{
	var texte = '';
		
	if (nom == 'url')
		texte = 'Veuillez indiquer le lien';
		
	else if (nom == 'mail')
		texte = 'Veuillez indiquer l\'email';
		
	else if(nom == 'img url')
		texte = 'Veuillez indiquer le lien';
		
	bal = prompt(texte);
	
	if (nom == 'url' || nom == 'mail')
	{
		if (!bal && nom == 'citation')
			bal = 'Pas de titre';
		
		if (bal)
			balise('<'+nom+'="'+bal+'">','</'+nom+'>', id_textarea);parse(id_textarea, id_prev);
	
		if (document.getElementById(nom))
			document.getElementById(nom).options[0].selected = true;
	}
	
	else
	{
		if (!bal && nom == 'citation')
			bal = 'Pas de titre';
		
		if (bal)
			balise('<'+nom+'="'+bal+'">','</img>', id_textarea);parse(id_textarea, id_prev);
	
		if (document.getElementById(nom))
			document.getElementById(nom).options[0].selected = true;
	}
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}
	
function add_liste(id_textarea, id_prev, id_liste)
{
	var texte = '';
		
	while (tmp = prompt('Saisir le contenu d\'une puce (si vous voulez arreter ici, cliquez sur annuler)'))
		texte += '<puce>'+tmp+'</puce>'+"\n";
	
	balise('<liste>'+"\n"+texte,'</liste>', id_textarea);parse(id_textarea, id_prev);
	
	if (document.getElementById(id_liste))
		document.getElementById(id_liste).options[0].selected = true;
}
	
function switch_activ(textarea,prev)
{
	div = document.getElementById(prev);
		
	if (document.getElementById('activ_'+textarea).checked == true)
	{
		div.style.display = 'block';
		storeCaret(textarea);
		parse(textarea,prev);
	}
		
	else
		div.style.display = 'none';
}