var timeout=500;
var closetimer= 0;
var ddmenuitem= 0;
var ddtopmenuitem = 0;
var styleArray = new Array();

// open hidden layer
function mopen(id)
{
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) {
		ddmenuitem.style.visibility = 'hidden';
	}

	if(ddtopmenuitem) {
		resetAll();
	}

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

	ddtopmenuitem = document.getElementById('sub'+id);
	saveClass(id,ddtopmenuitem.className);
	ddtopmenuitem.className = ddtopmenuitem.className + '_hover';
	
	var pos = findPosX(ddtopmenuitem);;
	
	//window.status = "menu= " + findPosX(ddtopmenuitem) + "      - main= " +  findPosX(document.getElementById('main'));
	
	ddmenuitem.style.left = pos + 'px';
}

// close showed layer
function mclose()
{
	if(ddmenuitem) {
	  ddmenuitem.style.visibility = 'hidden';
	}

	if(ddtopmenuitem) {
		resetAll();
	}

}

// Save the class, but only the first time
function saveClass(key, value) 
{
	var found = 0;

	for (var elem in styleArray) {
		if (elem == key)
		found = 1;
	}

	if (found == 0)
		styleArray[key] = value;
}

// Reset all styles in menu
function resetAll() 
{
	for (var elem in styleArray) {
		ddtopmenuitem = document.getElementById('sub' + elem);
		ddtopmenuitem.className = styleArray[elem];
	}
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// Align menus
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;
}


