/*
 * Drop down navigation
 * 
 * Requires jQuery 1.2.1 
 * 
 * Author: Colin McCrory
 */

hide_menus = function() {
	//$("#top_nav li").contents().filter("ul").hide();
	$(".openMenu").removeClass("openMenu")
	$(".submenu").hide();
} 
hide_sub_menus = function() {
	//$("#top_nav li").contents().filter("ul").hide();
	$(".openSubMenu").removeClass("openSubMenu")
	$(".subsubmenu").hide();
} 

//timeouts stop menus from prematurely closing
menu_timeouts = [];
clear_timeouts = function() {
	var menu_timeouts_copy = menu_timeouts;
	menu_timeouts = [];
	for (var i=0; i < menu_timeouts_copy.length; i++) {
		window.clearTimeout(menu_timeouts_copy[i]);
	};
}


$(document).ready(function() {
	//topnav on mouse over
	$("#top_nav li.top").mouseover (function(){
		clear_timeouts()
		$(".openMenu").removeClass("openMenu")
		$(this).addClass("openMenu");
		$(this).children().addClass("openMenu");
		$(".submenu").not(".openMenu").hide();
		$(".subsubmenu").hide();
		$(this).children(".submenu").show();
		return false;
    })
	
	//topnav on mouseout
	$("#top_nav li").mouseout (function(){
		menu_timeouts.push(window.setTimeout(hide_menus,400));
		return false;
    })
	
	/*
	//subnav li on hover
	$("#top_nav ul.submenu li").mouseover(clear_timeouts());
	*/
	
	//subnav with subsubnav on mouseover
	$("#top_nav ul.submenu li.hassubsub").mouseover (function(){
		clear_timeouts()
		$(".openSubMenu").removeClass("openSubMenu")
		$(this).addClass("openSubMenu");
		$(this).children().addClass("openSubMenu");
		$(".subsubmenu").not(".openSubMenu").hide();
		$(this).children(".subsubmenu").show();
		return false;
	})
		
	//subnav with subsubnav on mouseout
	$("#top_nav ul.submenu li.hassubsub").mouseout (function(){
		menu_timeouts.push(window.setTimeout(hide_sub_menus,400));
		return false;
    })
	
	/*
	//subsubnav li on hover
	$("#top_nav ul.subsubmenu li.hassubsub").mouseover(clear_timeouts());
    */
	
	//subsubnav mouseout to avoid subsubnav still showing after subnav shuts
	$("#top_nav ul.submenu li.hassubsub .subsubnav").mouseout (function(){
		menu_timeouts.push(window.setTimeout(hide_sub_menus,400));
		return false;
    })
});

