var RandomBackground = function(id, images, interval) {
	this.initialize(id, images, interval);
}

RandomBackground.prototype = {
	node1: null,
	node2: null,
	node3: null,
	index: 0,
	images: [],
	periodicExec: null,
	
	initialize: function(id, images, interval) {
		this.node1 = jQuery('#' + id + '1');
		this.node2 = jQuery('#' + id + '2');
		this.node3 = jQuery('#' + id + '3');
		this.index = 0;
		this.images = images;
		if (images.length > 2) {
			this.images = jQuery.shuffle(this.images);
		}
		
		this.node3.hide();
		if (this.images.length > 0) {
			this.node2.css('background-image', "url('" + this.images[this.index++] + "')");
			if (this.images.length > 1) {
				this.node1.css('background-image', "url('" + this.images[this.index++] + "')");
				window.setInterval(jQuery.proxy(this.update, this), (interval ? interval : 10) * 1000);
			}
		}
	},

	update: function() {
		if (this.images.length > 2) {
			this.node3.hide();
			this.node3.css('background-image', this.node2.css('background-image'));
			this.node3.show();
			this.node2.css('background-image', this.node1.css('background-image'));
			this.node1.css('background-image', "url('" + this.images[this.index++] + "')");
			this.node3.fadeOut(1500);
			
			if (this.index >= this.images.length) {
				var tmp = this.images[this.images.length-1];
				this.index = 0;
				this.images = jQuery.shuffle(this.images);
				if (this.images[0] == tmp) {
					this.images[0] = this.images[this.images.length-1];
					this.images[this.images.length-1] = tmp;
				}
			}
		}
		else {
			this.node2.fadeTo(1500, Math.abs(1 - this.node2.css('opacity')));
		}
	}
}
