var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
                        && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
                        && (agt.indexOf('webtv') == -1) && (agt.indexOf('hotjava') == -1));
var is_nav4up = (is_nav && (is_major >= 4));

var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4") != -1) );
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);

function InsertEditText(element, text, pos)
{
  element.value = element.value.slice(0, pos) + text + element.value.slice(pos);
}

function AddTag(tag)
{
  var t1 = '<' + tag + '>', t2 = '</' + tag + '>';

  if (is_ie5up)
  {
    if (document.selection)
    {
      document.getElementById('body').focus();

      var txt = document.getElementById('body').value;
      var str = document.selection.createRange();

      if (str.text == '') str.text = t1 + t2;
      else if (txt.indexOf(str.text) >= 0) str.text = t1 + str.text + t2;
      else document.getElementById('body').value = txt + t1 + t2;
      str.select();
    }
  }
  else if (is_nav4up || (typeof document.getElementById('body').selectionStart) != 'undefined')
  {
    var element = document.getElementById('body');
    var sel_start = element.selectionStart;
    var sel_end = element.selectionEnd;
    InsertEditText(element, t1, sel_start);
    InsertEditText(element, t2, sel_end+t1.length);
    element.selectionStart = sel_start;
    element.selectionEnd = sel_end+t1.length+t2.length;
    element.focus();
  }
  else document.getElementById('body').value = document.getElementById('body').value + t1 + t2;
}
