// QuickTalk Guestbook 1.7 build:20080601

var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;

function storeCaret(selec)
{
  if (isMozilla)
  {
    var oField = document.getElementById('msg');
    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 = objectValueDeb.length;
    oField.selectionEnd = (objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]").length;
    oField.focus();
    oField.setSelectionRange(
      objectValueDeb.length + selec.length + 2,
      objectValueDeb.length + selec.length + 2);
  }
  else
  {
    var oField = document.getElementById('msg');
    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);
      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);

      pos = i + 2 + selec.length;
      var r = oField.createTextRange();
      r.moveStart('character', pos);
      r.collapse();
      r.select();
    }
  }
}

function AddText(NewCode)
{
  var oField = document.getElementById('msg');
  
  if (typeof(oField.createTextRange) != "undefined" && oField.caretPos)
  {
    var caretPos = oField.caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
    caretPos.select();
  }
  else if (oField.selectionStart || oField.selectionStart == '0')
  { // its mozilla and we'll need to re-write entire text
    var start_selection = oField.selectionStart;
    var end_selection = oField.selectionEnd;

    // fetch everything from start of text area to selection start
    var start = (oField.value).substring(0, start_selection);
    // fetch everything from start of selection to end of selection
    var middle = NewCode;
    // fetch everything from end of selection to end of text area
    var end = (oField.value).substring(end_selection, oField.textLength);

    oField.value = start + middle + end;
    oField.focus();
    oField.selectionStart = end_selection + middle.length;
    oField.selectionEnd = start_selection + middle.length;
    return;
  }
  else
  {
    oField.value += NewCode;
  }
  oField.focus();
  return;
}

function smilie(thesmilie)
{
  document.getElementById('msg').focus();
  var AddSmilie = " " + thesmilie + " ";
  AddText(AddSmilie);
}
