/*
Event.onDOMReady(function() {
	$$('.scrollable').each(function(scrollObj){
		scrollObj = $(scrollObj);
		var width = scrollObj.readAttribute('width');
		var height = scrollObj.readAttribute('height');
				
		Element.setStyle(scrollObj,"overflow:hidden; width:" + width + "px; height: "+height+"px");
		
		Event.observe(scrollObj,'mousemove', function(event) {
			var scrollObj = $(Event.element(event)).up('.scrollable');
		  
			if(!scrollObj){return;}
			
			var totalOffset = Position.cumulativeOffset(scrollObj);
			var pointers = [Event.pointerX(event), Event.pointerY(event)];
			var offsets = [pointers[0] - totalOffset[0], pointers[1] - totalOffset[1]];
			var dimensions = scrollObj.getDimensions();

			var padding = 50;
			var c = [ scrollObj.scrollWidth - dimensions.width , scrollObj.scrollWidth - dimensions.width ];
			var x = offsets[0];
			var y = offsets[1];

			var paddedOffsets = [ x - padding + (x-padding)*(2*padding) / (c[0] - (2*padding) ) ,
								  y - padding + (y-padding)*(2*padding) / (c[1] - (2*padding) ) ];

			var results = [ c[0] * ( paddedOffsets[0] / dimensions.width ) , 
							c[0] * ( paddedOffsets[1] / dimensions.height ) ];
											
			scrollObj.scrollLeft = results[0];
			scrollObj.scrollTop = results[1];
			
		});
	});
});

*/

Event.onDOMReady(function() {
	$$('.scrollable').each(function(scrollObj){
		scrollObj = $(scrollObj);
		var width = scrollObj.getWidth();
		var height = scrollObj.getHeight();
		
		Element.setStyle(scrollObj,"overflow:hidden; width: " + width + "px; height: "+height+"px");
		
		Event.observe(scrollObj,'mousemove', function(event) {
			var scrollObj = $(Event.element(event)).up('.scrollable');
		  
			if(!scrollObj){return;}
			
			var totalOffset = Position.cumulativeOffset(scrollObj);
			var pointers = [Event.pointerX(event), Event.pointerY(event)];
			var offsets = [pointers[0] - totalOffset[0], pointers[1] - totalOffset[1]];

			var padding = 50;
			var mask = [ scrollObj.getWidth() , scrollObj.getHeight() ];
			var extents = [ scrollObj.scrollWidth - mask[0] , scrollObj.scrollHeight - mask[1] ];
			var x = offsets[0];
			var y = offsets[1];

			var results = [ (x-padding)*extents[0] / (mask[0] - (2*padding)) ,
						    (y-padding)*extents[1] / (mask[1] - (2*padding)) ];
			
			scrollObj.scrollLeft = results[0];
			scrollObj.scrollTop = results[1];
			
		});
	});
});

