/**	
	Copyright (C) 2011 Twinkle Oy
*/

function TwApi() {
	this.pageCount;
	this.currPage;
	this.intervalId;
	this.fallback = false;
	
	this.init = function() {
		//$(document).pngFix();
		if (!this.fallback) this.initTop();
		this.initDock();
		this.initCarousel();
	}
	
	this.initTop = function() {
		$(window).scroll(function () {
			var maxh = 120; var minh = 72;
			var h = maxh - $(window).scrollTop();
			if (h < minh) h = minh;
			else if (h > maxh) h = maxh;
			if ($("#top-wrap").height()==h) return;
			//$("#top-wrap").height(h);
			$("#top-wrap").stop().animate({height:h+'px'}, 100, 'swing');
			var maxb = 17; var minb = -17;
			var b = minb + Math.round((maxb-minb) * ((h-minh)/(maxh-minh)));
			//$("#top .logo").css('bottom', b+'%');
			//$("#top-border").html(b+' X='+((maxb-minb) * ((h-minh)/(maxh-minh))));
			$("#top .logo").stop().animate({bottom:b+'%'}, 100, 'swing');
		});
	}
	
	this.initDock = function() {
		$('.clients .links').jqDock({
			size: 70,
			align: 'middle',
			coefficient: 1,
			duration: 200
		});
	}
	
	this.initCarousel = function() {
		this.pageCount = $('.carousel-frame .page').size();
		this.setPage(1);
		$('.carousel-frame .thumb').click(function() {
			api.stopAuto();
			var href = $(this).attr('href');
			if (!href) return false;
			var parts = href.split('-');
			api.setPage(parts[parts.length-1]);
			return false;
		});
		$('.carousel-frame .next').unbind().click(function() {
			api.stopAuto();
			api.nextPage();
			return false;
		});
		$('.carousel-frame .previous').unbind().click(function() {
			api.stopAuto();
			api.prevPage();
			return false;
		});
		$('.carousel-frame').mouseenter(function() {
			api.pauseAuto();
		});
		$('.carousel-frame').mouseleave(function() {
			api.startAuto();
		});
		this.startAuto();
	}
	
	this.startAuto = function() {
		this.pauseAuto();
		this.intervalId = setInterval('api.nextPage()', 10000);
	}
	this.pauseAuto = function() {
		if (this.intervalId) clearInterval(this.intervalId);
	}
	this.stopAuto = function() {
		this.pauseAuto();
		$('.carousel-frame').unbind();
	}
	
	this.setPage = function(pnum) {
		var pos = $('.page-'+pnum).width() * (pnum-1);
		$('.reel').animate({left:'-'+pos}, 500, 'swing');
		$('.carousel-frame .thumb').removeClass('current');
		$('.carousel-frame .thumb[href="#carouselpage-'+pnum+'"]').addClass('current');
		this.currPage = Number(pnum);
	}
	
	this.nextPage = function() {
		var nextp = this.currPage<this.pageCount ? this.currPage+1 : 1;
		this.setPage(nextp);
	}
	this.prevPage = function() {
		var prevp = this.currPage>1 ? this.currPage-1 : this.pageCount;
		this.setPage(prevp);
	}
}
