jQuery.fn.slideshow = function(options) {
	var settings = {
		timeout: '5000',
		type: 'random'
	};
	if(options)
		jQuery.extend(settings, options);
	
	var current = 1;
	var last = 0;
	var currentImage = 0;
	var timer = '';
	var first = true;
	
	var change = function () {
	    var imageLinksrc = jQuery(imageLinks[currentImage]).attr('href');
	    currentImage = (currentImage + 1) % imageLinks.length;
	    jQuery(slides[current]).attr('src',imageLinksrc).load(swapimage);
	}

	var swapimage = function() {
	    //	    jQuery.each(slides, function(i){
	    //		    jQuery(slides[i]).hide()
	    //		});
	    if (first) {
		jQuery(slides[current]).css('zIndex', '1').fadeIn('slow');
		first = false;
	    } else {
	    	var prevSlide = slides[last];
	    	jQuery(slides[last]).show().css('zIndex', '0');
	    	jQuery(slides[current]).css('zIndex', '1').fadeIn('slow',function(){
		    jQuery(prevSlide).hide();
		});
	    }
	    last = current;
	    current = (current + 1) % slides.length;
	    timer = setTimeout(change, settings.timeout);
	}

	var randomize = function( array) {
	    var i = array.length;
	    if ( i == 0 ) return false;
	    while ( --i ) {
		var j = Math.floor( Math.random() * ( i + 1 ) );
		var temp = array[i];
		array[i] = array[j];
		array[j] = temp;

	    }
	}
	
	
	this.css('position', 'relative');
	var slides = this.find('img').get();
	var imageLinks = this.find('a').get();
	jQuery.each(slides, function(i){
		jQuery(slides[i]).css('zIndex', slides.length - i).css('position', 'absolute').css('top', '0').css('left', '0');
	});
//	jQuery.each(imageLinks, function(i){
//		jQuery(imageLinks[i]).hide();
//	});

	if (settings.type == 'random')
	    randomize(imageLinks);
	change();

	return this;
};