(function($) {
	$('#global_navigation li ul').each(function(i, submenu) {
		var hideTimeout;
		submenu = $(submenu), submenuContents = submenu.children();
		submenu.css({
			visibility: 'hidden',
			display: 'block'
		}).
			parents('li').
			bind('mouseenter', function(e) {
				if(hideTimeout) {
					clearTimeout(hideTimeout);
				}
				submenu.css({
					display: 'block',
					opacity: 0.99999
				});
				submenu.parents('.submenu').show();
			}).
			bind('mouseleave', function(e) {
				if(submenuContents.index($(e.target)) == -1) {
					hideTimeout = setTimeout(function() {
						submenu.hide();
						submenu.parents('.submenu').hide();
					}, 200);
				}
			});

		var maxWidth = 0, widestLink = null;
		submenu.find('a').each(function(i, link) {
			if(link.offsetWidth > maxWidth) {
				maxWidth = link.offsetWidth;
				widestLink = link;
			}
		});
		if(widestLink !== null) {
			maxWidth += $(widestLink).parents('div')[0].offsetLeft;
		}

		if($('#ltIE8').length > 0) {
			submenu.css({
				width: maxWidth + 'px',
				display: 'none',
				visibility: 'visible'
			});
		} else {
			submenu.wrap('<div class="submenu" />');
			submenu.parents('.submenu').css({
				position: 'absolute',
				width: maxWidth + 'px',
				height: 'auto',
				margin: 0,
				padding: '0 0 10px 0'
			});

			submenu.css({
				display: 'none',
				visibility: 'visible'
			});

			if($('#isIE8').length > 0) {
				submenu.find('li').css({
					marginLeft: '-1px'
				});
			}
		}
	});
})(jQuery);