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;

		for(i = 0; 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 + ', false)');
			s[i].style.opacity = '0';
			s[i].style.filter = 'alpha(opacity = 0);';

			var wizard_find_x = findPosX(s[i]);
			var window_width = document.body.offsetWidth - 250;

			if(wizard_find_x > window_width)
				s[i].className +=  ' pf';
		}
		if(navigator.appVersion.indexOf("Win") == -1)
		{
			w.style.width = (w.offsetWidth + 1) + 'px';
			h.style.width = h.offsetWidth + 'px';
		}	
	}
	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.top = '0'; 
				c.style.position = 'absolute';
				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;
			// c.style.right = '0';

		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';

		if(o < .9 && f != 1)
		{
			c.style.opacity = 0;
			c.style.filter = 'alpha(opacity = 0)';
			c.style.height = 0;
			return;
		}
		/*
		if(c.style.opacity < 0.22)	
		{
			c.style.opacity = 0;
		}	
		if(navigator.appVersion.indexOf('Win') != -1)
		{
			var fil = c.style.filter;
			var filt = '';
			var ss1 = 'alpha(opacity =';
			var ss2 = ')';
			filt = fil.replace(ss1, '');
			filt = filt.replace(ss2, '');

			if(filt < 18)
				c.style.filter = 'alpha(opacity = 0)';
		}	
		*/
	}
    function findPosX(obj)
    {
        var curleft = 0;

        if(obj.offsetParent)
        {
            while(1) 
            {
                curleft += obj.offsetLeft;
                if(!obj.offsetParent)
                    break;
                obj = obj.offsetParent;
            }
        }   
        else if(obj.x)
            curleft += obj.x;

        return curleft;
    }
	return{dd:dd}
}();

