var timeout = 150;
var duration = 100;
var active_elem = false;

	function opensubmenu(id)
	{
		obj = document.getElementById(id);
		if(obj && obj.isactive)
		{
		
		var divnodes = obj.getElementsByTagName("div");		
		var ulnodes = divnodes;//obj.getElementsByTagName("ul");
		
		obj.isactive = true;
		
		if(divnodes[0] && ulnodes[1] && obj.className.indexOf("hover") == -1)
		{
			
			startpoint = 0;
			divnodes[0].style.display = 'block';
			endpoint = ulnodes[1].offsetHeight + 5;			
			obj.className += " hover";
			var mydivEffects = new Fx.Morph(divnodes[0], {duration: duration,onStart:function(){}}); 
			mydivEffects.start({'height': [startpoint, endpoint]});
		}
		
		}
	}
	
	function closesubmenu(id)
	{

		var obj = document.getElementById(id);
		if(obj && !obj.isactive)
		{
		
		var divnodes = obj.getElementsByTagName("div");		
		var ulnodes = divnodes; //obj.getElementsByTagName("ul");
		
		if(divnodes[0] && ulnodes[1] && obj.className.indexOf("hover") != -1)
		{
			
			startpoint = 0;
			endpoint = ulnodes[1].offsetHeight  + 5;
			
			obj.className = obj.className.replace("hover","");
			var mydivEffects = new Fx.Morph(divnodes[0], {duration: duration,onComplete:function(){this.element.style.display = 'none'}}); 
			mydivEffects.start({'height': [endpoint, startpoint]});
			divnodes[0].id = '';
			ulnodes[0].id = '';
		}
		
		}
	}

	function __closesubmenu()
	{
		if(active_elem != this)
		{
			active_elem = false;
		}

		this.isactive = false;
		setTimeout("closesubmenu('"+this.id+"')",timeout);
	}	
	
	function __opensubmenu()
	{
		if(active_elem != this)
		{
			this.isactive = true;
			setTimeout("opensubmenu('"+this.id+"')",2*timeout);
		}
	}
	
	function initMenu()
	{
		nav = document.getElementById('navigation');
		if(nav)
		{
			var navs = nav.getElementsByTagName("li");

			for(var i=0; i < navs.length; i++)
			{				
				elem = navs[i];
				var as = elem.getElementsByTagName("a");
				if(as[0] && as[0].href == window.location && elem.className.indexOf("-m") != -1)
				{
					active_elem = elem;
				}
				if(elem.className.indexOf("-m") != -1)
				{
					elem.id = "li-" + i;
					$(elem.id).addEvent('mouseenter', __opensubmenu);
					$(elem.id).addEvent('mouseleave', __closesubmenu);
				}
			}
			$(nav).addEvent('mouseleave', function(){active_elem = false;});
			$(nav).addEvent('mouseenter', function(){active_elem = false;});
		}
		
		document.onmousemove = function(e){
			if(!e) e = window.event;
			var _this = e.target || e.srcElement;
			if(_this && active_elem && _this.parentNode.id != active_elem.id)
			{
				active_elem = false;
			}
			document.onmousemove = null;
		}
	}
	if (window.addEventListener)
		window.addEventListener("load", initMenu, false);
	else if (window.attachEvent)
		window.attachEvent("onload", initMenu);
	