    	function $ (n) {
    		return document.getElementById(n);
    	}
    
    	function $r (n) {
    		return n.getAttribute('rel');
    	}

    	function toggle (o, b) {
    		o.style.display = b ? 'block' : 'none';
    	}
    	function set_bg (o,b) {
    		o.className = b ? 'active':'';
    	}
		function allchild (o) {
			var parent = o.parentNode.parentNode; 
			for( var x = 0; parent.childNodes[x]; x++)
			{
				if(typeof parent.childNodes[x].id!='undefined' && parent.childNodes[x].id !='search')
				{
					set_bg(o.parentNode,true)
					if(parent.childNodes[x].id != o.parentNode.id)
					{
						set_bg(parent.childNodes[x],false)
					}
				}
			}
    	}
    	/*
    	function allparent(o){
    		var child = o.parentNode;
    		if(typeof child.parantNode != 'undefined')
    		{
    			allparent(child);
    		}
    		set_bg(o, false);
    	}*/
    	
    	


		var opened = {};
    	var timeout = null;
    	
    	function init_menu (o) {
        	var As = (o || document.body).getElementsByTagName('A');
        	var l = As.length;

        	for (var i = 0; i< l; i++) {

        		var a = As[i];
				if (!a.getAttribute('rel')) {
					continue;
				}
       		
       			a.onmouseover = function () {
					clearTimeout(timeout);
	                var curr_level = $r(this.parentNode.parentNode);
	                
                    for (var level in opened) {
						if (level.indexOf(curr_level) != -1) {
    	                	toggle(opened[level], false);
                       	}
					}
					allchild (this);

       				var sub = $($r(this));
       				if (!sub) {
       					return;
					}
       				toggle(sub, true);
	       			opened[curr_level] = sub;
   	    		}

       			a.onmouseout = function () {
       				var l = this;
					timeout = setTimeout(function(){
						for (var level in opened) {
   		                	toggle(opened[level], false);
						}
						//allparent(l);
						set_bg(l.parentNode, false);
						set_bg(l.parentNode.parentNode.parentNode, false);
						set_bg(l.parentNode.parentNode.parentNode.parentNode.parentNode, false);
					}, 500);
   	    		}
        	}
		}

		window.onload = function(){init_menu(document.getElementById('menu'));}
