$(function(){
	
	var endEffect=function(){
		setTimeout(function(){
			if($("#menu a.selected").length==0)
				defaultSelected();
		},500);
	};

	var runDefault=false;

	$("#menu li").hover(function(){
		var li=$(this);
		if(!runDefault) defaultSelectedOut(li);
		var ul=li.parent();
		var cul=$(">ul",li);
		var a=$(">a",li);
		a.addClass("selected");
		if(!cul.is(".menu-hide")||runDefault){
			if(!a.is(".default-selected")){
				cul.css("left",((ul.width()/2)-(cul.width()/2))+"px");
				cul.fadeIn('fast');
			}else{
				a.removeClass("default-selected");
			}
		}
	},function(){
		var li=$(this);
		$("a",li).removeClass("selected");
		setTimeout(function(){
			if(!$(">a",li).is(".selected")){
				$(">ul",li).fadeOut('fast',endEffect);
			}
		},800);
	});
	
	$("#menu a").mouseout(endEffect);

	var defaultSelected=function(){
		$defaultMenu=(typeof($defaultMenu)=="string")?$defaultMenu:"";
		runDefault=true;
		if($.trim($defaultMenu)!="")
			$("#"+$defaultMenu+">a").addClass("default-selected");

		$("a.default-selected").each(function(){
			var t=[];
			var o=$(this);
			for(;o.attr("id")!="menu";){
				if(o.attr("tagName")=="LI")
					t.push(o);
				o=o.parent();
			}
			$.each(t,function(i,o){
				o.mouseover();
			});
		});
		runDefault=false;
	};
	var defaultSelectedOut=function(li){
		$defaultMenu=(typeof($defaultMenu)=="string")?$defaultMenu:"";
		if($.trim($defaultMenu)!=""){
			if(li.attr("id")==$defaultMenu) return;
			if($("#"+$defaultMenu,li).length>0) return;
			var p=li;
			for(;p.attr("tagName")!="BODY";){
				if(p.attr("id")==$defaultMenu) return;
				p=p.parent();
			}
			//$("#"+$defaultMenu+">a").addClass("default-selected");
			if($("#"+$defaultMenu+">a.selected").length==0) return;
		
			$("#"+$defaultMenu+">a").each(function(){
			//$("a.default-selected").each(function(){
				var t=[];
				var o=$(this);
				for(;o.attr("id")!="menu";){
					if(o.attr("tagName")=="LI")
						t.push(o);
					o=o.parent();
				}
				$.each(t,function(i,o){
					o.mouseout();
				});
			});
		}
	};
	defaultSelected();
});