var curdir = null;
var speed = 10;
var src = null;	

var scrolling = false;
var paused = false;

var intervalID = null;

var up_over = false;
var dn_over = false;

function scroll() {
	if (!paused) {
		if (curdir == "up")
			document.getElementById(src).scrollTop -= speed;
			
		else if (curdir == "down")
			document.getElementById(src).scrollTop += speed;
			
	}
}

function dn_mousedown(downimage) {
	changeImages('down', downimage);

	curdir = "down";
	scrolling = true;

	intervalID = setInterval("scroll()", 100);

	return false;

}

function dn_mouseover(downimage, overimage) {
	dn_over = true;

	if (scrolling && paused && curdir == "down") {
		changeImages('down', downimage);

		paused = false;
	} else
		changeImages('down', overimage);

}

function dn_mouseout(outimage) {
	dn_over = false;

	changeImages('down', outimage);

	if (scrolling)
		paused = true;
}

//////////////////////////////////////////

function up_mousedown(downimage) {
	changeImages('up', downimage);

	curdir = "up";
	scrolling = true;

	intervalID = setInterval("scroll()", 100);

	return false;

}

function up_mouseover(downimage, overimage) {
	up_over = true;

	if (scrolling && paused && curdir == "up") {
		changeImages('up', downimage);
		paused = false;
	} else
		changeImages('up', overimage);

}

function up_mouseout(outimage) {
	up_over = false;

	changeImages('up', outimage);

	if (scrolling)
		paused = true;			
}

///////////////////////////////

function body_mouseup(up_outimage, up_overimage, dn_outimage, dn_overimage) {
	if (!up_over)
		changeImages('up', up_outimage);
	else
		changeImages('up', up_overimage);

	if (!dn_over)
		changeImages('down', dn_outimage);
	else
		changeImages('down', dn_overimage);


	scrolling = false;
	paused = false;

	if (intervalID != null) {
		clearInterval(intervalID);
		intervalID = null;

	}
}

function body_dragstart() {
	return false;
}

function newImage(src) {
	if (document.images) {
		img = new Image();
		img.src = src;
		return img;
	}	
}

function preload(up_downimage, up_overimage, dn_downimage, dn_overimage) {
	if (document.images) {
		up_down = newImage(up_downimage);
		up_over = newImage(up_overimage);
		down_over = newImage(dn_overimage);
		down_down = newImage(dn_downimage);
	}

}

function changeImages() {
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
	return true;
}

function setSource(source) {
	src = source;
}

preload();
