/* http://ypslideoutmenus.sourceforge.net/ */
/* updated by ceb 2007.06.25 to make the menu display relative to the position of the topmenu btn*/
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;left:0px;";
		_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\">");/*if(document.all)document.writeln(".mainDiv{position:relative;left:-40px;}");else */
	document.writeln(".mainDiv{position:relative;}");
	for(var id in ypSlideOutMenu.Registry) {
		document.writeln(ypSlideOutMenu.Registry[id].css);
		/*alert(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.prototype.findPos=function(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
	    curleft = obj.offsetLeft;
	    curtop = obj.offsetTop;
	    /*while (obj = obj.offsetParent) { curleft += obj.offsetLeft;curtop += obj.offsetTop;}*/
    }
    return [curleft,curtop];
};
ypSlideOutMenu.prototype.position=function() {
    var d=document;
    var _offset=20;
    var _1="top"+this.id;
    var _2=this.dom?d.getElementById(_1):this.ie?d.all[_1]:d.layers[_1];
    var pos2=this.findPos(_2);
    var pos=this.orientation=="h"?(pos2[1]+_offset):(pos2[0]+_offset) + "px";
    var _5=this.id+"Container";
    var _6=this.dom?d.getElementById(_5):this.ie?d.all[_5]:d.layers[_5];
    _6.style[this.orientation=="h"?"top":"left"]=pos;
};
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].position();
		    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() {};
