var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var expreg    = new RegExp("[\r]","gi");
var oField;

function storeCaret(selec)
{
    if (isMozilla)
    {

        oField = document.forms['chronique'].elements['comment'];
        var objectValue = oField.value;
        var deb = oField.selectionStart;
        var fin = oField.selectionEnd;
        var objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
        var objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
        var objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

        oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
        oField.selectionStart = strlen(objectValueDeb);
        oField.selectionEnd = strlen(objectValueDeb +"["+ selec +"]"+ objectSelected +"[/"+ selec +"]");
        oField.focus();
        oField.setSelectionRange(objectValueDeb.length + selec.length + 2, objectValueDeb.length + selec.length + 2);
    }
    else
    {
   
        oField = document.forms['chronique'].elements['comment'];
        var str = document.selection.createRange().text;
        if (str.length>0)
        {
   
            var sel = document.selection.createRange();
            sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
            sel.collapse();
            sel.select();
        }
        else
        {
            oField.focus(oField.caretPos);

            oField.focus(oField.value.length);
            oField.caretPos = document.selection.createRange().duplicate();
            var bidon = "%~%";
            var orig = oField.value;
            oField.caretPos.text = bidon;
            var i = oField.value.search(bidon);
            oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
            var r = 0;
            for(n = 0; n < i; n++)
            {
                if(expreg.test(oField.value.substr(n,2)) == true)
                {
                    r++;
                }
            };
            pos = i + 2 + selec.length - r;

            var r = oField.createTextRange();
            r.moveStart('character', pos);
            r.collapse();
            r.select();
        }
    }
}

var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var expreg    = new RegExp("[\r]","gi");
var oField;

function storeCaretdouble(selec,selectfin,message)
{
   function Remplace(expr,a,b) {
		var i = 0;
		while (i!=-1) 
		{
			i=expr.indexOf(a,i);
			if (i >= 0) 
			{
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
			}
		}
    return expr;
   }
selec = Remplace(selec, 'guill', '"');
if (selectfin == 'url' || selectfin == 'citation' || selectfin == 'mailto')
{
var valeurPrompt = prompt(message, '') + '"';
var image = '';
}
if (selectfin == 'img')
{
var image = prompt(message, '');
var valeurPrompt = '';
}
if (selectfin != 'url' && selectfin != 'citation' && selectfin != 'img' && selectfin != 'mailto')
{
var valeurPrompt = '';
var image = '';
}
    if (isMozilla)
    {
   
        oField = document.forms['chronique'].elements['comment'];
        var objectValue = oField.value;
        var deb = oField.selectionStart;
        var fin = oField.selectionEnd;
        var objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
        var objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
        var objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

        oField.value = objectValueDeb + "[" + selec + valeurPrompt + "]" + objectSelected + image + "[/" + selectfin + "]" + objectValueFin;
        oField.selectionStart = strlen(objectValueDeb);
        oField.selectionEnd = strlen(objectValueDeb + "[" + selec + valeurPrompt + "]"+ objectSelected + image +"[/"+ selectfin +"]");
        oField.focus();
        oField.setSelectionRange(objectValueDeb.length + selec.length + 2, objectValueDeb.length + selec.length + 2);
    }
    else
    {

        oField = document.forms['chronique'].elements['comment'];
        var str = document.selection.createRange().text;
        if (str.length>0)
        {

            var sel = document.selection.createRange();
            sel.text = "[" + selec + "]" + str + "[/" + selectfin + "]";
            sel.collapse();
            sel.select();
        }
        else
        {
            oField.focus(oField.caretPos);
   
            oField.focus(oField.value.length);
            oField.caretPos = document.selection.createRange().duplicate();
            var bidon = "%~%";
            var orig = oField.value;
            oField.caretPos.text = bidon;
            var i = oField.value.search(bidon);
            oField.value = orig.substr(0,i) + "[" + selec + "][/" + selectfin + "]" + orig.substr(i, oField.value.length);
            var r = 0;
            for(n = 0; n < i; n++)
            {
                if(expreg.test(oField.value.substr(n,2)) == true)
                {
                    r++;
                }
            };
            pos = i + 2 + selec.length - r;

            var r = oField.createTextRange();
            r.moveStart('character', pos);
            r.collapse();
            r.select();
        }
    }
}
