
// copyright - www.aneantis.com - simple bb code , utilisation réservé à aneantis
// 
// exemple d'utilisations : 
//
// addcode(document.form.textarea,'b','Texte en gras:','texte')
// si du texte est séléctionner ca mets directement en gras
//
// addcodeval(txtarea,code,val,info_code,info_val,defaut_code,defaut_val,no_val,revers)
// 
// addcodeval(document.form.textarea,'color','#ffffff','Texte à mettre en couleur :','Code couleur :','texte','#000000',0,0)
//
// note : no_val = 1 : si val n'est pas donné (bouton annuler) alors on affiche [code] [/code] et pas [code=][/code]
// note : revers = 1 : si aucun texte n'est séléction et aucun texte donné dans le prompt on mets alors [code]val[/code] et pas [code=val][/code]
//
// exemple : 
// addcodeval(document.form.textarea,'url','','Texte du lien :','Adresse du lien :','texte','http://',1,1)
// aura pour conséquence de demandé le lien mais si on entre pas de texte ca ajoutera [url]http://www.liens.com/[/url]


var theSelection = false;
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));


function addcode(txtarea,code,info_code,defaut_code)
	{	
	needprompt=true;
	if ((clientVer >= 4) && is_ie && is_win)
		{
		theSelection = document.selection.createRange().text; // Get text selection
		if (theSelection) 
			{
			// Add tags around selection
			document.selection.createRange().text = '['+code+']' +  theSelection + '[/'+code+']' ;
			txtarea.focus();
			theSelection = '';
			needprompt=false;
			}
		}
		else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
			{	
			var selLength = txtarea.textLength;
			var selStart = txtarea.selectionStart;
			var selEnd = txtarea.selectionEnd;
			if (selEnd == 1 || selEnd == 2)
				selEnd = selLength;
		
			var s1 = (txtarea.value).substring(0,selStart);
			var s2 = (txtarea.value).substring(selStart, selEnd)
			var s3 = (txtarea.value).substring(selEnd, selLength);
			txtarea.value = s1 + '['+code+']' + s2 + '[/'+code+']' + s3;
			txtarea.focus();
			needprompt=false;
			}
	
	if(needprompt)
			{
			inserttext = prompt(info_code,defaut_code);
			if(inserttext!=null)
				{	
				insert('['+code+']' + inserttext + '[/'+code+']',boite);
				}
				txtarea.focus();
			}
	}
	
	
function addcodeval(txtarea,code,val,info_code,info_val,defaut_code,defaut_val,no_val,revers)
	{
	if(val=='' || val==0)
		{
		val = prompt(info_val,defaut_val);
		}
		
	needprompt=true;
	if ((clientVer >= 4) && is_ie && is_win)
		{
		theSelection = document.selection.createRange().text; // Get text selection
		if (theSelection) 
			{
			// Add tags around selection
			if(no_val==1 && ( val==''  || val==null ))
			document.selection.createRange().text = '['+code+']' +  theSelection + '[/'+code+']' ;
			else
			document.selection.createRange().text = '['+code+'='+val+']' +  theSelection + '[/'+code+']' ;
			txtarea.focus();
			theSelection = '';
			needprompt=false;
			}
		}
		else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
			{	
			var selLength = txtarea.textLength;
			var selStart = txtarea.selectionStart;
			var selEnd = txtarea.selectionEnd;
			if (selEnd == 1 || selEnd == 2)
				selEnd = selLength;
		
			var s1 = (txtarea.value).substring(0,selStart);
			var s2 = (txtarea.value).substring(selStart, selEnd)
			var s3 = (txtarea.value).substring(selEnd, selLength);
			
			if(no_val==1 && ( val==''  || val==null ))
			txtarea.value = s1 + '['+code+']' + s2 + '[/'+code+']' + s3;
			else
			txtarea.value = s1 + '['+code+'='+val+']' + s2 + '[/'+code+']' + s3;
			txtarea.focus();
			needprompt=false;
			}
	
	if(needprompt)
			{			
			inserttext = prompt(info_code,defaut_code);
			if(inserttext==null && revers==1)
				{
				inserttext=val;
				val='';
				}
			if(inserttext!=null && inserttext!='')
				{
				if(no_val==1 && ( val==''  || val==null ))				
					insert('['+code+']' + inserttext + '[/'+code+']',boite);
					else					
					insert('['+code+'='+val+']' + inserttext + '[/'+code+']',boite);
				}
			}
	txtarea.focus();
	}
function  insert(instext,boite) {
    var mess = boite;
        //IE support
        if (document.selection) {
            mess.focus();
            sel = document.selection.createRange();
            sel.text = instext;
            mess.focus();
        }
        //MOZILLA/NETSCAPE support
        else if (mess.selectionStart || mess.selectionStart == "0") {
            var startPos = mess.selectionStart;
            var endPos = mess.selectionEnd;
            var chaine = mess.value;

            mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);

            mess.selectionStart = startPos + instext.length;
            mess.selectionEnd = endPos + instext.length;
            mess.focus();
        } else {
            mess.value += instext;
            mess.focus();
        }
    }