/**
* Author: Alexadner Gavazov
* Created date: 2007-09-11
*/

function switchClassOf(elementID, css1, css2)
{
	var el = document.getElementById(elementID);
	if (el.className == css1)
	{
		el.className = css2;
	}
	else
	{
		el.className = css1;
	}
}

var listMenu = {
	element: '',

	init: function(element)
	{
		this.element = element;

		var ulTags = this.element.getElementsByTagName('ul');
		for(var i = 0; i < ulTags.length; i++)
		{
			ulTags[i].parentNode.getElementsByTagName('span')[0].onclick = function()
			{
				var momentNode = this.parentNode.getElementsByTagName('ul')[0];
				var display = (momentNode.style.display == '') ? 'none' : '';

				// Hide other nodes
				//var parentNode = momentNode.parentNode.parentNode.getElementsByTagName('ul');
				//for(var i2 = 0; i2 < parentNode.length; i2++)
				//{
				//	parentNode[i2].style.display = 'none';
				//}
				// Change class names of other nodes (span)
				var parentNode = momentNode.parentNode.parentNode.getElementsByTagName('span');
				for(var i2 = 0; i2 < parentNode.length; i2++)
				{
					parentNode[i2].className = 'none';
				}

				momentNode.style.display = display;

				listMenu.setClassNmaes();
				this.className = 'active' + display;
			}

			ulTags[i].parentNode.getElementsByTagName('span')[0].innerHTML += '<span>&nbsp;</span>';

			ulTags[i].style.display = 'none';
		}

		this.element.className = element.className;
		this.openMneu(element);
	},

	initByClassName: function(element, classEqually)
	{
		var ulTags = element.getElementsByTagName('ul');
		for(var i = 0; i < ulTags.length; i++)
		{
			if(ulTags[i].className == classEqually)
			{
				this.init(ulTags[i]);
			}
		}
	},

	setClassNmaes: function()
	{
		var ulTags = this.element.getElementsByTagName('ul');
		for(var i = 0; i < ulTags.length; i++)
		{
			var span = ulTags[i].parentNode.getElementsByTagName('span')[0];
			var momentNode = span.parentNode.getElementsByTagName('ul')[0];
			var display = (momentNode.style.display == '') ? '' : 'none';

			span.className = 'active' + display;
		}
	},

	openMneu: function(element, recursion)
	{
		if(!recursion)
		{
			var allElements = this.element.getElementsByTagName('li');

			for(var i = 0; i < allElements.length; i++)
			{
				if(allElements[i].className == 'open_me')
				{
					this.elementI = 0;
					this.openMneu(allElements[i], true);
				}
			}
		}
		else if(element)
		{
			if(this.element.className != element.className)
			{
				element.style.display = '';

				if(this.elementI < 0)
				{
					element.parentNode.getElementsByTagName('span')[0].className = 'active';
				}

				this.elementI++;
				this.openMneu(element.parentNode, true);
			}
		}
	}
}