var Menu =
{
	Animating : false,
	Boxes:	Array,
	
	initialize:	function(id){
		var rules 	= Array;
		var i		= 1;
		while($(id+i) != undefined){
			rules['#'+id+i+' span'] = function(el){
										el.onclick = function(){
											if(Menu.readCookie('menuVisible') != this.parentNode.id && Menu.Animating == false)
											{
												Menu.displayBox(this.parentNode.id);						
											}
										}		
									};
			Menu.Boxes[i]	=	id+i;
			i++;
		}	
		Behaviour.register(rules);
		Behaviour.apply();		
		Menu.displayBox(Menu.readCookie('menuVisible'),0.2);
	},
	
	
	displayBox : function(id,animate){
		if(Menu.Animating == false && $(id) != undefined)
		{
			Menu.Animating = true;
			Menu.hideBoxesAnimated(id);
			if(animate != false ){
				if(animate != undefined){
					animationDuration = animate;	
				}else{
					animationDuration = 0.4;
				}
			}else{
				animationDuration = 0;
			}
			new Effect.BlindDown(id+'-body', 
										{
											duration:animationDuration,
											afterFinish: Menu.displayBoxDone
										}
								);
			Menu.setCookie('menuVisible',id, 365);
			Element.removeClassName(id, 'invisible');
		}	
	},	
	
	displayBoxDone : function(){			
		Menu.Animating = false;
	},

	hideBoxesAnimated : function(exception)
	{
		var i =1;
		while($(Menu.Boxes[i]) != undefined){
			if(Menu.Boxes[i] != exception)
			{
				new Effect.BlindUp(Menu.Boxes[i]+'-body', 
								   			{
												duration:0.4
											}
									);
				Element.addClassName(Menu.Boxes[i]+'span', 'invisible');
			}
			i++;
		}
	},
	
	
	readCookie: function(name) {
		var needle = name + "=";
		var cookieArray = document.cookie.split(';');
		for(var i=0;i < cookieArray.length;i++) {
			var pair = cookieArray[i];
			while (pair.charAt(0)==' ') {
				pair = pair.substring(1, pair.length);
			}
			if (pair.indexOf(needle) == 0) {
				return pair.substring(needle.length, pair.length);
			}
		}
		return null;
	},
	
	
	setCookie: function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = ";expires="+date.toGMTString();
		} else {
			expires = "";
		}
		document.cookie = name+"="+value+expires+";path=/";
	}
}