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) {
		a = c;
		var w = document.getElementById(p), s = w.getElementsByTagName('ul'), l = s.length, i = 0;
		for (i; i<l; i++) {
			var h = s[i].parentNode; this.h[i] = h; this.c[i] = s[i];
			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], h = this.h[x], p = h.getElementsByTagName('a')[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 }
}();
