(function($) {
	
	function ImageFader(options, container) {
		this.defaults = {
			images: new Array()
		};
		$.extend(this.defaults, options);
		
		this.timer = null;
		
		this.main = container;
		
		this.image1 = this.main.children("img");
		this.image2 = $("<img src=\"" + $.siteUrl() + "assets/image/blank.gif\" alt=\"\" />");
		this.main.append(this.image2);
		
		this.image2.hide();
		this.main
			.css("position", "relative")
			.css("width", "570px")
			.css('height', "330px")
			.css('text-align', 'center');
		this.main.children("img")
			.css("position", "absolute")
			.css("top", "0px")
			.css("left", "0px");
		
		this.counter = 0;
		
		this.timer = setTimeout('$.imagefader.instance.update();', 3500);
	}
	
	$.extend(ImageFader.prototype, {
		update: function() {
			this.counter++;
			
			if (this.counter >= this.defaults.images.length)
			{
				this.counter = 0;
			}
			
			this.loadImage(this.defaults.images[this.counter]);
			
			if (this.timer != null) {
				clearTimeout(this.timer);
			}
			this.timer = setTimeout('$.imagefader.instance.update();', 4500);
		},
		loadImage: function(imageURL) {
			var image = new Image();
			$(image).load(function() {
				$.imagefader.instance.showImage(image);
			});
			image.src = imageURL;
		},
		showImage: function(image) {
			this.image2.attr("src", image.src);
			var activeImage = this.image1;
			this.image1 = this.image2;
			this.image2 = activeImage;
			
			this.image1.fadeIn(1000);
			this.image2.fadeOut(1000);
		}
	});
	
	$.imagefader = function(options)
	{
		$.imagefader.instance = new ImageFader(options, $("#imagefader"));
	}
})(jQuery);
