/*
 * homePage.js
 *
 */

var HomePage = {

	// Attributes

	isOnSlideA: true,
	pauseTimeSecs: 3,
	preloadedSlides: new Array(),
	slideMaxNum: 20,
	slideMinNum: 1,
	slideNum: 1,
	timerId: null,
	transitionTimeSecs: 0.5,
	urlTemplate: "images/slide_${slideNum}.jpg",

	// Methods

	getNextSlideNum: function(slideNum) {
		++slideNum
		if (slideNum > HomePage.slideMaxNum)
			slideNum = HomePage.slideMinNum;
		return slideNum;
	},

	init: function() {
		this.slideNum = this.slideMinNum;
		$("imageA").src = this.urlTemplate.replace("${slideNum}",this.slideNum);
		$("imageB").src = this.urlTemplate.replace("${slideNum}",this.getNextSlideNum(this.slideNum))
		$("slideA").setStyle({opacity:1});
		this.isOnSlideA = true;
		this.timerId = setTimeout('HomePage.nextSlide();', (this.pauseTimeSecs * 1000));
		this.preloadSlide(100);
		this.preloadSlide(101);
		this.preloadSlide(102);
		this.preloadSlide(103);
		this.preloadSlide(104);
		this.preloadSlide(105);
		this.preloadSlide(106);
    this.preloadSlide(108);
    this.preloadSlide(109);
    this.preloadSlide(110);
    this.preloadSlide(111);
    this.preloadSlide(112);
    this.preloadSlide(113);
    this.preloadSlide(114);
    this.preloadSlide(115);
    this.preloadSlide(116);
    this.preloadSlide(117);
    this.preloadSlide(118);
	    this.preloadSlide(19);
    	this.preloadSlide(20);

	},

	nextSlide: function() {
		this.slideNum = this.getNextSlideNum(this.slideNum);
		this.showSlide(this.slideNum);
	},

	preloadSlide: function(slideNum) {
		if (this.preloadedSlides[slideNum])
			return;
		var images = new Image();
		images.src = this.urlTemplate.replace("${slideNum}",slideNum);
		this.preloadedSlides[slideNum] = images;
	},

	showSlide: function(slideNum) {
		if (this.timerId != null) {
			clearTimeout(this.timerId);
			this.timerId = null;
		}
		this.slideNum = slideNum;
		if (this.isOnSlideA) {
			$("imageB").src = this.urlTemplate.replace("${slideNum}",this.slideNum);
			$("slideA").fade({ duration: HomePage.transitionTimeSecs });
		} else {
			$("imageA").src = this.urlTemplate.replace("${slideNum}",this.slideNum);
			$("slideA").appear({ duration: HomePage.transitionTimeSecs });
		}
		this.isOnSlideA = !this.isOnSlideA;
		if ((slideNum >= this.slideMinNum) && (slideNum <= this.slideMaxNum)) {
			this.preloadSlide(this.getNextSlideNum(this.slideNum));
			this.timerId = setTimeout('HomePage.nextSlide();', (this.pauseTimeSecs * 1000));
		}
	}

}

document.observe("dom:loaded", function() {
	HomePage.init();
});
