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