jQuery.fn.scriptFocus = function() {
	return this.find('li').each(function() {
		
		// cover mouseovers in IE
		if (jQuery.browser.msie) {
			jQuery(this).hover(
				function() { jQuery(this).addClass('scriptfocus') },
				function() { jQuery(this).removeClass('scriptfocus') }
				);
			}
		
		// for keyboard-activated menus in all browsers
		var menu = this;
		jQuery(this).find('a').each(function() {
			var menuTimer = null;
			
			jQuery(this).focus(onMenuFocus).blur(onMenuBlur);
			
			function onMenuFocus() {
				if(menuTimer !== null) clearTimeout(menuTimer);
				menuTimer = null;
				menuTimer = setTimeout(function() { menuTimer = null; jQuery(menu).addClass('scriptfocus'); }, 0);
				}
			
			function onMenuBlur() {
				if(menuTimer !== null) clearTimeout(menuTimer);
				menuTimer = null;
				menuTimer = setTimeout(function() { menuTimer = null; jQuery(menu).removeClass('scriptfocus'); }, 0);
				}
			
			});
		});
	};
