var MorphList=new Class({Implements:[Events,Options],options:{bg:{'class':'background','html':'<div class="inner"></div>'},morph:{'link':'cancel'}},initialize:function(menu,options){var that=this;this.setOptions(options);this.menu=$(menu);this.menuitems=this.menu.getChildren();this.menuitems.addEvents({mouseenter:function(){that.morphTo(this)},mouseleave:function(){that.morphTo(that.current)},click:function(ev){that.click(ev,this)}});this.bg=new Element('li',this.options.bg).inject(this.menu).fade('hide').set('morph',this.options.morph);this.setCurrent(this.menu.getElement('.current'))},click:function(ev,item){this.setCurrent(item,true);this.fireEvent('click',[ev,item])},setCurrent:function(el,effect){if(el&&!this.current){this.bg.set('styles',{left:el.offsetLeft,width:el.offsetWidth,height:el.offsetHeight,top:el.offsetTop});(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(!this.current)return false;this.bg.morph({left:to.offsetLeft,top:to.offsetTop,width:to.offsetWidth,height:to.offsetHeight});this.fireEvent('morph',to);return this}});