var slideTimeBetweenMove = 30;	// General speed variable (Lower = slower)

var scrollingContainer = false;
var scrollingContent = false;

var scrollers = new Array();
var controls = new Array();

function initScrollingContent(scrollerId, speed) {
	scrollingContainer = document.getElementById(scrollerId);
	scrollingContent = scrollingContainer.getElementsByTagName('DIV')[0];

	scrollingContainer.style.position = 'relative';
	scrollingContainer.style.overflow = 'hidden';
	scrollingContent.style.position = 'absolute';
	
	scrollingContent.style.top = '0px';
	
	scrollers[scrollerId] = new Array();
	scrollers[scrollerId]['reference'] = scrollingContent;
	scrollers[scrollerId]['contentHeight'] = scrollingContent.offsetHeight;
	scrollers[scrollerId]['containerHeight'] = scrollingContainer.clientHeight;
	scrollers[scrollerId]['speed'] = 0;
	scrollers[scrollerId]['originalSpeed'] = speed;
	scrollers[scrollerId]['direction'] = "none";
	scrollers[scrollerId]['controls'] = new Array();
	scrollers[scrollerId]['numControls'] = 0;
}

function addControl(scrollerId, controlId, direction) {
	controlObj = document.getElementById(controlId);
	
	controls[controlId] = new Array();
	controls[controlId]['direction'] = direction;
	controls[controlId]['scrollerId'] = scrollerId;
	
	scrollers[scrollerId]['controls'][scrollers[scrollerId]['numControls']++] = controlId;
	
	controlObj.onmouseover = startScrolling;
	controlObj.onmouseout = stopScrolling;
	controlObj.onmousedown = doubleSpeed;
	controlObj.onmouseup = halfSpeed;
}

function scrollContent(scrollerId) {
	var topPos = scrollers[scrollerId]['reference'].style.top.replace(/[^\-0-9]/g,'');
	
	if (scrollers[scrollerId]['direction'] == "up") {
		topPos = topPos/1 + scrollers[scrollerId]['speed']/1;
		if(topPos/1 > 0 || top < 0) {
			scrollers[scrollerId]['speed'] = 0;
			topPos = 0;
		}
	} else if (scrollers[scrollerId]['direction'] == "down") {
		topPos = topPos/1 - scrollers[scrollerId]['speed']/1;
		if(topPos/1 + scrollers[scrollerId]['contentHeight']/1 - scrollers[scrollerId]['containerHeight']/1 < 0) {
			scrollers[scrollerId]['speed'] = 0;
			topPos = -1 * scrollers[scrollerId]['contentHeight']/1 + scrollers[scrollerId]['containerHeight'];
		}
	}
	scrollers[scrollerId]['reference'].style.top = topPos + 'px';
	
	setTimeout('scrollContent("' + scrollerId + '")', slideTimeBetweenMove);
}

function stopScrolling() {
	var controlId = this.id;
	scrollerId = controls[controlId]['scrollerId'];
	scrollers[scrollerId]['speed'] = 0;	
	scrollers[scrollerId]['direction'] = controls[controlId]['direction'];	
}

function startScrolling() {
	var controlId = this.id;
	scrollerId = controls[controlId]['scrollerId'];
	scrollers[scrollerId]['speed'] = scrollers[scrollerId]['originalSpeed'];
	scrollers[scrollerId]['direction'] = controls[controlId]['direction'];	
}

function doubleSpeed() {
	var controlId = this.id;
	scrollerId = controls[controlId]['scrollerId'];
	scrollers[scrollerId]['speed'] = scrollers[scrollerId]['originalSpeed'] * 2;	
}

function halfSpeed() {
	var controlId = this.id;
	scrollerId = controls[controlId]['scrollerId'];
	scrollers[scrollerId]['speed'] = scrollers[scrollerId]['originalSpeed'];
}

function runScroller(scrollerId) {
	if (scrollers[scrollerId]['contentHeight'] > scrollers[scrollerId]['containerHeight']) {
		scrollContent(scrollerId);
	} else {
		for (i = 0; i < scrollers[scrollerId]['numControls']; i++) {
			document.getElementById(scrollers[scrollerId]['controls'][i]).style.visibility = 'hidden';
		}
	}
}


