// scroll.js, (c) 2006, Ivanic Ondrej, ondrej@kmit.sk

function Scroller(name, delay, delta) {
	this.name = name;
	this.delay = delay;
	this.delta = delta;
	this.el = document.getElementById(name);
	this.up = document.getElementById(name + '-up');
	this.down = document.getElementById(name + '-down');
	this.left = document.getElementById(name + '-left');
	this.right = document.getElementById(name + '-right');

	if(this.down) {
		this.down.onmouseover = this.scrollDown;
		this.down.onmouseout = this.reset;
		this.down._scroller = this;
	}
	if(this.up) {
		this.up.onmouseover = this.scrollUp;
		this.up.onmouseout = this.reset;
		this.up._scroller = this;
	}
	if(this.left) {
		this.left.onmouseover = this.scrollLeft;
		this.left.onmouseout = this.reset;
		this.left._scroller = this;
	}
	if(this.right) {
		this.right.onmouseover = this.scrollRight;
		this.right.onmouseout = this.reset;
		this.right._scroller = this;
	}
}

Scroller.prototype.getPosition = function() {
	if(this.el) {
		return this.el.scrollTop + ';' + this.el.scrollLeft;
	} else {
		return '0;0';
	}
}

Scroller.prototype.setPosition = function(top, left) {
	if(this.el)	{
		this.el.scrollTop = top;
		this.el.scrollLeft = left;
	}
}

Scroller.prototype.scrollDown = function() {
	_scroller = this._scroller;	
	_scroller.timer = setInterval('_scroller.doScroll(_scroller, "down")', _scroller.delay);
	return false;
}

Scroller.prototype.scrollUp = function() {
	_scroller = this._scroller;	
	_scroller.timer = setInterval('_scroller.doScroll(_scroller, "up")', _scroller.delay);
	return false;
}

Scroller.prototype.scrollLeft = function() {
	_scroller = this._scroller;	
	_scroller.timer = setInterval('_scroller.doScroll(_scroller, "left")', _scroller.delay);
	return false;
}

Scroller.prototype.scrollRight = function() {
	_scroller = this._scroller;	
	_scroller.timer = setInterval('_scroller.doScroll(_scroller, "right")', _scroller.delay);
	return false;
}

Scroller.prototype.reset = function() {
	_scroller = this._scroller;

	clearTimeout(_scroller.timer);
}

Scroller.prototype.doScroll = function(obj, mode) {
	if(mode == 'down') {
		obj.el.scrollTop += obj.delta;
	} else if(mode == 'up') {
		obj.el.scrollTop -= obj.delta;
	} else if(mode == 'left') {
		obj.el.scrollLeft += obj.delta;
	} else if(mode == 'right') {
		obj.el.scrollLeft -= obj.delta;
	}
}
