/*
* HYPERBGROTATOR
*/

var HyperBgRotator = function(oSettings) {
	
	if (!oSettings) {
		oSettings = {};
	}
	var oConfig = $.extend({}, HyperBgRotator.s_oDefaults, {
		images: [],
		interval: 5000,
		animationDuration: 2000
	}, oSettings);

	this.each(function() {
		
		var dThis = this;
		
		dThis.m_oOptions = oConfig;
		
		dThis._Constructor = function() {
			var jNode = $(this);
			var jTopNode = $('<div/>');
			jNode.prepend(jTopNode);
			var iCurrentBg = 0;
			jTopNode.css({
				width: '100%',
				height: '100%',
				background: 'transparent 0 0 no-repeat',
				position: 'absolute',
				top: 0,
				left: 0,
				zIndex: 1
			});
			var fChangeBackground = function() {
				iCurrentBg = (iCurrentBg + 1) % dThis.m_oOptions.images.length;
				jTopNode.css({
					'background-image': 'url(\'' + dThis.m_oOptions.images[iCurrentBg] + '\')',
					'opacity': 0
				}).animate({
					opacity: 1
				}, {
					duration: dThis.m_oOptions.animationDuration,
					complete: function() {
						$(this).parent().css('background-image', $(this).css('background-image'));
						$(this).css('opacity', 0);
					}
				});
				setTimeout(fChangeBackground, dThis.m_oOptions.interval + dThis.m_oOptions.animationDuration);
			};
			setTimeout(fChangeBackground, dThis.m_oOptions.interval + dThis.m_oOptions.animationDuration);
		};
		
		dThis._Constructor();
		
	});

	return this;

};

(function($) {
	$.fn.HyperBgRotator = HyperBgRotator;
})(jQuery);

