Array.implement({ invoke: function(fn, args){ var result = []; for ( var i=0, l=this.length; i < l; i++ ) { if(this[i] && this[i][fn]) { result.push( args ? this[i][fn].pass(args, this[i])() : this[i][fn]() ); } } return result; } } ); var Slideshow = new Class(); /* {Implements: [Events]} */ Slideshow.implement({ initialize: function(el) { this.el = $(el); this.loadimages(); this.images = el.getElements("img"); //this.images.invoke("fade", "hide"); this.index = -1; this.delay = 4000; return this; }, loadimages: function() { if ( SlideshowImages && SlideshowImages[this.el.id] && SlideshowImages[this.el.id].length ) { var ssi = SlideshowImages[this.el.id]; for(var i=0; i= this.images.length) { this.index = 0; toslide = $(this.images[0]); } else { this.index = this.index+1; toslide = $(this.images[this.index]); } if (fromslide) { fromslide.fade("out"); } if (toslide) { toslide.fade("in"); } } });