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