tabMerker = "";
statusMerker = ""; // wird auf der Seite gesetzt, nicht ändern!

pulldown = null;

function mouseOver(which, timeOffset) {
	
	tab = document.getElementById("tab-" + which);
	if (tab.className.indexOf("rot") >= 0) {
		tab.className = "active rot";
	} else {
		tab.className = "active";
	}
	if (tabMerker != "" && tabMerker != which) {
		if (tabMerker != statusMerker) {
			// rot abfangen
			if (document.getElementById("tab-" + tabMerker).className.indexOf("rot") >= 0) {
				document.getElementById("tab-" + tabMerker).className = "tab rot";
			} else {
				document.getElementById("tab-" + tabMerker).className = "tab";
			}
		}
		if (document.getElementById("sub-" + tabMerker))
			document.getElementById("sub-" + tabMerker).className = "sub";
	}
	
	tabMerker = which;
	
	if (timeOffset) {
		if (pulldown) {
			window.clearTimeout(pulldown);
		}
		pulldown = window.setTimeout("showSubMenu('" + which + "')",100);
	} else {
		showSubMenu(which);
	}
	
	

}

function showSubMenu(which) {
	if (!document.getElementById("sub-" + which)) return;
	
	absHeight = 87;
	
	tab = document.getElementById("tab-" + which);
	sub = document.getElementById("sub-" + which);
	
	if (tab.className.indexOf("rot") >= 0) {
		tab.className = "active rot";
		
	} else {
		tab.className = "active";
	}
	
	
	position = getTabPosition(tab);
	sub.style.left = tab.offsetLeft + 1 + "px";
	offset = (position.y == absHeight) ? 25 : 28;
	sub.style.top = position.y - absHeight + offset + "px";
	sub.className = "sub-on";
	
}

function mouseOut(which, e) {
	
	if (pulldown) {
			window.clearTimeout(pulldown);
		}
	if (!e) var e = window.event;
	var fromTarget = (window.event) ? e.srcElement : e.target;
	var toTarget = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	
	if (fromTarget.nodeName != "A" && fromTarget.nodeName != "UL" && fromTarget.nodeName != "DIV") return;
	if (fromTarget.nodeName == "A" && fromTarget.className != "tab")  return;
	if (toTarget) {
	
		if (fromTarget.nodeName == "A" && fromTarget.className == "tab" && toTarget.nodeName == "UL") return;

		while (toTarget != fromTarget && toTarget.nodeName != 'BODY') {
			toTarget= toTarget.parentNode
		}
	}
	if (toTarget == fromTarget) return;
	
	if (document.getElementById("sub-" + which)) 
		document.getElementById("sub-" + which).className = "sub";
	tab = document.getElementById("tab-" + which);
	if (which != statusMerker) {
		if (tab.className.indexOf("rot") >= 0) {
			tab.className = "tab rot";
		} else {
			tab.className = "tab";
		}
		
	}
	
	
}



function getTabPosition(element)
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten
   des Objekts element */
{
  var elem=element,tagname="",x=0,y=0;
  
/* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
   wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
 {
  
  
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

/* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
    if ((tagname=="HTML") || (tagname == "BODY"))
      	elem=0;
    else {
    	y+=elem.offsetTop;     
   		x+=elem.offsetLeft;    
    }
	
/* wenn elem ein Objekt ist und offsetParent enthaelt
   Offset-Elternelement ermitteln */
    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object")
        elem=elem.offsetParent;
  }


  position=new Object();
  position.x=x;
  position.y=y;
  
  return position;
}

function debugAlert(message) {
	debugHelper = document.getElementById("debug");
	if (!debugHelper) return;
	if (message != "") {
		debugHelper.innerHTML += message + " ";
	} else {
		debugHelper.innerHTML = message;
	}
}


