var zscroll = {
	speed: 8,
	interval: null,
	scrollElement: null,
	upBtn: null,
	dnBtn: null,

	init: function(id, upID, downID, spd) {
		
		scrollElement = document.getElementById(id);	
		scrollElement.style.overflow = "hidden";
		
		upBtn = document.getElementById(upID);
		dnBtn = document.getElementById(downID);
		
		upBtn.style.display = "block";
		dnBtn.style.display = "block";

		document.onmouseup = zscroll.scrollEnd;
		
		upBtn.onmousedown = zscroll.up;
		upBtn.onmouseup = zscroll.scrollEnd;
		upBtn.onmouseout = zscroll.scrollEnd;
		
		dnBtn.onmousedown = zscroll.down;
		dnBtn.onmouseup = zscroll.scrollEnd;
		dnBtn.onmouseout = zscroll.scrollEnd;
		
		if(window.addEventListener)
			scrollElement.addEventListener('DOMMouseScroll', zscroll.wheel, false);
		scrollElement.onmousewheel = zscroll.wheel;
	},
	up: function() {
		zscroll.scrollEnd();
		zscroll.isOver = true;
		zscroll.interval = window.setInterval("zscroll.doScroll(-1)", 5);
	},
	down: function() {
		zscroll.scrollEnd();
		zscroll.isOver = true;
		zscroll.interval = window.setInterval("zscroll.doScroll(1)", 5);
	},
	doScroll: function(dir) {
		if(scrollElement == null)
			return;
		scrollElement.scrollTop += dir * zscroll.speed;
	},
	scrollEnd: function() {
		if(zscroll.interval == null)
			return;
		window.clearInterval(zscroll.interval);
		zscroll.interval = null;
	}, 
	wheel: function(event) {
		var delta = 0;
		if (!event) event = window.event;
		if (event.wheelDelta) {
			delta = Math.floor(event.wheelDelta/120); 
			if (window.opera) delta = -delta;
		} else if (event.detail) {
			delta = -event.detail/3;
		}
		if (delta)
			zscroll.handle(delta*3);
					if (event.preventDefault)
									event.preventDefault();
					event.returnValue = false;
	},
 handle: function(delta) {
		if(scrollElement == null)
			return;
		if (delta < 0)
			scrollElement.scrollTop -= delta;
		else
			scrollElement.scrollTop -= delta;
	}
};



