<!--

var searchId = -1;
var lastSearchText = "";
var keyWord = "";
var firstEnter = true;
var http_request = false;

function textBox()
{
  return document.getElementById("keywords");
}

function searchInner()
{
  return document.getElementById("searchInner");
}

function ClearOnEnter()
{
  textBox().select();
  if (!firstEnter) return 0;
  firstEnter = false;
  if ("SUCHE" != textBox().value) return 0;
  textBox().value = "";
}

function Trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}

function clearSearchResults()
{
  searchInner().innerHTML = "";
  searchInner().className = "hide";
}

function displayInfo(txt)
{
  searchInner().className = "";
  searchInner().innerHTML = txt;
}

function showPleaseWait()
{
  displayInfo("Suche läuft...");
}

function displayXMLError()
{
  displayInfo("Das XML Objekt Ihres Webbrowsers kann nicht genutzt werden.");
}

function displayServerError()
{
  displayInfo("Die Suche ist leider fehlgeschlagen.");
}

function createXMLRequest() {
  http_request = false;
  if (window.XMLHttpRequest)
  {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
      http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    try
    {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try
      {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  if (!http_request) {
    displayXMLError();
    return false;
  }
  return true;
}

function nodeValue(parent, nodeName)
{
  if (parent == null)
  {
    return "";
  }
  if (parent.getElementsByTagName(nodeName).item(0) == null)
  {
    return "";
  }
  if (parent.getElementsByTagName(nodeName).item(0).firstChild != null)
  {
    return parent.getElementsByTagName(nodeName).item(0).firstChild.nodeValue;
  }
  return "";
}

function initSearch()
{
  if (searchId >= 0)
  {
    clearTimeout(searchId);
    searchId = -1;
  }
  keyWord = Trim(textBox().value);
  if (lastSearchText == keyWord) return 0;

  clearSearchResults();
  if (keyWord == "") return 0;

  showPleaseWait();
  searchId = setTimeout("startSearch();", 250);
}

function displayHit(xmlHit, divSRG)
{
  var link = document.createElement("A");
  link.href = nodeValue(xmlHit, "link");
  link.innerHTML = nodeValue(xmlHit, "shortText");
  divSRG.appendChild(link);

  var br = document.createElement("BR");
  divSRG.appendChild(br);
}

function displayHits(xmlHits)
{
  var divSRG = document.createElement("DIV");
  divSRG.className = "searchResultGroup";

  var imgH3 = document.createElement("IMG");
  imgH3.className = "searchResultGroup h3";
  imgH3.src = nodeValue(xmlHits, "headLineImg");
  divSRG.appendChild(imgH3);

  var br = document.createElement("BR");
  divSRG.appendChild(br);

  var xmlHit = xmlHits.getElementsByTagName("hit");
  for (var i = 0; i < xmlHit.length; i++)
  {
    displayHit(xmlHit.item(i), divSRG);
  }

  searchInner().appendChild(divSRG);
}

function displayMoreLink()
{
  var divHR = document.createElement("DIV");
  divHR.className = "hr";

  var br = document.createElement("BR");
  divHR.appendChild(br);

  searchInner().appendChild(divHR);

  var link = document.createElement("A");
  link.innerHTML = "Alle Suchergebnisse";
  link.href = "/de/meta/search.html?" + escape(lastSearchText);
  searchInner().appendChild(link);
}

function displaySearchResults()
{
  if (!http_request) return 0;
  if (http_request.readyState != 4) return 0;
  if (http_request.status != 200)
  {
    displayServerError();
    return 0;
  }
  clearSearchResults();

  xmlHits = http_request.responseXML.getElementsByTagName("hits");
  if (xmlHits.length == 0)
  {
    displayInfo("Ihre Suche ergab keine Treffer.");
    return 0;
  }

  displayInfo(""); // show result box
  for (var iHits = 0; iHits < xmlHits.length; iHits++)
  {
    displayHits(xmlHits.item(iHits));
  }

  if (http_request.responseXML.getElementsByTagName("moreResults").length == 1)
  {
    displayMoreLink();
  }
}

function startSearch()
{
  lastSearchText = keyWord;
  if (createXMLRequest())
  {
    http_request.onreadystatechange = displaySearchResults;
    http_request.open("GET", "/de/system/search.xml?" + escape(keyWord), true);
    http_request.send(null);
  }
}

// -->