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