
/* - imageMenu.js - */
// http://www.hynor.no/portal_javascripts/imageMenu.js?original=1
var ImageMenu=new Class({getOptions: function(){return{onOpen:false,onClose:Class.empty,openHeight:127,transition:Fx.Transitions.quadOut,duration:400,open:3,border:1}},initialize: function(elements,options){this.setOptions(this.getOptions(),options);this.elements=$$(elements);this.heights={};this.heights.closed=this.elements[0].getStyle('height').toInt();this.heights.openSelected=this.options.openHeight;this.heights.openOthers=Math.round(((this.heights.closed*this.elements.length)-(this.heights.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)}.bind(this));el.addEvent('mouseleave', function(e){new Event(e).stop();this.reset(this.options.open)}.bind(this));var obj=this}.bind(this));if(this.options.open){if($type(this.options.open)=='number'){this.reset(this.options.open)}else{this.elements.each(function(el,i){if(el.id==this.options.open){this.reset(i)}},this)}}},reset: function(num){if($type(num)=='number'){var height=this.heights.openOthers;if(num+1==this.elements.length){height+=this.options.border}}else{var height=this.heights.closed}
var obj={};this.elements.each(function(el,i){var w=height;if(i==this.elements.length-1){w=height+5}
obj[i]={'height':w}}.bind(this));if($type(num)=='number'){obj[num]={'height':this.heights.openSelected}}
this.fx.start(obj)}});ImageMenu.implement(new Options);ImageMenu.implement(new Events);
