function showsearch() {
window.document.write("<form action=\"../php/search.php\" method=\"get\" name=\"form2\" class=\"text\" target=\"_self\" style='margin:0pt; spacing:0pt'><input name=\"search\" type=\"text\" class=\"text\" value=\"Suche\" size=\"18\" maxlength=\"50\" onClick=\"window.document.form2.search.value=''\"><a href=\"javascript:window.document.form2.submit()\"><img src=\"../pics/lupe1.gif\" alt=\"Suche starten\" width=\"16\" height=\"15\" hspace=6 border=\"0\" align=\"absmiddle\" alt=\"\"></a><br><div style=\"color:#BBBBBB;\"><hr size=\"1\"></div></form>");
}

function writeParents2(val,tree,link,style,sep) {
   if (!tree) tree = catTree;
   var curNode;
   curNode = catTree.getNode(val,"ukatnr");
   if (!curNode) {
      if (WARN_CATEGORY_NOT_FOUND) {
         //alert("Node "+val+" not found!");
         return;
      }
      else {
         window.document.write(DEFAULT_PARENT_NAME);
      }
   }

// alert(curNode.userObject.name);
   var catString = "";
   if (!style) style = "cat-link";  
   if (!sep) sep = " / ";
   while (curNode.parent) {
      if (!curNode.userObject) continue;
      var tmp = catString;
      if (link)
         catString="<a href='" + replaceForUrl(curNode.userObject.name) + "," + curNode.userObject.ukatnr + ".html' class='textklein'>"+curNode.userObject.name+"</a>";
      else
         catString=curNode.userObject.name;
      if (tmp) catString = catString+sep+tmp;
         curNode = curNode.parent;
   }
   window.document.write(catString);
}

function showSubmenu(id) {
   var obj = document.getElementById("submenu-"+id);
   var mainMenu = document.getElementById("mainMenu"+id);
   mainMenu.className='mainMenuActive';
   if (!obj)  {
      return false;
   }
   obj.style.visibility = "visible";
}

function hideSubmenu(id,ukatnr) {
   var countdown = 300;
   var mainMenu = document.getElementById("mainMenu"+id);
   mainMenu.className='mainMenu';
   timeout = setTimeout("setHidden("+id+"," + ukatnr +")",countdown)
   timeoutId = id;
}

function hideLevel3(ukatnr) {
	var countdown = 300;
	level3Timeout = setTimeout("setLevel3Hidden( " + ukatnr + ")",countdown)
	level3TimeoutUkatnr = ukatnr;
}

function setLevel3Hidden(ukatnr) {
	if (level3Menu[ukatnr]) {
		level3Menu[ukatnr].style.display = "none";
	}
}

function resetTimeout(id) {
	if (timeoutId == id) {
      clearTimeout(timeout);
      timeoutId = -1;
   }
}

function resetLevel3Timeout(ukatnr) {
   if (level3TimeoutUkatnr == ukatnr) {
      clearTimeout(level3Timeout);
      level3TimeoutUkatnr = -1;
      if (level3Menu[ukatnr]) {
      	resetTimeout(level3Menu[ukatnr].submenuId);
      }
   }
}

function setHidden(id,ukatnr) {
   var obj = document.getElementById("submenu-"+id);
   if (!obj)  {
      return false;
   }
   if (level3Menu[ukatnr]) {
   	level3Menu[ukatnr].style.display = "none";
   }
   obj.style.visibility = "hidden";
}

function goTo(ukatnr,name){
	if (sfu == "1") {
		document.location= searchFriendlyUrl(name,ukatnr);
	}
	else {
		document.location = "detail.php?ukatnr=" + ukatnr;
	}
}

  function getAbsolutePosition(element) {
    var r = { x: element.offsetLeft, y: element.offsetTop };
    if (element.offsetParent) {
      var tmp = getAbsolutePosition(element.offsetParent);
      r.x += tmp.x;
      r.y += tmp.y;
    }
    return r;
  }

  function getRelativeCoordinates(event, reference) {
    var x, y;
    event = event || window.event;
    var el = event.target || event.srcElement;
    if (!window.opera && typeof event.offsetX != 'undefined') {
      // Use offset coordinates and find common offsetParent
      var pos = { x: event.offsetX, y: event.offsetY };
      // Send the coordinates upwards through the offsetParent chain.
      var e = el;
      while (e) {
        e.mouseX = pos.x;
        e.mouseY = pos.y;
        pos.x += e.offsetLeft;
        pos.y += e.offsetTop;
        e = e.offsetParent;
      }
      // Look for the coordinates starting from the reference element.
      var e = reference;
      var offset = { x: 0, y: 0 }
      while (e) {
        if (typeof e.mouseX != 'undefined') {
          x = e.mouseX - offset.x;
          y = e.mouseY - offset.y;
          break;
        }
        offset.x += e.offsetLeft;
        offset.y += e.offsetTop;
        e = e.offsetParent;
      }
      // Reset stored coordinates
      e = el;
      while (e) {
        e.mouseX = undefined;
        e.mouseY = undefined;
        e = e.offsetParent;
      }
    }
    else {
      // Use absolute coordinates
      var pos = getAbsolutePosition(reference);
      x = event.pageX  - pos.x;
      y = event.pageY - pos.y;
    }
    // Subtract distance to middle
    return { x: x, y: y };
  }

function showLevel3(ukatnr,submenuId, cell,e) {

	if (level3Nodes[ukatnr] && !level3Menu[ukatnr]) {
		var level3Html = '<table width="150" cellpadding=2 cellspacing=0>';
		for (var j=0;j<level3Nodes[ukatnr].length;j++) {
			var cur = level3Nodes[ukatnr][j].userObject;
			level3Html += "<tr><td class='subMenu' colspan=2 onmouseover=\"this.className='subMenu_hover';showLevel3(" + cur.ukatnr + "," + i + ",this,event)\"" +
								"onmouseout=\"this.className='subMenu';hideLevel3(" + cur.ukatnr +")\"" + 
								"onClick=\"goTo("+cur.ukatnr+",'" + cur.name +"')\">&raquo;&nbsp;"+cur.name+"</td></tr>";
		}
		level3Html +="</table>";
	
		var coord = getAbsolutePosition(cell);
		var obj = document.createElement("div");
		obj.style.position = "absolute";
		obj.style.top = coord.y - (IE ? 5 : 1);
		obj.style.left = coord.x + subMenuWidth + divLeft - 1;
		obj.style.borderTop="1px solid " + borderColor;
		obj.style.borderBottom="1px solid " + borderColor;
		obj.innerHTML = level3Html;
		obj.onmouseover = function() { resetLevel3Timeout(ukatnr) };
		obj.onmouseout = function() { hideLevel3(ukatnr);hideSubmenu(submenuId,ukatnr); }; 
		obj.submenuId = submenuId;
		level3Menu[ukatnr] = obj;
		document.getElementById("bodyTag").appendChild(obj);
	}
	else if (level3Menu[ukatnr]) {

		level3Menu[ukatnr].style.display = "";
	}
}

         function generateSubMenu(node,i,curLeft) {
            for(var z=0;z<node.childNodes.length;z++) {
               var cur=node.childNodes[z].userObject;
               var curNode = node.childNodes[z];
               var curNodeHasChildren = (curNode.childNodes.length > 0);
               
               if (curNodeHasChildren) {
               	level3Nodes[cur.ukatnr] = curNode.childNodes;
               }
               
               if(z == 0) {
                  h+="<div style='visibility:hidden;top:"+spacingTopMenu+";position:absolute;left:"+curLeft+";' id='submenu-"+i+"' onmouseover='resetTimeout("+i+")' onmouseout='hideSubmenu("+i+"," + cur.ukatnr + ")'><table width="+(subMenuWidth+divLeft)+" cellpadding=2 cellspacing=0>"+
                     "<tr><td width="+subMenuSpacingLeft+" class='menuSpacerLeft'><img src='../pics/spacer.gif' width=30 height=1></td><td class='menuSpacerRight'><img src='../pics/spacer.gif' height=1 width="+(subMenuSpacingRight)+"></td></tr>";
               }
               var underline = "";
               if (z == node.childNodes.length - 1)
                  underline = " style='border-bottom: 1px solid " + borderColor + "'";
               h+="<tr><td class='subMenu'"+underline+" colspan=2 onmouseover=\"this.className='subMenu_hover';resetLevel3Timeout(" + cur.ukatnr +");showLevel3(" + cur.ukatnr + "," + i + ",this,event)\" onmouseout=\"this.className='subMenu';hideLevel3(" + cur.ukatnr +")\" onClick=\"goTo("+cur.ukatnr+",'" + cur.name +"')\">&raquo;&nbsp;"+cur.name+"</td></tr>";
            }
            if(node.childNodes.length > 0)
               h+="</table></div>";
         }