﻿var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function mopen(elem, id)
{	
	//get the elem position
	var elemPos = findPos(elem);
	
	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.display = 'none';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.display = 'block';
	ddmenuitem.style.top = (elemPos[1] + (elem.offsetHeight/2)) + 'px';
	ddmenuitem.style.left = (elemPos[0] - document.getElementById('container').offsetLeft - 25) + 'px';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.display = 'none';
}

// 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 findPos(obj) {
    var curleft = curtop = 0;

    if (obj.offsetParent) {
        do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
			
        } while (obj = obj.offsetParent);
        
    }
    
    return [curleft,curtop];
}