  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 switch_status(field,link) {
	   if (document.getElementById(field).style.display == 'none') {
	      document.getElementById(field).style.display = "";
	      link.firstChild.src = switch_minus.src;
	   } else {
	      document.getElementById(field).style.display = "none";
	      link.firstChild.src = switch_plus.src;
	   }
	}

  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 addsmilie(smilie,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 = smilie+theSelection;
           txtarea.focus();
           return;
         }
        else
         {
          txtarea.value = txtarea.value + smilie;
          txtarea.focus();
          return;
         }
      }
     else
      {
        if(txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
         {
           mozWrap(txtarea, smilie, ' ');
           return;
         }
        else
         {
          txtarea.value = txtarea.value + smilie;
          txtarea.focus();
          return;
         }
      }
    storeCaret(txtarea);
   }

function insertText(before,after,field) {
	var txtarea = document.getElementById(field);
   var theSelection = false;

	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text; // Get text selection
		if(theSelection) {
			document.selection.createRange().text = before+theSelection+after;
			txtarea.focus();
			return;
		} else {
		  txtarea.value = txtarea.value + before + after;
		  txtarea.focus();
			return;
		}
	} else {
		if(txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) {
			mozWrap(txtarea, before, after);
			return;
		} else {
			txtarea.value = txtarea.value + before + after;
			txtarea.focus();
			return;
		}
	}
	storeCaret(txtarea);
}

  function addQuote(qtext)
   {
    var quote = document.getElementById(qtext).innerHTML;
    document.getElementById('text').value += '[quote]' + quote + '[/quote]';
    document.getElementById('text').focus();
   }

  function Popup(path,name,width,height,scrolling,resizable)
   {
     window.open(path,name,"width="+width+",height="+height+",scrollbars="+scrolling+",resizable="+resizable);
   }

  function addcolor(color,feld)
   {
     if(color)
      {
        var old = document.getElementById(feld).value;
        var neu = old+"[color="+color+"][/color]";
        document.getElementById(feld).value = neu;
      }
   }

  function addsize(size,feld)
   {
     if(size)
      {
        var old = document.getElementById(feld).value;
        var neu = old+"[size="+size+"][/size]";
        document.getElementById(feld).value = neu;
      }
   }

  function addfont(font,feld)
   {
     if(font)
      {
        var old = document.getElementById(feld).value;
        var neu = old+"[font="+font+"][/font]";
        document.getElementById(feld).value = neu;
      }
   }

  function addtext(feld,text)
   {
     var old = document.getElementById(feld).value;
     var neu = old+text;
     document.getElementById(feld).value = neu;
   }