window.onload = function () {
    //fadeHandler = new alphaAPI('effect', 5, 5, 100);
    //fadeHandler.setAlpha(20);
    //fadeHandler.fadeIn();
    window.defaultStatus = document.title;
    if (document.getElementById ? false : true) return;
    elements = getTagReferences('a', 'img', 'input', 'ul', 'table');
    l = elements.length;
    url = document.location.toString();
    for (var i = 0; i < l; i++)
    {
        switch ((e = elements[i]).tagName.toLowerCase())
        {
            case 'a': e.onmouseover = showTitleInStatusbar; break;
            case 'input': if (e.type == 'submit' || e.type == 'image') e.onclick = sendform; break;
            case 'ul' : if (e.className == 'menulist') initMenu(e);
            default:
        }
    }
    googleSearchHighlight();
}

function showTitleInStatusbar()
{
   window.status = this.title; return true;
}

function initMenu(elm)
{
   if (initMenu.done) return;
   initMenu.done = false;
   var items = elm.childNodes;
   elm.submenulist = [];
   for (var i = 0; i < items.length; i++)
   {
      var item = items[i];
      var main = item.firstChild;
      if (item.childNodes.length > 1)
      {
        
         main.mysubmenu = item.childNodes[1];
         var sub = main.mysubmenu.childNodes;
         var subl = sub.length;
         main.onmouseover = function () {toggleSubmenu(this.mysubmenu)};
         elm.submenulist.push(sub);
         for (var j = 0; j < subl; j++)
         {
            if (sub[j].firstChild.className == 'aktiv')
            {
                main.onmouseover = null;
                toggleDisplay(main.mysubmenu);
            }
         }
         if (main.className == 'aktiv')
         {
             toggleDisplay(main.mysubmenu);
             main.onmouseover = null;
         }
         else main.mysubmenu.className = 'none';
      }
      else main.onmouseover = submenusOff;
   }
   initMenu.done = true;
   return true;
}

function submenusOff(elm)
{
   if (toggleSubmenu.lastItem) toggleSubmenu.lastItem.style.display = 'none';
   toggleSubmenu.lastItem = null;
}

function toggleSubmenu(elm)
{
   if (toggleSubmenu.lastItem) toggleDisplay(toggleSubmenu.lastItem);
   toggleDisplay(elm);
   toggleSubmenu.lastItem = elm;
}

function toggleDisplay(elm)
{
   elm.style.display = (elm.style.display == 'block')  ? 'none' : 'block';
}

Array.prototype.push = function(v) {for(var i = 0; i < arguments.length; i++) this[this.length] = arguments[i];}
function hh_goto(u){document.location.href=u;}
function hh_style(o, s) {o.className = s;}

function maximizeWin() {
  if (window.screen) {
    var aw = screen.availWidth;
    var ah = screen.availHeight;
    window.moveTo(0, 0);
    window.resizeTo(aw, ah);
  }
}

function QuickGoto(f) {
    var i = f.selectedIndex;
    var v = f.options[i].value;
    if (v.indexOf('/') > -1) location = v;
    else
    {
        if (v != "0") location='/lackingenieur/' + v + '/';
    }
}


function sendmail(user, domain)
{
  // protocol
  var p = "\u006d\u0061\u0069\u006c\u0074\u006f\u003a";
  // usename
  var u = user;
  // domain name (host name sans machine name)
  var d = domain ||
  	location.host.substring(location.host.lastIndexOf('.',
		location.host.lastIndexOf('.') - 1) + 1);
  void(top.location = p + u + "\u0040" + d);
  return false;
}

function getTagReferences()
{
    var a = new Array;
    al = arguments.length;
    for (var i = 0; i < al; i++)
    {
        var e = document.getElementsByTagName(arguments[i]);
        var el = e.length;
        for (var j = 0; j < el; j++) a[a.length] = e[j];
    }
    return a;
}

function sendform()
{
    this.value = 'sende ...';
    this.disabled = true;
    return this.form.submit();
}

function highlightWord(node,word) {
        // Iterate into this nodes childNodes
        if (node.hasChildNodes) {
                var hi_cn;
                for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
                        highlightWord(node.childNodes[hi_cn],word);
                }
        }
        
        // And do this node itself
        if (node.nodeType == 3) { // text node
                tempNodeVal = node.nodeValue.toLowerCase();
                tempWordVal = word.toLowerCase();
                if (tempNodeVal.indexOf(tempWordVal) != -1) {
                        pn = node.parentNode;
                        if (pn.className != "searchword") {
                                // word has not already been highlighted!
                                nv = node.nodeValue;
                                ni = tempNodeVal.indexOf(tempWordVal);
                                // Create a load of replacement nodes
                                before = document.createTextNode(nv.substr(0,ni));
                                docWordVal = nv.substr(ni,word.length);
                                after = document.createTextNode(nv.substr(ni+word.length));
                                hiwordtext = document.createTextNode(docWordVal);
                                hiword = document.createElement("span");
                                hiword.className = 'searchword';
                                hiword.appendChild(hiwordtext);
                                pn.insertBefore(before,node);
                                pn.insertBefore(hiword,node);
                                pn.insertBefore(after,node);
                                pn.removeChild(node);
                        }
                }
        }
}

function googleSearchHighlight() {
        if (!document.createElement) return;
        ref = document.referrer;
        if (ref.indexOf('?') == -1) return;
        qs = ref.substr(ref.indexOf('?')+1);
        qsa = qs.split('&');
        for (i=0;i<qsa.length;i++) {
                qsip = qsa[i].split('=');
                if (qsip.length == 1) continue;
                if (qsip[0] == 'q' || qsip[0] == 'p' || qsip[0] == 'suche' ) { // q= for Google, p= for Yahoo, suche= custom
                    if (qsip[1]){
                        words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
                        for (w=0;w<words.length;w++) {
                                highlightWord(document.getElementsByTagName('body')[0],words[w]);
                        }
                    }
                }
        }
}
