var slideDownTime = 150;
var mouseoveredParentCategoryId;

var timerResetNavigation = false;
function resetNavigation(){
	if(timerResetNavigation){
		jQuery(".category-child").hide();
		jQuery("#gamecategory").hide();
	}
}

var timerHideGameCategory = false;
function hideGameCategory(){
	if(timerHideGameCategory){
		jQuery("#gamecategory").hide();
	}
}

function checkParentCategoryView(){
	jQuery("#navigation .category-parent").each(function(){
		if(jQuery(this).attr("id") != mouseoveredParentCategoryId){
			jQuery(this).find(".category-child").hide();
		}
	});
}

jQuery(function() {
	jQuery("#navigation .category-parent").find("a:first-child").bind("mouseover", function(){
		clearTimeout(timerResetNavigation); timerResetNavigation = false;
		mouseoveredParentCategoryId = jQuery(this).parent().attr("id");
		if(jQuery(this).parent().find(".category-child").css("display") == "none"){	//自分の子が見えてる場合はリセットはしない
			jQuery(".category-child").hide();
		}

		var _targetId = jQuery(this).parent().attr("id");
		if(_targetId){
			jQuery("#navigation .category-parent").each(function(){
				if(jQuery(this).attr("id") == _targetId){
					jQuery(this).find(".category-child").slideDown(slideDownTime, function(){
						checkParentCategoryView();
					});
				}
				else{
					jQuery(this).find(".category-child").hide();
				}
			});
		}

		return false;
	});

	jQuery("#anc-gamecategory").bind("mouseover",function(){
		clearTimeout(timerResetNavigation); timerResetNavigation = false;
		jQuery("#gamecategory").slideDown(slideDownTime);
	});
	jQuery("#anc-gamecategory").bind("mouseout",function(){
		clearTimeout(timerHideGameCategory); timerHideGameCategory = false;
		timerHideGameCategory = setTimeout(function(){
			jQuery("#gamecategory").hide();
		},100);
	});
	jQuery("#gamecategory a").bind("mouseover",function(){
		clearTimeout(timerHideGameCategory); timerHideGameCategory = false;
		clearTimeout(timerResetNavigation); timerResetNavigation = false;
	});
	jQuery(".category-child a").bind("mouseover",function(){
		clearTimeout(timerResetNavigation); timerResetNavigation = false;
	});
	jQuery(document).bind("mouseover",function(){
		timerResetNavigation = setTimeout(function(){
			resetNavigation();
		}, 100);
		return false;
	});

	jQuery(".category-parent img:first-child").hover(function(){
		if(!jQuery(this).parent().parent().hasClass("active")){
			jQuery(this).attr('src', jQuery(this).attr("src").replace(".gif", "_hover.gif"));
		}
	},function(){
		if(!jQuery(this).parent().parent().hasClass("active")){
			jQuery(this).attr('src', jQuery(this).attr("src").replace("_hover.gif", ".gif"));
		}
	});

	jQuery("#navigation .category-parent").each(function(){
		if(jQuery(this).hasClass("active")){
			var img = jQuery(this).find("img:first-child");
			img.attr("src", img.attr("src").replace(".gif", "_hover.gif"));
		}
	});

	jQuery("#navigation").css({"visibility":"visible"});
});
