// JavaScript Document

;(function($){
		   $.fn.jMainMenu=function(options){
			   var settings={
				   actionType:"click",
				   defaultSelectedMenu:"",
				   defaultSelectedSubMenu:"",
				   defaultAlign:"left"//"left,right,center,nomal"
				   };
			   var op=$.extend(settings,options);
			   var $this=$(this);
			   var $submenu=$(this).siblings(".sub_menus");
			   var oldobj=null;
			   var fixmarginleft=7;
			   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=$submenu.find("ul[name='"+$(obj).attr("name")+"']:first");
				   var marginleft=0;
				   switch (op.defaultAlign){
					   case "left":
					   		marginleft=0;
					   		break;
					   case "right"://没有算好
					   		marginleft=$submenu.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>$submenu.width()?$submenu.width()-$currentsubmenu.width()-fixmarginleft:marginleft;//距离左边的值加子菜单的长度大于子菜单的容器的长度。距右对齐。
							break;
					   default :
					   		marginleft=$(obj).position().left;//$("#msg").html(marginleft);
							break;					   
					   }
				   marginleft += $(obj).position().left
				   $currentsubmenu.parent().css({"left":(marginleft+fixmarginleft)+"px"});
				   //$currentsubmenu.css({"margin-left":(marginleft+fixmarginleft)+"px"});
				   }
			   var showSubMenu=function(obj){
				   var $showsubmenu=$submenu.find("ul[name='"+$(obj).attr("name")+"']:first").show();
				   $showsubmenu.parent().show();
				   $showsubmenu.parent().css({height:$showsubmenu.height()+"px"})
				   if ($(obj).attr("name")==op.defaultSelectedMenu){//如果显示的主菜单是默认显示菜单，就把子菜单的默认项高亮起来。
					   $showsubmenu.find("li[name='"+op.defaultSelectedSubMenu+"']:first").addClass("current");
					   }
				   }
			   var hiddenSubMenu=function(obj){
				   $submenu.find("ul[name='"+$(obj).attr("name")+"']:first").parent().hide().find("li.current").removeClass("current");
				   }
			   var showHiddenSubMenu=function(obj){
				   $submenu.find("ul:visible").hide().find("li.current").removeClass("current");//隐藏子菜单并把高亮样式都去光
				   var $showhiddensubmenu=$submenu.find("ul[name='"+$(obj).attr("name")+"']:first").show()
				   $showhiddensubmenu.parent().show();
				   $showhiddensubmenu.parent().css({height:$showhiddensubmenu.height()+"px"})
				   }
			   var setSelectedSubMenuItem=function(obj,submenuitemname){
				   var $currentsubmenuitems=$submenu.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(){//设置默认显示的子菜单
				   //设置默认子菜单
				   $submenu.find("ul").each(function(){
													 if ($(this).attr("name")==op.defaultSelectedMenu){
														 $(this).show();
														 $(this).parent().show();
														 }
													 else{
														 $(this).parent().hide();
														 }
													 $(this).find("li.current").removeClass("current");
													 if ($(this).attr("name")==op.defaultSelectedMenu){//如果是默认显示的主菜单，就把下面默认显示的子菜单高亮
														 $(this).find("li[name='"+op.defaultSelectedSubMenu+"']").addClass("current");
														 }
													 })
				   }
			   var initMenu=function(){
				   $this.find("li").each(function(){
												  $.browser.msie ? $(this).css({"width":$(this).text().length*20+25+25-2-16+"px"}) : $(this).css({"width":$(this).text().length*20+25+25-2-16+"px"})
												  })
				   }
			   var initSubMenu=function(){
				   $submenu.find("ul").each(function(){
													 var $currentmenu=$this.find("li[name='"+$(this).attr("name")+"']")
													 var maxliwidth=0;
													 $(this).wrap("<div class=\"sub_menu_bg\"></div>");//子菜单外包裹背景层
													 //绑定子菜单项鼠标事件
													 $(this).find("li").each(function(){
																					  var textlength;
																					  
																					  if ($.browser.msie){
																						  //$(this).css({"width":$(this).text().length*13+27+25-2-16+"px"});
																						  textlength=$(this).text().length*13+27+25-2-16;
																						  }
																					  else{
																						  //$(this).css({"width":$(this).text().length*13+27+25-2-16+"px"});
																						  textlength=$(this).text().length*13+27+25-2-16;
																						  }
																					  maxliwidth=textlength>maxliwidth?textlength:maxliwidth
																					  $(this).hover(
																									function(){
																										setSelectedSubMenuItem($currentmenu,$(this).attr("name"));
																										},
																									function(){
																										$(this).removeClass("current");
																										}
																									)
																					  })
													 maxliwidth=maxliwidth+18;
													 $(this).find("li").css({"width":maxliwidth+"px"});
													 //maxliwidth=$.browser.msie?maxliwidth+2:maxliwidth;
													 $(this).parent().css({width:maxliwidth+"px"})//设置背景的宽度
													 //console.log($(this).parent().width())
													 setSubMenuPostion($currentmenu);//设置初始显示的子菜单的位置
													 })
				   
				   }
			   
			   var init=function(){
				   //initMenu();
				   initSubMenu();
				   setDefaultMenu();
				   setDefaultSubMenu();	
				   $("#iFrame1").load(function(){
											   $(this).contents().find("#main_container").mousemove(function(){
																											 setDefaultMenu();setDefaultSubMenu();isDefaultMenu=true;
																											 })
											   })			   
				   $(document).mousemove(function(event){//设置鼠标离开后显示默认菜单; 用event来做，检测鼠标移开后的对象是不是MENU，不是就显示默认菜单，是的话就不做这个动作
												  var $target = $(event.target);
												  //console.log($target.parents("."+$this.parent().attr("class")).length+" - "+$target.attr("id")+" - "+$target.attr("class")+" - "+$target.html())
												  if ($target.parents("."+$this.parent().attr("class")).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 );