var menu=function(){
	var t=15, z=50, s=6, a;

	function dd(n){
		this.n=n;
		this.h=[];
		this.c=[]
	}

	dd.prototype.init=function(p,c,direction){
		var w = document.getElementById(p);
		var s = w.getElementsByTagName('ul');
		var i = 0;

		direction = direction.toLowerCase();
		a=c;

		/*
		var out_obj = document.getElementById("output");
		out_obj.value = "";
		var childs = w.childNodes;
		for (i = 0; i < childs.length; i++) {
			if (childs[i].nodeType == 1) {
				out_obj.value += childs[i].nodeName + "\r\n";
				for (j = 0; j < childs[i].childNodes.length; j++) {
					out_obj.value += "   " + childs[i].childNodes[j].nodeName + "\r\n";
				}
			}
		}
		//*/
		
		for(i = 0; i < s.length; i++) {
			var h=s[i].parentNode;
			this.h[i]=h;
			this.c[i]=s[i];
			
			if (direction == "up") {
				s[i].style.top = -s[i].offsetHeight + "px";
			} else if (direction == "down") {
				s[i].style.top = h.offsetHeight + "px";
			} else {
				s[i].style.top = "0px";
			}
			s[i].style.display = "none";

			h.onmouseover=new Function(this.n+'.st('+i+',true)');
			h.onmouseout=new Function(this.n+'.st('+i+')');
		}
	}

	dd.prototype.st=function(x,f){
		var c = this.c[x];
		var h = this.h[x];
		var p = h.getElementsByTagName('a')[0];
		
		// show the menu
		if (f) {
			p.className += " " + a;
			c.style.display = "block";
			c.style.opacity = 1;
		} else {
			// hide the menu
			p.className = p.className.replace(a, "");
			c.style.display = "none";
			c.style.opacity = 0;
		}
		/*
		clearInterval(c.t);
		c.style.overflow='hidden';
		if(f){
			p.className+=' '+a;
			if(!c.mh){
				c.style.display='block';
				c.style.height='';
				c.mh=c.offsetHeight;
				c.style.height=0
			}

			if(c.mh==c.offsetHeight){
				c.style.overflow='visible'
			} else {
				c.style.zIndex=z;
				z++;
				c.t=setInterval(function(){sl(c,1)},t)
			}
		}else{
			p.className=p.className.replace(a,'');
			c.t=setInterval(function(){sl(c,-1)},t)
		}
		*/
	}

	function sl(c,f){
		var h=c.offsetHeight;
		if((h<=0&&f!=1)||(h>=c.mh&&f==1)){
			if(f==1){
				c.style.filter='';
				c.style.opacity=1;
				c.style.overflow='visible'
			}
			clearInterval(c.t);
			return
		}
		var d= (f==1) ? Math.ceil((c.mh-h)/s) : Math.ceil(h/s);
		o = h/c.mh;
		c.style.opacity=o;
		c.style.filter='alpha(opacity='+(o*100)+')';
		c.style.height=h+(d*f)+'px';
	}

	return{dd:dd}
}();
