function MM_findObj(n, d)
{
	var p,i,x;
	if(!d)
		d=document;
	if((p=n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}
	if(!(x = d[n]) && d.all)
		x = d.all[n];
	for(i=0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for(i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById)
		x=d.getElementById(n);
	return x;
}


function toggleVisible(id, visible)
{
	var object = MM_findObj(id);
	if(object != null) {
		var obj = object;
		if(obj.style) {
			obj = obj.style;
			if(visible)
				style = 'visible';
			else
				style = 'hidden';
		}
		obj.visibility = style;
	}
	return object;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function changeCssClass(obj, class_name)
{
	obj.className = class_name;
}

var open_menus = new Array(3);
var timeout_id;

function startTimeout(what, when) { timeout_id = setTimeout(what, when); }
function stopTimeout() { clearTimeout(timeout_id); }

function onOverMenu(id, level)
{
	stopTimeout();

	//window.status = "onOverMenu";

	if(open_menus[level] == null)
		open_menus[level] = new Object();
		
	open_menus[level].id = id;
	open_menus[level].mouse_over = true;
	//checkCloseMenu();
}

function onOverMenuItem(id, level, id_submenu, level_submenu, url, submenu_parent, pos_type)
{
	stopTimeout();
	

	// skryje dropdownlisty, ktore sa v skurvenom exploreri vykresluju cez menu
	if(open_menus[0] == null) {	// skryvam ich iba pri prvom zobrazovani menu
		for(var i = 0; i < list_ddl_on_page.length; i++) {
			toggleVisible(list_ddl_on_page[i], false);
		}
	}
	

	window.status = url;

	for(var i = level_submenu; i < open_menus.length; i++) {
		if(open_menus[i] != null) {
			//window.status = "onOverMenuItem" + i;
			toggleVisible(open_menus[i].id, false);
		}
	}

	if(level_submenu >= 0)
		if(open_menus[level_submenu] == null)
			open_menus[level_submenu] = new Object();

	if(level >= 0) {
		if(open_menus[level] == null)
			open_menus[level] = new Object();
		open_menus[level].id = id;
		open_menus[level].mouse_over = true;
	}

	//open_menus[level].id_submenu = id_submenu;

	open_menus[level_submenu].id = id_submenu;
	open_menus[level_submenu].mouse_over = false;

	if(id.length > 0) {
		obj = toggleVisible(id, true);
	}
	
	if(id_submenu.length > 0) {
		var obj = toggleVisible(id_submenu, true);
		var parent_x = parseInt(findPosX(submenu_parent));
		var parent_y = parseInt(findPosY(submenu_parent));
		var parent_width = parseInt(submenu_parent.offsetWidth);
		var parent_height = parseInt(submenu_parent.offsetHeight);
		switch(pos_type) {
			case 0: {
				obj.style.left = (parent_x+5) + 'px';
				obj.style.top = (parent_y+parent_height-2) + 'px';
			} break;
			case 1: {
				if(parseInt(parent_x+parent_width+2)+parseInt(obj.offsetWidth) < 780) 
					obj.style.left = parent_x+parent_width+2+'px';
				else
					obj.style.left = parent_x-2-parseInt(obj.offsetWidth)+'px';
				obj.style.top = (parent_y+1) + 'px';/**/
				
				/*if(parseInt(parent_x+40)+parseInt(obj.offsetWidth) < 780) 
					obj.style.left = parent_x+40+'px';
				else
					obj.style.left = parent_x-2-parseInt(obj.offsetWidth)+'px';
				obj.style.top = (parent_y+15)+'px';*/
			} break;
		}
	}
}

function onOutMenu(id, level)
{
	open_menus[level].mouse_over = false;
	checkCloseMenu();
}

function onOutMenuItem(id, level, id_submenu, level_submenu)
{
	checkCloseMenu();
}

function checkCloseMenu()
{
	//window.status = "checkCloseMenu";
	stopTimeout();
	startTimeout("checkCloseMenuOnTimer();", 500);
}

function checkCloseMenuOnTimer()
{
	// zobrazi dropdownlisty skryte kvoli skurvenej chybe v exploreri
	for(var i = 0; i < list_ddl_on_page.length; i++) {
		toggleVisible(list_ddl_on_page[i], true);
	}
	

	//window.status = "checkCloseMenuOnTimer";
	for(var i = open_menus.length-1; i >= 0; i--) {
		if(open_menus[i] != null) {
			if(open_menus[i].mouse_over)
				break;
			//alert(i);
			toggleVisible(open_menus[i].id, false);
			open_menus[i] = null;
		}
	}
}

/*function closeMenu(id, level)
{
	setTimeout("closeMenuOnTimer('"+id+"', '"+level+"')", 500);
	open_menus[level].can_close = true;
	if(open_menus[level].id == id)
		open_menus[level].mouse_in = false;
}

function closeMenuOnTimer(id, level)
{
	if(open_menus[level] != null) {
		if(open_menus[level].id == id && open_menus[level].can_close) {
			if(open_menus[level+1] == null) {
				obj = MM_findObj(id);
				if(obj != null) {
					if(obj.style) {
						obj = obj.style;
						style = 'hidden';
					}
					obj.visibility = style;
				}
				if(open_menus[level] != null) {
					if(open_menus[level].id == id)
						open_menus[level] = null;
				}
			}
		}
	}
}*/
