// cursor locations (must define!)
var b="url(open.cur), default";
var a="url(closed.cur), default";
(function(c){c.fn.overscroll=function(d){this.each(function(){var m={};var j={};var h=false;var f=false;c(this).css({cursor:b,overflow:"hidden"}).select(i).mousedown(i).mouseup(l).mouseleave(l);function i(o){var p=c(this).css("cursor",a).stop(true,true).mousemove(n);m.x=o.pageX;m.y=o.pageY;f=setInterval(k,50);return false}function n(o){this.scrollLeft-=o.pageX-m.x;this.scrollTop-=o.pageY-m.y;m.x=o.pageX;m.y=o.pageY;return true}function l(o){c(this).css("cursor",b).unbind("mousemove",n);clearInterval(f);if(h){g(this,o)}return true}function g(q,r){var s=c(q).stop(true,true);var p=e()-h;var u=(r.pageX-j.x)/p;var t=(r.pageY-j.y)/p;var o=(u>0)?-0.005:0.005;var A=(t>0)?-0.005:0.005;var z=-(u*u)/2/o;var y=-(t*t)/2/A;var x=Math.sqrt(u*u+t*t);var w=Math.sqrt(o*o+A*A);s.animate({scrollTop:(q.scrollTop-y),scrollLeft:(q.scrollLeft-z)},Math.abs(x/w));h=false}function k(){j.x=m.x;j.y=m.y;h=e()}function e(){return(new Date()).getMilliseconds()}});return this}})(jQuery);