var HeaderRotator = {
	fadeTimers : {
		backgroundIn : 2000,
		idle : 4000
	},
	backgrounds : [],
	progressIndicators : [],
	canvas : null,
	currentBackgroundNumber : 0,
	overlay : null,
	animate : true,
	init : function() {

		$.fn.idle = function(time) {
			var o = $(this);
			o.queue(function() { setTimeout(function() { o.dequeue(); }, time); });
			return this;
		};

		this.canvas = $("#headerPresentation");
		this.overlay = $("#overlay");

		this.loadBackgrounds();
		
	},
	animate : function() {
		var self = this;
		
		self.progressIndicators[self.currentBackgroundNumber].fadeTo("fast", 0.8);
		if (self.currentBackgroundNumber > 0)
			self.progressIndicators[self.currentBackgroundNumber - 1].fadeTo("fast", 0.4);

		$("#title", self.overlay).text(self.backgrounds[self.currentBackgroundNumber].attr("title"));
		$("#progress", self.overlay).html(self.backgrounds[self.currentBackgroundNumber][0].alt);
			
		self.backgrounds[self.currentBackgroundNumber].fadeIn(self.fadeTimers['backgroundIn'], function() {

			self.overlay.fadeTo("fast", 0.6).css("display","block");

			setTimeout(function() {
				var oldBackgroundNumber = self.currentBackgroundNumber;
//				self.currentBackgroundNumber = ((self.currentBackgroundNumber + 1) % self.backgrounds.length);
				self.currentBackgroundNumber = self.currentBackgroundNumber + 1;
				if ((self.currentBackgroundNumber < self.backgrounds.length) && self.animate) {
					self.animate();
					setTimeout(function() {
						self.backgrounds[oldBackgroundNumber].css("display", "none");
					}, self.fadeTimers['backgroundIn']);
				}
			}, self.fadeTimers['idle']);
		
		});
		
	},
	loadBackgrounds : function() {
		var self = this,
			images = self.canvas.find("img"),
			infoTexts = self.canvas.find("div.info");
			
		images.css("display", "none");
		
		for (var i = 0; i < images.length; i++) {
			self.backgrounds[i] = $("<img class='background' src='" + $(images[i]).attr("rel") + "' title='" + $(images[i]).attr("title") + "' />");
			self.backgrounds[i][0].alt = $(infoTexts[i]).html();
			self.progressIndicators[i] = $("<div class='progressIndicator' style='margin-top: " + ((i+1) * 31) + "px'>" + (i + 1) + "</div>");
			self.canvas.append(self.backgrounds[i]);
			self.progressIndicators[i].bind("click", function() {
				
				self.animate = false;
				var currentNumber = parseInt($(this).text()) - 1
				$(".progressIndicator").fadeTo("fast", 0.4);
				$(this).fadeTo("fast", 0.8);
				
				for (var i = 0; i < self.backgrounds.length; i++) {
					self.backgrounds[i].fadeOut();
				}
				self.backgrounds[currentNumber].fadeIn(self.fadeTimers['backgroundIn'])

				$("#title", self.overlay).text(self.backgrounds[currentNumber].attr("title"));
				$("#progress", self.overlay).html(self.backgrounds[currentNumber][0].alt);
				self.overlay.fadeTo("fast", 0.6).css("display","block");
				
				
			});
			self.canvas.append(self.progressIndicators[i]);
			
			if (i === 0) {
				self.backgrounds[i].bind("load", function() {
					self.backgrounds[self.currentBackgroundNumber].fadeIn(self.fadeTimers['backgroundIn'], function() { self.animate(); });
				});
			}
		}
		$(".progressIndicator").css("display","block").fadeTo("fast", 0.4);
		self.canvas.find("img:not(.background)").remove();
		self.canvas.find("div.info").remove();
		
	}
};
	$(document).ready(function(){
		if ($("#headerPresentation").length > 0) {
			setTimeout(function() { HeaderRotator.init(); }, 100);
		}
	});
