﻿//该插件要求HTＭＬ格式
//主菜单基本格式：<dl><dt uid="">一级菜单</dt><dd uid="">二级菜单数据</dd><dd>二级菜单数据</dd></dl>
//一二级菜单数据用uid关联
//主菜单中的二级菜单（dd）只供JS读取，全设置为display:none
//从菜单（二级菜单）基本格式<div class="sub_category"><ul><li>二级菜单</li><li>二级菜单</li></ul></div>

$(function(){
    $.fn.extend({
	    DXDSubMenu:function(){
		    var dxd_jq_main=$(this);
			var dxd_jq_sub=$(".sub_category");
			
			//检查函数
			this.dxd_fun_check=function(){
				if(dxd_jq_main.children("dt").size()<=0) return false;
				if(dxd_jq_sub.size()<=0) return false;
				return true;
			}
			//初始化函数
			this.dxd_fun_init=function(){
				if(dxd_jq_sub.children("div").size()<=0) dxd_jq_sub.append("<div></div>");
				dxd_jq_sub.children("div").empty();
				dxd_jq_sub.css({"position":"absolute","backgroundColor":"#ffffff","zIndex":"999"}).hide();
				dxd_jq_main.children("dd").hide();
			}
			//设置菜单功能
			this.dxd_fun_menu=function(){
			    dxd_jq_main.hover(
				    function(e){},
					function(e){
					    dxd_jq_sub.hide();
					}
				);    //外框鼠标离去
				dxd_jq_main.children("dt").hover(
				    function(e){
						$("body").data("dt_index",dxd_jq_main.children("dt").index(this));
						$(this).css({
							"backgroundColor":"#a92121",
							"backgroundImage":"url()"
						});
						$(this).children("a").css("color","white");
						
						dxd_jq_sub.hide();
					    var dxd_uid=$(this).attr("uid");
						if(!dxd_uid) return;
						dxd_jq_sub.find("a").unbind();
						dxd_jq_sub.children("div").empty();
						$(this).siblings("dd[@uid="+dxd_uid+"]").each(function(i){
							dxd_jq_sub.children("div").append($(this).html());
						});
						
						dxd_jq_sub.find("a").hover(
						    function(e){
							    with(dxd_jq_sub.find("div[@rel=memo]"))
							    {
								    children("strong").html($(this).attr("cat_name"));
								    children("p").html($(this).attr("memo"));
							    }
							},
							function(e){}
						);
						var dxd_dt_pos=$(this).position();
						var dxd_ul_pos=dxd_jq_main.position();
						var pos_left=dxd_dt_pos.left;
						
						if(pos_left<0) pos_left=10;    //如果左边超出屏幕范围，则调为0
						if(pos_left+dxd_jq_sub.width()>=screen.width-14)    //如果右边超出了屏幕范围
						{
							pos_left=dxd_dt_pos.left+$(this).width()-dxd_jq_sub.width()-23;
						}
						dxd_jq_sub.css({"top":dxd_dt_pos.top+28+"px","left":pos_left+"px"});
						if(dxd_jq_sub.children("div").children().size()>0)
						{
							with(dxd_jq_sub.find("div[@rel=memo]"))
							{
								children("strong").html($(this).attr("cat_name"));
								children("p").html($(this).attr("memo"));
							}
							dxd_jq_sub.show();
						}
					},
					function(e){
						$(this).css({
							"backgroundColor":"",
							"backgroundImage":"url(images/ont/nav_hsh.gif)"
						});
						$(this).children("a").css("color","#771516");
					}
				);    //一级菜单项鼠标覆盖
				dxd_jq_sub.hover(
				    function(e){
						var dt_index=$("body").data("dt_index");
						dxd_jq_main.children("dt").eq(dt_index).css({
							"backgroundColor":"#a92121",
							"backgroundImage":"url()"
						});
						dxd_jq_main.children("dt").eq(dt_index).children("a").css("color","white");
					    $(this).show();
					},
					function(e){
						var dt_index=$("body").data("dt_index");
						dxd_jq_main.children("dt").eq(dt_index).css({
							"backgroundColor":"",
							"backgroundImage":"url(images/ont/nav_hsh.gif)"
						});
						dxd_jq_main.children("dt").eq(dt_index).children("a").css("color","#771516");
					    dxd_jq_sub.hide();
					}
				);    //二级菜单鼠标移入/移出
			}
			
			if(!this.dxd_fun_check()) return;    //检查过不了
			this.dxd_fun_init();
			this.dxd_fun_menu();
		}
	});  
});