function insertTag(type, obj)
{
  if (obj == null)
    window.alert('Sorry, aber ihr Browser unterstützt diese Funktion anscheinend noch nicht.');
  else
  {
    // http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/index.htm
    obj.focus();
    // IE
    if (typeof document.selection != 'undefined')
    {
      var range = document.selection.createRange();
      var insText = range.text;
      range.text = '[' + type + ']' + insText + '[/' + type + ']';

      range = document.selection.createRange();
      if (insText.length == 0)
      {
        range.move('character', -(type.length - 2));
      }
      else
      {
        range.moveStart('character', type.length + 2 + insText.length + type.length + 3);      
      }
      range.select();
    }
    // alle ordentlich Browser
    else if(typeof obj.selectionStart != 'undefined')
    {
      var start = obj.selectionStart;
      var end = obj.selectionEnd;
      var insText = obj.value.substring(start, end);
      obj.value = obj.value.substr(0, start) + '[' + type + ']' + insText + '[/' + type + ']' + obj.value.substr(end);

      var pos;
      if (insText.length == 0)
      {
        pos = start + type.length + 2;
      }
      else
      {
        pos = start + type.length + 2 + insText.length + type.length + 2;
      }
      obj.selectionStart = pos;
      obj.selectionEnd = pos;
    }
    // und für die vorsintflutlichen
    else
    {
      var pos;
      var re = new RegExp('^[0-9]{0,3}$');
      while (!re.test(pos))
      {
        pos = prompt("Einfügen an Position (0.." + obj.value.length + "): ", "0");
      }
      if(pos > obj.value.length)
      {
        pos = obj.value.length;
      }
      var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
      obj.value = obj.value.substr(0, pos) + '[' + type + ']' + insText + '[/' + type + ']' + obj.value.substr(pos);
    }
  }
}

isIe = navigator.appName.indexOf('Internet Explorer') >= 0;

function expand(posting)
{
  obj = document.getElementById('expand' + posting);
  expandnow = true;
  if (obj)
  {
    expandnow = obj.src.substr(obj.src.length - 10, 10) == 'expand.gif';
    if (expandnow)
      obj.src = '../pictures/layout/collapse.gif';
    else
      obj.src = '../pictures/layout/expand.gif';
  }
  obj = document.getElementById('post' + posting);
  if (obj)
  {
    obj.style.display = expandnow ? isIe ? 'block' : 'table-row' : 'none';
    for (i = 0; i < searchPids.length; i++)
    {
      if (searchPids[i][0] == posting)
      {
        if (searchPidsIndex[i] != -1)
          break;
        loadPreview(posting, i, searchPids[i][1]);
      }
    }
  }
}

var searchHTTPRequest = false;

function loadPreview(posting, index, pid)
{
  searchHTTPRequest = false;
  if (window.XMLHttpRequest)
  {
    searchHTTPRequest = new XMLHttpRequest();
    /*if (searchHTTPRequest.overrideMimeType)
    {
      searchHTTPRequest.overrideMimeType('text/xml');
    }*/
  }
  else if (window.ActiveXObject)
  {
    try
    {
      searchHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        searchHTTPRequest = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {}
    }
  }
  searchPidsIndex[index] = pid;

  if (!searchHTTPRequest)
  {
    obj = document.getElementById('expand' + posting);
    if (obj)
      obj.innerHTML = '<td colspan="5" class="searchwait">Dein Browser kann leider keine Vorschau des Posts laden...</td>';
    return false;
  }
  searchHTTPRequest.charset = "ISO-8859-5";
  searchHTTPRequest.onreadystatechange = handlePreview;
  searchHTTPRequest.open('GET', 'forum.php?search=loadPreview&post=' + pid, true);
  searchHTTPRequest.send(null);
}

function handlePreview()
{
  if (searchHTTPRequest.readyState == 4)
  {
   if (searchHTTPRequest.status == 200)
    {
      text = searchHTTPRequest.responseText;
      id = text.substr(0, text.indexOf("\n"));
      text = text.substr(text.indexOf("\n") + 1, text.length - text.indexOf("\n") - 1);
      topid = text.substr(0, text.indexOf("\n"));
      text = text.substr(text.indexOf("\n") + 1, text.length - text.indexOf("\n") - 1);
      results = 0;
      index = -1;
      for (i = 0; i < searchPids.length; i++)
        if (searchPids[i][0] == topid)
        {
          results = searchPids[i].length - 1;
          index = i;
          break;
        }
      oldtext = text;
      if (results == 1)
        text = '<div class="searchwait">Es wurde ein Post in diesem Thread gefunden, welches die Suchbegriffe enthält.</div>' + "\n";
      else
        text = '<div class="searchwait">Es wurden ' + results + ' Posts in diesem Thread gefunden, welche die Suchbegriffe enthalten.</div>' + "\n";
      text += '<div style="margin: 0px 15px 15px 15px">';
      if ((results > 1) && (index >= 0))
      {
        text += '   <table class="w100">' + "\n";
        text += '     <tr>' + "\n";
        curpos = -1;
        for (i = 1; i < searchPids[index].length; i++)
          if (searchPids[index][i] == id)
          {
            curpos = i;
            break;
          }
        if (i > 1)
          text += '     <td><a class="textlink" onclick="loadPreview(' + topid + ', ' + index + ', ' + searchPids[index][i - 1] + ')">vorheriger Treffer</a></td>' + "\n";
        else
          text += '     <td>&nbsp;</td>' + "\n";
        if (i < searchPids[index].length - 1)
          text += '     <td class="right"><a class="textlink" onclick="loadPreview(' + topid + ', ' + index + ', ' + searchPids[index][i + 1] + ')">nächster Treffer</a></td>' + "\n";
        else
          text += '     <td>&nbsp;</td>' + "\n";
        text += '    </tr>' + "\n";
        text += '  </table>' + "\n";
        text += '  <div>&nbsp;</div>' + "\n";
      }
      text += oldtext + '</div>';
      obj = document.getElementById('innerpost' + topid);
      if (obj)
        obj.innerHTML = text;
      searchHTTPRequest = false;
    }
  }
}
