
function initMenus (){  
  
    //$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)  
  
    $("div.topnav a.dropmenu").click(
    	//handler into hover
    	function() {   
	        //Following events are applied to the subnav itself (moving subnav up and down)  
	        $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click  
        }
    );  

    $("div.topnav a.dropmenu").mouseleave(
        	//handler into hover
        	function(e) {   
        		//alert ('topnav leave pageX: ' + e.pageX + ' offsetLeft: ' + this.offsetLeft + ' pageY: ' + e.pageY + ' offsetTop: ' + this.offsetTop );
        		var submenu = $(this).parent().find("ul.subnav");
        		if (submenu) {
        			var minXinMenu = $(submenu).parent().offset().left;
        			var maxXinMenu = minXinMenu + $(submenu).parent().find('a').width();
        			var minYinMenu = $(submenu).parent().offset().top;
        			var maxYinMenu = minYinMenu + $(submenu).parent().height() + $(submenu).height();
        			if (e.pageX > minXinMenu && e.pageX < maxXinMenu && e.pageY > minYinMenu && e.pageY < maxYinMenu) {
        				//alert ('mouseleave into menu ' + minXinMenu + ' ' + maxXinMenu + ' ' + minYinMenu + ' ' + maxYinMenu + ' ' + e.pageX + ' ' + e.pageY);
        			}
        			else {
        				//alert ('mouseleave not in menu ' + minXinMenu + ' ' + maxXinMenu + ' ' + minYinMenu + ' ' + maxYinMenu + ' ' + e.pageX + ' ' + e.pageY);
                		$(submenu).slideUp('slow');
        			}
        		}
            }
        );  

    $("div.topnav ul.subnav").mouseleave(
            function (e) {
            	$(this).slideUp('slow');
            }
        );  

};  
