(function(f){f.fn.dragscroll=q;f.fn.removedragscroll=D;f.fn.scaleHeight=j;f.fn.setScrollPosition=p;f.fn.scroll=w;f.fn.dragscroll.options={draggedClassName:"dragged",draggableSelector:null,additionalScroll:null};var c="ds.dragged";var o="ds.draggable";var x,n,k,A,a,y,g,e,t,s,v,B;function q(E){var F=f.extend({},f.fn.dragscroll.options,E);var H=navigator.userAgent.indexOf("Gecko/")!=-1;var i=navigator.userAgent.indexOf("Opera/")!=-1;var G=navigator.userAgent.indexOf("Mac OS")!=-1;if(i){n="default";k="move"}else{if(!(G&&H)&&F){if(F.grab){n='url("'+F.grab+'"),default'}if(F.grabbing){k="url("+F.grabbing+"),move"}}else{if(H){n="-moz-grab";k="-moz-grabbing"}else{n="default";k="move"}}}x=f(this).children().css("cursor",n);if(F.additionalScroll){t=f(F.additionalScroll);s=f(this).height()-t.height();v=parseInt(f(this).css("top"),10)+t.height()}B=1;return this.each(function(){var J=f(this);var I=F.draggableSelector?J.find(F.draggableSelector):J.children();I.bind("mousedown.ds",{container:J},m);J.bind("mouseup.ds",{container:J},d).bind("mouseleave.ds",C).bind("scroll.ds",{left:this.scrollLeft,top:this.scrollTop},l);if(F.draggedClassName){J.bind("dragstart.ds",{className:F.draggedClassName},h).bind("dragend.ds",{className:F.draggedClassName},b)}})}function j(E,i){s=E;B=i;f(this).height(s-(parseInt(t.css("top"),10)/B))}function p(){v=t.height()}function D(){return this.each(function(){var i=f(this).find("*").andSelf().unbind(".ds")})}function w(i,E){z(f(this),i,E)}function u(i,E){f(this).scrollTop-=(E*30)}function m(i){i.preventDefault();x.css("cursor",k);A=new Date();y=i.screenX;a=i.screenY;g=i.pageX-f(this).offsetLeft;e=i.pageY-f(this).offsetTop;i.data.container.data(c,true).trigger("dragstart").bind("mousemove.ds",{prevX:i.screenX,prevY:i.screenY},r)}function r(H){H.preventDefault();var E=f(this);var G=H.data.prevX-H.screenX;var i=H.data.prevY-H.screenY;var I=E.scrollLeft()+G;var F=E.scrollTop()+i;z(E,I,F);H.data.prevY=H.screenY;H.data.prevX=H.screenX}function z(i,F,E){i.scrollLeft(F).scrollTop(E);if(t){if(E>0){if(E>t.height()){t.css("top",-t.height());i.css("top",0)}else{t.css("top",-E);i.css("top",(v-E))}i.height(s-(parseInt(t.css("top"),10)/B))}else{if(E<0){t.css("top",0);i.css("top",v);i.height(s)}}}}function C(i){f(this).trigger("mouseup.ds")}function d(E){E.preventDefault();var i=f(this);if(i.data(c)){i.unbind("mousemove.ds");i.data(c,false).trigger("dragend");x.css("cursor",n)}}function l(H){var F=this.scrollLeft;var E=this.scrollTop;var G=F-H.data.left;var i=E-H.data.top;if(G){f(this).trigger("scrollx",G)}if(i){f(this).trigger("scrolly",i)}H.data.left=F;H.data.top=E}function h(i){f(this).addClass(i.data.className)}function b(i){f(this).removeClass(i.data.className)}})(jQuery);
