jQuery.jScrollPane={active:[]};jQuery.fn.jScrollPane=function(A){A=jQuery.extend({scrollbarWidth:10,scrollbarMargin:5,wheelSpeed:18,showArrows:false,arrowSize:0,animateTo:false,dragMinHeight:1,dragMaxHeight:99999,animateInterval:100,animateStep:3,maintainPosition:true},A);return this.each(function(){var J=jQuery(this);if(jQuery(this).parent().is(".jScrollPaneContainer")){var u=A.maintainPosition?J.offset({relativeTo:jQuery(this).parent()[0]}).top:0;var H=jQuery(this).parent();var W=H.innerWidth();var v=H.outerHeight();var I=v;if(H.unmousewheel){H.unmousewheel()}jQuery(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown",H).remove();J.css({"top":0})}else{var u=0;this.originalPadding=J.css("paddingTop")+" "+J.css("paddingRight")+" "+J.css("paddingBottom")+" "+J.css("paddingLeft");this.originalSidePaddingTotal=(parseInt(J.css("paddingLeft"))||0)+(parseInt(J.css("paddingRight"))||0);var W=J.innerWidth();var v=J.innerHeight();var I=v;J.wrap(jQuery("<div></div>").attr({"className":"jScrollPaneContainer"}).css({"height":v+"px","width":W+"px"}));jQuery(document).bind("emchange",function(w,x,p){J.jScrollPane(A)})}var g=this.originalSidePaddingTotal;J.css({"height":"auto","width":W-A.scrollbarWidth-A.scrollbarMargin-g+"px","paddingRight":A.scrollbarMargin+"px"});var e=J.outerHeight();var b=v/e;if(b<0.99){var E=J.parent();E.append(jQuery("<div></div>").attr({"className":"jScrollPaneTrack"}).css({"width":A.scrollbarWidth+"px"}).append(jQuery("<div></div>").attr({"className":"jScrollPaneDrag"}).css({"width":A.scrollbarWidth+"px"}).append(jQuery("<div></div>").attr({"className":"jScrollPaneDragTop"}).css({"width":A.scrollbarWidth+"px"}),jQuery("<div></div>").attr({"className":"jScrollPaneDragBottom"}).css({"width":A.scrollbarWidth+"px"}))));var r=jQuery(">.jScrollPaneTrack",E);var K=jQuery(">.jScrollPaneTrack .jScrollPaneDrag",E);if(A.showArrows){var Z;var t;var M;var i;var c=function(){if(i>4||i%4==0){q(l+t*U)}i++};var G=function(p){jQuery("body").unbind("mouseup",G);Z.removeClass("jScrollActiveArrowButton");clearInterval(M)};var S=function(){jQuery("body").bind("mouseup",G);Z.addClass("jScrollActiveArrowButton");i=0;c();M=setInterval(c,100)};E.append(jQuery("<a></a>").attr({"href":"javascript:;","className":"jScrollArrowUp"}).css({"width":A.scrollbarWidth+"px"}).html("Scroll up").bind("mousedown",function(){Z=jQuery(this);t=-1;S();this.blur();return false}),jQuery("<a></a>").attr({"href":"javascript:;","className":"jScrollArrowDown"}).css({"width":A.scrollbarWidth+"px"}).html("Scroll down").bind("mousedown",function(){Z=jQuery(this);t=1;S();this.blur();return false}));if(A.arrowSize){I=v-A.arrowSize-A.arrowSize;r.css({"height":I+"px",top:A.arrowSize+"px"})}else{var j=jQuery(">.jScrollArrowUp",E).height();A.arrowSize=j;I=v-j-jQuery(">.jScrollArrowDown",E).height();r.css({"height":I+"px",top:j+"px"})}}var n=jQuery(this).css({"position":"absolute","overflow":"visible"});var B;var R;var U;var l=0;var P=b*v/2;var T=function(w,y){var x=y=="X"?"Left":"Top";return w["page"+y]||(w["client"+y]+(document.documentElement["scroll"+x]||document.body["scroll"+x]))||0};var Y=function(){return false};var m=function(){f();B=K.offset(false);B.top-=l;R=I-K[0].offsetHeight;U=2*A.wheelSpeed*R/e};var C=function(p){m();P=T(p,"Y")-l-B.top;jQuery("body").bind("mouseup",N).bind("mousemove",a);if(jQuery.browser.msie){jQuery("body").bind("dragstart",Y).bind("selectstart",Y)}return false};var N=function(){jQuery("body").unbind("mouseup",N).unbind("mousemove",a);P=b*v/2;if(jQuery.browser.msie){jQuery("body").unbind("dragstart",Y).unbind("selectstart",Y)}};var q=function(w){w=w<0?0:(w>R?R:w);l=w;K.css({"top":w+"px"});var x=w/R;n.css({"top":((v-e)*x)+"px"});J.trigger("scroll")};var a=function(p){q(T(p,"Y")-B.top-P)};var h=Math.max(Math.min(b*(v-A.arrowSize*2),A.dragMaxHeight),A.dragMinHeight);K.css({"height":h+"px"}).bind("mousedown",C);var d;var L;var F;var k=function(){if(L>8||L%4==0){q((l-((l-F)/2)))}L++};var s=function(){clearInterval(d);jQuery("body").unbind("mouseup",s).unbind("mousemove",X)};var X=function(p){F=T(p,"Y")-B.top-P};var O=function(p){m();X(p);L=0;jQuery("body").bind("mouseup",s).bind("mousemove",X);d=setInterval(k,100);k()};r.bind("mousedown",O);if(E.mousewheel){E.mousewheel(function(w,y){m();f();var x=l;q(l-y*U);var p=x!=l;return !p},false)}var D;var Q;function V(){var p=(D-l)/A.animateStep;if(p>1||p<-1){q(l+p)}else{q(D);f()}}var f=function(){if(Q){clearInterval(Q);delete D}};var o=function(x,p){if(typeof x=="string"){$e=jQuery(x,this);if(!$e.length){return }x=$e.offset({relativeTo:this}).top}f();var w=-x/(v-e)*R;if(!p||A.animateTo){D=w;Q=setInterval(V,A.animateInterval)}else{q(w)}};J[0].scrollTo=o;J[0].scrollBy=function(w){var p=-parseInt(n.css("top"))||0;o(p+w)};m();o(-u,true);jQuery.jScrollPane.active.push(J[0])}else{J.css({"height":v+"px","width":W-this.originalSidePaddingTotal+"px","padding":this.originalPadding})}})};jQuery(window).bind("unload",function(){var B=jQuery.jScrollPane.active;for(var A=0;A<B.length;A++){B[A].scrollTo=B[A].scrollBy=null}})
