var theSelection = false;
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_win   = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac    = (clientPC.indexOf("mac")!=-1);

var tag = new Array();

/*  Kristof Lipfert Duesseldorf (c) 2001, 2002      */
/*  getElementById fuer NC 4 und IE 4               */
if(!document.getElementById)
{
  function getElementById(id_var, d, dl)
  {
    if(!d)d=document;
    dl=d.layers;
    db=document.all?d.all[id_var]:d[id_var];
    if(dl&&!db) for(var i=0;i<dl.length;i++) db=getElementById(id_var, dl[i].document);
    if(!db.style) db.style=db; 
    return db;
  }
  document.getElementById=window.getElementById;
}
/* Markierten Text in einer Textarea zurückgeben */
function getSelectedText(textarea)
{
   if ((clientVer >= 4) && is_ie && is_win)  return document.selection.createRange().text; //Im IE
   else //sonst
   {
      var selLength = textarea.textLength;
      var selStart = textarea.selectionStart;
      var selEnd = textarea.selectionEnd;
      if (selEnd == 1 || selEnd == 2) selEnd = selLength;
      var s2 = (textarea.value).substring(selStart, selEnd);
      return s2;
   }
   return;
}
/* Keine Ahnung was hier gemacht wird :) */
function storeCaret(textEl) 
{
   if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}





/* Hilfezeile in beliebigen Textfeld ausgeben*/
function helpline(helpbox,help) 
{
   document.getElementById(helpbox).value = help;
   document.getElementById(helpbox).readOnly = "true";
}
/* Text am Curser oder am Ende der Textarea einfügen*/
function insert(textarea,text) {
   if (textarea.createTextRange && textarea.caretPos) {
      var caretPos = textarea.caretPos;
      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?   text + ' ' : text;
   }
   else textarea.value += text;
   textarea.focus(caretPos)
}
// From http://www.massless.org/mozedit/
// Text im Textfluss einfügen
function wrap(textarea, open, close)
{
  if(is_ie)
  {
    theSelection = getSelectedText(textarea);
    document.selection.createRange().text = open + theSelection + close;
    return;
  }
  else
  {
    if (textarea.selectionEnd && (textarea.selectionEnd - textarea.selectionStart > 0))
    {      
      var selLength = textarea.textLength;
      var selStart = textarea.selectionStart;
      var selEnd = textarea.selectionEnd;
      if (selEnd == 1 || selEnd == 2) selEnd = selLength;

      var s1 = (textarea.value).substring(0,selStart);
      var s2 = (textarea.value).substring(selStart, selEnd)
      var s3 = (textarea.value).substring(selEnd, selLength);
      textarea.value = s1 + open + s2 + close + s3;
      return;
    }
    insert(open+close);
  }
  return;
}
/* Einfachen Tag oder Smilie einfügen */
function SingleTag(textarea,text)
{
  insert(document.getElementById(textarea),text);
}
/* Open/Close Tag einfügen. Ggf. um eine Auswahl, sonst am Ende */
function OCTag(textarea,open,close,image,src1,src2) 
{
  textarea=document.getElementById(textarea);
  if ((clientVer >= 4) && is_ie && is_win) 
  {
    theSelection = document.selection.createRange().text;
    if (theSelection != '') 
    {
      document.selection.createRange().text = open+ theSelection + close;
      textarea.focus();
      return;
    }
  }
  else
  {
    if(getSelectedText(textarea).length > 0)
    {
      wrap(textarea, open, close);
      textarea.focus();
      return;
    }
  }
  if (tag[open] == 0 || !tag[open]) 
  {
    i = open;
    document.getElementById(image).src = src2;
    tag[open] = 1;
  } 
  else 
  {
    i = close;
    document.getElementById(image).src = src1;
    tag[open] = 0;
  }
  insert(textarea,i);
}

function PulldownTag(textarea,select,open,mid,close) 
{
  textarea=document.getElementById(textarea);
  select=document.getElementById(select);
  
  if ((clientVer >= 4) && is_ie && is_win)
  {
    theSelection = document.selection.createRange().text;
    if (theSelection != '') 
    {
      document.selection.createRange().text = open+select.value+mid + theSelection + close;
      document.post.message.focus();
      return;
    }
  }
  else
  {
    if(getSelectedText(textarea).length > 0)
    {
      wrap(textarea, open+select.value+mid, close);
      document.post.message.focus();
      return;
    }
  }
  insert(textarea,open+select.value+mid+" "+close);
}

