(function(b,a,c){b.fn.jScrollPane=function(f){function d(D,M){var av,O=this,W,ai,w,ak,R,X,z,r,aw,aC,aq,j,I,i,k,Y,S,am,V,u,B,an,ad,al,G,m,ap,au,y,ar,aF,g,aB,ah=true,N=true,aE=false,l=false,aa=b.fn.mwheelIntent?"mwheelIntent.jsp":"mousewheel.jsp";aF=D.css("paddingTop")+" "+D.css("paddingRight")+" "+D.css("paddingBottom")+" "+D.css("paddingLeft");g=(parseInt(D.css("paddingLeft"))||0)+(parseInt(D.css("paddingRight"))||0);ao(M);function ao(aI){var aM,aL,aK,aH,aG,aJ;av=aI;if(W==c){D.css({overflow:"hidden",padding:0});ai=D.innerWidth()+g;w=D.innerHeight();D.width(ai);W=b('<div class="jspPane" />').wrap(b('<div class="jspContainer" />').css({width:ai+"px",height:w+"px"}));D.wrapInner(W.parent());ak=D.find(">.jspContainer");W=ak.find(">.jspPane");W.css("padding",aF)}else{D.css("width","");aJ=D.outerWidth()+g!=ai||D.outerHeight()!=w;if(aJ){ai=D.innerWidth()+g;w=D.innerHeight();ak.css({width:ai+"px",height:w+"px"})}aB=W.innerWidth();if(!aJ&&W.outerWidth()==R&&W.outerHeight()==X){if(aC||aw){W.css("width",aB+"px");D.css("width",(aB+g)+"px")}return}W.css("width","");D.css("width",(ai)+"px");ak.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()}aM=W.clone().css("position","absolute");aL=b('<div style="width:1px; position: relative;" />').append(aM);b("body").append(aL);R=Math.max(W.outerWidth(),aM.outerWidth());aL.remove();X=W.outerHeight();z=R/ai;r=X/w;aw=r>1;aC=z>1;if(!(aC||aw)){D.removeClass("jspScrollable");W.css({top:0,width:ak.width()-g});o();E();P();x();ag()}else{D.addClass("jspScrollable");aK=av.maintainPosition&&(I||Y);if(aK){aH=az();aG=ax()}aD();A();F();if(aK){L(aH);K(aG)}J();ae();if(av.enableKeyboardNavigation){Q()}if(av.clickOnTrack){q()}C();if(av.hijackInternalLinks){n()}}if(av.autoReinitialise&&!ar){ar=setInterval(function(){ao(av)},av.autoReinitialiseDelay)}else{if(!av.autoReinitialise&&ar){clearInterval(ar)}}D.trigger("jsp-initialised",[aC||aw])}function aD(){if(aw){ak.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'),b('<div class="jspDragBottom" />'))),b('<div class="jspCap jspCapBottom" />')));S=ak.find(">.jspVerticalBar");am=S.find(">.jspTrack");aq=am.find(">.jspDrag");if(av.showArrows){an=b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp",aA(0,-1)).bind("click.jsp",ay);ad=b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp",aA(0,1)).bind("click.jsp",ay);if(av.arrowScrollOnHover){an.bind("mouseover.jsp",aA(0,-1,an));ad.bind("mouseover.jsp",aA(0,1,ad))}aj(am,av.verticalArrowPositions,an,ad)}u=w;ak.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function(){u-=b(this).outerHeight()});aq.hover(function(){aq.addClass("jspHover")},function(){aq.removeClass("jspHover")}).bind("mousedown.jsp",function(aG){b("html").bind("dragstart.jsp selectstart.jsp",function(){return false});aq.addClass("jspActive");var s=aG.pageY-aq.position().top;b("html").bind("mousemove.jsp",function(aH){T(aH.pageY-s,false)}).bind("mouseup.jsp mouseleave.jsp",at);return false});p()}}function p(){am.height(u+"px");I=0;V=av.verticalGutter+am.outerWidth();W.width(ai-V-g);if(S.position().left==0){W.css("margin-left",V+"px")}}function A(){if(aC){ak.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'),b('<div class="jspDragRight" />'))),b('<div class="jspCap jspCapRight" />')));al=ak.find(">.jspHorizontalBar");G=al.find(">.jspTrack");i=G.find(">.jspDrag");if(av.showArrows){au=b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp",aA(-1,0)).bind("click.jsp",ay);y=b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp",aA(1,0)).bind("click.jsp",ay);if(av.arrowScrollOnHover){au.bind("mouseover.jsp",aA(-1,0,au));y.bind("mouseover.jsp",aA(1,0,y))}aj(G,av.horizontalArrowPositions,au,y)}i.hover(function(){i.addClass("jspHover")},function(){i.removeClass("jspHover")}).bind("mousedown.jsp",function(aG){b("html").bind("dragstart.jsp selectstart.jsp",function(){return false});i.addClass("jspActive");var s=aG.pageX-i.position().left;b("html").bind("mousemove.jsp",function(aH){U(aH.pageX-s,false)}).bind("mouseup.jsp mouseleave.jsp",at);return false});m=ak.innerWidth();af()}else{}}function af(){ak.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function(){m-=b(this).outerWidth()});G.width(m+"px");Y=0}function F(){if(aC&&aw){var aG=G.outerHeight(),s=am.outerWidth();u-=aG;b(al).find(">.jspCap:visible,>.jspArrow").each(function(){m+=b(this).outerWidth()});m-=s;w-=s;ai-=aG;G.parent().append(b('<div class="jspCorner" />').css("width",aG+"px"));p();af()}if(aC){W.width((ak.outerWidth()-g)+"px")}X=W.outerHeight();r=X/w;if(aC){ap=1/z*m;if(ap>av.horizontalDragMaxWidth){ap=av.horizontalDragMaxWidth}else{if(ap<av.horizontalDragMinWidth){ap=av.horizontalDragMinWidth}}i.width(ap+"px");k=m-ap;ac(Y)}if(aw){B=1/r*u;if(B>av.verticalDragMaxHeight){B=av.verticalDragMaxHeight}else{if(B<av.verticalDragMinHeight){B=av.verticalDragMinHeight}}aq.height(B+"px");j=u-B;ab(I)}}function aj(aH,aJ,aG,s){var aL="before",aI="after",aK;if(aJ=="os"){aJ=/Mac/.test(navigator.platform)?"after":"split"}if(aJ==aL){aI=aJ}else{if(aJ==aI){aL=aJ;aK=aG;aG=s;s=aK}}aH[aL](aG)[aI](s)}function aA(aG,s,aH){return function(){H(aG,s,this,aH);this.blur();return false}}function H(aI,aG,aL,aK){aL=b(aL).addClass("jspActive");var aJ,s=function(){if(aI!=0){U(Y+aI*av.arrowButtonSpeed,false)}if(aG!=0){T(I+aG*av.arrowButtonSpeed,false)}},aH=setInterval(s,av.arrowRepeatFreq);s();aJ=aK==c?"mouseup.jsp":"mouseout.jsp";aK=aK||b("html");aK.bind(aJ,function(){aL.removeClass("jspActive");clearInterval(aH);aK.unbind(aJ)})}function q(){x();if(aw){am.bind("mousedown.jsp",function(aI){if(aI.originalTarget==c||aI.originalTarget==aI.currentTarget){var aH=b(this),s=setInterval(function(){var aJ=aH.offset(),aK=aI.pageY-aJ.top;if(I+B<aK){T(I+av.trackClickSpeed)}else{if(aK<I){T(I-av.trackClickSpeed)}else{aG()}}},av.trackClickRepeatFreq),aG=function(){s&&clearInterval(s);s=null;b(document).unbind("mouseup.jsp",aG)};b(document).bind("mouseup.jsp",aG);return false}})}if(aC){G.bind("mousedown.jsp",function(aI){if(aI.originalTarget==c||aI.originalTarget==aI.currentTarget){var aH=b(this),s=setInterval(function(){var aJ=aH.offset(),aK=aI.pageX-aJ.left;if(Y+ap<aK){U(Y+av.trackClickSpeed)}else{if(aK<Y){U(Y-av.trackClickSpeed)}else{aG()}}},av.trackClickRepeatFreq),aG=function(){s&&clearInterval(s);s=null;b(document).unbind("mouseup.jsp",aG)};b(document).bind("mouseup.jsp",aG);return false}})}}function x(){G&&G.unbind("mousedown.jsp");am&&am.unbind("mousedown.jsp")}function at(){b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");aq&&aq.removeClass("jspActive");i&&i.removeClass("jspActive")}function T(s,aG){if(!aw){return}if(s<0){s=0}else{if(s>j){s=j}}if(aG==c){aG=av.animateScroll}if(aG){O.animate(aq,"top",s,ab)}else{aq.css("top",s);ab(s)}}function ab(aG){if(aG==c){aG=aq.position().top}ak.scrollTop(0);I=aG;var aJ=I==0,aH=I==j,aI=aG/j,s=-aI*(X-w);if(ah!=aJ||aE!=aH){ah=aJ;aE=aH;D.trigger("jsp-arrow-change",[ah,aE,N,l])}v(aJ,aH);W.css("top",s);D.trigger("jsp-scroll-y",[-s,aJ,aH])}function U(aG,s){if(!aC){return}if(aG<0){aG=0}else{if(aG>k){aG=k}}if(s==c){s=av.animateScroll}if(s){O.animate(i,"left",aG,ac)}else{i.css("left",aG);ac(aG)}}function ac(aG){if(aG==c){aG=i.position().left}ak.scrollTop(0);Y=aG;var aJ=Y==0,aI=Y==k,aH=aG/k,s=-aH*(R-ai);if(N!=aJ||l!=aI){N=aJ;l=aI;D.trigger("jsp-arrow-change",[ah,aE,N,l])}t(aJ,aI);W.css("left",s);D.trigger("jsp-scroll-x",[-s,aJ,aI])}function v(aG,s){if(av.showArrows){an[aG?"addClass":"removeClass"]("jspDisabled");ad[s?"addClass":"removeClass"]("jspDisabled")}}function t(aG,s){if(av.showArrows){au[aG?"addClass":"removeClass"]("jspDisabled");y[s?"addClass":"removeClass"]("jspDisabled")}}function K(s,aG){var aH=s/(X-w);T(aH*j,aG)}function L(aG,s){var aH=aG/(R-ai);U(aH*k,s)}function Z(aS,aN,aH){var aL,aI,aJ,s=0,aR=0,aG,aM,aP,aO,aQ;try{aL=b(aS)}catch(aK){return}aI=aL.outerHeight();aJ=aL.outerWidth();ak.scrollTop(0);ak.scrollLeft(0);while(!aL.is(".jspPane")){s+=aL.position().top;aR+=aL.position().left;aL=aL.offsetParent();if(/^body|html$/i.test(aL[0].nodeName)){return}}aG=ax();aM=aG+w;if(s<aG||aN){aO=s-av.verticalGutter}else{if(s+aI>aM){aO=s-w+aI+av.verticalGutter}}if(aO){K(aO,aH)}viewportLeft=az();aP=viewportLeft+ai;if(aR<viewportLeft||aN){aQ=aR-av.horizontalGutter}else{if(aR+aJ>aP){aQ=aR-ai+aJ+av.horizontalGutter}}if(aQ){L(aQ,aH)}}function az(){return -W.position().left}function ax(){return -W.position().top}function ae(){ak.unbind(aa).bind(aa,function(aJ,aK,aI,aG){var aH=Y,s=I;U(Y+aI*av.mouseWheelSpeed,false);T(I-aG*av.mouseWheelSpeed,false);return aH==Y&&s==I})}function o(){ak.unbind(aa)}function ay(){return false}function J(){W.unbind("focusin.jsp").bind("focusin.jsp",function(s){if(s.target===W[0]){return}Z(s.target,false)})}function E(){W.unbind("focusin.jsp")}function Q(){var aG,s;D.attr("tabindex",0).unbind("keydown.jsp").bind("keydown.jsp",function(aK){if(aK.target!==D[0]){return}var aI=Y,aH=I,aJ=aG?2:16;switch(aK.keyCode){case 40:T(I+aJ,false);break;case 38:T(I-aJ,false);break;case 34:case 32:K(ax()+Math.max(32,w)-16);break;case 33:K(ax()-w+16);break;case 35:K(X-w);break;case 36:K(0);break;case 39:U(Y+aJ,false);break;case 37:U(Y-aJ,false);break}if(!(aI==Y&&aH==I)){aG=true;clearTimeout(s);s=setTimeout(function(){aG=false},260);return false}});if(av.hideFocus){D.css("outline","none");if("hideFocus" in ak[0]){D.attr("hideFocus",true)}}else{D.css("outline","");if("hideFocus" in ak[0]){D.attr("hideFocus",false)}}}function P(){D.attr("tabindex","-1").removeAttr("tabindex").unbind("keydown.jsp")}function C(){if(location.hash&&location.hash.length>1){var aH,aG;try{aH=b(location.hash)}catch(s){return}if(aH.length&&W.find(aH)){if(ak.scrollTop()==0){aG=setInterval(function(){if(ak.scrollTop()>0){Z(location.hash,true);b(document).scrollTop(ak.position().top);clearInterval(aG)}},50)}else{Z(location.hash,true);b(document).scrollTop(ak.position().top)}}}}function ag(){b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")}function n(){ag();b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack",function(){var s=this.href.split("#"),aG;if(s.length>1){aG=s[1];if(aG.length>0&&W.find("#"+aG).length>0){Z("#"+aG,true);return false}}})}function h(){if(aC){al.remove()}if(aw){S.remove()}W.children().unwrap().unwrap();D.removeClass("jspScrollable").removeAttr("style").removeAttr("tabindex").removeData("jsp");D.unbind(".jsp")}b.extend(O,{reinitialise:function(aG){aG=b.extend({},aG,av);ao(aG)},scrollToElement:function(aH,aG,s){Z(aH,aG,s)},scrollTo:function(aH,s,aG){L(aH,aG);K(s,aG)},scrollToX:function(aG,s){L(aG,s)},scrollToY:function(s,aG){K(s,aG)},scrollBy:function(aG,s,aH){O.scrollByX(aG,aH);O.scrollByY(s,aH)},scrollByX:function(s,aH){var aG=az()+s,aI=aG/(R-ai);U(aI*k,aH)},scrollByY:function(s,aH){var aG=ax()+s,aI=aG/(X-w);T(aI*j,aH)},animate:function(aG,aJ,s,aI){var aH={};aH[aJ]=s;aG.animate(aH,{duration:av.animateDuration,ease:av.animateEase,queue:false,step:aI})},getContentPositionX:function(){return az()},getContentPositionY:function(){return ax()},getIsScrollableH:function(){return aC},getIsScrollableV:function(){return aw},getContentPane:function(){return W},scrollToBottom:function(s){T(j,s)},hijackInternalLinks:function(){n()},destroy:function(){h()}})}f=b.extend({},b.fn.jScrollPane.defaults,f);var e;this.each(function(){var g=b(this),h=g.data("jsp");if(h){h.reinitialise(f)}else{h=new d(g,f);g.data("jsp",h)}e=e?e.add(g):g});return e};b.fn.jScrollPane.defaults={showArrows:false,maintainPosition:true,clickOnTrack:true,autoReinitialise:false,autoReinitialiseDelay:500,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,animateScroll:false,animateDuration:300,animateEase:"linear",hijackInternalLinks:false,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:10,arrowButtonSpeed:10,arrowRepeatFreq:100,arrowScrollOnHover:false,trackClickSpeed:30,trackClickRepeatFreq:100,verticalArrowPositions:"split",horizontalArrowPositions:"split",enableKeyboardNavigation:true,hideFocus:false}})(jQuery,this);
