var timeout     = 500;
var closetimer  = [];
var ddmenuitem  = [];
var active_menu_text = [];
var active_menu_arrow = [];
var swap_menu_text = [];
var menu_mouseover_swap = [];
var active_style = [];
var swap_style = [];
var swap_style_name = [];

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

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

        // get new layer and show it
        ddmenuitem[counter] = document.getElementById('m'+id);

	if (ddmenuitem[counter].style.visibility == 'visible')
	{
		mclose(counter, id);
	}
	else
	{
		if (active_menu_text[counter])
		{
			msetheader(swap_menu_text[counter],active_menu_arrow[counter],active_style[counter],counter);
		}

        	ddmenuitem[counter].style.visibility = 'visible';
	}
}

// close showed layer
function mclose(counter, id)
{
        if(ddmenuitem[counter])
	{
		ddmenuitem[counter].style.visibility = 'hidden';
	}

	if (active_menu_text[counter])
	{
		msetheader(active_menu_text[counter],active_menu_arrow[counter],active_style[counter],counter);
	}

	window.clearTimeout(closetimer[counter]);
	closetimer[counter] = null;
}

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

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

	if (menu_mouseover_swap[counter])
	{
		msetheader(swap_menu_text[counter],active_menu_arrow[counter],swap_style[counter],counter);
	}
}

function msetheader(txt, img_path, style, counter)
{
	if (txt)
		active_text = getElement('active_text'+counter);

	if (active_text)
		active_text.innerHTML = txt + (img_path ? "&nbsp;<img src=" + img_path + "dropdown_arrow.gif >" : "");

	if (style)
		eval('active_text.style.'+swap_style_name[counter]+' = style;');
}

