
// created by: Geoff Pack, Feb 2008
// last modified: Geoff Pack, August 2008


// Scroller

function scroll(N, id, deltaX, backButton, nextButton) {
	var n = 1;
	var x1 = 0;
	this.N = N;
	var obj = document.getElementById(id);

	this.back = function() {
		n--;
		if (n < 1) n = 1;
		x2 = (1-n) * deltaX;
		//document.getElementById(id).style.marginLeft = x2 + 'px';
		moveIt(id,x1,x2);
		x1 = x2;
		
		// modify buttons
		if (backButton && nextButton) {
			classRemove(document.getElementById(backButton),'off');
			classRemove(document.getElementById(nextButton),'off');
			if (n == 1) {classAdd(document.getElementById(backButton),'off')};
		}
		
		return false;	
	}
	this.next = function() {
		n++;
		if (n > N) n = N;
		x2 = (1-n) * deltaX;
		//document.getElementById(id).style.marginLeft = x2 + 'px';
		moveIt(id,x1,x2);
		x1 = x2;
		
		// modify buttons
		if (backButton && nextButton) {
			classRemove(document.getElementById(backButton),'off');
			classRemove(document.getElementById(nextButton),'off');
			if (n == N) {classAdd(document.getElementById(nextButton),'off')};
		}
		
		return false;	
	}
	this.pos = function(X) {
		x2 = (1-X) * deltaX;		
		moveIt(id,x1,x2);
		x1 = x2;
		n=X;
	
		return false;		
	}
}

//var weather = new scroll(4,'weatherScroller',210,'weatherBack','weatherNext');
var weather = new scroll(4,'weatherScroller',220,null,null);
var bestof = new scroll(3,'bestOfScroller',330,'bestOfBack','bestOfNext');

var scrollTimer=new Array(); // timeouts for each object using these fns

function moveIt(id,x1,x2) {
    // clear other scrolls for this object
    if (scrollTimer[id]) clearTimeout(scrollTimer[id]);

	vx = 40; // pixels
	if (x2<x1) vx=-Math.abs(vx);
    x1+=vx;
 
    // test to see if reached destination
    if (vx<0) {if (x1<=x2) {x1=x2; vx=0;}}
    else {if (x1>=x2) {x1=x2; vx=0;}}	

	document.getElementById(id).style.marginLeft = x1 + 'px';	
	if (vx!=0) scrollTimer[id] = setTimeout("moveIt('"+id+"',"+x1+","+x2+")",20);
}
