
$(document).ready(function() { 
	var currentA = null;
	var currentUlStack = [];
	var tid;
    
    $(".j_menu_li").bind("mouseenter",function(){
    	var jUl = $("ul:first", this).removeClass('sub-menu-ul');
		
		var ul = this.firstChild;
		var uls = [];
		while(ul = getParentUl(ul)) {
			uls.unshift(ul);
		}
		if(jUl.length) {
			uls.push(jUl[0]);
			$("a:first",this).addClass('current-');
		}
		var i;
		for(i=0; i<uls.length; i++) {
			if(i == currentUlStack.length || currentUlStack[i] != uls[i])
				break;
		}
		
		if(i < currentUlStack.length) {
			for(var k=currentUlStack.length-1;k >= i; k--) {
				$(currentUlStack[i]).addClass('sub-menu-ul');
				$(currentUlStack[i]).prev("a").removeClass('current-');
			}
		}
		currentUlStack = uls;
		clearTimeout(tid);		
    })
	.bind("mouseleave",function(){
    	tid = setTimeout(hideAll, 500);
    });	
	
	function getParentUl(dom) {
		var p = dom.parentNode.parentNode;
		return p.tagName.toLowerCase()=='ul' ? p : false;
	}
	
	function hideSubLi() {
		$("ul:first", currentLiObj).hide();
		hideAllChild($("ul:first", currentLiObj));
    }
	
    function hideAll() {
		for(var i=currentUlStack.length-1; i>0; i--) {
			$(currentUlStack[i]).addClass('sub-menu-ul');
		}
		currentUlStack = [];
    }
    
    function hideAllChild(obj) {
		$("li", obj).each(function(){
			if($("ul:first", $(this))[0] != undefined)
				$("ul:first", $(this)).addClass('sub-menu-ul');
		});
    }
});
