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