/**
 * menuMatic 
 * @version 0.68.3 (beta)
 * @author Jason J. Jaeger | greengeckodesign.com
 * @copyright 2008 Jason John Jaeger
 * @license MIT-style License
 *			Permission is hereby granted, free of charge, to any person obtaining a copy
 *			of this software and associated documentation files (the "Software"), to deal
 *			in the Software without restriction, including without limitation the rights
 *			to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *			copies of the Software, and to permit persons to whom the Software is
 *			furnished to do so, subject to the following conditions:
 *	
 *			The above copyright notice and this permission notice shall be included in
 *			all copies or substantial portions of the Software.
 *	
 *			THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *			IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *			FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *			AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *			LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *			OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 *			THE SOFTWARE.
 **/	
var MenuMatic=new Class({
	Implements:Options,
	options:{id:"nav",
			subMenusContainerId:"subMenusContainer",
			effect:"slide & fade",
			duration:600,
			physics:Fx.Transitions.Pow.easeOut,hideDelay:1000,
			stretchMainMenu:false,
			matchWidthMode:false,
			orientation:"horizontal",
			direction:{x:"right",y:"up"},
			tweakInitial:{x:0,y:0},
			tweakSubsequent:{x:0,y:0},
			center:false,
			opacity:95,
			mmbFocusedClassName:null,
			mmbClassName:null,killDivider:null,
			fixHasLayoutBug:false,
			onHideAllSubMenusNow_begin:(function(){}),
			onHideAllSubMenusNow_complete:(function(){}),
			onInit_begin:(function(){}),
			onInit_complete:(function(){})},
			hideAllMenusTimeout:null,
			allSubMenus:[],
			subMenuZindex:1,
			initialize:function(B){
					this.setOptions(B);
					this.options.onInit_begin();
					if(this.options.opacity>99)
					{this.options.opacity=99.9}
					this.options.opacity=this.options.opacity/100;
					Element.implement({getId:function(){
						if(!this.id)
						{
							var E=this.get("tag")+"-"+$time();
							while($(E)){
								E=this.get("tag")+"-"+$time()
								}
								this.id=E
						}
						return this.id
					}});
					this.options.direction.x=this.options.direction.x.toLowerCase();
					this.options.direction.y=this.options.direction.y.toLowerCase();
					if(this.options.direction.x==="right")
					{
						this.options.direction.xInverse="left"
					}else{
						if(this.options.direction.x==="left")	
						{
							this.options.direction.xInverse="right"
						}
					}
					if(this.options.direction.y==="up"){
						this.options.direction.yInverse="down"
					}else{
						if(this.options.direction.y==="down")
						{
							this.options.direction.yInverse="up"
						}
					}
					var A=$(this.options.id).getElements("a");
					A.each(function(F,E){
						F.store("parentLinks",F.getParent().getParents("li").getFirst("a"));
						F.store("parentLinks",F.retrieve("parentLinks").erase(F.retrieve("parentLinks").getFirst()));
						F.store("childMenu",F.getNext("ul")||F.getNext("ol"));
						theSubMenuType="subsequent";
						if($(F.getParent("ul")||F.getParent("ol")).id===this.options.id)
							{
								theSubMenuType="initial"
							}
						F.store("subMenuType",theSubMenuType);
						if(theSubMenuType==="initial"&&$(F.getNext("ul")||F.getNext("ol")))
						{
							F.addClass("mainMenuParentBtn")
						}else{
							if($(F.getNext("ul")||F.getNext("ol"))){
								F.addClass("subMenuParentBtn")
							}
						}
					}.bind(this));
					var D=new Element("div",{id:this.options.subMenusContainerId}).inject($(document.body),"bottom");
					$(this.options.id).getElements("ul, ol").each(function(F,E){
						new Element("div",{"class":"smOW"}).inject(D).grab(F)}.bind(this));
						D.getElements("a").set("tabindex","-1");
						A.each(function(G,E){
							if(!G.retrieve("childMenu")){
								return 
							}
							G.store("childMenu",G.retrieve("childMenu").getParent("div"));
							this.allSubMenus.include(G.retrieve("childMenu"));
							G.store("parentSubMenus",G.retrieve("parentLinks").retrieve("childMenu"));
							var F=new MenuMaticSubMenu(this.options,this,G)}.bind(this));
							var C=$(this.options.id).getElements("a").filter(function(F,E){
								return !F.retrieve("childMenu")
							});
							C.each(function(F,E){
								F.addEvents({mouseenter:function(G){
									this.hideAllSubMenusNow();
									if(this.options.mmbClassName&&this.options.mmbFocusedClassName){
										$(F).retrieve("btnMorph",new Fx.Morph(F,
												{duration:(this.options.duration/2),
												transition:this.options.physics,
												link:"cancel"})).start(this.options.mmbFocusedClassName)}}.bind(this),
												focus:function(G){this.hideAllSubMenusNow();
												if(this.options.mmbClassName&&this.options.mmbFocusedClassName){
													$(F).retrieve("btnMorph",new Fx.Morph(F,{duration:(this.options.duration/2),
														transition:this.options.physics,link:"cancel"})).start(this.options.mmbFocusedClassName)}}.bind(this),mouseleave:function(G){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(F).retrieve("btnMorph",new Fx.Morph(F,{duration:(this.options.duration*5),transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName)}}.bind(this),blur:function(G){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(F).retrieve("btnMorph",new Fx.Morph(F,{duration:(this.options.duration*5),transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName)}}.bind(this),keydown:function(H){var G=new Event(H);if(H.key==="up"||H.key==="down"||H.key==="left"||H.key==="right"){H.stop()}if(H.key==="left"&&this.options.orientation==="horizontal"||H.key==="up"&&this.options.orientation==="vertical"){if(F.getParent("li").getPrevious("li")){F.getParent("li").getPrevious("li").getFirst("a").focus()}else{F.getParent("li").getParent().getLast("li").getFirst("a").focus()}}else{if(H.key==="right"&&this.options.orientation==="horizontal"||H.key==="down"&&this.options.orientation==="vertical"){if(F.getParent("li").getNext("li")){F.getParent("li").getNext("li").getFirst("a").focus()}else{F.getParent("li").getParent().getFirst("li").getFirst("a").focus()}}}}.bind(this)})},this);this.stretch();this.killDivider();this.center();this.fixHasLayoutBug();this.options.onInit_complete()},fixHasLayoutBug:function(){if(Browser.Engine.trident&&this.options.fixHasLayoutBug){$(this.options.id).getParents().setStyle("zoom",1);$(this.options.id).setStyle("zoom",1);$(this.options.id).getChildren().setStyle("zoom",1);$(this.options.subMenusContainerId).setStyle("zoom",1);$(this.options.subMenusContainerId).getChildren().setStyle("zoom",1)}},center:function(){if(!this.options.center){return }$(this.options.id).setStyles({left:"50%","margin-left":-($(this.options.id).getSize().x/2)})},stretch:function(){if(this.options.stretchMainMenu&&this.options.orientation==="horizontal"){var C=parseFloat($(this.options.id).getCoordinates().width);var D=0;var B=$(this.options.id).getElements("a");B.setStyles({"padding-left":0,"padding-right":0});B.each(function(F,E){D+=F.getSize().x}.bind(this));if(C<D){return }var A=(C-D)/B.length;B.each(function(F,E){F.setStyle("width",F.getSize().x+A)}.bind(this));B.getLast().setStyle("width",B.getLast().getSize().x-1)}},killDivider:function(){if(this.options.killDivider&&this.options.killDivider.toLowerCase()==="first"){$($(this.options.id).getElements("li")[0]).setStyles({background:"none"})}else{if(this.options.killDivider&&this.options.killDivider.toLowerCase()==="last"){$($(this.options.id).getElements("li").getLast()).setStyles({background:"none"})}}},hideAllSubMenusNow:function(){this.options.onHideAllSubMenusNow_begin();$clear(this.hideAllMenusTimeout);$$(this.allSubMenus).fireEvent("hide");this.options.onHideAllSubMenusNow_complete()}});var MenuMaticSubMenu=new Class({Implements:Options,Extends:MenuMatic,options:{onSubMenuInit_begin:(function(A){}),onSubMenuInit_complete:(function(A){}),onMatchWidth_begin:(function(A){}),onMatchWidth_complete:(function(A){}),onHideSubMenu_begin:(function(A){}),onHideSubMenu_complete:(function(A){}),onHideOtherSubMenus_begin:(function(A){}),onHideOtherSubMenus_complete:(function(A){}),onHideAllSubMenus_begin:(function(A){}),onHideAllSubMenus_complete:(function(A){}),onPositionSubMenu_begin:(function(A){}),onPositionSubMenu_complete:(function(A){}),onShowSubMenu_begin:(function(A){}),onShowSubMenu_complete:(function(A){})},root:null,btn:null,hidden:true,myEffect:null,initialize:function(B,A,C){this.setOptions(B);this.root=A;this.btn=C;this.childMenu=this.btn.retrieve("childMenu");this.subMenuType=this.btn.retrieve("subMenuType");this.childMenu=this.btn.retrieve("childMenu");this.parentSubMenus=$$(this.btn.retrieve("parentSubMenus"));this.parentLinks=$$(this.btn.retrieve("parentLinks"));this.parentSubMenu=$(this.parentSubMenus[0]);if(this.parentSubMenu){this.parentSubMenu=this.parentSubMenu.retrieve("class")}this.childMenu.store("class",this);this.btn.store("class",this);this.childMenu.store("status","closed");this.options.onSubMenuInit_begin(this);this.childMenu.addEvent("hide",function(){this.hideSubMenu()}.bind(this));this.childMenu.addEvent("show",function(){this.showSubMenu()}.bind(this));if(this.options.effect){this.myEffect=new Fx.Morph($(this.childMenu).getFirst(),{duration:this.options.duration,transition:this.options.physics,link:"cancel"})}if(this.options.effect==="slide"||this.options.effect==="slide & fade"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"){this.childMenu.getFirst().setStyle("margin-top","0")}else{this.childMenu.getFirst().setStyle("margin-left","0")}}else{if(this.options.effect==="fade"||this.options.effect==="slide & fade"){this.childMenu.getFirst().setStyle("opacity",0)}}if(this.options.effect!="fade"&&this.options.effect!="slide & fade"){this.childMenu.getFirst().setStyle("opacity",this.options.opacity)}var D=$(this.childMenu).getElements("a").filter(function(F,E){return !F.retrieve("childMenu")});D.each(function(F,E){$(F).addClass("subMenuBtn");F.addEvents({mouseenter:function(G){this.childMenu.fireEvent("show");this.cancellHideAllSubMenus();this.hideOtherSubMenus()}.bind(this),focus:function(G){this.childMenu.fireEvent("show");this.cancellHideAllSubMenus();this.hideOtherSubMenus()}.bind(this),mouseleave:function(G){this.cancellHideAllSubMenus();this.hideAllSubMenus()}.bind(this),blur:function(G){this.cancellHideAllSubMenus();this.hideAllSubMenus()}.bind(this),keydown:function(H){var G=new Event(H);if(H.key==="up"||H.key==="down"||H.key==="left"||H.key==="right"||H.key==="tab"){H.stop()}if(H.key==="up"){if(F.getParent("li").getPrevious("li")){F.getParent("li").getPrevious("li").getFirst("a").focus()}else{if(this.options.direction.y==="down"){this.btn.focus()}else{if(this.options.direction.y==="up"){F.getParent("li").getParent().getLast("li").getFirst("a").focus()}}}}else{if(H.key==="down"){if(F.getParent("li").getNext("li")){F.getParent("li").getNext("li").getFirst("a").focus()}else{if(this.options.direction.y==="down"){F.getParent("li").getParent().getFirst("li").getFirst("a").focus()}else{if(this.options.direction.y==="up"){this.btn.focus()}}}}else{if(H.key===this.options.direction.xInverse){this.btn.focus()}}}}.bind(this)})},this);$(this.btn).removeClass("subMenuBtn");
														if(this.subMenuType=="initial"){
														
															this.btn.addClass("mainParentBtn")
														}else{
															this.btn.addClass("subParentBtn")
														}
														$(this.btn).addEvents({mouseenter:function(E){this.cancellHideAllSubMenus();this.hideOtherSubMenus();this.showSubMenu();if(this.subMenuType==="initial"&&this.options.mmbClassName&&this.options.mmbFocusedClassName){$(this.btn).retrieve("btnMorph",new Fx.Morph($(this.btn),{duration:(this.options.duration/2),transition:this.options.physics,link:"cancel"})).start(this.options.mmbFocusedClassName)}}.bind(this),focus:function(E){this.cancellHideAllSubMenus();this.hideOtherSubMenus();this.showSubMenu();if(this.subMenuType==="initial"&&this.options.mmbClassName&&this.options.mmbFocusedClassName){$(this.btn).retrieve("btnMorph",new Fx.Morph($(this.btn),{duration:(this.options.duration/2),transition:this.options.physics,link:"cancel"})).start(this.options.mmbFocusedClassName)}}.bind(this),mouseleave:function(E){this.cancellHideAllSubMenus();this.hideAllSubMenus()}.bind(this),blur:function(E){this.cancellHideAllSubMenus();this.hideAllSubMenus()}.bind(this),keydown:function(E){E=new Event(E);if(E.key==="up"||E.key==="down"||E.key==="left"||E.key==="right"){E.stop()}if(!this.parentSubMenu){if(this.options.orientation==="horizontal"&&E.key===this.options.direction.y||this.options.orientation==="vertical"&&E.key===this.options.direction.x){if(this.options.direction.y==="down"){this.childMenu.getFirst().getFirst("li").getFirst("a").focus()}else{if(this.options.direction.y==="up"){this.childMenu.getFirst().getLast("li").getFirst("a").focus()}}}else{if(this.options.orientation==="horizontal"&&E.key==="left"||this.options.orientation==="vertical"&&E.key===this.options.direction.yInverse){if(this.btn.getParent().getPrevious()){this.btn.getParent().getPrevious().getFirst().focus()}else{this.btn.getParent().getParent().getLast().getFirst().focus()}}else{if(this.options.orientation==="horizontal"&&E.key==="right"||this.options.orientation==="vertical"&&E.key===this.options.direction.y){if(this.btn.getParent().getNext()){this.btn.getParent().getNext().getFirst().focus()}else{this.btn.getParent().getParent().getFirst().getFirst().focus()}}}}}else{if(E.key==="tab"){E.stop()}if(E.key==="up"){if(this.btn.getParent("li").getPrevious("li")){this.btn.getParent("li").getPrevious("li").getFirst("a").focus()}else{if(this.options.direction.y==="down"){this.parentSubMenu.btn.focus()}else{if(this.options.direction.y==="up"){this.btn.getParent("li").getParent().getLast("li").getFirst("a").focus()}}}}else{if(E.key==="down"){if(this.btn.getParent("li").getNext("li")){this.btn.getParent("li").getNext("li").getFirst("a").focus()}else{if(this.options.direction.y==="down"){this.btn.getParent("li").getParent().getFirst("li").getFirst("a").focus()}else{if(this.options.direction.y==="up"){this.parentSubMenu.btn.focus()}}}}else{if(E.key===this.options.direction.xInverse){this.parentSubMenu.btn.focus()}else{if(E.key===this.options.direction.x){if(this.options.direction.y==="down"){this.childMenu.getFirst().getFirst("li").getFirst("a").focus()}else{if(this.options.direction.y==="up"){}}}}}}}}.bind(this)});this.options.onSubMenuInit_complete(this)},matchWidth:function(){if(this.widthMatched||!this.options.matchWidthMode||this.subMenuType==="subsequent"){return }this.options.onMatchWidth_begin(this);var A=this.btn.getCoordinates().width;$(this.childMenu).getElements("a").each(function(E,D){var C=parseFloat($(this.childMenu).getFirst().getStyle("border-left-width"))+parseFloat($(this.childMenu).getFirst().getStyle("border-right-width"));var B=parseFloat(E.getStyle("padding-left"))+parseFloat(E.getStyle("padding-right"));var F=C+B;if(A>E.getCoordinates().width){E.setStyle("width",A-F);E.setStyle("margin-right",-C)}}.bind(this));this.width=this.childMenu.getFirst().getCoordinates().width;this.widthMatched=true;this.options.onMatchWidth_complete(this)},hideSubMenu:function(){if(this.childMenu.retrieve("status")==="closed"){return }this.options.onHideSubMenu_begin(this);if(this.subMenuType=="initial"){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(this.btn).retrieve("btnMorph",new Fx.Morph($(this.btn),{duration:(this.options.duration),transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName).chain(function(){$(this.btn).removeClass("mainMenuParentBtnFocused");
		$(this.btn).addClass("mainMenuParentBtn")}.bind(this)
		
		)
		
	}else{$(this.btn).removeClass("mainMenuParentBtnFocused");$(this.btn).addClass("mainMenuParentBtn")}}else{$(this.btn).removeClass("subMenuParentBtnFocused");$(this.btn).addClass("subMenuParentBtn")}this.childMenu.setStyle("z-index",1);if(this.options.effect&&this.options.effect.toLowerCase()==="slide"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="down"){this.myEffect.start({"margin-top":-this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="up"){this.myEffect.start({"margin-top":this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.options.direction.x==="right"){this.myEffect.start({"margin-left":-this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}}}}}else{if(this.options.effect=="fade"){this.myEffect.start({opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.options.effect=="slide & fade"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="down"){this.myEffect.start({"margin-top":-this.height,opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="up"){this.myEffect.start({"margin-top":this.height,opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.options.direction.x==="right"){this.myEffect.start({"margin-left":-this.width,opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else{if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":this.width,opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}}}}}else{this.childMenu.style.display="none"}}}this.childMenu.store("status","closed");this.options.onHideSubMenu_complete(this)},hideOtherSubMenus:function(){this.options.onHideOtherSubMenus_begin(this);if(!this.btn.retrieve("otherSubMenus")){this.btn.store("otherSubMenus",$$(this.root.allSubMenus.filter(function(A){return !this.btn.retrieve("parentSubMenus").contains(A)&&A!=this.childMenu}.bind(this))))}this.parentSubMenus.fireEvent("show");this.btn.retrieve("otherSubMenus").fireEvent("hide");this.options.onHideOtherSubMenus_complete(this)},hideAllSubMenus:function(){this.options.onHideAllSubMenus_begin(this);$clear(this.root.hideAllMenusTimeout);this.root.hideAllMenusTimeout=(function(){$clear(this.hideAllMenusTimeout);$$(this.root.allSubMenus).fireEvent("hide")}).bind(this).delay(this.options.hideDelay);this.options.onHideAllSubMenus_complete(this)},cancellHideAllSubMenus:function(){$clear(this.root.hideAllMenusTimeout)},
	showSubMenu:function(A)
	{
		if(this.childMenu.retrieve("status")==="open")
		{
			return 
		}
		this.options.onShowSubMenu_begin(this);
		if(this.subMenuType=="initial")
		{
			$(this.btn).removeClass("mainMenuParentBtn");
			$(this.btn).addClass("mainMenuParentBtnFocused")
		}else{
			$(this.btn).removeClass("subMenuParentBtn");
			$(this.btn).addClass("subMenuParentBtnFocused")
		}
		this.root.subMenuZindex++;
		this.childMenu.setStyles({display:"block",visibility:"hidden","z-index":this.root.subMenuZindex});
		if(!this.width||!this.height)
		{
			this.width=this.childMenu.getFirst().getCoordinates().width;
			this.height=this.childMenu.getFirst().getCoordinates().height;
			this.childMenu.setStyle("height",this.height,"border");
			if(this.options.effect==="slide"||this.options.effect==="slide & fade")
			{
				if(this.subMenuType=="initial"&&this.options.orientation==="horizontal")
				{
					this.childMenu.getFirst().setStyle("margin-top","0");
					if(this.options.direction.y==="down")
					{
						this.myEffect.set(
						{"margin-top":-this.height}
						)
					}else{
						if(this.options.direction.y==="up")
						{
							this.myEffect.set({"margin-top":this.height})
						}
					}
				}else
				{
					if(this.options.direction.x==="left")
					{
						this.myEffect.set({"margin-left":this.width})
					}else{
						this.myEffect.set({"margin-left":-this.width})
					}
				}
			}
		}
		this.matchWidth();
		this.positionSubMenu();
		if(this.options.effect==="slide")
		{
			this.childMenu.setStyles({display:"block",visibility:"visible"});
			if(this.subMenuType==="initial"&&this.options.orientation==="horizontal")
			{
				if(A)
				{
					this.myEffect.set({"margin-top":0}).chain(function()
					{
					this.showSubMenuComplete()
					}.bind(this))
				}else{
					this.myEffect.start({"margin-top":0}).chain(function()
					{
						this.showSubMenuComplete()
					}.bind(this))}
			}else
			{
					if(A)
					{
						this.myEffect.set({"margin-left":0}).chain(function()
							{
								this.showSubMenuComplete()}.bind(this))
					}
					else
					{
						this.myEffect.start({"margin-left":0}).chain(function()
						{
							this.showSubMenuComplete()
						}.bind(this))
					}
			}
		}else
		{
			if(this.options.effect==="fade")
			{
				if(A)
				{
					this.myEffect.set({opacity:this.options.opacity}).chain(function()
					{
						
						this.showSubMenuComplete()}.bind(this))
				}else{
					this.myEffect.start({opacity:this.options.opacity}).chain(function()
					{
						this.showSubMenuComplete()}.bind(this))
				}
			}else
			{
				if(this.options.effect=="slide & fade")
				{
					this.childMenu.setStyles({display:"block",visibility:"visible"});
					this.childMenu.getFirst().setStyles({left:0});
					if(this.subMenuType==="initial"&&this.options.orientation==="horizontal")
					{
						if(A)
						{this.myEffect.set({"margin-top":0,opacity:this.options.opacity}).chain(function()
							{	
								this.showSubMenuComplete()
							}.bind(this))
						}else{
							this.myEffect.start({"margin-top":0,opacity:this.options.opacity}).chain(function()
							{
								this.showSubMenuComplete()}.bind(this))
							}
					}else{
						if(A)
						{
							if(this.options.direction.x==="right")
							{
								this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function()
								{
									this.showSubMenuComplete()
								}.bind(this)
									
								)
							}else{
								if(this.options.direction.x==="left")
								{
									this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function()
									{
										this.showSubMenuComplete()}.bind(this))
								}
							}
						}else
						{
							if(this.options.direction.x==="right")
							{
								this.myEffect.set({"margin-left":-this.width,opacity:this.options.opacity});
								this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function()
								{
									this.showSubMenuComplete()
								}.bind(this))
							}else
							{
								if(this.options.direction.x==="left")
								{
									this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function()
									{
										this.showSubMenuComplete()
									}.bind(this))
								}
							}
						}
					}
				}else
				{
					this.childMenu.setStyles({display:"block",visibility:"visible"}).chain(function()
					{
						this.showSubMenuComplete(this)}.bind(this))
				}
			}
		}
		this.childMenu.store("status","open")},
		showSubMenuComplete:function()
		{
			this.options.onShowSubMenu_complete(this)
		},
		positionSubMenu:function()
		{
			this.options.onPositionSubMenu_begin(this);
			this.childMenu.setStyle("width",this.width);
			this.childMenu.getFirst().setStyle("width",this.width);
			if(this.subMenuType==="subsequent")
			{
				if(this.parentSubMenu&&this.options.direction.x!=this.parentSubMenu.options.direction.x)
				{
					if(this.parentSubMenu.options.direction.x==="left"&&this.options.effect&&this.options.effect.contains("slide"))
					{
						this.myEffect.set({"margin-left":this.width})
					}
				}
				this.options.direction.x=this.parentSubMenu.options.direction.x;
				this.options.direction.xInverse=this.parentSubMenu.options.direction.xInverse;
				this.options.direction.y=this.parentSubMenu.options.direction.y;
				this.options.direction.yInverse=this.parentSubMenu.options.direction.yInverse
			}
			var C;var A;if(this.subMenuType=="initial"){if(this.options.direction.y==="up")
			{
				if(this.options.orientation==="vertical")
				{
					C=this.btn.getCoordinates().bottom-this.height+this.options.tweakInitial.y
				}
				else
				{
					C=this.btn.getCoordinates().top-this.height+this.options.tweakInitial.y
				}
				this.childMenu.style.top=C+"px"
			}else
			{
				if(this.options.orientation=="horizontal")
				{
					this.childMenu.style.top=this.btn.getCoordinates().bottom+this.options.tweakInitial.y+"px"
				}else
				{
					if(this.options.orientation=="vertical")
					{
						C=this.btn.getPosition().y+this.options.tweakInitial.y;
						if((C+this.childMenu.getSize().y)>=$(document.body).getScrollSize().y)
						{
							A=(C+this.childMenu.getSize().y)-$(document.body).getScrollSize().y;C=C-A-20
						}
						this.childMenu.style.top=C+"px"}
					}
				}if(this.options.orientation=="horizontal")
				{
					this.childMenu.style.left=this.btn.getPosition().x+this.options.tweakInitial.x+"px"
				}else
				{
					if(this.options.direction.x=="left")
					{
						this.childMenu.style.left=this.btn.getPosition().x-this.childMenu.getCoordinates().width+this.options.tweakInitial.x+"px"
					}else
					{
						if(this.options.direction.x=="right")
						{
							this.childMenu.style.left=this.btn.getCoordinates().right+this.options.tweakInitial.x+"px"
						}
					}
				}
			}else
			{
				if(this.subMenuType=="subsequent")
				{
					if(this.options.direction.y==="down")
					{
						if((this.btn.getCoordinates().top+this.options.tweakSubsequent.y+this.childMenu.getSize().y)>=$(document.body).getScrollSize().y)
						{
							A=(this.btn.getCoordinates().top+this.options.tweakSubsequent.y+this.childMenu.getSize().y)-$(document.body).getScrollSize().y;
							this.childMenu.style.top=(this.btn.getCoordinates().top+this.options.tweakSubsequent.y)-A-20+"px"
						}else
						{
							this.childMenu.style.top=this.btn.getCoordinates().top+this.options.tweakSubsequent.y+"px"
						}
					}else
					{
						if(this.options.direction.y==="up")
						{
							if((this.btn.getCoordinates().bottom-this.height+this.options.tweakSubsequent.y)<1)
							{
								this.options.direction.y="down";
								this.options.direction.yInverse="up";
								this.childMenu.style.top=this.btn.getCoordinates().top+this.options.tweakSubsequent.y+"px"
							}else
							{
								this.childMenu.style.top=this.btn.getCoordinates().bottom-this.height+this.options.tweakSubsequent.y+"px"
							}
						}
					}
					if(this.options.direction.x=="left")
					{
						this.childMenu.style.left=this.btn.getCoordinates().left-this.childMenu.getCoordinates().width+this.options.tweakSubsequent.x+"px";
						if(this.childMenu.getPosition().x<0)
						{
							this.options.direction.x="right";
							this.options.direction.xInverse="left";
							this.childMenu.style.left=this.btn.getPosition().x+this.btn.getCoordinates().width+this.options.tweakSubsequent.x+"px";
							if(this.options.effect==="slide"||this.options.effect==="slide & fade")
							{
								this.myEffect.set({"margin-left":-this.width,opacity:this.options.opacity})
							}
						}
					}
					else
					{
						if(this.options.direction.x=="right")
						{
							this.childMenu.style.left=this.btn.getCoordinates().right+this.options.tweakSubsequent.x+"px";
							var D=this.childMenu.getCoordinates().right;
							var B=document.getCoordinates().width+window.getScroll().x;
							if(D>B)
							{
								this.options.direction.x="left";
								this.options.direction.xInverse="right";
								this.childMenu.style.left=this.btn.getCoordinates().left-this.childMenu.getCoordinates().width+this.options.tweakSubsequent.x+"px";
								if(this.options.effect==="slide"||this.options.effect==="slide & fade")
								{
									_tooltip = this.childMenu.getChildren('ul');
									_tooltip.removeClass('tooltip').addClass('tooltip_right');
                                    
									this.myEffect.set({"margin-left":this.width,opacity:this.options.opacity})
								}
							}
						}
					}
				}
			}this.options.onPositionSubMenu_complete(this)}});
