var Banner = {
	
	timer : null,
	
	fadeSpeed : null,
	screenTime : null,
	
	randomImages : [],
	randomTexts : [],
	
	current : 0,
	
	loadBar : null,
	loadTrack : null,
	loadText : null,
	
	imageSection : null,
	textSection : null,
	
	create : function(texts, images, fadeSpeed, screenTime, randomAmount)
	{
		Banner.texts = texts;
		Banner.images = images;
		Banner.fadeSpeed = fadeSpeed;
		Banner.screenTime = screenTime;
		
		Banner.loadBar = $("#loadBar");
		Banner.loadTrack = $("#loadTrack");
		Banner.loadText = $("#loadText");
		
		Banner.imageSection = $("#imageSection");
		Banner.textSection = $("#textSection");
		
		for(var i = 0 ; i < randomAmount ; i ++) {
			var rand = Math.floor(Math.random()*images.length);
			Banner.randomImages.push(images.splice(rand, 1)[0]);
			Banner.randomTexts.push(texts.splice(rand, 1)[0]);
		}
		
		$(Loader).bind(Loader.COMPLETE, Banner.loadComplete).bind(Loader.FILE_COMPLETE, Banner.loadProgress);
		
		Loader.load(Banner.randomImages).start(Loader.SINGULAR);
	},
	
	loadComplete : function(e)
	{
		Banner.loadTrack.fadeOut(1000, function() { Banner.loadTrack.remove(); });
		Banner.fadeNext();
	},
	
	loadProgress : function(e)
	{
		Banner.loadBar.stop().animate({ width:(Banner.loadTrack.innerWidth()*Loader.loadPercent)+"px" }, 100);
		Banner.loadText.html("Loading : "+Math.ceil((Loader.loadPercent*100))+"%");
	},
	
	timerTick : function()
	{
		clearTimeout(Banner.timer);
		Banner.current = Banner.current + 1 >= Banner.randomImages.length ? 0 : Banner.current + 1;
		Banner.fadeNext();
	},
	
	fadeNext : function()
	{
		clearTimeout(Banner.timer);
		Banner.textSection.fadeOut(Banner.fadeSpeed/2, function() {
			Banner.textSection.html(Banner.randomTexts[Banner.current].line1+"<br />"+Banner.randomTexts[Banner.current].line2);
			Banner.textSection.css({ color:Banner.randomTexts[Banner.current].color });
			Banner.textSection.fadeIn(Banner.fadeSpeed/2);
		});
		var image = $(Loader.getContent(Banner.randomImages[Banner.current], "url"));
		image.hide().css({ position:"absolute" });
		Banner.imageSection.append(image);
		image.fadeIn(Banner.fadeSpeed, function() {
			while(Banner.imageSection.find("img").length > 1) Banner.imageSection.find("img").first().remove();
			Banner.timer = setTimeout(Banner.timerTick, Banner.screenTime);	
		});
	}
	
}
