(function($) {
 
	$.fn.rotateBanner = function(settings)
	{
		$(this).data('banner-data', settings.data)
			.data('index', settings.index)
			.data('current-index', -1);

		var owner = $(this);

		$('a', $(settings.index)).each(function(i) {
			$(this).data('owner', owner)
				.click(function () { jQuery.doTimeout('bainterval'); advanceBanner($(this).data('owner'), i);
				});
		});

		advanceBanner(this);

		return this;
	};

	function advanceBanner(target, current)
	{
		var data = target.data('banner-data');
		var idx = target.data('current-index');
		var nex = idx+1;
		if (current >= 0)
		{
			nex = current;
		}
		if (nex >= data.length)
			nex = 0;

		// remove last element
		if (data[idx])
		{
			if (data[idx].type == 'flash')
			{
				swfobject.removeSWF('banner-flash');
			}
			else
			{
			}
		}

		// show current element
		if (data[nex].type == 'flash')
		{
			target.html('<div id="banner-flash"></div>');
			loadFlashContent('banner-flash', data[nex]);
		}
		else
		{
			target.html(data[nex].markup);
		}

		$('a', $(target.data('index'))).each(function(i) {
			if (i == nex)
			{
				$(this).addClass('active');
			}
			else
			{
				$(this).removeClass('active');
			}
		});

		target.data('current-index', nex)
			.doTimeout('bainterval', 10000, function(){
			advanceBanner(this);
		});
	}

	function loadFlashContent(id, data)
	{
		if (swfobject.hasFlashPlayerVersion("9"))
		{
			var att = { data: data.filename, width: data.width, height: data.height };
			var par = { menu:"false" };
			var myFlashContent = swfobject.createSWF(att, par, id);
		}
	}

})(jQuery);
