MenuItem = function(model, xmlNode)
{
	this.menu = model;
	this.isActive = false;
	this.isSelected = false;
	
	this.children = new Array;
	
	this.name = xmlNode.getAttribute("name");
	this.page = xmlNode.getAttribute("page");

	// add child items
	var nodes = xmlNode.getElementsByTagName("item");
    for(var i = 0; i < nodes.length; i++)
    {
        this.children[i] = new MenuItem(this.menu, nodes[i]);
	}
}


MenuItem.prototype.setActive = function(name)
{
	// reset
	this.isActive = false;
	
	if (this.name == name)
	{
		this.isActive = true;
		// load content
		if (this.page != "")
		{
			loadPage(this.page);
		}
		else
		{
			// set name from first child
			if (this.children.length > 0)
			{
				name = this.children[0].name;
			}
		}
	}
	
	var hasActiveChild = false;
	for(var i = 0; i < this.children.length; i++)
	{
		var child = this.children[i];
		if (child.setActive(name))
		{
			hasActiveChild = true;
		}
	}
	if (hasActiveChild)
	{
		this.isActive = true;
	}
	
	// will close from top to bottom
	//if (!this.isActive && this.isSelected
	if (!this.isActive)
	{
		this.setUnselected()
	}
	
	return this.isActive;
}

MenuItem.prototype.setSelected = function()
{
	if (this.isActive && !this.isSelected)
	{
		// todo: move code to menu
		var selectedItem = document.getElementById("item_" + this.name);
		if (selectedItem != null)
		{
			selectedItem.className = "menuitem_sel";
		}
		var selectedSub = document.getElementById("sub_" + this.name);
		if (selectedSub != null)
		{
			selectedSub.className = "subfolder_sel";
		}
		
		for(var i = 0; i < this.children.length; i++)
		{
			this.children[i].setSelected();
		}
	}
}

MenuItem.prototype.setUnselected = function()
{
	var selectedItem = document.getElementById("item_" + this.name);
	if (selectedItem != null)
	{
		selectedItem.className = "menuitem";
	}
	var selectedSub = document.getElementById("sub_" + this.name);
	if (selectedSub != null)
	{
		selectedSub.className = "subfolder";
	}
}



