Element.implement({'hasEvent': function(eventType) {var myEvents = this.retrieve('events');return (myEvents && myEvents[eventType]);}});
Element.implement({'selectAll': function(){this.getChildren().each(function(item,i){item.selected = true})}});
Element.implement({'sort': function(){this.getChildren().each(function(item,i){this.getChildren().each(function(item2,j){if (j > 0 && item2.text < item.text) item2.inject(item,"before")})}.bind(this))}});
Element.implement({'moveSelected':function(destination,autoSort){if(destination = $(destination)){/*if(!destination.hasEvent("onItemsMoved")){destination.addEvent("onItemsMoved",function(){this.sort();})};*/this.getSelected().each(function(el) {el.inject(destination);el.selected=false});/*destination.fireEvent('onItemsMoved',this,1);*/if(autoSort) destination.sort.delay(1,destination);}}});
Element.implement({"hasEvent": function(eventType,fn) {var myEvents = this.retrieve('events');return myEvents && myEvents[eventType] && (fn == undefined || myEvents[eventType].keys.contains(fn));}});

