// konstruktor objektu ServerMap
function ServerMap(level)
{
	// pocet defaultne rozbalenych urovni - vychozi: 0 (vsechny urovne)
	this.level = (level)? level : 0;		

	// inicializace mapy, prvni zobrazeni
	// pokud jsou omezeny rozbalene urovne, pouzavirame je...
	if ( this.level )
	{	
		var mapRoot = document.getElementById('servermap'); 		
		this.initCloseNodes(mapRoot, this.level);
	}	
}


// rekurzivne volane pouzavirani mapy na vychozi pocet zobrazenych urovni
ServerMap.prototype.initCloseNodes = function(node, level)
{
	var ul, li;
	
	li = node.childNodes;
	for (var i=0; i<li.length; i++)
	{
		if (li[i].nodeName != 'LI')
			continue;

	   ul = li[i].lastChild;
  		if (ul.nodeName == 'UL')
		{
     		this.initCloseNodes(ul,level-1);
    		if (level <= 1)
			{
	        this.changeNodeState(li[i].firstChild);
			}
		}
	}
}


// otevreni/zavreni uzlu
ServerMap.prototype.changeNodeState = function(node)
{
	var ul = node.parentNode.lastChild;
	
	if (ul.nodeName == 'UL')
	{
		var closed = (ul.style.display=='none')? true : false;

		// zmenime stav
		ul.style.display = (closed)? 'block' : 'none';
		node.firstChild.innerHTML = (closed)? '[-]' : '[+]';
		node.className = 'sm-state '+((closed)? 'sm-minus' : 'sm-plus');
		
		// refreshneme pozici u footeru ;]
		footerEl = document.getElementById('footer-c');
		if (footerEl)
		{
			footerEl.style.position = 'relative';
			footerEl.style.position = 'absolute';
		}
		
	}
	return false;
}
