var menuItems = new Array;
var selectedItem = '';
var defaultClasses = new Array('', 'left_nav_item', 'secondLevelPadding', 'thirdLevelPadding', 'fourthLevelPadding');
var classesWithChildren = new Array('', 'left_nav_item_selected_childs', 'secondLevelPaddingSelChild', 'thirdLevelPaddingSelChild', 'fourthLevelPaddingSelChild');
var classesWithoutChildren = new Array('', 'left_nav_item_selected', 'secondLevelPaddingSel', 'thirdLevelPaddingSel', 'fourthLevelPaddingSel');
var tOut = null;

	var blankItem = new Array();
	blankItem['id'] = 0;
	blankItem['parentId'] = 0;
	blankItem['hasChildren'] = 0;
	blankItem['depth'] = 0;
	blankItem['nr'] = 0;
	blankItem['opened'] = false;
	blankItem['children'] = new Array();

function addItem(id, parentId, hasChildren, depth, nr) 
{
	var temp = new Array();
	temp['id'] = id;
	temp['parentId'] = parentId;
	temp['hasChildren'] = hasChildren;
	temp['depth'] = depth;
	temp['nr'] = nr;
	temp['opened'] = false;
	temp['children'] = new Array();
	menuItems[id] = temp;
	if (parentId != 0)
	{
		menuItems[parentId]['children'].push(temp);
	}
}

function isParent(id, parentId)
{
	var result = false;
	var currentItem = menuItems[id];
	if (currentItem['parentId'] == parentId) 
	{
		return true;
	}
	else
	{
		if (currentItem['parentId'] == 0) 
		{
			return false;
		}
		else
		{
			return isParent(currentItem['parentId'], menuItems[currentItem['parentId']]['parentId']);
		}
	}
}

function closeOthers(id)
{
//	alert(id);
	var itemClicked = menuItems[id];
	if (!itemClicked)
	{
		itemClicked = blankItem;		
	}
	
	for (i in menuItems)
	{
		var currentItem = menuItems[i];
//		alert(currentItem['id'] + ' ' + itemClicked['id']);
		if (currentItem['id'] != itemClicked['id'] && currentItem['opened'] && currentItem['parentId'] != itemClicked['id']) 
		{
			if (itemClicked['depth'] <= currentItem['depth'] || !isParent(id, currentItem['id']))
			{
				closeMenu(currentItem['id']);
			}
		}
	}
}

function exitMenu()
{
	tOut = setTimeout('closeOthers(0)', 1000);
}

function clearMenuClosure()
{
	clearTimeout(tOut);
}

function closeMenu(id) 
{	
	var currentItem = menuItems[id];
	//alert('uzdarau ' + id + ' !!!');
	currentItem['opened'] = false;
	
	var itemDivStr = 'menu_item_' + currentItem['id'];
	var itemDiv = document.getElementById(itemDivStr);
	if (currentItem['hasChildren'] > 0)
	{
		for (i in currentItem['children'])
		{
			closeMenu(currentItem['children'][i]['id']);
		}
		
		var submenuDivStr = 'submenu_' + currentItem['id'];
		var submenuDiv = document.getElementById(submenuDivStr);
		submenuDiv.style.display = 'none';
	}
	
	itemDiv.className = defaultClasses[currentItem['depth']];
	
	if (currentItem['depth'] == 0)
	{
		var topSeparatorStr = 'separator_' + (currentItem['nr'] - 1);
		var topSeparator = document.getElementById(topSeparatorStr);
		var bottomSeparatorStr = 'separator_' + currentItem['nr'];
		var bottomSeparator = document.getElementById(bottomSeparatorStr);
		if (topSeparator)
		{
			topSeparator.style.display = 'block';
		}
		if (bottomSeparator)
		{
			bottomSeparator.style.display = 'block';
		}
	}
}

function openMenu(id) 
{
	closeOthers(id);
	var currentItem = menuItems[id];
	currentItem['opened'] = true;
	var itemDivStr = 'menu_item_' + currentItem['id'];
	var itemDiv = document.getElementById(itemDivStr);
	if (currentItem['hasChildren'] > 0)
	{
		itemDiv.className = classesWithChildren[currentItem['depth']];
		var submenuDivStr = 'submenu_' + currentItem['id'];
		var submenuDiv = document.getElementById(submenuDivStr);
		submenuDiv.style.display = 'block';
	}
	else
	{
		itemDiv.className = classesWithoutChildren[currentItem['depth']];
	}
	
	if (currentItem['depth'] == 0)
	{
		var topSeparatorStr = 'separator_' + (currentItem['nr'] - 1);
		var topSeparator = document.getElementById(topSeparatorStr);
		var bottomSeparatorStr = 'separator_' + currentItem['nr'];
		var bottomSeparator = document.getElementById(bottomSeparatorStr);
		if (topSeparator)
		{
			topSeparator.style.display = 'none';
		}
		if (bottomSeparator)
		{
			bottomSeparator.style.display = 'none';
		}
	}
}