(function($) {
	$.fn.backgroundSlideShow = function(count, options) {
		var settings = {
			"path"     : "/images/",
			"ext"      : ".jpg",
			"interval" : 10000,
			"shuffle"  : true
		};
		return this.each(function() {
			if (options) $.extend(settings, options);
			var preloadArr = new Array();
			var i;
			/* preload images */
			for (var i = 0; i < count; ++i) {
				preloadArr[i] = new Image();
				preloadArr[i].src = settings.path + i + settings.ext;
			}
			/* shuffle */
			if (settings.shuffle) {
				var len = preloadArr.length;
				for (var i = 0; i < len; ++i) {
					var p = parseInt(Math.random()*len);
					var t = preloadArr[i];
					preloadArr[i] = preloadArr[p];
					preloadArr[p] = t;
				}
			}
			var currImg = 0;
			var intID = setInterval(changeImg, settings.interval);
			/* image rotator */
			var elm = $(this);
			function changeImg() {
				var src = preloadArr[currImg++ % preloadArr.length].src;
				elm.parent().css("backgroundImage", "url(" + src + ")");
				elm.fadeOut(500, function(){
					elm.css("backgroundImage", "url(" + src + ")");
					elm.fadeIn(500);
				});
			}
			changeImg();
		});
	};
})(jQuery);

