//
// pascal thomas - 2004
// copie et distribution interdite
// contactez p.thomas@inlive.info pour un usage eventuel
//
var wriTextArea=false;
var wriSpan=false;

var wricrlf = String.fromCharCode(13,10); 
var wricr = String.fromCharCode(10); 


var tformat_in=new Array(

	'\\[symbol\\]','\\[\\/symbol\\]',
	'\\[red\\]','\\[\\/red\\]',
	'\\[gray\\]','\\[\\/gray\\]',
	'\\[blue\\]','\\[\\/blue\\]',
	'\\[green\\]','\\[\\/green\\]',
	'\\[orange\\]','\\[\\/orange\\]',
	'\\[violet\\]','\\[\\/violet\\]',
	'\\[br\\]',	'\\[hr\\]','\\[b\\]','\\[\\/b\\]','\\[u\\]','\\[\\/u\\]','\\[i\\]','\\[\\/i\\]','\\[li\\]','\\[ul\\]','\\[\\/li\\]','\\[\\/ul\\]',	'\\[h1\\]','\\[h2\\]','\\[h3\\]','\\[h4\\]','\\[h5\\]',
	'\\[\\/h1\\]','\\[\\/h2\\]','\\[\\/h3\\]','\\[\\/h4\\]','\\[\\/h5\\]',
	'\\[blockquote\\]','\\[\\/blockquote\\]',	'\\[samp\\]','\\[\\/samp\\]',
	'\\[tt\\]','\\[\\/tt\\]',	'\\[sup\\]','\\[\\/sup\\]',	'\\[sub\\]','\\[\\/sub\\]',	'\\[small\\]','\\[\\/small\\]',
	'\\[big\\]','\\[\\/big\\]',	'\\[img\\]','\\[\\/img\\]',	'\\[imgcenter\\]','\\[\\/imgcenter\\]',	'\\[imgleft\\]','\\[\\/imgleft\\]',
	'\\[imgright\\]','\\[\\/imgright\\]',	'\\[smallimg\\]','\\[\\/smallimg\\]',	'\\[listing\\]','\\[\\/listing\\]',
	'\\[kbd\\]','\\[\\/kbd\\]',	'\\[code\\]','\\[\\/code\\]',	'\\[cite\\]','\\[\\/cite\\]',	'\\[label\\]','\\[\\/label\\]',
	'\\[center\\]','\\[\\/center\\]',	'\\[justify\\]','\\[\\/justify\\]',	'\\[left\\]','\\[\\/left\\]',	'\\[right\\]','\\[\\/right\\]',
	'\\[hrp\\]','\\[\\/hrp\\]',	'\\[table\\]','\\[\\/table\\]',	'\\[line\\]','\\[\\/line\\]','\\[\\/col\\]','\\[\\/rcol\\]',

	"\\[color ([^[\\]]*)\\]([^[\\]]*)\\[\\/color\\]",
	"\\[k ([^[\\]]*)\\]([^[\\]]*)\\[\\/k\\]",
	"\\[gotag ([^[\\]]*)\\]([^[\\]]*)\\[\\/gotag\\]",
	"\\[tag ([^[\\]]*)\\]",
	"\\[mail\\]([^[\\]]*)\\[\\/mail\\]",
	"\\[url ([^[\\]]*)\\]([^[\\]]*)\\[\\/url\\]",
	"\\[link\\]([^[\\]]*)\\[\\/link\\]",
	"\\[clicimg\\]([^[\\]]*)\\[\\/clicimg\\]",
	"\\[col ([^[\\\\]]*)\\]",
	"\\[col\\]",
	"\\[rcol\\]",
	
	""

	);

var tformat_out=new Array(

	'<FONT COLOR=#208820>','</FONT>',
	'<FONT COLOR=red>','</FONT>',
	'<FONT COLOR=gray>','</FONT>',
	'<FONT COLOR=blue>','</FONT>',
	'<FONT COLOR=green>','</FONT>',
	'<FONT COLOR=orange>','</FONT>',
	'<FONT COLOR=#CEACEA>','</FONT>',
	'<br>','<hr>','<b>','</b>','<u>','</u>','<i>','</i>','<li>','<ul>','</li>','</ul>',	'<h1>','<h2>','<h3>','<h4>','<h5>',
	'</h1>','</h2>','</h3>','</h4>','</h5>',
	'<blockquote>','</blockquote>',	'<samp>','</samp>',
	'<tt>','</tt>',	'<sup>','</sup>',	'<sub>','</sub>',	'<small>','</small>',	'<big>','</big>',
	'<img src="','" border=0>',	
	'<center><img align=center border=0 margin=5 src="','"></center>',
	'<img align=left border=0 margin=5 src="','">',
	'<img align=right border=0 margin=5 src="','">',
	'<img border=0 height=64 src="','">',
	'<listing>','</listing>','<kbd>','</kbd>',	'<code>','</code>',	'<p class=cite>','</p>',	'<label>','</label>',
	'<center>','</center>',	'<p align=justify>','</p>',	'<p align=left>','</p>','<p align=right>','</p>',
	'<p width=100% class=hrp>','</p>',
	'<table width=100% cellpadding=1 class=usertable>','</table>','<tr>','','','',

	"<font color='$1'>$2</font>",
	"<A href=\"?cmd=listref&cd=$1\">$2</A>",
	"<A href='#$1'>$2</A>",
	"<A name='$1'></A>",
	"<A href=\"mailto:$1\" TARGET=_blank>$1</A>",
	"<A href=\"$1\" TARGET=_blank>$2</A>",
	"<A href=\"http://$1\" TARGET=_blank>$1</A>",
	"<A href=\"$1\" TARGET=_blank height=64><IMG height=64 border=0 src=\"$1\"></A>",
	"<TD WIDTH=\"$1\"  valign=TOP class=usercell>",
	"<TD valign=TOP class=usercell>",
	"<TD valign=TOP class=usercell align=RIGHT>",

	""
	);

function wriSetTextArea(p){wriTextArea=p;wriSyncSpan();}
function wriSetSpan(p){wriSpan=p;wriSyncSpan();}

var wriNbSync=0;
var wriSyncQuery=0;
function wriKillDelay(){
	
	if (wriNbSync>0)	wriNbSync--;
	if (wriNbSync>5)	wriNbSync=5;
	setTimeout('wriKillDelay()',250);
	
	if (wriNbSync==0 && wriSyncQuery>0) wriSyncSpanReal()
}

function wriSyncSpan(){

	wriSyncQuery++;
	wriNbSync++;
	if (wriNbSync>1)	return ;

	wriSyncSpanReal();
}

function wriSyncSpanReal(){

	wriSyncQuery=0;
	if (!wriSpan || !wriTextArea) return;
	var s=wriTextArea.value;
	
	for(i=0;i<tformat_in.length;i++)
	if (tformat_in[i]!="")
	{
		s = s.replace(new RegExp(tformat_in[i],"g"), tformat_out[i]);
		window.status=i;
	}
	s = s.replace(new RegExp(wricr,"g"), "<br>");
	wriSpan.innerHTML = s;

}

function wriSET(stag){

	if (!wriTextArea) return ;

	wriTextArea.focus();
	if (!document.selection) return;

	p = document.selection.createRange();
	if (p) p.text = p.text.tag(stag);

	wriSyncSpan();
}
function wriADD(sval){

	if (!wriTextArea) return ;

	sval2 = sval.replace(new RegExp("##","gi"), wricrlf);
	wriTextArea.value=wriTextArea.value+sval2;
	wriTextArea.focus();
	wriSyncSpan();
}

	setTimeout('wriKillDelay()',250);
