var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
  oField = document.forms['addLecture'].elements['text'];
  if(isMozilla)
  {
    // Si on est sur Mozilla
    objectValue = oField.value;

    deb = oField.selectionStart;
    fin = oField.selectionEnd;

    objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
    objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
    objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

    //alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");

    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
  {
    // Si on est sur IE
    //oField = document.forms['addLecture'].elements['text'];
    var str = document.selection.createRange().text;

    if (str.length > 0)
    {
      // Si on a selectionné du texte
      var sel = document.selection.createRange();
      sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
      sel.collapse();
      sel.select();
    }
    else
    {
      oField.focus(oField.caretPos);
      //alert(oField.caretPos+"\n"+oField.value.length+"\n")
      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(regexp.test(oField.value.substr(n,2)) == true)
          r++;
      }

      pos = i + 2 + selec.length - r;

      //Gestion des retours chariots sous IE
      var temp = orig.substr(0,i);
      var nbretour =0;
      for (var cpt=0;cpt<temp.length;cpt=cpt+1)
      {
        if(temp.charAt(cpt)=="\n")
          nbretour=nbretour+1;
      }

      //Prise en compte des retour chariots dans le placement du curseur
      pos = i + 2 + selec.length - nbretour;

      //placer(document.forms['news'].elements['newst'], pos);
      var r = oField.createTextRange();
      r.moveStart('character', pos);
      r.collapse();
      r.select();
    }
  }
}
