/**************************************************************

	Script	: Image Menu
	Version	: 2.2
	Authors	: Samuel Birch
	Desc	: 
	Licence	: Open Source MIT Licence

**************************************************************/

var ImageMenu = new Class({
	
	getOptions: function(){
		return {
			onOpen: false,
			onClose: Class.empty,
			openWidth: 200,
			transition: Fx.Transitions.quadOut,
			duration: 400,
			open: 0,
			border: 0
		};
	},

	initialize: function(elements, options){
		this.setOptions(this.getOptions(), options);
		this.elements = $$(elements);
		this.widths = {};
		this.widths.closed = this.elements[0].getStyle('width').toInt();
		this.widths.openSelected = this.options.openWidth;
		this.widths.openOthers = Math.round(((this.widths.closed*this.elements.length) - (this.widths.openSelected+this.options.border)) / (this.elements.length-1))
		this.fx = new Fx.Elements(this.elements, {wait: false, duration: this.options.duration, transition: this.options.transition});
		
		this.elements.each(function(el,i)
		{
			el.addEvent('mouseenter', function(e)
			{
				new Event(e).stop();
				this.reset(i,1);
			}.bind(this));
			
			//el.addEvent('mouseleave', function(e)
			//{
			//	new Event(e).stop();
			//	this.reset(this.options.open,0);
			//}.bind(this));
			
			var obj = this;
			
			//el.addEvent('click', function(e)
			//{
				//if(obj.options.onOpen)
				//{
					//new Event(e).stop();
					//if(obj.options.open == i)
					//{
					//	obj.options.open = null;
					//	obj.options.onClose(this.href, i);
					//}
					//else
					//{
						//obj.options.open = i;
						//obj.options.onOpen(this.href, i);
					//}
				//}
			//})
		}.bind(this));

		//if(this.options.open)
		//{
			if($type(this.options.open) == 'number')
			{
				this.reset(this.options.open,1);
			}
			else
			{
				this.elements.each(function(el,i)
				{
					if(el.id == this.options.open)
					{
						this.reset(i,1);
					}
				},this);
			}
		//}
	},
	
	reset: function(num,reset){
		if(reset==1)
		{
			for(i=0;i<=6;i++)
			{
				document.getElementById("table_id_"+i).style.display='none';
			}
        }

		if($type(num) == 'number')
		{
			var width = this.widths.openOthers;
			if(num+1 == this.elements.length)
			{
				width += this.options.border;
			}
		}
		else
		{
			var width = this.widths.closed;
		}
		
		var obj = {};
		this.elements.each(function(el,i)
		{
			var w = width;
			if(i == this.elements.length-1)
			{
				w = width+5
			}
			obj[i] = {'width': w};
		}.bind(this));
		
		if($type(num) == 'number')
		{
			obj[num] = {'width': this.widths.openSelected};
			if(reset==1)
			{
				document.getElementById("table_id_"+num).style.display='block';
			}
		}
		
		this.fx.start(obj);
	}
	
});

ImageMenu.implement(new Options);
ImageMenu.implement(new Events);


/*************************************************************/
