var scrollerIndex = 1;
var itemPrefix = "item-";

function scrollLeft(elem) 
{
	if (1 == scrollerIndex) {
		scrollNext = 6;
	} else {
		scrollNext = scrollerIndex - 1;
	}
	scrollTo(scrollNext, elem, "item-1");
}

function scrollRight(elem) 
{
	scrollTo((scrollerIndex % 6) + 1, elem, "item-1");
	
	// Scroll in groups of 3
	//scrollTo((scrollerIndex * 3 % 6) + 1, scrollerElem, "");
}

function scrollTo(indexTo, scrollerElem, offset)
{
	if (scrollerIndex == indexTo) {
		return;
	}
	scrollerIndex = indexTo;
	
	
	// Get the position of the element to scroll to
	position = findElementPos(document.getElementById(itemPrefix + indexTo));
	
	// Get the position of the offset to compensate for when scrolling
	if (offset != "") {
		offsetPos = findElementPos(document.getElementById(offset));
		position[0] = position[0] - offsetPos[0];
	}
	
	scrollStart(scrollerElem, scrollerElem.scrollLeft, position[0]);
	
}

// Scrolls are synchronous -- only one at a time.
var scrollanim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null};
function scrollStart(elem, start, end)
{
	if (scrollanim.timer != null) {
		clearInterval(scrollanim.timer);
		scrollanim.timer = null;
	}
	scrollanim.time = 0;
	scrollanim.begin = start;
	scrollanim.change = end - start;
	scrollanim.duration = 25;
	scrollanim.element = elem;
	
	scrollanim.timer = setInterval("scrollHorizAnim();", 15);
}

function scrollHorizAnim()
{
	if (scrollanim.time > scrollanim.duration) {
		clearInterval(scrollanim.timer);
		scrollanim.timer = null;
	}
	else {
		move = sineInOut(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration);
		scrollanim.element.scrollLeft = move;
		scrollanim.time++;
	}
}

function findElementPos(elemFind)
{
	var elemX = 0;
	var elemY = 0;
	do {
		elemX += elemFind.offsetLeft;
		elemY += elemFind.offsetTop;
	} while ( elemFind = elemFind.offsetParent )

	return Array(elemX, elemY);
}

///////////////////////////////////////

