/* http://ypslideoutmenus.sourceforge.net/ */
ypSlideOutMenu.Registry  = [];
ypSlideOutMenu.aniLen    = 250;
ypSlideOutMenu.hideDelay = 1000;
ypSlideOutMenu.minCPUResolution = 10;

function ypSlideOutMenu (id, _2, _3, _4, _5, _6) {
  this.ie=document.all?1:0;
  this.ns4=document.layers?1:0;
  this.dom=document.getElementById?1:0;
  this.css="";
  if(this.ie||this.ns4||this.dom) {
    this.id          = id;
    this.dir         = _2;
    this.orientation = _2=="left"||_2=="right"?"h":"v";
    this.dirType     = _2=="right"||_2=="down"?"-":"+";
    this.dim         = this.orientation=="h"?_5:_6;
    this.hideTimer   = false;
    this.aniTimer    = false;
    this.open        = false;
    this.over        = false;
    this.startTime   = 0;
    this.gRef        = "ypSlideOutMenu_" + id;
    eval(this.gRef + "=this");
    ypSlideOutMenu.Registry[id]=this;
    var d=document;
    var _8="";
        _8+="#"+this.id+"Container{visibility:hidden;";
        _8+="left:"+_3+"px;";
        _8+="top:"+_4+"px;";
        _8+="overflow:hidden;z-index:10000;}";
        _8+="#"+this.id+"Container,#"+this.id+"Content{position:absolute;";
        _8+="width:"+_5+"px;";
        _8+="height:"+_6+"px;";
        _8+="clip:rect(0 "+_5+" "+_6+" 0);";
        _8+="}";
    this.css=_8;
    this.load();
  }
}

ypSlideOutMenu.writeCSS = function() {
  document.writeln("<style type=\"text/css\">");
  for(var id in ypSlideOutMenu.Registry) {
    document.writeln(ypSlideOutMenu.Registry[id].css);
  }
  document.writeln("</style>");
};

ypSlideOutMenu.prototype.load = function() {
  var d   = document;
  var _10 = this.id+"Container";
  var _11 = this.id+"Content";
  var _12 = this.dom?d.getElementById(_10):this.ie?d.all[_10]:d.layers[_10];
  if(_12) {
    var _13 = this.ns4?_12.layers[_11]:this.ie?d.all[_11]:d.getElementById(_11);
  }
  var _14;
  if(!_12||!_13){
    window.setTimeout(this.gRef+".load()",100);
  } else {
    this.container  = _12;
    this.menu       = _13;
    this.style      = this.ns4?this.menu:this.menu.style;
    this.homePos    = eval("0"+this.dirType+this.dim);
    this.outPos     = 0;
    this.accelConst = (this.outPos-this.homePos)/ypSlideOutMenu.aniLen/ypSlideOutMenu.aniLen;
    if (this.ns4) {
      this.menu.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
    }
    this.menu.onmouseover = new Function(
      "ypSlideOutMenu.showMenu('"+this.id+"')"
    );
    this.menu.onmouseout = new Function(
      "ypSlideOutMenu.hideMenu('"+this.id+"')"
    );
    this.endSlide();
  }
};

ypSlideOutMenu.showMenu = function(id){
  var reg=ypSlideOutMenu.Registry;
  var obj=ypSlideOutMenu.Registry[id];
  if(obj.container){
    obj.over=true;
    for(menu in reg) {
      if (id!=menu){
        ypSlideOutMenu.hide(menu);
      }
    }
    if (obj.hideTimer) {
      reg[id].hideTimer=window.clearTimeout(reg[id].hideTimer);
    }
    if (!obj.open&&!obj.aniTimer) {
      reg[id].startSlide(true);
    }
  }
};

ypSlideOutMenu.hideMenu = function(id) {
  var obj=ypSlideOutMenu.Registry[id];
  if (obj.container) {
    if(obj.hideTimer){
      window.clearTimeout(obj.hideTimer);
    }
    obj.hideTimer = window.setTimeout("ypSlideOutMenu.hide('"+id+"')",ypSlideOutMenu.hideDelay);
  }
};

ypSlideOutMenu.hideAll = function() {
  var reg=ypSlideOutMenu.Registry;
  for(menu in reg) {
    ypSlideOutMenu.hide(menu);
    if(menu.hideTimer) {
      window.clearTimeout(menu.hideTimer);
    }
  }
};

ypSlideOutMenu.hide = function(id) {
  var obj=ypSlideOutMenu.Registry[id];
  obj.over=false;
  if(obj.hideTimer) {
    window.clearTimeout(obj.hideTimer);
  }
  obj.hideTimer=0;
  if (obj.open&&!obj.aniTimer) {
    obj.startSlide(false);
  }
};

ypSlideOutMenu.prototype.startSlide = function(_21) {
  this[_21?"onactivate":"ondeactivate"]();
  this.open=_21;
  if(_21) {
    this.setVisibility(true);
  }
  this.startTime = (new Date()).getTime();
  this.aniTimer  = window.setInterval(this.gRef+".slide()",ypSlideOutMenu.minCPUResolution);
};

ypSlideOutMenu.prototype.slide = function() {
  var _22 = (new Date()).getTime()-this.startTime;
  if(_22>ypSlideOutMenu.aniLen) {
    this.endSlide();
  } else {
    var d=Math.round(Math.pow(ypSlideOutMenu.aniLen-_22,2)*this.accelConst);
    if(this.open&&this.dirType=="-") {
      d=-d;
    } else {
      if (this.open&&this.dirType=="+") { 
        d=-d;
      } else {
        if (!this.open&&this.dirType=="-") {
          d=-this.dim+d;
        } else { 
          d=this.dim+d;
        }
      }
    }
    this.moveTo(d);
  }
};

ypSlideOutMenu.prototype.endSlide = function() {
  this.aniTimer=window.clearTimeout(this.aniTimer);
  this.moveTo(this.open?this.outPos:this.homePos);
  if(!this.open) { 
    this.setVisibility(false);
  }
  if ((this.open&&!this.over)||(!this.open&&this.over)) {
    this.startSlide(this.over);
  }
};

ypSlideOutMenu.prototype.setVisibility = function(_24) {
  var s=this.ns4?this.container:this.container.style;
  s.visibility=_24?"visible":"hidden";
};

ypSlideOutMenu.prototype.moveTo = function(p) {
  this.style[this.orientation=="h"?"left":"top"]=this.ns4?p:p+"px";
};

ypSlideOutMenu.prototype.getPos = function(c) {
  return parseInt(this.style[c]);
};

ypSlideOutMenu.prototype.onactivate   = function() {};
ypSlideOutMenu.prototype.ondeactivate = function() {};


