function bbcode(formname, v, name, v2)
 {
  
 if(v2 == null) v2 = v;
 
 if (document.selection) // für IE
   {
    var str = document.selection.createRange().text;
    document.forms[formname].elements[name].focus();
    var sel = document.selection.createRange();
    sel.text = "[" + v + "]" + str + "[/" + v2 + "]";
    return;
   }
  else if ((typeof document.forms[formname].elements[name].selectionStart) != 'undefined') // für Mozilla
   {
    var txtarea = document.forms[formname].elements[name];
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v2 + ']' + s3;
    txtarea.selectionStart = s1.length;
    txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
    return;
   }
  else input_code(formname, '[' + v + '][/' + v2 + '] ', name);
 }


function input_code(formname, what, name)
 {
  if (document.forms[formname].elements[name].createTextRange)
   {
    document.forms[formname].elements[name].focus();
    document.selection.createRange().duplicate().text = what;
   }
  else if ((typeof document.forms[formname].elements[name].selectionStart) != 'undefined') // für Mozilla
   {
    var tarea = document.forms[formname].elements[name];
    var selEnd = tarea.selectionEnd;
    var txtLen = tarea.value.length;
    var txtbefore = tarea.value.substring(0,selEnd);
    var txtafter =  tarea.value.substring(selEnd, txtLen);
    tarea.value = txtbefore + what + txtafter;
    tarea.selectionStart = txtbefore.length + what.length;
    tarea.selectionEnd = txtbefore.length + what.length;
   }
  else
   {
    document.forms[formname].elements[name].value += what;
   }
 }