function debug(variable)
{
	console.debug(variable);
}

var Menu = new function()
{

	this.items = new Array();
	this.openItems = new Array();
	
	this.changeBg = function(el)
	{
		el = $(el);
		if (el) 
		{
			if (el.hasClassName("togglerMenuUp")) 
			{
				el.removeClassName("togglerMenuUp");
				el.addClassName("togglerMenuDown")
			}
			else 
			{
				el.removeClassName("togglerMenuDown");
				el.addClassName("togglerMenuUp")
			}
		}
		
	}
	
	this.open = function(elID, menuOpener)
	{
		this.changeBg(menuOpener);
		this.closeOpenItems();
		if (this.isOpened(elID) == false && this.isOpenInProgress(elID) == false) 
		{
			this.doOpen(elID);
		}
	}
	
	this.setItemFlag = function(elID, key, value)
	{
		if (!Menu.items[elID]) 
		{
			Menu.items[elID] = {};
		}
		Menu.items[elID][key] = value;
	}
	
	this.isOpened = function(elID)
	{
		var item = this.items[elID]
		if (item && item.opened != undefined && item.opened == true) 
		{
			return true;
		}
		return false;
	}
	
	this.isOpenInProgress = function(elID)
	{
		var item = this.items[elID]
		if (item && item.openInProgress != undefined && item.openInProgress == true) 
		{
			return true;
		}
		return false;
	}
	
	this.closeOpenItems = function()
	{
		var arr = new Array();
		if (this.openItems.length > 0) 
		{
			var val, item;
			for (i = 0; i < this.openItems.length; i++) 
			{
				val = this.openItems[i];
				this.changeBg(val)
				this.doClose(val);
			}
		}
		this.openItems = new Array();
	}
	
	this.doOpen = function(elID)
	{
		this.setItemFlag(elID, "openInProgress", true);
		Effect.BlindDown(elID, 
		{
			delay: 0,
			duration: 0.5,
			afterFinish: function(p)
			{
				var elID = p.element.id;
				Menu.setItemFlag(elID, "opened", true);
				Menu.setItemFlag(elID, "openInProgress", false);
				Menu.closeOpenItems();
				Menu.openItems.push(elID);
			}
		});
	}
	
	this.doClose = function(elID)
	{
		Effect.BlindUp(elID, 
		{
			delay: 0,
			duration: 0.5,
			afterFinish: function(p)
			{
				Menu.setItemFlag(p.element.id, "opened", false);
				Menu.setItemFlag(p.element.id, "openInProgress", false);
			}
		});
	}
	
	
}
