var MainMenuHack = Class.create(
{
	firstActiveIndex: undefined,
	currentActiveIndex: undefined,
	menuElements: new Array(),
	
	initialize: function(menuContainerId, menuElements)
	{
		if($(menuContainerId) && menuElements.length > 0)
		{
			var self = this;
			this.menuElements = $(menuContainerId).childElements();
			this.menuElements.each(function(menuItem, index)
			{
				self.setObserver(menuItem);
				if($(menuItem).hasClassName('active'))
				{
					self.firstActiveIndex = index;
					self.currentActiveIndex = index;
				}
			});
			
			if(typeof this.firstActiveIndex != 'undefined')
			{
				$(this.menuElements[this.firstActiveIndex]).setStyle({'fontWeight':'bold','color':'#B13026'});
			}
		}
	},
	
	setObserver: function(element)
	{
		var self = this;
		$(element).observe('mouseover', function(ev)
		{
			//if(typeof self.firstActiveIndex != 'undefined')
			//{
				var index = self.menuElements.indexOf(this);
				if(index != self.currentActiveIndex)
				{
					if($(this).hasClassName('parent'))
					{
						self.changeMenu(this);
					}
				}
			//}
		});
		$(element).observe('mouseout', function(ev)
		{
			if($(ev.relatedTarget))
			{
        		if($(ev.relatedTarget).descendantOf(this) == false)
	        	{
	            	if($(ev.relatedTarget) != $(this))
	               	{
	               		self.reset();
	               	}
	            }				
			}	
		});

	},
	
	changeMenu: function(newElement)
	{
		var self = this;
		var oldElement = this.menuElements[self.currentActiveIndex];
		this.deActivateMenuItem(oldElement);
		this.activateMenuItem(newElement);
		
	},
	
	deActivateMenuItem: function(elem)
	{
		if($(elem))
		{
			if($(elem).hasClassName('parent'))
				if($($(elem).getElementsByTagName('ul')[0]))
					$($(elem).getElementsByTagName('ul')[0]).setStyle({'left':'-9999px'});
				
			$($(elem).getElementsByTagName('span')[0]).setStyle({display:'none'});
			
			if($(elem).hasClassName('parent-active'))
				$(elem).removeClassName('parent-active');			
		}
	},
	
	activateMenuItem: function(elem)
	{
		if($(elem))
		{
			if($(elem).hasClassName('first'))
				var left = '0px';
			else
				var left = '-8px';
				
			if($(elem).getElementsByTagName('ul')[0])
			$($(elem).getElementsByTagName('ul')[0]).setStyle(
			{
				'left' : left
			});
			
			if($(elem).getElementsByTagName('span')[0])
				$($(elem).getElementsByTagName('span')[0]).setStyle({display:'block'});
			this.currentActiveIndex = this.menuElements.indexOf(elem);
		}

	},
	
	reset: function()
	{
		var self = this;
		if(typeof this.currentActiveIndex == 'number')
		{
			var currentElement = this.menuElements[self.currentActiveIndex];
			this.deActivateMenuItem(currentElement);
		}
		if(typeof this.firstActiveIndex != 'undefined')
		{
			var firstElement = $(self.menuElements[self.firstActiveIndex]);
			this.activateMenuItem(firstElement);
			if($(firstElement))
			{
				$(firstElement).addClassName('parent-active');
		
				if(!$(firstElement).hasClassName('parent'))
					if($(firstElement).getElementsByTagName('span')[0])
						$($(firstElement).getElementsByTagName('span')[0]).setStyle({display:'none'});
		
				this.currentActiveIndex = this.firstActiveIndex;
			}			
		}
		else
		{
			this.currentActiveIndex = 99;
		}	
	}
});
/*Event.observe(window, 'load', function()
{
	var HalogenMenuHack = new MainMenuHack('main-menu', $$('#main-menu li.item'));
});*/