Fx.MorphList=new Class({Implements:[Events,Options],options:{bg:{'class':'background',html:'<div class="inner"></div>',morph:{link:'cancel'}}},initialize:function(element,options){var self=this;this.setOptions(options);this.element=$(element);this.items=this.element.getChildren().addEvents({mouseenter:function(){self.morphTo(this);},mouseleave:function(){self.morphTo(self.current);},click:function(ev){self.onClick(ev,this);}});this.bg=new Element('li',this.options.bg).inject(this.element).fade('hide');this.setCurrent(this.element.getElement('.current'));},onClick:function(ev,item){this.setCurrent(item,true).fireEvent('click',[ev,item]);},setCurrent:function(el,effect){if(el&&!this.current){this.bg.set('styles',el.getCoordinates(this.element));(effect)?this.bg.fade('in'):this.bg.fade('show');}
if(this.current)this.current.removeClass('current');if(el)this.current=el.addClass('current');return this;},morphTo:function(to){if(to){var c=to.getCoordinates(this.element);delete c['right'];delete c['bottom'];this.bg.morph(c);this.fireEvent('morph',to);}
return this;}});