/* 
	PopUp Menu
*/

		function hasDOM()
		{
			return ( document.implementation && document.implementation.hasFeature('HTML','') );
		}

		function getObject(id)
		{
			if ( hasDOM() )
			{
				return document.getElementById(id);
			}
			else if ( document.all )
			{
				return document.all[id];
			}
			else if ( document.layers )
			{
				return document.layers[id];
			}

			return null;
		}
		
		function hideObject(obj)
		{
			if ( obj.style ) { obj = obj.style; }
			obj.visibility = 'hidden';
		}

		function showObject(obj)
		{
			if ( obj.style ) { obj = obj.style; }
			obj.visibility = 'visible';
		}
		
		function isObjectVisible(obj)
		{
			if ( obj.style ) { obj = obj.style; }
			return (obj.visibility == 'visible');
		}
		
		function registerMenu(menu, parent)
		{
			if ( document.layers )
			{
				objPopup  = getObject(menu);
				objParent = getObject(parent);
			
				objPopup.parent = objParent;
				objPopup.onMouseOver = popupMouseOver;
				objPopup.onMouseOut = popupMouseOut;
			}
		}
		
		function hideMenu(menu)
		{	

			hideObject(getObject(menu));
			window.currentMenu = null;
		}
		
		function parentMouseOver(evt, menu, parent, leftpos)
		{
			objPopup  = getObject(menu);
			objParent = getObject(parent);

			if ( window.currentMenu && window.currentMenu != objPopup )
			{
				hideObject(window.currentMenu);
			}

			window.clearTimeout(currentTimer);
			window.currentMenu = objPopup;

			if ( ! isObjectVisible(objPopup) ) 
			{
			
			// positionierung - x positionierung relativ - y positionierung absolut lt layer einstellungen
			
			if (!absolutepositionierung) {
			
				if ( document.layers )
				{
					objPopup.left = objParent.pageX + leftpos;   // links verschieben NETSCAPE
				}
				else if ( document.all || navigator.appName == "Opera" )
				{
					objPopup.style.posLeft = objParent.offsetLeft + objParent.offsetParent.offsetLeft + leftpos;  // links verschieben INTERNET EXPLORER NORMAL + OPERA
					
					
					if (navigator.appVersion.indexOf("MSIE 5.0") != -1) 
					{
				// 	   objPopup.style.left = objPopup.offsetLeft + objParent.offsetLeft + document.all.reference.offsetLeft + document.all.reference.offsetParent.offsetLeft - 125; // IE 5.0
				 	   objPopup.style.left = objPopup.offsetLeft + objParent.offsetLeft - 125; // IE 5.0
					   if (leftpos != 0) {leftpos = leftpos + leftpos * -1}
					   objPopup.style.posLeft = objPopup.style.posLeft + 125 + leftpos;
					   if (navigator.appVersion.indexOf("Mac") != -1)		// IE AM MAC
					   {
					    objPopup.style.right = 30;
					   }
					}
				}
				else if ( hasDOM() )
				{
					objPopup.style.left = objParent.offsetLeft + leftpos;
				}
				
			}
			
				showObject(objPopup);
			}
			
			
			return true;
		}
				
		function parentMouseOut(evt, menu, parent) 
		{
			if ( ! evt ) evt = window.event;
					
			objPopup  = getObject(menu);
			objParent = getObject(parent);

			window.currentTimer = window.setTimeout("hideMenu('" + menu + "')", 500);
						
			return true;
		}

		function parentMouseOverNetscape(evt, menu, parent, leftpos) 
		{
			if ( document.layers)
			{
				registerMenu(menu, parent);
				return parentMouseOver(evt, menu, parent, leftpos);
			}
			
			return false;
		}

		function parentMouseOutNetscape(evt, menu, parent) 
		{
			if ( document.layers)
			{
				return parentMouseOut(evt, menu, parent);
			}
			
			return false;
		}
		
		function popupMouseOver(evt, menu, parent) 
		{
			if ( ! evt ) evt = window.event;

			if ( document.layers )
			{
				objPopup = evt.target;
				objParent = objPopup.parent;
			}
			else
			{
				objPopup  = getObject(menu);
				objParent = getObject(parent);
			}

			window.clearTimeout(window.currentTimer);
			window.currentMenu = objPopup;

			return true;
		}
		
		function popupMouseOut(evt, menu, parent) 
		{
			if ( ! evt ) evt = window.event;
			
			if ( document.layers )
			{
				objPopup = evt.target;
				objParent = objPopup.parent;
			}
			else
			{
				objPopup  = getObject(menu);
				objParent = getObject(parent);
			}
					
			window.currentTimer = window.setTimeout("hideMenu('" + objPopup.id + "')", 500);
						
			return true;
		}
