var BannerRotator = {
	"banners": null,
	"appVars": null,
	"nextIndex": function(obj) { return obj.appVars.curIndex < obj.banners.length-1 ? obj.appVars.curIndex+1 : 0; },
	"lastIndex": function(obj) { return obj.appVars.curIndex > 0 ? obj.appVars.curIndex-1 : obj.banners.length-1; },
	"start": function(vars) {
		var obj = this;
		var sBanner;
		var qBanner;

		obj.appVars = vars;
		obj.appVars["x"] = 0;
		obj.appVars["curIndex"] = 0;

		sBanner = obj.banners[obj.appVars.curIndex];
		qBanner = obj.banners[obj.nextIndex(obj)];
		
		obj.appVars["bannerA"] = $('<a />')
			.attr({ 'href':sBanner.href,'rel':sBanner.rel, 'id':sBanner.banner_id  })
			.click(function() { return obj.appVars.bannerTrack(this,sBanner.click) })
			.append(
				$('<img />').attr({"alt":sBanner.alt,"src":sBanner.src})
			);

		obj.appVars["bannerB"] = $('<a />')
			.attr({ 'href':qBanner.href,'rel':qBanner.rel,'id':qBanner.banner_id })
			.click(function() { return obj.appVars.bannerTrack(this,qBanner.click) })
			.append(
				$('<img />').attr({"alt":qBanner.alt,"src":qBanner.src})
			);

		var bWrap = $("<div id=\"master0\" />").css({
			"position":"relative",
			"width":obj.appVars.imgWidth+"px",
			"height":obj.appVars.imgHeight+"px",
			"overflow":"hidden"
		});
		var bnrA = $("<div id=\"canvas0_0\" />").css({
			"position":"absolute",
			"display":"none",
			"width":obj.appVars.imgWidth+"px",
			"height":obj.appVars.imgHeight+"px",
			"top":"0",
			"left":"0",
			"opacity":"100",
			"background-color":obj.appVars.bgColor,
			"z-index":"100"
		}).html(obj.appVars.bannerA);
		var bnrB = $("<div id=\"canvas0_1\" />").css({
			"position":"absolute",
			"display":"none",
			"width":obj.appVars.imgWidth+"px",
			"height":obj.appVars.imgHeight+"px",
			"top":"0",
			"left":"0",
			"opacity":"10",
			"background-color":obj.appVars.bgColor,
			"z-index":"90"
		}).html(obj.appVars.bannerB);

		bWrap.append(bnrA).append(bnrB);
		var controls = $("<div id=\"controls\" />").css({
							"position":"absolute",
							"display":"none",
							"bottom":"0",
							"left":"275px",
							"width":"150",
							"z-index":"350",
							"font":"bold 2em Arial,sans-serif"
		}).append("<a id=\"bannerback\"><img src='/images/HomeBannerBack.png' /></a>&nbsp;<a id=\"bannernext\"><img src='/images/HomeBannerForward.png' /></a>");
		$("#"+obj.appVars.container).html(bWrap).append(controls);

		$("#controls a").css({"z-index":"420","margin":"0 5px","color":"#F5AE18"});
		$("#bannerback").click(function() { obj.run(0,200); });
		$("#bannernext").click(function() { obj.run(1,200); });

		if(obj.appVars.pause) {
			$("#"+obj.appVars.container).bind("mouseenter",obj.pause).bind("mouseleave",obj.unpause);
		}
		$("#canvas0_0").fadeIn(1000);
		obj.appVars["timerId"] = setInterval("BannerRotator.run(1,1000)", obj.appVars.delay);
	},
	"run": function(k,t) {
		var obj = this;
		var last = $("#canvas0_"+Number(obj.appVars.x));
		var next = $("#canvas0_"+Number(!obj.appVars.x));
		obj.appVars.x = !obj.appVars.x;
		if(!k) {
			var backBanner = obj.banners[obj.lastIndex(obj)];
			next.html($("<a />")
					.attr({"href":backBanner.href,"rel":backBanner.rel,"id":backBanner.banner_id})
					.click(function() { return obj.appVars.bannerTrack(this,backBanner.click) })
					.append(
						$("<img />").attr({"alt":backBanner.alt,"src":backBanner.src})
					)
				);
			obj.appVars.curIndex = obj.lastIndex(obj);
		} else	obj.appVars.curIndex = obj.nextIndex(obj);
		
		last.fadeOut(t, function() { 
			next.css("z-index","300").fadeIn(t,function() {
				var nextBanner = obj.banners[obj.nextIndex(obj)];
				last.html(
					$("<a />")
					.attr({"href":nextBanner.href,"rel":nextBanner.rel,"id":nextBanner.banner_id})
					.click(function() { return obj.appVars.bannerTrack(this,nextBanner.click) })
					.append(
						$("<img />").attr({"alt":nextBanner.alt,"src":nextBanner.src})
					)
				);
			});
		}).css("z-index","200");
	},
	"pause": function() {
		clearInterval(BannerRotator.appVars.timerId);
		$("#controls").show();
	},
	"unpause": function() {
		$("#controls").hide();
		BannerRotator.appVars["timerId"] = setInterval("BannerRotator.run(1,1000)", BannerRotator.appVars.delay);
	}
}