var horizontalScrollerMaxPosition = [];
var horizontalScrollerCurrentPosition = [];
var horizontalScrollerSpeed = [];
var horizontalScrollerActiveDot = [];
var horizontalScrollerPassiveDot = [];
var horizontalScrollerLoopTime = [];
var horizontalScrollerLoopTime2 = [];

function periodicScroller(id, width, timeout) {
	nextposition = (horizontalScrollerCurrentPosition[id]);
	nextposition++;
	if(horizontalScrollerCurrentPosition[id] < horizontalScrollerMaxPosition[id]) {
		horizontalScrollerLoopTime[id] = setTimeout("scrollContentLeft('" + id + "', '" + width + "', '" + nextposition + "')", timeout);
		horizontalScrollerLoopTime2[id] = setTimeout("periodicScroller('" + id + "', '" + width + "', '" + timeout + "')", timeout);
	} else {
		horizontalScrollerLoopTime[id] = setTimeout("scrollContentTo('" + id + "', '" + width + "', '1')", timeout);
		horizontalScrollerLoopTime2[id] = setTimeout("periodicScroller('" + id + "', '" + width + "', '" + timeout + "')", timeout);
	};
};

function setDot(id, dotid, position) {
	for(i = 1; i <= horizontalScrollerMaxPosition[id]; i++) {
		if(document.getElementById(id + '_dot_' + i)) {
			document.getElementById(id + '_dot_' + i).src = horizontalScrollerPassiveDot[id];
		};
		if(document.getElementById(id + '_number_' + i)) {
			document.getElementById(id + '_number_' + i).className = 'scroller_number_passive';
		};
	};
	if(document.getElementById(dotid)) {
		document.getElementById(dotid).src = horizontalScrollerActiveDot[id];
	};
	if(document.getElementById(id + '_number_' + position)) {
		document.getElementById(id + '_number_' + position).className = 'scroller_number_active';
	};
};

function scrollContentTo(id, width, position) {
	width = parseInt(width);
	position = parseInt(position);
	if(position > horizontalScrollerCurrentPosition[id]) {
		var scroll_amount = (position - horizontalScrollerCurrentPosition[id]) * width;
		scrollContentLeft(id, scroll_amount, position);
		horizontalScrollerCurrentPosition[id] = position;
	};
	if(position < horizontalScrollerCurrentPosition[id]) {
		var scroll_amount = (horizontalScrollerCurrentPosition[id] - position) * width;
		scrollContentRight(id, scroll_amount, position);
		horizontalScrollerCurrentPosition[id] = position;
	};
};

function scrollContentRight(id, width, position) {
	if(document.getElementById('scroller_leftlink_' + id)) {
		document.getElementById('scroller_leftlink_' + id).style.display = 'none';
	};
	width = parseInt(width);
	horizontalScrollerSpeed[id] = parseInt(horizontalScrollerSpeed[id]);
	var position_start = document.getElementById(id).scrollLeft;
	var position_end = position_start - width;
	if(position == undefined) {
		position = (position_end / width);
		position++;
	};
	if(position > 0) {
		setDot(id, id + '_dot_' + position, position);
		horizontalScrollerCurrentPosition[id] = position;
	};
	$('#' + id).animate({
		scrollLeft : +position_end
		}, horizontalScrollerSpeed[id], function() {
	});
	if(document.getElementById('scroller_leftlink_' + id)) {
		setTimeout("document.getElementById('scroller_leftlink_" + id + "').style.display = 'inline'", horizontalScrollerSpeed[id]);
	};
};

function scrollContentLeft(id, width, position) {
	if(document.getElementById('scroller_rightlink_' + id)) {
		document.getElementById('scroller_rightlink_' + id).style.display = 'none';
	};
	width = parseInt(width);
	horizontalScrollerMaxPosition[id] = parseInt(horizontalScrollerMaxPosition[id]);
	horizontalScrollerSpeed[id] = parseInt(horizontalScrollerSpeed[id]);
	var position_start = document.getElementById(id).scrollLeft;
	var position_end = position_start + width;
	if(position == undefined) {
		position = (position_end / width);
		position++;
	};
	if(position <= horizontalScrollerMaxPosition[id]) {
		setDot(id, id + '_dot_' + position, position);
		horizontalScrollerCurrentPosition[id] = position;
	};
	$('#' + id).animate({
		scrollLeft : +position_end
		}, horizontalScrollerSpeed[id], function() {
	});
	if(document.getElementById('scroller_rightlink_' + id)) {
		setTimeout("document.getElementById('scroller_rightlink_" + id + "').style.display = 'inline'", horizontalScrollerSpeed[id]);
	};
};

