var timeout=500;
var closetimer= 0;
var ddmenuitem= 0;
var ddtopmenuitem = 0;

var maptimer = null;

// open hidden layer
function mopen(id)
{
	// cancel close timer
	mcancelclosetime();


	if (maptimer) {
		hideMap();
	}

	// 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('top'+id);
	ddtopmenuitem.className = ddtopmenuitem.className + '_hover';
	
	var pos = 0;
	//if (navigator.appName == 'Microsoft Internet Explorer') {
	//	pos = ddtopmenuitem.offsetLeft; 
	//} else {
		pos = findPosX(ddtopmenuitem) - findPosX(document.getElementById('main')) - 18;
	//}

	ddmenuitem.style.left = pos + 'px';

}

// close showed layer
function mclose()
{
	if(ddmenuitem) {
	  ddmenuitem.style.visibility = 'hidden';
	}

	if(ddtopmenuitem) {
		resetAll();
	}

}

// go close timer
function mclosetime()
{
  closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}


/* MAP */

function showMap() {
	cancelMapTimer()

	if(ddmenuitem) {
		mclose();
	}

	document.getElementById('worldmap').src='/files/system/world_over.png';
	document.getElementById('mapcontainer').style.visibility = 'visible';
}

function hideMap() {
	document.getElementById('worldmap').src='/files/system/worldmap.png';
	document.getElementById('mapcontainer').style.visibility = 'hidden';
}

function timerMap() {
	maptimer = window.setTimeout(hideMap, timeout);
}

function cancelMapTimer() {
	if(maptimer)
	{
		window.clearTimeout(maptimer);
		maptimer = 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;
  }

