var tree_prefix = './images/treemenu/';
var treeZnak = new Array();
treeZnak[0] = new Image();
treeZnak[0].src = tree_prefix+'/expand_node.gif';
treeZnak[1] = new Image();
treeZnak[1].src = tree_prefix+'/collapse_node.gif';

var treeFolder = new Array();
treeFolder[0] = new Image();
treeFolder[0].src = tree_prefix+'/folder_closed.gif';
treeFolder[1] = new Image();
treeFolder[1].src = tree_prefix+'/folder_opened.gif';
                  
function treeShowSubmenu(prefix, name, level)
{
	previous = treeHidePrevious(prefix, name, level);
	if (previous == name)
		return;
	obj = document.getElementById(name);
	if (obj && obj.style.display!='none')
		treeCollapseNode(prefix, name, level);
	else
		treeExpandNode(prefix, name, level);
}

function treeHidePrevious(prefix, name, level)
{
	var tItems = eval(prefix+'Items');
	previous = tItems[level];
	while (tItems.length > level)
    {
    	var nn = tItems.pop();
        treeCollapseNode(prefix, nn, level);
	}
    return previous;
}

function treeExpandNode(prefix, name, level)
{
	var tItems = eval(prefix+'Items');
	
	obj = document.getElementById(name);
	if (obj)
	{
		obj.style.display = 'block';

		obj = document.getElementById(name+'_znak');
		obj.src = treeZnak[1].src;
	
		obj = document.getElementById(name+'_folder');
		obj.src = treeFolder[1].src;
                      
		tItems.push(name);
	}
}

function treeCollapseNode(prefix, name, level)
{
	obj = document.getElementById(name);
	obj.style.display = 'none';
	
	obj = document.getElementById(name+'_znak');
	obj.src = treeZnak[0].src;
	
	obj = document.getElementById(name+'_folder');
	obj.src = treeFolder[0].src;
}

function treeExpandNodes(prefix, name, level)
{
	if (level>0)
	{
		obj = document.getElementById(name);
		if (obj)
		{
			obj = treeFindParent(obj.parentNode);
			treeExpandNodes(prefix, obj.id, level-1);
		}
	}
	treeExpandNode(prefix, name, level);
}

function treeFindParent(obj)
{
	while (obj.nodeName != 'DIV')
		obj = obj.parentNode;
	return obj;
}
                  
