function bbInsertTag (textArea, startTag, endTag)
{
  textArea.focus ();

  if (typeof endTag == 'undefined')
    endTag = '';

  if (typeof document.selection != 'undefined')
    {
      var range = document.selection.createRange ();
      var selectedText = range.text;

      range.text = startTag + selectedText + endTag;
      range = document.selection.createRange ();

      if (selectedText.length == 0)
        range.move ('character', - endTag.length);
      else
        range.moveStart ('character',
          startTag.length + selectedText.length + endTag.length);

      range.select();
    }
  else if (typeof textArea.selectionStart != 'undefined')
    {
      var start = textArea.selectionStart;
      var end = textArea.selectionEnd;
      var selectedText = textArea.value.substring (start, end);
      
      textArea.value = textArea.value.substr (0, start) 
        + startTag + selectedText + endTag + textArea.value.substr (end);

      var cursorPos;

      if (selectedText.length == 0)
        cursorPos = start + startTag.length;
      else
        cursorPos = start + startTag.length + selectedText.length
	  + endTag.length;

      textArea.selectionStart = cursorPos;
      textArea.selectionEnd = cursorPos;
    }
  else
    {
      var insertPos = textArea.value.length;
      var insertText = prompt ("Zu formatierenden Text eingeben:");

      textArea.value = textArea.value.substr (0, insertPos) + startTag 
        + insertText + endTag + textArea.value.substr (insertPos);
    }
}
