//This will hold the timeout objects so that we can pause
var the_timeout;

//This is the amount to scroll
var scroll_amt = 4;
var scroll_delay = 500; //In ms
var multiplier = 1; //This affects how much faster the scroller will go.
//The begining
var start_pos =0;

//This will store the cumlative length of the scrolling objects.
//The starting amout is the padding between the divs
var total_length = 0;

//This is padding between the divs...
var div_pad = 5;


function scroll_left() {
	var the_list, prod_cont;
	var old_pos, new_pos, width, ele, prev_ele, prev_id, next_ele, next_id;
	var amt = -scroll_amt;
	
	the_list = Array();
	for (var i=0; i < total_divs; i++)
	{
		ele = document.getElementById(scroll_prefix+String(i));
		width = parseInt(ele.offsetWidth);
		
		old_pos = parseInt(ele.style.left);
		if (old_pos <= (start_pos - width))
		{
			prev_id = ((i-1) < 0) ? (total_divs - 1) : (i-1);
			prev_ele = document.getElementById(scroll_prefix+String(prev_id));
			new_pos = parseInt(prev_ele.style.left) + parseInt(prev_ele.offsetWidth) + div_pad;
		}
		else
			new_pos = old_pos + (amt*multiplier);
		
		ele.style.left = String(new_pos) + "px";
	}
	
	the_timeout = setTimeout("scroll_left();", scroll_delay);
}

function scroll_right() {
	var the_list, prod_cont;
	var old_pos, new_pos, width, ele, prev_ele, prev_id, next_ele, next_id;
	var amt = scroll_amt;
	
	the_list = Array();
	for (var i=0; i < total_divs; i++)
	{
		ele = document.getElementById(scroll_prefix+String(i));
		width = parseInt(ele.offsetWidth);
		
		old_pos = parseInt(ele.style.left);
		if ((old_pos + amt) >= (total_length))
		{
			next_id = ((i+1) >= total_divs) ? (0) : (i+1);
			next_ele = document.getElementById(scroll_prefix+String(next_id));
			if (i == (total_divs -1))
				new_pos = parseInt(next_ele.style.left) - width - div_pad;
			else
				new_pos = parseInt(next_ele.style.left) + amt - width - div_pad;
		}
		else
			new_pos = old_pos + (amt*multiplier);
		
		ele.style.left = String(new_pos) + "px";
	}

	
	the_timeout = setTimeout("scroll_right();", scroll_delay);
}

function findPos(id_str) {
	var curleft = curtop = 0;
	
	var obj = document.getElementById(id_str);
	
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function initScrollPos() {
	var offset, new_pos;
	
	for (var i=0; i < total_divs; i++)
	{
		var ele = document.getElementById(scroll_prefix+String(i));
		if (i != 0)
		{
			var prev_ele = document.getElementById(scroll_prefix+String(i-1));
 			offset = prev_ele.offsetWidth + prev_ele.offsetLeft + div_pad;
			total_length += ele.offsetWidth + div_pad; //This is here to skip the first element so that the stack at the end of the line is correct.
		} else
			offset = 0;
	
		new_pos = 0 + offset;
		
		ele.style.left = String(new_pos) + "px";
		
	}
	
	if ((Math.floor(Math.random()*101) % 2) == 0)
		scroll_left();
	else
		scroll_right();
}

function scroll_left_start() {
	clearTimeout(the_timeout);
	multiplier = 4;
	scroll_left();
}
function scroll_left_stop() {
	clearTimeout(the_timeout);
	multiplier = 1;
	the_timeout = setTimeout("scroll_left();", scroll_delay);
}
function scroll_right_start() {
	clearTimeout(the_timeout);
	multiplier = 4;
	scroll_right();
}
function scroll_right_stop() {
	clearTimeout(the_timeout);
	multiplier = 1;
	the_timeout = setTimeout("scroll_left();", scroll_delay);
}

function pause() {
	clearTimeout(the_timeout);
}

function restart() {
	the_timeout = setTimeout("scroll_left();", scroll_delay);
}