google.setOnLoadCallback(function() {
	$(document).ready( function(){
		initRotator();
		initRotatorPreview();
	});
});

var currentVal;
var slideWidth;

var firstPage;
var lastPage;
var currentPage;
var numPages;

var startPageOffset;

var runRotate;
var speedRotate;

function initRotator()
{	
	numPages = $(".slide").length;
	
	slideWidth = $(".slide").width() + 30;
	
	$("#slides").width((numPages+4)*slideWidth);
	
	cloneElements();
	
	currentPage = 1;
	
	startPageOffset = ($("#inner").width()-slideWidth)/2;
	
	startPageOffset -= (slideWidth * 2);
	
	startPageOffset += (2 * (numPages+4));
	
	$("#slides").css("left", startPageOffset);
	
	speedRotate = 10000;
	
	slider();
}

function initRotatorPreview()
{	
	lastPage = null;
	// trim padding off last element for accurate centering
	$("#previewImages .previewimage:last").css('margin-right', 0);
	
	var previewWidth = $(".previewimage").width();
	var previewPadding = parseInt($("#previewImages .previewimage:first").css('margin-right'));
	// calculate total widht needed based on width of all images + padding of all images less one
	var totalPreviewWidth = (previewWidth * numPages) + (previewPadding * (numPages-1));
	// set div width
	$("#previewImages").width(totalPreviewWidth);
	// move dic to center of screen
	$("#previewImages").css('padding-left', ($("#rotatorPreviews").width() - totalPreviewWidth)/2);
	
	$("#previewImages .previewimage:first .cover").addClass("on");
	lastPage = $("#previewImages .previewimage:first .cover");
	
	previews();
}

function clearLastSelectedPreviewImage()
{
	if(lastPage!=null)
	{
		$(lastPage).removeClass("on");		
	}	
}

function slider() {
	
    currentVal = 1;

	runRotate = setInterval('rotate()', speedRotate);

    $('#homePrev').click(
		function () 
		{
			// no preview clicking while animating
			if ($('#slides').is(':animated'))
				return false;
				
			clearInterval(runRotate);
			
			previousPage();
			
			return false;
		});

    $('#homeNext').click(
		function () 
		{    
		// no preview clicking while animating
			if ($('#slides').is(':animated'))
				return false;
				
			clearInterval(runRotate);
				
			nextPage();
			
			return false;
		});
}

function previews()
{
	$('.previewimage .cover').click(function () {			
			
		// no preview clicking while animating
		if ($('#slides').is(':animated'))
			return false;

		//if we have a last page, clear it
		clearLastSelectedPreviewImage();
		
		$(this).addClass("on");
		
		lastPage = this;
		
		gotopage($(this).attr("id").split('-')[1]);
	});
}

function rotate() 
{
	//if we have a last page, clear it
	clearLastSelectedPreviewImage();
    nextPage();
}

function nextPage()
{
	//if we have a last page, clear it
	clearLastSelectedPreviewImage();
	gotopage(parseInt(currentPage)+1);
}

function previousPage()
{
	//if we have a last page, clear it
	clearLastSelectedPreviewImage();
	gotopage(currentPage-1);	
}

function gotopage(page)
{	
	if(currentPage == page)
		return;
			
	var newPos;
	var diff;
	
	if(page > currentPage) // going right
	{
		newPos = (slideWidth * (page-currentPage));
		diff = parseInt($('#slides').css('left'))-newPos;
	}
	else
	{	
		newPos = (slideWidth * (currentPage-page));
		diff = parseInt($('#slides').css('left')) + newPos;
	}
	
	if (!$('#slides').is(':animated')) 
	{
		$('#slides:not(:animated)').animate({ 'left': diff }, 1700, 
		function () 
		{
			if(page<=0)
			{
				newPos = (slideWidth * (numPages-page));
				diff = parseInt($('#slides').css('left'))-newPos;				
				$('#slides').css('left', diff);
				page = numPages;
			}
			if(page>=numPages+1)
			{
				newPos = startPageOffset;		
				$('#slides').css('left', newPos);
				page = 1;
			}
			
			clearInterval(runRotate);
			runRotate = setInterval('rotate()', speedRotate);
			currentPage = page;	
			
			lastPage = $("#previewImages .previewimage #image-" + page);
			lastPage.addClass("on");
		});
	}
}

function cloneElements()
{
	var first = '#slides .slide1';
	var second = '#slides .slide2';
	
	var last = '#slides .slide';
	last += parseInt(numPages);
	
	penultimate = '#slides .slide';
	penultimate += parseInt(numPages-1);
	
	var clonelast = $(last).clone();
	var clonepenultimate = $(penultimate).clone();
	
	$(first).clone().appendTo("#slides");
	$(second).clone().appendTo("#slides");
	
	clonelast.prependTo("#slides");
	clonepenultimate.prependTo("#slides");
}
