
jQuery.fn.slides = function(opts) {
	var settings = jQuery.extend({
			mousePause: true,
			speed: 5000
			},
			opts);
	
	var context = this;
	$(this).css({
		position: "relative"
	});

	var img = $(context).find('img:first')[0];
	$(img).css({
		position: "absolute",
		top: "0px",
		left: "0px"
	});	

	$(this).css({
		height: img.clientHeight + "px"
	});


	this._slides = {}
	this._slides.slides = jQuery.makeArray(settings.slides);
	this._slides.index = 0;
	this._slides.speed = settings.speed;
	this._slides.img = img;

	var updatefn = function() {
		var slides = context._slides;
		slides.index++;
		if(slides.index >= slides.slides.length)
			slides.index = 0;
		//$(context).fadeOut(1);
		$(context).css({
			backgroundImage: "url("+slides.slides[slides.index]+")",
			backgroundPosition: "top left",
			backgroundRepeat: "no-repeat",
			position: "relative"
		});
		//$(context).fadeIn(1);
		
		var bumpfn = function() {
			$(slides.img).css({
				position: "absolute",
				top: "0px",
				left: "0px"
			});
			slides.img.src = slides.slides[slides.index];
			$(slides.img).fadeIn(1);
			$(context).oneTime(slides.speed, "slides", slides.fn);
		}

		$(img).fadeTo(slides.speed, 0.01, bumpfn);

	}

	/* start loading the images */
	jQuery.each(this._slides, function(slide) {
		var i = new Image(1,1);
		i.src = slide;
		});

	this._slides.fn = updatefn;

	/* start the slideshow */
	$(this).oneTime(settings.speed, "slides", updatefn);
}
