        /*
        Script: imageMenu.js

        Authors:
	        Sam Birch

        License:
	        MIT-style license.

        */
        var ImageMenu = new Class({
        	
	        initialize: function(myElements,options){
		        options = Object.extend({
			        onClick: Class.empty,
			        start: -1,
			        openWidth: 0,
			        smallWidth: 0,
			        itemWidth: 0,
			        selected: -1,
			        open: -1,
			        transition: Fx.Transitions.quadOut
		        }, options || {});
        		
		        this.myElements = myElements;
		        this.options = options;
        		
		        options.itemWidth = myElements[0].getStyle('width').toInt();
		        options.smallWidth = Math.round(((options.itemWidth*myElements.length)-options.openWidth)/(myElements.length-1));
        		
		        var fx = new Fx.Elements(myElements, {wait: false, duration: 400, transition: options.transition});
        		
		        myElements.each(function(el, i){
			        el.addEvent('mouseover', function(e){
				        e = new Event(e).stop();
				        el.show();
			        });
        			
			        el.addEvent('click', function(e){
				        el.select();
			        });
        			
			        el.addEvent('mouseout', function(e){
				        e = new Event(e).stop();
				        el.hide();
			        });
        			
			        el.show = function(){
				        var obj = {};
				        obj[i] = {'width': [el.getStyle('width').toInt(), options.openWidth]};
				        myElements.each(function(other, j){
					        if (other != el){
						        var w = other.getStyle('width').toInt();
						        if (w != options.smallWidth) obj[j] = {'width': [w, options.smallWidth]};
					        }
				        });
				        fx.start(obj);
			        };
        			
			        el.hide = function(){
				        var obj = {};
				        if(options.selected == -1){
					        myElements.each(function(el,i){
						        obj[i] = {'width': [el.getStyle('width').toInt(), options.itemWidth]};	
					        });
				        }else{
					        myElements.each(function(el,i){
						        if(i != options.selected){
							        var w = el.getStyle('width').toInt();
							        if(w != options.smallWidth){obj[i] = {'width': [w, options.smallWidth]}};
						        }else{
							        obj[i] = {'width': [el.getStyle('width').toInt(), options.openWidth]};
						        }
					        });
				        }
				        fx.start(obj);
			        };
        			
			        el.select = function(){
				        if(options.selected == i){options.selected = -1}else{options.selected = i}
				        options.onClick(options.selected,options.open);
				        options.open = options.selected;
			        };
		        });
        		
		        if(options.start != -1){
			        myElements[options.start].show();
			        myElements[options.start].select();
		        }
	        },
        	
	        reset: function(){
		        this.options.selected = -1;
		        this.options.open = -1;
		        this.myElements.each(function(el, i){
			        el.hide();
		        });
	        }
        	
        });