(function ()
{
	var menus = [];
	window.main_menu = function (anker, area, active_class, passive_class, evt)
	{
		var is_display = false;
		var self = this;
		
		this.toggle = function (flag)
		{
			if (typeof(flag)=='undefined') flag = !is_display;
			anker.className = flag ? active_class : passive_class;
			area.style.display = flag ? '' : 'none';
			is_display = flag;
		}
		
		var _toggle = this.toggle;
		
		this._out = function () {};
		
		(function (ev)
		{
			if (is_display) return false;
			ev.stopPropagation();ev.preventDefault();
			
			for (var i = 0; i < menus.length; i++)
				if (menus[i] != self) menus[i].toggle(0);
			
			self.toggle(1);
		}).attach(evt, anker);
		
		(function (ev)
		{
			if (is_display) self.toggle(0);
		}).attach('click', document).attach('_out', this);
		
		var time;
		(function ()
		{
			clearTimeout(time);
		}).attach('mouseover', area).attach('mouseover', anker);
		
		(function ()
		{
			time = setTimeout(self._out, 2000);
		}).attach('mouseout', area).attach('mouseout', anker);
		
		menus.push(this);
	}
})()
