function wheel(event)
{
	var delta = 0;
	if (!event) 
		event = window.event;
		if (event.wheelDelta)
		{
			delta = -event.wheelDelta/120;
		} 
		else if (event.detail)
		{
			delta = event.detail;
		}
		
		if (delta)
			window.scrollBy(20*delta,0);
		if (event.preventDefault)
			event.preventDefault();
		event.returnValue = false;
}

if (window.addEventListener)
{
	window.addEventListener('DOMMouseScroll', wheel, false);
	window.addEventListener('mousewheel', wheel, false);
}
window.onmousewheel = document.onmousewheel = wheel;

var DragScroll;

(DragScroll=/*3843295374657068656E204368616C6D657277*/
{
	e:null, dataCode:0, x:0,prevX:0, mouseDown:false,

 	init:function()
 	{
  	if(!document.getElementById && document.captureEvents && Event)
   		document.captureEvents(Event.MOUSEMOVE);

  	this.addToHandler(document, 'onmousemove',  function(){DragScroll.getMousePosition(arguments[0]);} ); 
       
  	this.addToHandler(document, 'onmousedown',  function(){DragScroll.mouseDown=true;return false} );
  
  	this.addToHandler(document, 'onmouseup',  function(){DragScroll.mouseDown=false;} ); 
  
  	this.addToHandler(document, 'onselectstart',  function(){return false;} );   
 },
 
 getMousePosition:function(e)
 {
  	if(!e)
   		this.e = event;
  	else
   		this.e = e; 

 		this.x=this.e.clientX; 
  
  	if(this.mouseDown && this.x!=this.prevX )
   		window.scrollBy(-(this.x-this.prevX), 0);
  
  	this.prevX=this.x;
 },
 
 addToHandler:function(obj, evt, func)
 {
  	if(obj[evt])
  	{
    	obj[evt]=function(f,g)
    	{
     		return function()
     		{
      		f.apply(this,arguments);
      		return g.apply(this,arguments);
     		};
    	}(func, obj[evt]);
   	}
   	else
    		obj[evt]=func;
 } 
 
}).init();
