// JavaScript Document

;(function($){
		   $.fn.jMainMenu=function(options){
			   var settings={
				   actionType:"click",
				   defaultSelectedMenu:"",
				   defaultSelectedSubMenu:"",
				   defaultAlign:"center"//"left,right,center,nomal"
				   };
			   var op=$.extend(settings,options);
			   var $this=$(this);
			   var $submune=$(this).siblings("#sub_menu");
			   var oldobj=null;
			   var fixmarginleft=20;
			   var menuclass="main_menu";
			   var isDefaultMenu=true;
			   
			   var highlightMenu=function(obj){
				   $(obj).addClass($(obj).attr("name"));
				   var $previmg=$(obj).prev().css({"width":"2px"}).find("img");
				   var $nextimg=$(obj).next().css({"width":"2px"}).find("img");
				   $previmg.css({"visibility":"hidden"});
				   $nextimg.css({"visibility":"hidden"});
				   }
			   var unhighlightMenu=function(obj){
				   $(obj).removeClass($(obj).attr("name"));
				   var $previmg=$(obj).prev().css({"width":"2px"}).find("img");
				   var $nextimg=$(obj).next().css({"width":"2px"}).find("img");
				   $previmg.css({"visibility":"visible"});
				   $nextimg.css({"visibility":"visible"});
				   }
			   var setSubMenuPostion=function(obj){
				   var $currentsubmenu=$submune.find("ul[name='"+$(obj).attr("name")+"']:first");
				   var marginleft;
				   switch (op.defaultAlign){
					   case "left":
					   		marginleft=0;
					   		break;
					   case "right"://没有算好
					   		marginleft=$submune.width()-$currentsubmenu.width()-fixmarginleft;
							break;
					   case "center":
					   		marginleft=$(obj).position().left-($currentsubmenu.width()/2-$(obj).width()/2);
							marginleft=marginleft<0?0:marginleft;//第一种情况，算下来距离左边的值是负的。那对顶对齐
							marginleft=marginleft>$(obj).position().left?$(obj).position().left:marginleft;
							marginleft=marginleft+$currentsubmenu.width()+fixmarginleft>$submune.width()?$submune.width()-$currentsubmenu.width()-fixmarginleft:marginleft;//距离左边的值加子菜单的长度大于子菜单的容器的长度。距右对齐。
							break;
					   default :
					   		marginleft=$(obj).position().left;//$("#msg").html(marginleft);
							break;					   
					   }
				   $currentsubmenu.css({"margin-left":(marginleft+fixmarginleft)+"px"});
				   }
			   var showSubMenu=function(obj){
				   var $showsubmenu=$submune.find("ul[name='"+$(obj).attr("name")+"']:first").show();
				   if ($(obj).attr("name")==op.defaultSelectedMenu){//如果显示的主菜单是默认显示菜单，就把子菜单的默认项高亮起来。
					   $showsubmenu.find("li[name='"+op.defaultSelectedSubMenu+"']:first").addClass("current");
					   }
				   }
			   var hiddenSubMenu=function(obj){
				   $submune.find("ul[name='"+$(obj).attr("name")+"']:first").hide().find("li.current").removeClass("current");
				   }
			   var showHiddenSubMenu=function(obj){
				   $submune.find("ul:visible").hide().find("li.current").removeClass("current");//隐藏子菜单并把高亮样式都去光
				   $submune.find("ul[name='"+$(obj).attr("name")+"']:first").show();
				   }
			   var setSelectedSubMenuItem=function(obj,submenuitemname){
				   var $currentsubmenuitems=$submune.find("ul[name='"+$(obj).attr("name")+"']").find("li")
				   $currentsubmenuitems.each(function(){
													  if ($(this).hasClass("current")){
														  $(this).removeClass("current")
														  }
													  if (submenuitemname){
														  if ($(this).attr("name")==submenuitemname){
															  $(this).addClass("current")
															  }														  
														  }
													  else{
														  if ($(this).attr("name")==op.defaultSelectedSubMenu){
															  $(this).addClass("current")
															  }														  
														  }
													  })
				   }
			   var hiddenDefaultMenu=function(){//隐藏默认显示的主菜单
				   unhighlightMenu($this.find("li[name='"+op.defaultSelectedMenu+"']"))
				   }
			   var hiddenDefaultSubMenu=function(){//隐藏默认显示的子菜单
				   hiddenSubMenu($this.find("li[name='"+op.defaultSelectedMenu+"']"))
				   }
			   var showDefaultMenu=function(){//显示默认显示的主菜单
				   highlightMenu($this.find("li[name='"+op.defaultSelectedMenu+"']"))
				   }
			   var showDefaultSubMenu=function(){//显示默认显示的子菜单
				   showSubMenu($this.find("li[name='"+op.defaultSelectedMenu+"']"))
				   }				   
			   var setDefaultMenu=function(){//设置默认显示的主菜单
				   //设置默认主菜单
				   $this.find("li."+menuclass).each(function(i){
												  var $previmg=$(this).prev().find("img");
												  var $nextimg=$(this).next().find("img");
												  $(this).removeClass($(this).attr("name"));
												  $previmg.css({"visibility":"visible"});
												  $nextimg.css({"visibility":"visible"});
												  })
				   oldobj=$this.find("li[name='"+op.defaultSelectedMenu+"']:first");
				   highlightMenu(oldobj);
				   }
			   var setDefaultSubMenu=function(){//设置默认显示的子菜单
				   //设置默认子菜单
				   $submune.find("ul").each(function(){
													 $(this).attr("name")==op.defaultSelectedMenu?$(this).show():$(this).hide();
													 $(this).find("li.current").removeClass("current");
													 if ($(this).attr("name")==op.defaultSelectedMenu){//如果是默认显示的主菜单，就把下面默认显示的子菜单高亮
														 $(this).find("li[name='"+op.defaultSelectedSubMenu+"']").addClass("current");
														 }
													 })
				   }
			   var initSubMenu=function(){
				   

				   
				   $submune.find("ul").each(function(){
													 var $currentmenu=$this.find("li[name='"+$(this).attr("name")+"']")
													 //绑定子菜单项鼠标事件
													 $(this).find("li").each(function(){
																					  //alert($(this).text().length)
																					  if ($.browser.msie){
																						  $(this).css({"width":$(this).text().length*13+27+25-2-16+"px"});
																						  }
																					  else{
																						  $(this).css({"width":$(this).text().length*13+27+25-2-16+"px"});
																						  }
																					  
																					  $(this).hover(
																									function(){
																										setSelectedSubMenuItem($currentmenu,$(this).attr("name"));
																										},
																									function(){
																										$(this).removeClass("current");
																										}
																									)
																					  })
													 setSubMenuPostion($currentmenu);//设置初始显示的子菜单的位置
													 })
				   
				   }
			   
			   var init=function(){
				   initSubMenu();
				   setDefaultMenu();
				   setDefaultSubMenu();
				   $(document).mousemove(function(event){//设置鼠标离开后显示默认菜单; 用event来做，检测鼠标移开后的对象是不是MENU，不是就显示默认菜单，是的话就不做这个动作
												  var $target = $(event.target);
												  if ($target.parents("#"+$this.parent().attr("id")).length==0){
													  if (isDefaultMenu==false){
														  	setDefaultMenu();setDefaultSubMenu();isDefaultMenu=true;
														  }
													  }
												  //$("#mm").html(".mainmenu:"+$target.parents(".mainmenu").length+" #sub_menu:"+$target.parents("#sub_menu").length+" #menu:"+$target.parents("#menu").length)
												  })
				   }		   
			   init();


			   return $(this).find("."+menuclass).each(function(){
															   
															   //设置鼠标离开后显示默认菜单;
//															   $(this).parent().mouseout(function(){
//																						 
//																						 //目标的父级的父级ID是不是等于$this的父级ID
//																						 if ($(this).parent().parent().attr("id")==$this.parent().attr("id")){
//																							 setDefaultMenuAndSubMenu();
//																							 }
//																						 $("#mm").html($(this).parent().parent().attr("id")==$this.parent().attr("id"));
//																						 })
//															   $(this).hover(
//																			 function(){
//																				 highlightMenu(this);showSubMenu(this);hiddenDefaultMenu();hiddenDefaultSubMenu()
//																				 },
//																			 function(){
//																				 unhighlightMenu(this);hiddenSubMenu(this);showDefaultMenu();showDefaultSubMenu()
//																				 }
//																			 )
															   
															   
															   $(this).bind(op.actionType,function(){
																								   if (oldobj==null){
																									   oldobj=this;
																									   }
																								   else{
																									   //alert(oldobj.attr("name")!=$(this).attr("name"))
																									   //$("#mm").html(oldobj.attr("name")+"!="+op.defaultSelectedMenu)
//																									   if (oldobj.attr("name")!=op.defaultSelectedMenu){
																										   unhighlightMenu(oldobj);
																										   hiddenSubMenu(oldobj);
//																										   }
																									   oldobj=this;
																									   }
																								   highlightMenu(this);
																								   showSubMenu(this);
																								   isDefaultMenu=false;
																								   })

															   })
			   
			   
			   
			   
			   
			   }
		   
		   
		   
		   
		   })( jQuery );
