var menu_c = function()
{
	this.table_a = new Array();
};

/**/

menu_c.prototype.getPageIdById = function(id_s, separator_s)
{
	var part_a = id_s.split(separator_s);

	return part_a[1];
};

menu_c.prototype.getLevelById = function(id_s, separator_s)
{
	var part_a = id_s.split(separator_s);

	return part_a[0];
};

menu_c.prototype.getLevelByPageId = function(content_a, page_id_i, separator_s)
{
	for (var index_s in content_a)
	{
		var current_page_id_i = this.getPageIdById(index_s, separator_s);

		if (current_page_id_i == page_id_i)
		{
			return this.getLevelById(index_s, separator_s);
		}
	}
};

/**/

menu_c.prototype.setPrivateLevelExpand = function(content_a, start_id_s, level_i, separator_s)
{
	var started_b = false;

	for (var index_s in content_a)
	{
		if (started_b)
		{
			var current_level_i = this.getLevelById(index_s, separator_s);

			if (current_level_i == level_i)
			{
				content_a[index_s].style.display = '';
			}
			else if (current_level_i < level_i)
			{
				return;
			}
		}

		started_b = started_b ? started_b : (index_s == start_id_s);
	}
};

/**/

menu_c.prototype.setTableArray = function(prefix_s, suffix_s)
{
	var table_a = document.getElementsByTagName('table');

	for (var i_i = 0; i_i < table_a.length; i_i++)
	{
		var id_s = (typeof table_a[i_i].id != 'undefined') ? table_a[i_i].id : '';

		if (id_s.substr(0, prefix_s.length) == prefix_s)
		{
			if (id_s.substr((id_s.length - suffix_s.length), suffix_s.length) == suffix_s)
			{
				var index_s = id_s.substring(prefix_s.length, (id_s.length - suffix_s.length));

				this.table_a[index_s] = table_a[i_i];
			}
		}
	}
};

menu_c.prototype.setRootExpand = function(content_a, separator_s)
{
	for (var index_s in content_a)
	{
		var level_i = this.getLevelById(index_s, separator_s);

		content_a[index_s].style.display = (level_i == 1) ? '' : 'none';
	}
};

menu_c.prototype.setChildExpand = function(content_a, page_id_i, separator_s)
{
	var level_i = this.getLevelByPageId(content_a, page_id_i, separator_s);
	var index_s = level_i + separator_s + page_id_i;

	this.setPrivateLevelExpand(content_a, index_s, Number(level_i) + 1, separator_s);
};

menu_c.prototype.setLevelExpandByPageId = function(content_a, page_id_i, separator_s)
{
	var level_i = this.getLevelByPageId(content_a, page_id_i, separator_s);

	if (typeof level_i != 'undefined')
	{
		var parent_level_i = level_i;
		var parent_id_s = '';

		for (var index_s in content_a)
		{
			var current_level_i = this.getLevelById(index_s, separator_s);
			var current_page_id_i = this.getPageIdById(index_s, separator_s);

			if (current_level_i < level_i)
			{
				parent_level_i = current_level_i;
				parent_id_s = index_s;
			}

			if (current_page_id_i == page_id_i)
			{
				if (parent_id_s)
				{
					var parent_page_id_i = this.getPageIdById(parent_id_s, separator_s);

					this.setPrivateLevelExpand(content_a, parent_id_s, level_i, separator_s);
					this.setLevelExpandByPageId(content_a, parent_page_id_i, separator_s);
				}

				return;
			}
		}
	}
};

/**/

menu_c.prototype.setItemPrefix = function(prefix_s)
{
	this.item_prefix_s = prefix_s;
};

menu_c.prototype.setItemSeparator = function(separator_s)
{
	this.item_separator_s = separator_s;
};

menu_c.prototype.setItemSuffix = function(suffix_s)
{
	this.item_suffix_s = suffix_s;
};

menu_c.prototype.setPageId = function(id_i)
{
	this.page_id_i = id_i;
};

menu_c.prototype.setMenu = function()
{
	this.setTableArray(this.item_prefix_s, this.item_suffix_s);

	this.setRootExpand(this.table_a, this.item_separator_s);
	this.setChildExpand(this.table_a, this.page_id_i, this.item_separator_s);

	this.setLevelExpandByPageId(this.table_a, this.page_id_i, this.item_separator_s);
};
