if(window.jQuery) (function($) {
	$.scroll = {
		interval: 100,
		scrollTo: 30,
		up: "a.up",
		down: "a.down"
	};
	
	$.fn.scroll = function(instanceSettings) {
		if(this.length==0) return this; // quick fail
		
		instanceSettings = $.extend(
			{}/* new object */,
			$.scroll /* global settings */,
			instanceSettings || {} /* just-in-time settings */
		);
		
		var $this = $(this);
		
		var currentArrowDirection;
		
		$(instanceSettings.up).click(function() {
			return false;
		});
		
		$(instanceSettings.down).click(function() {
			return false;
		});
	
		$(instanceSettings.down).bind('mousedown', function() {
			currentArrowDirection = '+';
			onArrowMouseDown();
			return false;
		});
		
		$(instanceSettings.up).bind('mousedown', function() {
			currentArrowDirection = '-';
			onArrowMouseDown();
			return false;
		});
		
		var whileArrowButtonDown = function() {
			$this.scrollTo(currentArrowDirection+'='+instanceSettings.scrollTo+'px');
		};
		
		var onArrowMouseUp = function() {
			jQuery('html').unbind('mouseup', onArrowMouseUp);
			clearInterval(currentArrowInterval);
		};
		
		var onArrowMouseDown = function() {
			jQuery('html').bind('mouseup', onArrowMouseUp);
			whileArrowButtonDown();
			currentArrowInterval = setInterval(whileArrowButtonDown, instanceSettings.interval);
		};
		
	}

})(jQuery);