var editor_no_change=0;



var tblclick = new Array();
function blog_cleartxt(obj)
{
	if (TAnewarticle == 1 && (typeof tblclick[obj.name] == 'undefined'))
	{
		tblclick[obj.name] = true;
		obj.value="";
		editor_no_change=0;
	}
}

function blog_recupcolor(obj,bg)
{
	// From HTMLArea
	function convercolor(v)
	{
		// returns the hex representation of one byte (2 digits)
		function hex(d) {
			return (d < 16) ? ("0" + d.toString(16)) : d.toString(16);
		};

		if (typeof v == "number") {
			// we're talking to IE here
			var r = v & 0xFF;
			var g = (v >> 8) & 0xFF;
			var b = (v >> 16) & 0xFF;
			return "#" + hex(r) + hex(g) + hex(b);
		}

		if (v.substr(0, 3) == "rgb") {
			// in rgb(...) form -- Mozilla and Opera
			var re = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/;
			if (v.match(re)) {
				var r = parseInt(RegExp.$1);
				var g = parseInt(RegExp.$2);
				var b = parseInt(RegExp.$3);
				return "#" + hex(r) + hex(g) + hex(b);
			}
			// doesn't match RE?! maybe uses percentages or float numbers
			// -- FIXME: not yet implemented.
			return null;
		}

		if (v.substr(0, 1) == "#") {
			// already hex rgb (hopefully :D )
			return v;
		}

		// if everything else fails ;)
		return null;
	}

	var tag;
	if (bg) { tag = "background-"; } else { tag = ""; }

	if (typeof obj.style.backgroundColor != 'undefined' && obj.style.backgroundColor.length > 0)
	{
		var color = convercolor(obj.style.backgroundColor);
		if (color != null) {
			//TAinsert('['+tag+'='+color+']','[/'+tag+']');
			TAinsert('<span style="'+tag+'color:'+color+';">','</span>');
		}
	}
}


function blog_recupcolor2(obj,bg)
{
	// From HTMLArea
	function convercolor(v)
	{
		// returns the hex representation of one byte (2 digits)
		function hex(d) {
			return (d < 16) ? ("0" + d.toString(16)) : d.toString(16);
		};

		if (typeof v == "number") {
			// we're talking to IE here
			var r = v & 0xFF;
			var g = (v >> 8) & 0xFF;
			var b = (v >> 16) & 0xFF;
			return "#" + hex(r) + hex(g) + hex(b);
		}

		if (v.substr(0, 3) == "rgb") {
			// in rgb(...) form -- Mozilla and Opera
			var re = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/;
			if (v.match(re)) {
				var r = parseInt(RegExp.$1);
				var g = parseInt(RegExp.$2);
				var b = parseInt(RegExp.$3);
				return "#" + hex(r) + hex(g) + hex(b);
			}
			// doesn't match RE?! maybe uses percentages or float numbers
			// -- FIXME: not yet implemented.
			return null;
		}

		if (v.substr(0, 1) == "#") {
			// already hex rgb (hopefully :D )
			return v;
		}

		// if everything else fails ;)
		return null;
	}

	//var tag;
	//if (bg) { tag = "background-"; } else { tag = ""; }

	if (typeof obj.style.backgroundColor != 'undefined' && obj.style.backgroundColor.length > 0)
	{
		var color = convercolor(obj.style.backgroundColor);
		if (color != null) {
			//TAinsert('['+tag+'='+color+']','[/'+tag+']');
			//alert(color) ;
			
			
			var tt = document.getElementsByName(TAhidden) ;
			tt[0].value = color ;
			
			changeIframe() ;			
			
			//TAinsert('<span style="'+tag+'color:'+color+';">','</span>');
		}
	}
}

function changeIframe() {
	var fondTmp = document.getElementsByName("fond") ;
	fond = fondTmp[0].value ;
	var tableauTmp = document.getElementsByName("tableau") ;
	tableau = tableauTmp[0].value ;
	var texteTmp = document.getElementsByName("texte") ;
	texte = texteTmp[0].value ;
	var titreTmp = document.getElementsByName("titre") ;
	titre = titreTmp[0].value ;
	
	//alert("demostyle.php?fond="+escape(fond)+"&tableau="+escape(tableau)+"&titre="+escape(titre)+"&texte="+escape(texte))
	if(fond.length==7 && tableau.length==7 && texte.length==7 && titre.length==7)
		demostyle.location = "demostyle.php?fond="+escape(fond)+"&tableau="+escape(tableau)+"&titre="+escape(titre)+"&texte="+escape(texte) ;
}


function TAinsert(text1,text2)
{
	
	
	function countInstances(ta,open,closed)
	{
		var opening = ta.value.split(open);
		var closing = ta.value.split(closed);
		return opening.length + closing.length - 2;
	}

	
	//var ta = document.getElementById(TAtextbox);
	var tatt = document.getElementsByName(TAtextbox);
	var ta = tatt[0] ;
		
	if (document.selection) 
	{
		var str = document.selection.createRange().text;
		ta.focus();		var sel = document.selection.createRange();


		if (text2!="")
		{
			if (str=="")
			{
				var instances = countInstances(ta,text1,text2);
				if (instances%2 != 0)
				{ 
					sel.text = sel.text + text2;
				}
				else
				{ 
					sel.text = sel.text + text1;
				}
			}
			else
			{
				sel.text = text1 + sel.text + text2;
			}
		}
		else
		{
			sel.text = sel.text + text1;
		}
	}
	else if (ta.selectionStart | ta.selectionStart == 0)
	{
		if (ta.selectionEnd > ta.value.length) { ta.selectionEnd = ta.value.length; }

		var firstPos = ta.selectionStart;
		var secondPos = ta.selectionEnd+text1.length;

		ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
		ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);

		ta.selectionStart = firstPos+text1.length;
		ta.selectionEnd = secondPos;
		ta.focus();
	}
	else
	{ // Opera
		var sel = ta; // document.post.message;

		var instances = countInstances(ta,text1,text2);
		if (instances%2 != 0 && text2 != ""){ sel.value = sel.value + text2; }
		else{ sel.value = sel.value + text1; }
	} 
}

col0 = new Array(255,255,0,255,0,0);
col1 = new Array(255,0,255,255,0,0);
col2 = new Array(0,0,255,0,0,255);
col3 = new Array(0,255,0,0,255,0);
col4 = new Array(0,255,0,255,0,255);

function lightCase(obj,bg)
{
	document.getElementById(TAusedcolor+(bg?'BG':'')).style.backgroundColor = obj.style.backgroundColor;
}
function lightCase2(obj,bg)
{
	document.getElementById(TAactualcolor+(bg?'BG':'')).style.backgroundColor = obj.style.backgroundColor;
}
function blog_rgb(dm,ta,bg)
{
	var base_hexa="0123456789ABCDEF";
	function dec2Hexa(number)
	{
		return base_hexa.charAt(Math.floor(number/16))+base_hexa.charAt(number%16);
	}

	function RGB2Hexa(TR,TG,TB)
	{
		return "#"+dec2Hexa(TR)+dec2Hexa(TG)+dec2Hexa(TB);
	}
	
	var txt='';
	
	var t='';
	var fm=dm+18;
	for(i=dm;i<fm+1;i++)
	{
		r=Math.floor(ta[0]+(i-dm)*(ta[1]-ta[0])/(fm-dm));
		g=Math.floor(ta[2]+(i-dm)*(ta[3]-ta[2])/(fm-dm));
		b=Math.floor(ta[4]+(i-dm)*(ta[5]-ta[4])/(fm-dm));
		
		if(bg)
			txt='Pour mettre le fond du texte en couleur. Syntaxe : <span style=\'background-color:'+RGB2Hexa(r,g,b)+'\'>Votre texte coloré</span>';
		else
			txt='Mettre le texte en couleur. Syntaxe : <span style=\'color:'+RGB2Hexa(r,g,b)+'\'>Votre texte coloré</span>';
		
		t+='<img alt=\"'+txt+'\" style=\"background-color:'+RGB2Hexa(r,g,b)+';\" src=\"'+TApicpath+'\" onclick=\"blog_recupcolor(this,'+(bg?'true':'false')+');lightCase(this,'+(bg?'true':'false')+');\" onmouseover=\"lightCase2(this,'+(bg?'true':'false')+');\" width=\"3\" height=\"20\"/>';
	}
	document.write(t);
}


function blog_rgb2(dm,ta,bg)
{
	var base_hexa="0123456789ABCDEF";
	function dec2Hexa(number)
	{
		return base_hexa.charAt(Math.floor(number/16))+base_hexa.charAt(number%16);
	}

	function RGB2Hexa(TR,TG,TB)
	{
		return "#"+dec2Hexa(TR)+dec2Hexa(TG)+dec2Hexa(TB);
	}
	
	var txt='';
	
	var t='';
	var fm=dm+18;
	for(i=dm;i<fm+1;i++)
	{
		r=Math.floor(ta[0]+(i-dm)*(ta[1]-ta[0])/(fm-dm));
		g=Math.floor(ta[2]+(i-dm)*(ta[3]-ta[2])/(fm-dm));
		b=Math.floor(ta[4]+(i-dm)*(ta[5]-ta[4])/(fm-dm));
		
		if(bg)
			txt='Pour mettre le fond du texte en couleur. Syntaxe : <span style=\'color:'+RGB2Hexa(r,g,b)+'\'>Votre texte coloré</span>';
		else
			txt='Mettre le texte en couleur. Syntaxe : <span style=\'color:'+RGB2Hexa(r,g,b)+'\'>Votre texte coloré</span>';
		
		t+='<img alt=\"'+txt+'\" style=\"background-color:'+RGB2Hexa(r,g,b)+';\" src=\"'+TApicpath+'\" onclick=\"blog_recupcolor2(this,'+(bg?'true':'false')+');lightCase(this,'+(bg?'true':'false')+');\" onmouseover=\"lightCase2(this,'+(bg?'true':'false')+');\" width=\"3\" height=\"20\"/>';
	}
	document.write(t);
}

// suite -----------------------------------------

function getSelection (e) {
    if (document.selection) {
        return document.selection.createRange().text;
    } else if (e.textLength && e.selectionStart && e.selectionEnd) {
        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
        return e.value.substring(start, end);
    } else { // ie5/mac for example
		var ta = document.getElementById(TAtextbox);
		if (ta.selectionStart | ta.selectionStart == 0)
			{
		        var length = ta.textLength;
		        var start = ta.selectionStart;
		        var end = ta.selectionEnd;
		        if (end == 1 || end == 2) end = length;
		        return ta.value.substring(start, end);
			}		
        return false;
    }
}

function setSelection (e, v) {
    if (document.selection) {
        document.selection.createRange().text = v;
    } else if (e.textLength && e.selectionStart && e.selectionEnd) {
        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
        e.value = e.value.substring(0, start) + v + e.value.substr(end, length);
    } else { // ie5/mac for example
		var ta = document.getElementById(TAtextbox);
		if (ta.selectionStart | ta.selectionStart == 0)
		{
	        var length = ta.textLength;
	        var start = ta.selectionStart;
	        var end = ta.selectionEnd;
	        if (end == 1 || end == 2) end = length;
	        ta.value = ta.value.substring(0, start) + v + ta.value.substr(end, length);
	     }  
    	else 
        	return false;
    }
}

function formatStr (e, v) {
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<' + v + '>' + str + '</' + v + '>');
    return false;
}

function insertLink (e, mode) {
    var str = getSelection(e);
    if (!str) return;
    if (mode == 'mail') {
        var newlink = prompt('Veuillez saisir une adresse email :', '');
        newlink = 'mailto:' + newlink;
    } else if (mode == 'url') {
        var newlink = prompt('Veuillez saisir une adresse :', 'http://');
    } else {
        return;
    }
    if (newlink != null && newlink!='mailto:null')
        setSelection(e, '<a href="' + newlink + '" target="_blank">' + str + '</a>');
    return false;
}