jQuery.fn.slideshow = function(options) {
var settings = {
timeout: '2000',
type: 'sequence'
}
if(options)
jQuery.extend(settings, options);
this.css('position', 'relative');
var slides = this.find('li').get();
for ( var i = 0; i < slides.length; i++ ) {
jQuery(slides[i]).css('zIndex', slides.length - i).css('position', 'absolute').css('top', '0').css('left', '0');
}
if ( settings.type == 'sequence' ) {
setTimeout(function(){
jQuery.slideshow.next(slides, settings, 1, 0);
}, settings.timeout);
}
else if ( settings.type == 'random' ) {
setTimeout(function(){
do { current = Math.floor ( Math.random ( ) * ( slides.length ) ); } while ( current == 0 )
jQuery.slideshow.next(slides, settings, current, 0);
}, settings.timeout);
}
else {
alert('type must either be \'sequence\' or \'random\'');
}
};
jQuery.slideshow = function() {}
jQuery.slideshow.next = function (slides, settings, current, last) {
for (var i = 0; i < slides.length; i++) {
jQuery(slides[i]).css('display', 'none');
}
jQuery(slides[last]).css('display', 'block').css('zIndex', '0');
jQuery(slides[current]).css('zIndex', '1').fadeIn('slow');
if ( settings.type == 'sequence' ) {
if ( ( current + 1 ) < slides.length ) {
current = current + 1;
last = current - 1;
}
else {
current = 0;
last = slides.length - 1;
}
}
else if ( settings.type == 'random' ) {
last = current;
while ( current == last ) {
current = Math.floor ( Math.random ( ) * ( slides.length ) );
}
}
else {
alert('type must either be \'sequence\' or \'random\'');
}
setTimeout((function(){jQuery.slideshow.next(slides, settings, current, last);}), settings.timeout);
}

