/* menu functions */

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;
var headerId = '';

// open hidden layer
function mopen(headerIdIn, id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem)
	{
	    ddmenuitem.style.visibility = 'hidden';
	    SetClass(headerId, "");
    }
    
    //set header.
    headerId = headerIdIn;
    SetClass(headerId, "on");

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) 
	{
	    ddmenuitem.style.visibility = 'hidden';
	    SetClass(headerId, "");
	}
}

// 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;






/* methods for showing and hiding elements */

function Show(element) {
    element.setAttribute("class", "");
    element.setAttribute("className", "");
}

//TODO: get rid of this, no overloading in js!!
function Show(element, classes) {
    element.setAttribute("class", classes);
    element.setAttribute("className", classes);
}

function Hide(element) {
    element.setAttribute("class", "hide");
    element.setAttribute("className", "hide");
}

function SetClass(elementId, classes) {
    var element = document.getElementById(elementId);
    if (element != null) {
        element.setAttribute("class", classes);
        element.setAttribute("className", classes);
    }
}

function SetClassByObject(element, classes) {
    element.setAttribute("class", classes);
    element.setAttribute("className", classes);
}
