// some changes from Core version for UBMi - secondary menu appears on hovering over primary items
(function($) {
	var primaryNavItem = $('#mainnav_sleeve>ul>li');
	var primaryNavAnchor = $('#mainnav_sleeve>ul>li>a');
	var secondaryNavItem = $('#mainnav_sleeve>ul>li>div>ul>li');
	var secondaryNavAnchor = $('#mainnav_sleeve>ul>li>div>ul>li>a');
	var secondaryNavDiv = $('#mainnav_sleeve>ul>li>div');
	
	// add class of DROPDOWN to 2nd level nav item if it contains dropdown nav
	$(secondaryNavItem).each(function(){
		if($(this).children('div').length > 0) {
			$(this).addClass('dropdown');
		}
	});

	$.fn.SetupMenu = function() {
		$(primaryNavAnchor).bind('mouseover', {focused:false}, showMenu).bind('focus', {focused:true}, showMenu);
		$(primaryNavItem).bind('mouseleave', {focused:false}, hideMenu);
		$(secondaryNavAnchor).bind('mouseover', {focused:false}, showMenu).bind('focus', {focused:true}, showMenu);
		$(secondaryNavItem).bind('mouseleave', {focused:false}, hideMenu);
		$(secondaryNavDiv).bind('mouseover', {focused:false}, showMenu);	// so that we keep 'over' state on main tab
	}

	function showMenu(event) {
		// add class of "over" to any LI except those with class of CURRENT (which are styled differently)
		$(this).parents('li[class!=current]').addClass('over');

		// stop dropdown menu going off screen and bring into focus
		if($(this.parentNode).hasClass('dropdown')) {	// class of DROPDOWN means we're just targeting secondary nav items
			if ($.browser.msie && $.browser.version < 7) $(this.parentNode).children('div').bgiframe();
			
			$(this.parentNode).children('div').css({left:'auto', zIndex:'100'});
			
			var wrapperWidth = $('#wrapper').get(0).offsetWidth;
			var wrapperOffset = $('#wrapper').offset();
			var dropdownWidth = $(this.parentNode).children('div').get(0).offsetWidth;
			var dropdownOffset = $(this.parentNode).children('div').offset();

			// move drop down menu if running off of screen
			if((dropdownWidth + dropdownOffset.left) > (wrapperOffset.left + wrapperWidth)) {
				$(this.parentNode).children('div').css({marginLeft:'-'+((dropdownWidth + dropdownOffset.left)-(wrapperOffset.left + (wrapperWidth-parseInt($('#wrapper').css('padding-left')))))+'px'});
			}
		}
	}

	function hideMenu(event) {
		if(!event.data.focused) {
			var menuItem = this;

			// if menu item has DROPDOWN, move dropdown off screen
			if($(menuItem).hasClass('dropdown')) {
				$(menuItem).children('div').css({left:'-9999px', zIndex:'99'});
			}
			// remove "over" class only if on top level menu item (otherwise get horrible flicker in IE on main tab as you move between secondary menu items)
			else if($(menuItem).parent().parent().parent().attr('id') == 'mainnav') {
				$(menuItem).removeClass('over');
			}
		}
	}
})(jQuery);
