//debut 
 
/*Auteur : karamilo
Derniere version : 30 juin 2005
Mail : pierre@bleu-provence.com
Si vous trouvez des bugs/commentaires, merci de me le signaler !
*/

var antiflood = false;
var last = 0;
//dsmileys 
var smilies = new Array(':idea:', ':king:', ':D', '8\\-\\)', ':\\|', ':noel:', ':arrow:', ':grr:', ':\\)', ':blurp:', ':zorro:', ':hehe:', ':eek:', ':P', ':love:', ':what:', '\\|:\\(', ':cuisinier:', ':anniv:', ':ouah:', ':mad:', ':chineese:', '\\^\\^', ':na:', ':\\(', ':pirate:', ':quoi:', ':!:', '\\(H\\)', '8\\-\\|', ':\'\\(', '<:o\\)', ':bronzette:', 'B\\-\\|', ':pleure:', ':\\?:', ':clindoeil:', ':soory:', ':hello:', ':glagla:', ':armistice:', ':\\-#', ':bave:', ':ange:', ':foot:', ':sfrc:', ':voyage:', ':euh:', ':dodo:', ':humhum:', ':S', ':boxe:', ':hum:', ':raleur:', ':\\-}', ':\\-°', ':gnn:', '\\(8\\)', ':cheese:', ':cowboy:', ':evil:', ':ahnan:', ':notme:', ':avion:', ':rock:', ':fan:', ':nuclear:', ':mmmh:', ':danse:', ':bof:', '\\|_\\|>', ':mdr:', ':diablo:', ':S:', ':§', ':larme:', ':win:', ':respect:', ':einstein:', ':10:', ':stupid:', ':suporter:', ':ouuuh:', ':bye:', ':fetard:', ':yeah:', ':pdr:', ':musclor:', ':nono:', ':good:', ':atable:', ':ivre:', ':bravo:', ':chantier:', ':grrna:', ':nrj:', ':bzh:', ':ami:', ':crochet:', ':rire:', ':bon:', ':yop:', ':mort:', ':lol:', ':ninja:', ':pacte:', ':§§§:', ':welcome:', ':paf:', ':biere:', ':badnews:', ':vomis:', ':help:', ':google:', ':mail:', ':uzi:', ':pan:', ':baston:', ':\\.\\.\\.:', ':oops:', ':affrontement:');
var smilies_url = new Array('idea.gif', 'king.gif', 'bigsmile.gif', 'playboy.gif', 'neutre.gif', 'noel.gif', 'arrow.gif', 'colere.gif', 'sourire.gif', 'blurp.gif', 'zorro.gif', 'sournois.gif', 'eek.gif', 'eheh.gif', 'love.gif', 'what.gif', 'fache.gif', 'cuisinier.gif', 'anniversaire.gif', 'ouah.gif', 'cingle.gif', 'chineese.gif', 'rire.gif', 'na.gif', 'sad.gif', 'pirate.gif', 'quoi.gif', 'exclamation.gif', 'mafieux.gif', 'triste.gif', 'inquiet.gif', 'fete.gif', 'bronzette.gif', 'rolleeyes.gif', 'pleure.gif', 'question.gif', 'clindoeil.gif', 'desole.gif', 'bonjour.gif', 'aglagla.gif', 'armistice.gif', 'baillone.gif', 'bave.gif', 'innocent.gif', 'foot.gif', 'sfrc.gif', 'voyage.gif', 'euh.gif', 'dodo.gif', 'humhum.gif', 'confu.gif', 'boxeur.gif', 'hum.gif', 'raleur.gif', 'malefique.gif', 'embarrasse.gif', 'piedgauche.gif', 'pas_moi.gif', 'cheese.gif', 'cowboy.gif', 'evil.gif', 'ahnan.gif', 'notme.gif', 'pilote_avion.gif', 'punk.gif', 'pompom.gif', 'nuke.gif', 'mmmh.gif', 'testamora.gif', 'bof.gif', 'pausecafe.gif', 'mdr.gif', 'diablo.gif', 'superman.gif', 'rire_dent.gif', 'larme.gif', 'winner.gif', 'respect.gif', 'einstein.gif', '10.gif', 'stupid.gif', 'suporter_sfrc.gif', 'bouuuh.gif', 'adieu.gif', 'fetard.gif', 'yeah.gif', 'pdr.gif', 'musclor.gif', 'nonnon.gif', 'good.gif', 'atable.gif', 'ivre.gif', 'bravo.gif', 'chantier.gif', 'grrna.gif', 'enforme.gif', 'bzh.gif', 'ami.gif', 'crochet.gif', 'laugh.gif', 'rebond.gif', 'yop.gif', 'mort.gif', 'lol.gif', 'ninja.gif', 'poigne_main.gif', 'insulte.gif', 'welcome.gif', 'paf.gif', 'biere.gif', 'badnews.gif', 'vomis.gif', 'help.gif', 'google.gif', 'mail.gif', 'fusillade2.gif', 'fusillade.gif', 'baston.gif', 'panneau.gif', 'oops.gif', 'affrontement.gif');
 //fsmileys                                                                                                                                                          
var height_avant = 200;
var height_avant_final = 500; 
function edit_zform_height(id_textarea, diff) 
{ 
	var champ = document.getElementById(id_textarea); 
	height_avant = height_avant + Number(diff); 
	if(height_avant < 200) height_avant = 200;
	if(height_avant > 2000) height_avant = 2000; 
	height_avant_final = height_avant_final + Number(diff); 
	if (height_avant_final < 200) height_avant_final = 200; 
	if (height_avant_final > 2000) height_avant_final = 2000; 
	change = height_avant+"px"; 
	change_final = height_avant_final+"px"; 
	champ.style.height = change;
} 



	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)
	{
	var champ = document.getElementById(id_textarea);
	var scroll = champ.scrollTop;
	balise_debut = remplace(balise_debut, '<br/>', "\n");
	
	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;
	}
	
	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;

		if (champ.selectionStart != 'undefined' && !champ.curseur)
		{
		var pos = champ.selectionStart;
		contenu = remplace(remplace(contenu.substring(0, pos).replace(/&/g,'&amp;'),'>','&gt;'),'<','&lt;') + '<a href="#" name="prev_ancre_suivi" id="prev_ancre_suivi"></a>' + 
		remplace(remplace(contenu.substring(pos).replace(/&/g,'&amp;'),'>','&gt;'),'<','&lt;');
		}
		else
		contenu = remplace(remplace(contenu.replace(/&/g,'&amp;'),'>','&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="images/smileys/'+smilies_url[i]+'" alt="Smiley" class="smilies" />$2');
		}

	contenu = remplace(contenu, "\n", ' <br/>');
/*
	var re = /([\s\S]+)&lt;code&gt;([\s\S]*?)&lt;\/code&gt;([\s\S]+)/;
	var smil = '';
		while (tableau = re.exec(contenu))
		{
			for (i=0;i<smilies.length;i++)
			{
			smil = '';
				for (j=0;j<smilies[i].length;j++)
				smil += '&#'+smilies[i].charCodeAt(j)+';';
			tableau[2] = remplace(tableau[2], smilies[i], smil);
			}
		contenu = tableau[1]+' <span class="code">Code</span><div class="code2">'+remplace(tableau[2],'&lt;', '&#60;')+'</div>'+tableau[3];
		}

	re = /([\s\S]+)&lt;code type=\"(actionscript|csharp|matlab|qbasic|ada|mpasm|smarty|apache|css|nsis|sql|asm|delphi|objc|vbnet|asp|diff|oobas|vb|bash|d|oracle8|vhdl|caddcl|html|pascal|visualfoxpro|cadlisp|java|perl|xml|c_mac|javascript|php-brief|c|lisp|php|cpp|lua|python)\"&gt;([\s\S]*?)&lt;\/code&gt;([\s\S]+)/;
		while (tableau = re.exec(contenu))
		{
			for (i=0;i<smilies.length;i++)
			{
			smil = '';
				for (j=0;j<smilies[i].length;j++)
				smil += '&#'+smilies[i].charCodeAt(j)+';';
			tableau[3] = remplace(tableau[3], smilies[i], smil);
			}
		contenu = tableau[1]+' <span class="code">Code : '+tableau[2]+'</span><div class="code2">'+remplace(tableau[3],'&lt;', '&#60;')+'</div>'+tableau[4];
		}
*/	
	contenu = contenu.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
	contenu = contenu.replace(/&lt;titre1&gt;([\s\S]*?)&lt;\/titre1&gt;/g, '<h3>$1</h3>');
	contenu = contenu.replace(/&lt;titre2&gt;([\s\S]*?)&lt;\/titre2&gt;/g, '<h4>$1</h4>');
	contenu = contenu.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<span class="souligne">$1</span>');
	contenu = contenu.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<span class="italique">$1</span>');
	contenu = contenu.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<strike>$1</strike>');
	contenu = contenu.replace(/&lt;couleur nom="(orange|noir|marron|vertf|olive|marine|violet|bleugris|argent|gris|rouge|vertc|jaune|bleu|rose|turquoise|blanc)"&gt;([\s\S]*?)&lt;\/couleur&gt;/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/&lt;police nom="(arial|times|courrier|impact|geneva|optima)"&gt;([\s\S]*?)&lt;\/police&gt;/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/&lt;taille valeur="(ttpetit|tpetit|petit|gros|tgros|ttgros)"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="$1" />');
	contenu = contenu.replace(/&lt;image taille="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$2" alt="$2" width="$1%" />');
	contenu = contenu.replace(/&lt;position valeur="(gauche|droite|centre|justifie)"&gt;([\s\S]*?)&lt;\/position&gt;/g, '<div class="$1">$2</div>');
	contenu = contenu.replace(/&lt;flottant valeur="(gauche|droite)"&gt;([\s\S]*?)&lt;\/flottant&gt;/g, '<div class="flot_$1">$2</div>');
	contenu = contenu.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
	contenu = contenu.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$2</a>');
	contenu = contenu.replace(/&lt;email&gt;([\s\S]*?)&lt;\/email&gt;/g, '<a href="mailto:$1">$1</a>');
	contenu = contenu.replace(/&lt;email nom="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/email&gt;/g, '<a href="mailto:$1">$2</a>');
	
	contenu = contenu.replace(/&lt;ancre&gt;([\s\S]*?)&lt;\/ancre&gt;/g, '<span id="$1">$1</span>');
	contenu = contenu.replace(/&lt;ancre valeur="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/ancre&gt;/g, '<span id="$1">$2</span>');
	
	contenu = contenu.replace(/&lt;flash taille="([\s\S]*?),([\s\S]*?)"&gt;([\s\S]*?)&lt;\/flash&gt;/g, '<object type="application/x-shockwave-flash" data="$3" width="$1" height="$2"><param name="allowScriptAccess" value="never"><param name="play" value="true"><param name="movie" value="$3"><param name="menu" value="false"><param name="quality" value="high"><param name="scalemode" value="noborder"><param name="wmode" value="transparent"><param name="bgcolor" value="#000000"></object>');
	contenu = contenu.replace(/&lt;video&gt;([\s\S]*?)&lt;\/video&gt;/g, '<object type="application/x-shockwave-flash" data="flvplayer.swf"  width="400" height="320"><param name="allowfullscreen" value="true" /><param name="flashvars" value="file=$1" /><param name="movie" value="flvplayer.swf" /></object>');
	contenu = contenu.replace(/&lt;musique&gt;([\s\S]*?)&lt;\/musique&gt;/g, '<object type="application/x-shockwave-flash" data="flvplayer.swf"  width="400" height="20"><param name="allowfullscreen" value="false" /><param name="flashvars" value="file=$1" /><param name="movie" value="flvplayer.swf" /></object>');

	contenu = contenu.replace(/&lt;liste&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '<ul>$2</ul>');
	contenu = contenu.replace(/&lt;liste type="(disque|cercle|rectangle|rien)"&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '<ul class="liste_$1">$3</ul>');
	contenu = contenu.replace(/&lt;liste type="([1iIaA])"&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '<ol class="liste_$1">$3</ol>');
	contenu = contenu.replace(/&lt;puce&gt;([\s\S]*?)&lt;\/puce&gt;\s*(<br \/>)?\s*/g, '<li>$1</li>');
	contenu = contenu.replace(/&lt;acronyme valeur="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/acronyme&gt;/g, '<acronym title="$1">$2</acronym>');
	var i = 0;
		while ((contenu.search(/&lt;citation (nom|rid)=\"(.*?)\"&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 (nom|rid)=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, ' <span class="citation_titre">Citation : $2</span><div class="citation">$3</div>');
		contenu = contenu.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, ' <span class="citation_titre">Citation</span><div class="citation">$1</div>');
		i++;
		}
	contenu = contenu.replace(/&lt;secret&gt;([\s\S]*?)&lt;\/secret&gt;/g, ' <span class="secret_titre">Secret <em>(cliquez pour afficher)</em></span><div class="secret">$1</div>');
	contenu = contenu.replace(/&lt;Dailymotion&gt;([\s\S]*?)&lt;\/Dailymotion&gt;/g, '<embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/$1" width="400" height="317" wmode="transparent" quality="high" allowFullScreen="true" allowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer" /><noembed><a href="http://www.dailymotion.com/swf/$1" target="_blank">http://www.dailymotion.com/swf/$1</a></noembed>');
	contenu = contenu.replace(/&lt;Youtube&gt;([\s\S]*?)&lt;\/Youtube&gt;/g, '<embed type="application/x-shockwave-flash" src="http://www.youtube.com/v/$1" width="400" height="317" wmode="transparent" quality="high" allowFullScreen="true" allowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer" /><noembed><a href="http://www.youtube.com/v/$1" target="_blank">http://www.youtube.com/v/$1</a></noembed>');
	contenu = contenu.replace(/&lt;Vimeo&gt;([\s\S]*?)&lt;\/Vimeo&gt;/g, '<embed type="application/x-shockwave-flash" src="http://vimeo.com/moogaloop.swf?clip_id=$1" width="400" height="317" wmode="transparent" quality="high" allowFullScreen="true" allowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer" /><noembed><a href="http://vimeo.com/moogaloop.swf?clip_id=$1" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=$1</a></noembed>');
	
	div_prev.innerHTML = contenu;
		if (document.getElementById('prev_ancre_suivi'))
	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, val, id_liste, id_textarea, id_prev)
	{
	bal = document.getElementById(id_liste).value;
		if (bal != '')
		balise('<'+nom+' '+val+'="'+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, val, id_textarea, id_prev)
	{
	var champ = document.getElementById(id_textarea);
	var texte = '';
		if (nom == 'citation')
		{
		texte = 'Veuillez renseigner l\'auteur de la citation';
		bal = prompt(texte);
		if (!bal && nom == 'citation') bal = 'Pas de titre';
		balise_debut = '<'+nom+' '+val+'="'+bal+'">';
		balise_fin = '</'+nom+'>';
		}
		else if (nom == 'lien')
		{
			if (champ.curseur)
			txt_selectionne = champ.curseur.text;
			else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
			txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
			else
			txt_selectionne = '';
		
			if (txt_selectionne.indexOf('http://') == 0
			|| txt_selectionne.indexOf('https://') == 0
			|| txt_selectionne.indexOf('ftp://') == 0)
			{
			texte = 'Veuillez indiquer le texte du lien';
			bal2 = prompt(texte);
			balise_debut = '<'+nom+' '+val+'="';
			balise_fin = '">'+bal2+'</'+nom+'>';
			}
			else if (txt_selectionne == '')
			{
			texte = 'Veuillez indiquer le lien';
			bal = prompt(texte);
			bal2 = prompt('Veuillez indiquer le texte du lien');
			balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2;
			balise_fin = '</'+nom+'>';
			}
			else
			{
			texte = 'Veuillez indiquer le lien';
			bal = prompt(texte);
			balise_debut = '<'+nom+' '+val+'="'+bal+'">';
			balise_fin = '</'+nom+'>';
			}
		}
		else if (nom == 'ancre')
		{
			if (champ.curseur)
			txt_selectionne = champ.curseur.text;
			else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
			txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
			else
			txt_selectionne = '';
		
			if (txt_selectionne == '')
			{
			texte = 'Veuillez indiquer l\'ancre';
			bal = prompt(texte);
			bal2 = prompt('Veuillez indiquer le texte de l\'ancre');
			balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2;
			balise_fin = '</'+nom+'>';
			}
			else
			{
			texte = 'Veuillez indiquer l\'ancre';
			bal = prompt(texte);
			balise_debut = '<'+nom+' '+val+'="'+bal+'">';
			balise_fin = '</'+nom+'>';
			}
		}
		else if (nom == 'email')
		{
		texte = 'Veuillez indiquer l\'email';
		bal = prompt(texte);
		balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal;
		balise_fin = '</'+nom+'>';
		}
	balise(balise_debut, balise_fin, id_textarea);
	parse(id_textarea, id_prev);
	
		if (document.getElementById(nom))
		document.getElementById(nom).options[0].selected = true;
	}
	
	function add_liste(id_textarea, id_prev)
	{
	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);
	}


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

	function request_apercu(url,data,dir)
	{
		if(callInProgress(xmlhttp))
		setTimeout('request_apercu("' + url + '","' + data + '","' + dir + '")',100);
		
		else
		{
		data = escape(data);
		data = remplace(data, '+','%2B');
		return Xsend('POST',url,'texte=' + data +'&dir=' + escape(dir),true);
		}
	}

	function full_preview(id_textarea, id_prev_final, dir)
	{
	var button = document.getElementById('lancer_apercu_' + id_textarea);
	
	button.disabled = true;
	
	request_apercu('xml_getzcode.php',document.getElementById(id_textarea).value, dir);
	
	xmlhttp.onreadystatechange = function()
		{
		if (xmlhttp.readyState == 4)
			{
			if (xmlhttp.status == 200)
				document.getElementById(id_prev_final).innerHTML = xmlhttp.responseText;
			else
				document.getElementById(id_prev_final).innerHTML = an_error;
			}
		}
	
	button.disabled = false;
	}
//fin