/**
 * Slideshow component
 */
var Slideshow = {

	// config
	slideShowImageUrl: '/common/images/$1/slideshow.jpg',
	slideWidth: 773,
	waitTime: 7000,
	switchTime: 1500,
	manualSwitchTime: 1000,
	pageIconHighlightBgPos: '0 -19px',

	// init vars
	COOKIE_NAME: "SLIDESHOW_PAGE",
	currentSlide: 1,
	slidesCount: 1,
	backImgDiv: null,
	frontImgDiv: null,
	slideShowImage: null,
	skip: false,

	init: function(lang) {
		this.backImgDiv = $('.slideshow .image');
		this.frontImgDiv = $('.slideshow .image2');
		this.slideShowImageUrl = this.slideShowImageUrl.replace('$1', lang);
		this.slideShowImage = new Image();
		this.slideShowImage.src = this.slideShowImageUrl;
		this.loaded();
	},
	
	loaded: function() {
		if (this.slideShowImage && this.slideShowImage.complete) {
			this.slidesCount = Math.floor(this.slideShowImage.width / this.slideWidth);
			var firstPos = this.getFirstPos();
			this.backImgDiv.css('background-position', firstPos);
			this.frontImgDiv.css('background-position', firstPos);
			this.backImgDiv.css('background-image', "url('" + this.slideShowImageUrl + "')");
			this.frontImgDiv.css('background-image', "url('" + this.slideShowImageUrl + "')");
			this.frontImgDiv.hide();
			this.createPagination();
			setTimeout("Slideshow.nextSlide()", this.waitTime);
		} else {
			setTimeout("Slideshow.loaded()", 100);
		}
	},
	
	createPagination: function() {
		var paginationDiv = $('.slideshow .pagination');
		for (i = 1; i <= this.slidesCount; i++) {
			paginationDiv.append('<a href="javascript:void(0)" onclick="this.blur();Slideshow.switchSlide(' + i + ', true)">' + 
				'<img src="/common/images/0.png" class="page" id="slideshow-page-' + i + '" alt=""/></a>');
		}
		$('#slideshow-page-' + this.currentSlide).css('background-position', this.pageIconHighlightBgPos);
	},

	nextSlide: function() {
		if (!this.skip) {
			var nextSlide = (this.currentSlide < this.slidesCount) ? this.currentSlide + 1 : 1;
			this.switchSlide(nextSlide);
		} else {
			this.skip = false;
		}
		setTimeout("Slideshow.nextSlide()", this.waitTime);
	},
	
	switchSlide: function(nextSlide, skip) {
		this.skip = (skip) ? true : false;
		var switchTime = (skip) ? this.manualSwitchTime : this.switchTime;
		var nextPos = this.getPos(nextSlide);

		this.frontImgDiv.stop(true, true);
		this.frontImgDiv.css('background-position', nextPos);
		this.frontImgDiv.fadeIn(switchTime, "linear", function() {
			Slideshow.backImgDiv.css('background-position', nextPos);
			Slideshow.frontImgDiv.hide();
			$.cookies.set(Slideshow.COOKIE_NAME, Slideshow.currentSlide);
		});

		$('#slideshow-page-' + this.currentSlide).css('background-position', '0 0');
		$('#slideshow-page-' + nextSlide).css('background-position', this.pageIconHighlightBgPos);
		this.currentSlide = nextSlide;
	},
	
	getPos: function(page) {
		var pos = (page - 1) * -this.slideWidth;
		return String(pos) + "px 0";
	},
	
	getFirstPos: function() {
		var cookie = $.cookies.get(this.COOKIE_NAME);
		var firstSlide = (cookie) ? cookie : 1;
		this.currentSlide = (firstSlide > 0 && firstSlide <= this.slidesCount) ? firstSlide : 1;
		return this.getPos(this.currentSlide);
	}
};


