var timeout	= 300;
var closetimer	= 0;
var opactimer	= 0;
var ddmenuitem	= 0;
var topshadowheight = 0;

//Get value from id of element

function getPos(el,sProp) {
	var iPos = 0;
	while (el!=null) {
		iPos+=el["offset" + sProp]
		el = el.offsetParent
	}
	return iPos

}

// open hidden layer
function mopen(el,id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
 
	// get new layer and show it
	ddmenuitem = document.getElementById(id);	
	changeOpac(0);
	ddmenuitem.style.left = getPos(el,"Left")+"px";
	ddmenuitem.style.top =  getPos(el,"Top") + el.offsetHeight - topshadowheight +"px";
	opac(id);
	//ddmenuitem.style.visibility = 'visible';
	

}
// close showed layer
function mclose()
{

	//if(ddmenuitem) changeOpac(0);
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	if(opactimer)
	{
		window.clearTimeout(opactimer);
		opactimer = null;	
	}
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
		
}

// close layer when click-out
document.onclick = mclose; 

function opac(objid) {
	
	if(opactimer)
	{
		window.clearTimeout(opactimer);
		opactimer = null;
	}

var blank1 = changeOpac(0);
    document.getElementById(objid).style.display = 'block';
	

	ddmenuitem.style.visibility = 'visible';
	
    //speed for each frame 
    var speed = Math.round(1000/650); 
	for(i = 0; i <= 100; i++) {

		setTimeout("changeOpac(" + i + ")",(opactimer * speed));		
		opactimer++; 


	}
}

function changeOpac(opacity) {
    ddmenuitem.style.opacity = (opacity / 100); 
    ddmenuitem.style.MozOpacity = (opacity / 100); 
    ddmenuitem.style.KhtmlOpacity = (opacity / 100); 
    ddmenuitem.style.filter = "alpha(opacity=" + opacity + ")"; 
}
