var imgDummy = new Image();
imgDummy.src = "/img/treelist.down.gif";

function TreeLikeNode()
{
	this.id = 0;
	this.title = "";
	this.href = "";
	this._children = [];
	this.visible = false;
}

TreeLikeNode.prototype.FindSubmenu = function(id)
{
	if (this.id == id)
		return this;
	for (var i = 0; i < this._children.length; i++)
	{
		var node = this._children[i].FindSubmenu(id);
		if (node)
			return node;
	}
	return null;
}

TreeLikeNode.prototype.Render = function(display)
{
	var html = '<div id="tree_node_' + this.id + '" class="treelike" treeid="' + this.id + '">'
	+ '<table cellpadding="0" cellspacing="0" width="100%">'
	+ '<tr>'
		+ '<td style="width:15px">';
	if (this._children.length > 0)
	{
		html += '<div><img src="/img/treelist.' + ((this.visible) ? "down." : "") + 'gif" class="treelikedropicon" onclick="OnTreeLikeDropClick(this)" title="' + ((this.visible) ? "Свернуть" : "Развернуть") + '" /></div>';
	}
	html += '</td>'
		+ '<td><a href="' + this.href + '">' + this.title + '</a></td>'
	+ '</tr>'
	+ '<tr><td colspan="2" style="height:4px"></td></tr>'
	+ '<tr><td></td><td><div style="background:url(img/icon.underline.gray.gif); background-repeat:repeat-x; height:1px"></div></td></tr>'
	+ '</table>'
	+ '<div id="tree_children_' + this.id + '" class="treelike_child"';
	if (this.visible)
		html += ' style="display:block"';
	html += '>';
	for (var i = 0; i < this._children.length; i++)
	{
		html += this._children[i].Render();
	}
	html += '</div>'
	+ '</div>';
	return html;
}

// Класс списка древовидного меню
function TreeLikeMenu()
{
	this._children = [];
}

TreeLikeMenu.prototype.FindSubmenu = function(id)
{
	for (var i = 0; i < this._children.length; i++)
	{
		var node = this._children[i].FindSubmenu(id);
		if (node)
			return node;
	}
	return null;
}

TreeLikeMenu.prototype.Add = function(id, title, href, parentid, visible)
{
	var treenode = new TreeLikeNode();
	treenode.id = id;
	treenode.title = title;
	treenode.href = href;
	if (visible)
		treenode.visible = true;
	var node = this.FindSubmenu(parentid);
	if (node)
		node._children.push(treenode);
	else
		this._children.push(treenode);
}

TreeLikeMenu.prototype.Render = function(container)
{
	var html = "";
	for (var i = 0; i < this._children.length; i++)
	{
		html += this._children[i].Render("block");
	}
	container.innerHTML = html;
}

function OnTreeLikeDropClick(sender)
{
	var div = FindParent(sender, {"attr":"treeid"});
	if (!div)
		return;
	var children_container = document.getElementById("tree_children_" + div.getAttribute("treeid"));
	if (!children_container)
		return;
	if (children_container.style.display == "block")
	{
		children_container.style.display = "none";
		sender.src = sender.src.replace("treelist.down.gif", "treelist.gif");
		sender.title = "Свернуть";
	}
	else
	{
		children_container.style.display = "block";
		sender.src = sender.src.replace("treelist.gif", "treelist.down.gif");
		sender.title = "Развернуть";
	}
}
