/*
 * Name: scroller.js
 * URL: http://lukees.com/project/scroller
 * Description: Creates a box with scrolling pages.
 * 
 * Author: Luke Seeley
 * Email: luke@lukees.com
 * 
 * ------------------------------------------------------- */

// Set Up
var numPages = 0;
var currentPage = "page1";
var pageWidth = "740px";
var pageHeight = "96px";

/* Initiates the scroller nav events */
function initScroller() {

	if((window.location+"").search('tumblr') > 0) return false;
	
	setupScroller();
	
	var scroll = new Fx.Scroll('works', {
		wait: false,
		duration: 500,
		transition: Fx.Transitions.Quad.easeInOut
	});	

	// Set slider navigation NEXT link onclick events	
	$('next-page').addEvent('click', function(event) {
		currentPage = getNextPage();
		event = new Event(event).stop();
		scroll.toElement(currentPage);
	});
	
	// Set slider navigation PREVIOUS link onclick events	
	$('previous-page').addEvent('click', function(event) {
		currentPage = getPreviousPage();
		event = new Event(event).stop();
		scroll.toElement(currentPage);
	});
	
	scroll.toElement('page1');
	$('works').style.visibility = "visible";
	new Fx.Style('works', 'opacity').start(0,1);
}

/* Returns the next page */
function getNextPage() {
	var number = parseInt(currentPage.split('page')[1]);
	return (number < numPages)? "page" + ++number : "page1";
}

/* Returns the previous page */
function getPreviousPage() {
	var number = parseInt(currentPage.split('page')[1]);		
	return (number == 1)? "page" + numPages : "page" + --number;
}

/* Adds IDs to the pages and page nav links */

function setupScroller() {
	var pages = $ES('div.work','works');
	
	numPages = pages.length;
	
	// Set page IDs and dimensions
	for(var j=0; j<pages.length; j++) {
		var left = j * parseInt(pageWidth.split('px')[0]);
		pages[j].id = "page" + (j+1);
		pages[j].setStyles({'width':pageWidth,'height':pageHeight,'left':left,'top':'0px'});
	}

	// Set Scroller and page-content Dimensions
	$('works').setStyles({'width':pageWidth, 'height':pageHeight});
	$('works-wrap').setStyles({'width':pageWidth, 'height':pageHeight});
}