/**
 * 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:"down"}

,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"); Cufon.refresh(); }

}







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","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"){
	this.myEffect.set({
	"margin-left":this.width,opacity:this.options.opacity}

)}

}

}

}

}

}

this.options.onPositionSubMenu_complete(this)}

}

);
