
function hauteur_text(proc, field) {
	if(proc == "plus") {
		field.rows = field.rows + 5;
	}
	else if(proc == "moins") {
		field.rows = field.rows - 4;
	}
}

function largeur_text(proc, field) {
	if(proc == "plus") {
		field.cols = field.cols + 3;
	}
	else if(proc == "moins") {
		field.cols = field.cols - 3;
	}
}

function remplace_tag(reg,rep,t) {
textarea=new String(t);
return textarea.replace(reg,rep);
}

function replacez(str1,str2,strz)
{
var i=0
while (i!=-1)
{
	i=strz.indexOf(String(str1),i);
	if (i>=0)
	{
		strz=strz.substring(0,i)+str2+strz.substring(i+str1.length);
		i+=str2.length;
	}
}
return strz
}

var timer=0;
var ptag = String.fromCharCode(5,6,7);

function  previsualisation(field, prevbox_name) {
	var t = field.value;
	t = code_to_html(t);
	// window.alert(prevbox_name+field.name);
	document.getElementById(prevbox_name+field.name).innerHTML = t;
}

function launch_prev(a) {
	if(a.form.auto.checked) { previsualisation(a); }
}
function set_event(field, prevbox_name) {
	//var get = document.getElementById(field.name);
	if(typeof(prevbox_name) != 'string') {
		var prevbox_name = "preview_box_";
	}
	var auto = "auto_"+field.name;
	var value = "if(this.form['"+auto+"'].checked) { previsualisation(this, '"+prevbox_name+"'); }";
	document.getElementById(prevbox_name+field.name).style.display="block";
	if(navigator.appName == "Microsoft Internet Explorer") {
		//window.alert('Fcking IE !!');
		field.onkeyup = function () { 	var auto = "auto_"+this.name; if(this.form[auto].checked) { previsualisation(this, prevbox_name); } };
	}
	else {
		/*window.alert('Yeah');*/ field.setAttribute('onkeyup', value);
	}
	//window.alert(field.onkeyup);
}

function noCode(string) {
	var arr = string.match(/\[nocode\](.*?)\[\/nocode\]/gi);
	var arr_ = new Array();
	if(typeof(arr) != 'undefined' && arr != null && arr.length >= 1) {
		if(typeof(arr[1]) != 'undefined') {
			for(var i=0;i<arr.length;i++) {
				//window.alert(arr[i]);
				arr_[i] = remplace_tag(/\[nocode\](.*?)\[\/nocode\]/gi,'$1', arr[i]);
				arr_[i] = remplace_tag(/\[/g,'&#91;', arr_[i]);
				arr_[i] = remplace_tag(/\]/g,'&#93;', arr_[i]);
				//window.alert(arr_[i]);
				string = replacez(arr[i],arr_[i],string);
			}
		}
		else {
			arr_[0] = remplace_tag(/\[nocode\](.*?)\[\/nocode\]/gi,'$1', arr[0]);
			arr_[0] = remplace_tag(/\[/g,'&#91;', arr_[0]);
			arr_[0] = remplace_tag(/\]/g,'&#93;', arr_[0]);
			string = replacez(arr[0],arr_[0],string);
		}
	}
	return string;
}

function sCode(string) {
	var arr = string.match(/\[code\](.*?)\[\/code\]/gi);
	var arr_ = new Array();
	if(typeof(arr) != 'undefined' && arr != null && arr.length >= 1) {
		if(typeof(arr[1]) != 'undefined') {
			for(var i=0;i<arr.length;i++) {
				//window.alert(arr[i]);
				arr_[i] = remplace_tag(/\[code\](.*?)\[\/code\]/gi,'$1', arr[i]);
				arr_[i] = remplace_tag(/\[/g,'&#91;', arr_[i]);
				arr_[i] = remplace_tag(/\]/g,'&#93;', arr_[i]);
				arr_[i] = '<pre class="code" >'+arr_[i]+'</pre>';
				//window.alert(arr_[i]);
				string = replacez(arr[i],arr_[i],string);
			}
			
		}
		else {
			arr_[0] = remplace_tag(/\[code\](.*?)\[\/code\]/gi,'$1', arr[0]);
			arr_[0] = remplace_tag(/\[/g,'&#91;', arr_[0]);
			arr_[0] = remplace_tag(/\]/g,'&#93;', arr_[0]);
			arr_[0] = '<pre class="code" >'+arr_[0]+'</pre>';
			string = replacez(arr[0],arr_[0],string);
		}
	}
	return string;
}

function sWiki(string) {
	var arr = string.match(/\[\[(.*?)\]\]/g);
	var arr_ = new Array();
	if(typeof(arr) != 'undefined' && arr != null && arr.length >= 1) {
		if(typeof(arr[1]) != 'undefined') {
			for(var i=0;i<arr.length;i++) {
				var url = remplace_tag(/\[\[(.*?)\]\]/g,'$1', arr[i]);
				url = '<a href="http://wiki.pcinfo-web.com/'+encodeURIComponent(url.replace(/\+/g, '\%2B'))+'" title="'+url+'" target="_blank" >'+url+'</a>';
				string = replacez(arr[i],url,string);
			}
		}
		else {
			var url = remplace_tag(/\[\[(.*?)\]\]/g,'$1', arr[0]);
			url = '<a href="http://wiki.pcinfo-web.com/'+encodeURIComponent(url.replace(/\ /g, '_').replace(/\+/g, '\%2B'))+'" title="'+url+'" target="_blank" >'+url+'</a>';
			string = replacez(arr[0],url,string);
		}
	}
	return string;
}
	
function sList(string) {
	string = deblaie(/(\[\/list\])/gi,string)
	var arr = string.match(/\[list\](.*?)\[\/list\]/gi);
	var arr_ = new Array();
	if(typeof(arr) != 'undefined' && arr != null && arr.length >= 1) {
		if(typeof(arr[1]) != 'undefined') {
			for(var i=0;i<arr.length;i++) {
				arr_[i] = remplace_tag(/\[list\](.*?)\[\/list\]/gi,'$1', arr[i]);
				var tmp = arr_[i].split(/\[\*\]/);
				var out = '';
				if(typeof(tmp) != 'undefined' && tmp != null && tmp.length >= 1) {
					for(n=0;n<tmp.length;n++) {
						if(tmp[n].length > 0 && tmp[n] != ptag) {
							out += '<li>'+tmp[n]+'</li>';
						}
					}
					out = '<ul>'+out+'</ul>';
					string = replacez(arr[i],out,string);
				}
			}
		}
		else {
			arr_[0] = remplace_tag(/\[list\](.*?)\[\/list\]/gi,'$1', arr[0]);
			var tmp = arr_[0].split(/\[\*\]/);
			var out = '';
			if(typeof(tmp) != 'undefined' && tmp != null && tmp.length >= 1) {
				for(i=0;i<tmp.length;i++) {
					if(tmp[i].length > 0 && tmp[i] != ptag) {
						out += '<li>'+tmp[i]+'</li>';
					}
				}
				out = '<ul>'+out+'</ul>';
				string = replacez(arr[0],out,string);
			}
		}
	}
    return remblaie(string);
}
function addslashes(string) {
	return string.remplace_tag(/'/g,'\'');
}
function code_to_html(t) {
t = remplace_tag(/\>/g, '&gt;',t);
t = remplace_tag(/\</g, '&lt;',t);
t = remplace_tag(/\"/g, '&quot;',t);
t=nl2khol(t);

//Avant toutes les autres, la balse nocode :
//t=deblaie(/(\[\/nocode\])/g,t)
//t=remplace_tag(/\[nocode\](.+)\[\/nocode\]/g,'noCode(addslashes(\'$1\'))',t);
t = sCode(t);
t = noCode(t);
t = sList(t);
t = sWiki(t);
//Les listes :
// balise Gras <!-- on lui dit que telle balise correspond à tel code en HTML -->

// balise Gras <!-- on lui dit que telle balise correspond à tel code en HTML -->
t=deblaie(/(\[\/b\])/gi,t);
t=remplace_tag(/\[b\](.+)\[\/b\]/gi,'<span style="font-weight: bold;">$1</span>',t);
t=remblaie(t);

// balise strike
t=deblaie(/(\[\/strike\])/gi,t);
t=remplace_tag(/\[strike\](.+)\[\/strike\]/gi,'<span class="striked">$1</span>',t);
t=remblaie(t);

// balise url
t=deblaie(/(\[\/url\])/gi,t);
t=remplace_tag(/\[url\](.+)\[\/url\]/gi,'<a class="dotted" href="$1" title="$1" >$1</a>',t);
t=remblaie(t);

// balise url2
t=deblaie(/(\[\/url\])/gi,t);
t=remplace_tag(/\[url\=(.*?)\](.*?)\[\/url\]/gi,'<a class="dotted" href="$1" >$2</a>',t);
t=remblaie(t);

// balise img
t=deblaie(/(\[\/img\])/gi,t);
t=remplace_tag(/\[img\](.+)\[\/img\]/gi,'<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" alt="$1" border="0"  />',t);
t=remblaie(t);

// balise left
t=deblaie(/(\[\/left\])/gi,t);
t=remplace_tag(/\[left\](.+)\[\/left\]/gi,'<span class="left" >$1</span>',t);
t=remblaie(t);

// balise jusyti
t=deblaie(/(\[\/justify\])/gi,t);
t=remplace_tag(/\[justify\](.+)\[\/justify\]/gi,'<span class="justify">$1</span>',t);
t=remblaie(t);

// balise color
t=deblaie(/(\[\/color\])/gi,t);
t=remplace_tag(/\[color\=(.*?)\](.+)\[\/color\]/gi,'<span style="color: $1;">$2</span>',t);
t=remblaie(t);

// balise size
t=deblaie(/(\[\/size\])/gi,t);
t=remplace_tag(/\[size\=([0-9]+)\](.+)\[\/size\]/gi,'<span style="font-size: $1px;">$2</span>',t);
t=remblaie(t);

// balise float
t=deblaie(/(\[\/float\])/gi,t);
t=remplace_tag(/\[float\=(left|right)\](.+)\[\/float\]/gi,'<span style="float: $1; margin:3px;">$2</span>',t);
t=remblaie(t);

// balise stitre
t=deblaie(/(\[\/stitre\])/gi,t)
t=remplace_tag(/\[stitre\](.+)\[\/stitre\]/gi,'</p><h3 class="stitre" id="$1" >$1</h3><p style="margin-top:-2px;" >',t)
t=remblaie(t);

// balise titre
t=deblaie(/(\[\/titre\])/gi,t);
t=remplace_tag(/\[titre\](.+)\[\/titre\]/gi,'</p><h2 class="sub_title" id="$1" ><span class="sub_title_content" >$1</span></h2><p style="margin-top:-3px;" >',t);
t=remblaie(t);

//Balise anchor :
t=deblaie(/(\[\/anchor\])/gi,t);
t=remplace_tag(/\[anchor\=(.+)\]([^\]]+)\[\/anchor\]/gi,'<a href="#$1" title="Aller &agrave; $1" >$2</a>',t);
t=remblaie(t);

// balise Italic
t=deblaie(/(\[\/i\])/gi,t);
t=remplace_tag(/\[i\](.+)\[\/i\]/gi,'<em>$1</em>',t);
t=remblaie(t);
 
// balise quote
t=deblaie(/(\[\/quote\])/gi,t);
t=remplace_tag(/\[quote(\=("|'|&quot;)(.+)("|'|&quot;))?\](.+)\[\/quote\]/gi,'<div style="border:1px gray solid; background-color:#FAFAFA; padding:5px;" ><b>Citation $3 : </b><br /> $5 </div>',t);
t=remblaie(t);
 
// balise style
t=deblaie(/(\[\/style\])/gi,t);
t=remplace_tag(/\[style\=("|'|&quot;)(.*?)("|'|&quot;)\](.+)\[\/style\]/gi,'<span style="$2">$4 </span>',t);
t=remblaie(t);
 
// balise u
t=deblaie(/(\[\/u\])/gi,t);
t=remplace_tag(/\[u\](.+)\[\/u\]/gi,'<u>$1</u>',t);
t=remblaie(t);
 
 
// balise droite
t=deblaie(/(\[\/right\])/gi,t);
t=remplace_tag(/\[right\](.+)\[\/right\]/gi,'<span class="right">$1</span>',t);
t=remblaie(t);
 
// balise centrer
t=deblaie(/(\[\/center\])/gi,t);
t=remplace_tag(/\[center\](.+)\[\/center\]/gi,'<span class="center">$1</span>',t);
t=remblaie(t);

t=unkhol(t);
t=nl2br(t);
return t;
}

function deblaie(reg,t) {
textarea=new String(t);
return textarea.replace(reg,'$1\n');
}
function remblaie(t) {
textarea=new String(t);
return textarea.replace(/\n/g,'');
}
function nl2br(t) {
textarea=new String(t);
return textarea.replace(/\n/g,'<br />');
}
function nl2khol(t) {
	textarea= new String(t);
	textarea = textarea.replace(/\r\n/g,ptag);
	textarea = textarea.replace(/\n/g,ptag);
	return textarea;
}
function unkhol(t) {
textarea=new String(t);
return textarea.replace(new RegExp(ptag,'g'),'\n');
}

//Rajout : 

var bbcode = function(input, bbdebut, bbfin) {
	input.focus();
	/* pour IE (toujours un cas à part lui ;) )*/
	if(typeof document.selection != 'undefined')
	{
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = bbdebut + insText + bbfin;
		range = document.selection.createRange();
		if (insText.length == 0)
		{
			range.move('character', -bbfin.length);
		}
		else
		{
			range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
		}
		range.select();
	}
	/* pour les navigateurs plus récents que IE comme Firefox... */
	else if(typeof input.selectionStart != 'undefined')
	{
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
		var pos;
		if (insText.length == 0)
		{
			pos = start + bbdebut.length;
		}
		else
		{
			pos = start + bbdebut.length + insText.length + bbfin.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* pour les autres navigateurs comme Netscape... */
	else
	{
		var pos;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(pos))
		{
			pos = prompt("insertion (0.." + input.value.length + "):", "0");
		}
		if(pos > input.value.length)
		{
			pos = input.value.length;
		}
		var insText = prompt("Veuillez taper le texte");
		input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
	}
}
function smilies(f, img)
{
	window.document.f.textarea.value += '' + img + '';
}



// Fonction d'activation de l'éditeur wysiwyg

function wysiwyg_activate(id,a) {
	if(document.getElementById("bbcode_bar_"+id).style.display != "none") {
		document.getElementById("bbcode_bar_"+id).style.display = "none";
	}
	else {
		document.getElementById("bbcode_bar_"+id).style.display = "block";
	}
	if(typeof(tinyMCE.get(id)) == "undefined") {
		tinyMCE.execCommand("mceAddControl", false, id);
	}
	else {
		tinyMCE.get(id).save();
		tinyMCE.execCommand("mceRemoveControl", false, id);//tinyMCE.execCommand('mceToggleEditor',false,id);
	}
	return false;
}
	
