(function($) {
	$.lyjMenuSet = function(p) {
		return $.extend({
			subMenuMark: " &raquo;",
			hoverOffzIdx: 100
		}, p);
	};

	$.fn.extend({
		lyjMenu: function(p) {
			var selctr = $(this).selector;
			//alert(selctr);

			p = $.lyjMenuSet(p);

			$(this).parent().prepend('<span class="smenuItemBk"></span>');


			// 做子菜单标记
			$(this).find('li ul li:has(ul)').find("a:first").append(p.subMenuMark);

			// 取得最大宽度
			$(this).find('li li').each(
				function() {
					var mw = $(this).parent().attr('maxWidth');
					var w = $(this).width();
					if (mw == null || mw < w)
						$(this).parent().attr('maxWidth', w);
				}
			);
			// 设置最大宽度
			$(this).find('li li').each(
				function() {
					var mw = $(this).parent().attr('maxWidth');
					mw = parseInt(mw, 10);
					if (mw != null) {
						$(this).width(mw);
					}
				}
			);
			// 子菜单容器的宽度
			$(this).find('ul').each(
				function() {
					var w = $(this).find('>li:first').attr('offsetWidth');
					$(this).width(w);
				}
			);

			/* 禁用链接 */
			//$(this).find('li a').attr('href','javascript:void(0);');
			//$(this).find('li a').attr('target','');

			// 隐藏子菜单 防止页面过宽
			$(this).find('ul').css('visibility', 'hidden').hide();

			// 防止被遮盖
			var minzIdx = $(this).css('z-index');
			var maxzIdx = minzIdx + p.hoverOffzIdx;
			$(this).hover(
				function() {
					$(this).css('z-index', maxzIdx);
				},
				function() {
					$(this).css('z-index', minzIdx);
				}
			);

			// level == 2
			$(this).find('>li').hover(
				function() {
					$(this).addClass("hover").children('a').addClass("hover");
					// 激活
					//$(this).children('a').focus();

					// set bk =================================
					var p = $(this).offset();
					var w = $(this).width();
					var h = $(this).height();
					var p0 = $(this).parent().parent().children('.smenuItemBk').stop().offset();
					var l0 = p.left + Math.round((p.left - p0.left) / 5);

					$(this).parent().parent().children('.smenuItemBk')
						.css('top', p.top)
						.css('visibility', 'visible')
						.stop()
						.animate({ left: l0, width: w }, 'fast', 'swing')
						.animate({ left: p.left, width: w }, 200, 'swing');

					// 显示子菜单
					$('ul:first', this)
						.css('visibility', 'visible')
						.hide().slideDown('normal');
				},
				function() {
					$(this).removeClass("hover").children('a').removeClass("hover");
					$('ul:first', this).css('visibility', 'hidden').hide();
				}
			);

			// level >= 3
			$(this).find('li li').hover(
				function() {
					$(this).addClass("hover").children('a').addClass("hover");

					// for test
					/*
					var w0,w1,w2;
					w0 = $(this).parent().width();
					w1 = $(this).width();
					w2 = $(this).children('a').width();
					document.title = ''+w0+' '+w1+' '+w2;
					*/

					// 激活
					//$(this).children('a').focus();

					// 菜单项效果
					//$(this).hide().animate({width:'50%'},'normal','swing');

					var w = $('ul:first', this).attr('maxWidth')
					$('ul:first', this).width(0);
					$('ul:first', this)
						.css('visibility', 'visible')
						.stop().hide().animate({ width: w }, 'normal', 'swing');
				},
				function() {
					$(this).removeClass("hover").children('a').removeClass("hover");
					$('ul:first', this).css('visibility', 'hidden').hide();
				}
			);

			// 初始状态
			//$(this).find('li:first').hover();

			$(this).find('>li:first').each(function() {
				// set bk =================================
				var p = $(this).offset();
				var w = $(this).width();
				var h = $(this).height();
				var p0 = $(this).parent().parent().children('.smenuItemBk').stop().offset();
				var l0 = p.left + Math.round((p.left - p0.left) / 5);

				$(this).parent().parent().children('.smenuItemBk')
						.css('top', p.top)
						.css('visibility', 'visible')
						.stop()
						.animate({ left: l0, width: w }, 'fast', 'swing')
						.animate({ left: p.left, width: w }, 200, 'swing');
			});
		}
	});
})(jQuery);

