  var bbcode = new Array("","[b]","[/b]","[i]","[/i]","[u]","[/u]","[left]","[/left]",
                         "[center]","[/center]","[right]","[/right]","[link=http://]","[/link]",
                         "[email=","]","[img=","]","[irc=#","]","[quote]","[/quote]");
  var clientPC = navigator.userAgent.toLowerCase();
  var clientVer = parseInt(navigator.appVersion);

  var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
  var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
  var is_moz = 0;

  var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
  var is_mac = (clientPC.indexOf("mac")!=-1);

  function mozWrap(txtarea, open, close)
   {
     var selLength = txtarea.textLength;
     var selStart = txtarea.selectionStart;
     var selEnd = txtarea.selectionEnd;
     if (selEnd == 1 || selEnd == 2)
         selEnd = selLength;

     var s1 = (txtarea.value).substring(0,selStart);
     var s2 = (txtarea.value).substring(selStart, selEnd)
     var s3 = (txtarea.value).substring(selEnd, selLength);
     txtarea.value = s1 + open + s2 + close + s3;
    return;
   }

  function storeCaret(textEl)
   {
     if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
   }

  function addbbcode(codenr,feld)
   {
    var txtarea = document.getElementById(feld);

    donotinsert = false;
    theSelection = false;
    bblast = 0;

     if ((clientVer >= 4) && is_ie && is_win)
      {
       theSelection = document.selection.createRange().text; // Get text selection
        if(theSelection)
         {
           document.selection.createRange().text = bbcode[codenr]+theSelection+bbcode[codenr*1+1];
           txtarea.focus();
           return;
         }
        else
         {
          txtarea.value = txtarea.value + bbcode[codenr] + bbcode[codenr*1+1];
          txtarea.focus();
          return;
         }
      }
     else
      {
        if(txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
         {
           mozWrap(txtarea, bbcode[codenr], bbcode[codenr*1+1]);
           return;
         }
        else
         {
          txtarea.value = txtarea.value + bbcode[codenr] + bbcode[codenr*1+1];
          txtarea.focus();
          return;
         }
      }
    storeCaret(txtarea);
   }

function addflag(flag,feld)
   {
    var txtarea = document.getElementById(feld);

    donotinsert = false;
    theSelection = false;
    bblast = 0;

     if ((clientVer >= 4) && is_ie && is_win)
      {
       theSelection = document.selection.createRange().text; // Get text selection
        if(theSelection)
         {
           document.selection.createRange().text = "[flag="+flag+"]";
           txtarea.focus();
           return;
         }
        else
         {
          txtarea.value = txtarea.value + "[flag="+flag+"]";
          txtarea.focus();
          return;
         }
      }
     else
      {
        if(txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
         {
           mozWrap(txtarea, "[flag="+flag+"]");
           return;
         }
        else
         {
          txtarea.value = txtarea.value + "[flag="+flag+"]";
          txtarea.focus();
          return;
         }
      }
    storeCaret(txtarea);
   }
function addwc3(flag,feld)
   {
    var txtarea = document.getElementById(feld);

    donotinsert = false;
    theSelection = false;
    bblast = 0;

     if ((clientVer >= 4) && is_ie && is_win)
      {
       theSelection = document.selection.createRange().text; // Get text selection
        if(theSelection)
         {
           document.selection.createRange().text = "[wc3="+flag+"]";
           txtarea.focus();
           return;
         }
        else
         {
          txtarea.value = txtarea.value + "[wc3="+flag+"]";
          txtarea.focus();
          return;
         }
      }
     else
      {
        if(txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
         {
           mozWrap(txtarea, "[wc3="+flag+"]");
           return;
         }
        else
         {
          txtarea.value = txtarea.value + "[wc3="+flag+"]";
          txtarea.focus();
          return;
         }
      }
    storeCaret(txtarea);
   }
