(function(a){a.jScrollPane={active:[]};a.fn.jScrollPane=function(c){c=a.extend({},a.fn.jScrollPane.defaults,c);var b=function(){return false};return this.each(function(){var T=a(this);var x=this;var an=0;var H;var ao;var n;var ad=c.topCapHeight;var G=false;if(a(this).parent().is(".jScrollPaneContainer")){an=c.maintainPosition?T.position().top:0;var U=a(this).parent();H=U.innerWidth();ao=U.outerHeight();a(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown, >.jScollCap",U).remove();T.css({top:0});if(T.parent().parent().attr("class")=="Module03"){trueHeight=T.children().outerHeight(true)*T.children().length;if(trueHeight<=190){T.parent().css({height:trueHeight+"px"});T.css("height",trueHeight+"px");G=true}}}else{T.data("originalStyleTag",T.attr("style"));T.css("overflow","hidden");this.originalPadding=T.css("paddingTop")+" "+T.css("paddingRight")+" "+T.css("paddingBottom")+" "+T.css("paddingLeft");this.originalSidePaddingTotal=(parseInt(T.css("paddingLeft"))||0)+(parseInt(T.css("paddingRight"))||0);H=T.innerWidth();ao=T.innerHeight();var ae=a("<div></div>").attr({className:"jScrollPaneContainer"}).css({height:ao+"px",width:H+"px"});if(T.parent().attr("class")=="Module03"){trueHeight=T.children().outerHeight(true)*T.children().length;if(trueHeight<parseInt(T.css("height"))){ae.css({height:trueHeight+"px"});T.css("height",trueHeight+"px")}}if(c.enableKeyboardNavigation){ae.attr("tabindex",c.tabIndex)}T.wrap(ae);a(document).bind("emchange",function(aq,ar,p){T.jScrollPane(c)});if(c.autoRefresh){function R(p){window.setTimeout(function(){var aq=parseInt($this.attr("previousInnerHeight"))||parseInt($this.attr("previousInnerHeight","init"));var ar=parseInt($this.innerHeight());if(aq!=ar){$this.jScrollPane(c);$this.attr("previousInnerHeight",ar)}return R(p)},c.autoRefresh)}R($this)}}n=ao;if(c.reinitialiseOnImageLoad){var A=a.data(x,"jScrollPaneImagesToLoad")||a("img",T);var i=[];if(A.length){A.each(function(p,aq){a(this).bind("load readystatechange",function(){if(a.inArray(p,i)==-1){i.push(aq);A=a.grep(A,function(au,at){return au!=aq});a.data(x,"jScrollPaneImagesToLoad",A);var ar=a.extend(c,{reinitialiseOnImageLoad:false});T.jScrollPane(ar)}}).each(function(ar,at){if(this.complete||this.complete===undefined){this.src=this.src}})})}}var Y=this.originalSidePaddingTotal;var aj=H-c.scrollbarWidth-c.scrollbarMargin-Y;var S={height:"auto",width:aj+"px"};if(c.scrollbarOnLeft){S.paddingLeft=c.scrollbarMargin+c.scrollbarWidth+"px"}else{S.paddingRight=c.scrollbarMargin+"px"}T.css(S);var W;var W=T.outerHeight();var O=ao/W;if(O<0.99){var ae=T.parent();ae.append(a("<div></div>").addClass("jScrollCap jScrollCapTop").css({height:c.topCapHeight}),a("<div></div>").attr({className:"jScrollPaneTrack"}).css({width:c.scrollbarWidth+"px"}).append(a("<div></div>").attr({className:"jScrollPaneDrag"}).css({width:c.scrollbarWidth+"px"}).append(a("<div></div>").attr({className:"jScrollPaneDragTop"}).css({width:c.scrollbarWidth+"px"}),a("<div></div>").attr({className:"jScrollPaneDragBottom"}).css({width:c.scrollbarWidth+"px"}))),a("<div></div>").addClass("jScrollCap jScrollCapBottom").css({height:c.bottomCapHeight}));var ap=a(">.jScrollPaneTrack",ae);var V=a(">.jScrollPaneTrack .jScrollPaneDrag",ae);var am;var g=[];var aa;var P=function(){if(aa>4||aa%4==0){ai(ag+am*D)}aa++};if(c.enableKeyboardNavigation){ae.bind("keydown.jscrollpane",function(p){switch(p.keyCode){case 38:am=-1;aa=0;P();g[g.length]=setInterval(P,100);return false;case 40:am=1;aa=0;P();g[g.length]=setInterval(P,100);return false;case 33:case 34:return false;default:}}).bind("keyup.jscrollpane",function(aq){if(aq.keyCode==38||aq.keyCode==40){for(var p=0;p<g.length;p++){clearInterval(g[p])}return false}})}if(c.showArrows){var M;var r;var m=function(p){a("html").unbind("mouseup",m);M.removeClass("jScrollActiveArrowButton");clearInterval(r)};var B=function(){a("html").bind("mouseup",m);M.addClass("jScrollActiveArrowButton");aa=0;P();r=setInterval(P,100)};ae.append(a("<a></a>").attr({href:"javascript:;",className:"jScrollArrowUp",tabindex:-1}).css({width:c.scrollbarWidth+"px",top:c.topCapHeight+"px"}).html("Scroll up").bind("mousedown",function(){M=a(this);am=-1;B();this.blur();return false}).bind("click",b),a("<a></a>").attr({href:"javascript:;",className:"jScrollArrowDown",tabindex:-1}).css({width:c.scrollbarWidth+"px",bottom:c.bottomCapHeight+"px"}).html("Scroll down").bind("mousedown",function(){M=a(this);am=1;B();this.blur();return false}).bind("click",b));var I=a(">.jScrollArrowUp",ae);var ak=a(">.jScrollArrowDown",ae)}if(c.arrowSize){n=ao-c.arrowSize-c.arrowSize;ad+=c.arrowSize}else{if(I){var ab=I.height();c.arrowSize=ab;n=ao-ab-ak.height();ad+=ab}}n-=c.topCapHeight+c.bottomCapHeight;if(G==false){ap.css({height:n+"px",top:ad+"px"})}else{trueHeight=T.children().outerHeight(true)*T.children().length;ap.remove()}var C=a(this).css({position:"absolute",overflow:"visible"});var d;var y;var D;var ag=0;var v=O*ao/2;var z=function(aq,at){var ar=at=="X"?"Left":"Top";return aq["page"+at]||(aq["client"+at]+(document.documentElement["scroll"+ar]||document.body["scroll"+ar]))||0};var L=function(){return false};var af=function(){X();d=V.offset(false);d.top-=ag;y=n-V[0].offsetHeight;D=2*c.wheelSpeed*y/W};var e=function(p){af();v=z(p,"Y")-ag-d.top;a("html").bind("mouseup",s).bind("mousemove",N);if(a.browser.msie){a("html").bind("dragstart",L).bind("selectstart",L)}return false};var s=function(){a("html").unbind("mouseup",s).unbind("mousemove",N);v=O*ao/2;if(a.browser.msie){a("html").unbind("dragstart",L).unbind("selectstart",L)}};var ai=function(aq){ae.scrollTop(0);aq=aq<0?0:(aq>y?y:aq);ag=aq;V.css({top:aq+"px"});var ar=aq/y;T.data("jScrollPanePosition",(ao-W)*-ar);C.css({top:((ao-W)*ar)+"px"});T.trigger("scroll");if(c.showArrows){I[aq==0?"addClass":"removeClass"]("disabled");ak[aq==y?"addClass":"removeClass"]("disabled")}};var N=function(p){ai(z(p,"Y")-d.top-v)};var Z=Math.max(Math.min(O*(ao-c.arrowSize*2),c.dragMaxHeight),c.dragMinHeight);V.css({height:Z+"px"}).bind("mousedown",e);var Q;var o;var k;var ac=function(){if(o>8||o%4==0){ai((ag-((ag-k)/2)))}o++};var al=function(){clearInterval(Q);a("html").unbind("mouseup",al).unbind("mousemove",K)};var K=function(p){k=z(p,"Y")-d.top-v};var t=function(p){af();K(p);o=0;a("html").bind("mouseup",al).bind("mousemove",K);Q=setInterval(ac,100);ac();return false};ap.bind("mousedown",t);ae.bind("mousewheel",function(aq,at){at=at||(aq.wheelDelta?aq.wheelDelta/120:(aq.detail)?-aq.detail/3:0);af();X();var ar=ag;ai(ag-at*D);var p=ar!=ag;return !p});var f;var w;function E(){var p=(f-ag)/c.animateStep;if(p>1||p<-1){ai(ag+p)}else{ai(f);X()}}var X=function(){if(w){clearInterval(w);delete f}};var ah=function(at,p){if(typeof at=="string"){jQuerye=a(at,T);if(!jQuerye.length){return}at=jQuerye.offset().top-T.offset().top}X();var ar=W-ao;at=at>ar?ar:at;T.data("jScrollPaneMaxScroll",ar);var aq=at/ar*y;if(p||!c.animateTo){ai(aq)}else{ae.scrollTop(0);f=aq;w=setInterval(E,c.animateInterval)}};T[0].scrollTo=ah;T[0].scrollBy=function(aq){var p=-parseInt(C.css("top"))||0;ah(p+aq)};af();ah(-an,true);a("*",this).bind("focus",function(au){var at=a(this);var aw=0;while(at[0]!=T[0]){aw+=at.position().top;at=at.offsetParent()}var p=-parseInt(C.css("top"))||0;var av=p+ao;var ar=aw>p&&aw<av;if(!ar){var aq=aw-c.scrollbarMargin;if(aw>p){aq+=a(this).height()+15+c.scrollbarMargin-ao}ah(aq)}});if(location.hash&&location.hash.length>1){setTimeout(function(){ah(location.hash)},a.browser.safari?100:0)}a(document).bind("click",function(aq){jQuerytarget=a(aq.target);if(jQuerytarget.is("a")){var p=jQuerytarget.attr("href");if(p&&p.substr(0,1)=="#"&&p.length>1){setTimeout(function(){ah(p,!c.animateToInternalLinks)},a.browser.safari?100:0)}}});function u(p){a(document).bind("mousemove.jScrollPaneDragging",q);a(document).bind("mouseup.jScrollPaneDragging",l)}var J;var h;function F(){direction=J<0?-1:1;T[0].scrollBy(J/2)}function j(){if(h){clearInterval(h);h=undefined}}function q(ar){var at=T.parent().offset().top;var p=at+ao;var aq=z(ar,"Y");J=aq<at?aq-at:(aq>p?aq-p:0);if(J==0){j()}else{if(!h){h=setInterval(F,100)}}}function l(p){a(document).unbind("mousemove.jScrollPaneDragging").unbind("mouseup.jScrollPaneDragging");j()}ae.bind("mousedown.jScrollPane",u);a.jScrollPane.active.push(T[0])}else{if(T.parent().attr("class")=="Module03"){trueHeight=T.children().outerHeight(true)*T.children().length;if(trueHeight<parseInt(T.css("height"))){T.css({height:trueHeight+"px",width:H-this.originalSidePaddingTotal+"px",padding:this.originalPadding})}}else{T.css({height:ao+"px",width:H-this.originalSidePaddingTotal+"px",padding:this.originalPadding})}T[0].scrollTo=T[0].scrollBy=function(){};T.parent().unbind("mousewheel").unbind("mousedown.jScrollPane").unbind("keydown.jscrollpane").unbind("keyup.jscrollpane")}})};a.fn.jScrollPaneRemove=function(){a(this).each(function(){jQuerythis=a(this);var b=jQuerythis.parent();if(b.is(".jScrollPaneContainer")){jQuerythis.css({top:"",height:"",width:"",padding:"",overflow:"",position:""});jQuerythis.attr("style",jQuerythis.data("originalStyleTag"));b.after(jQuerythis).remove()}})};a.fn.jScrollPane.defaults={scrollbarWidth:10,scrollbarMargin:0,wheelSpeed:18,showArrows:false,arrowSize:0,animateTo:false,dragMinHeight:9,dragMaxHeight:9999,animateInterval:100,animateStep:3,maintainPosition:true,scrollbarOnLeft:false,reinitialiseOnImageLoad:false,tabIndex:0,enableKeyboardNavigation:true,animateToInternalLinks:false,topCapHeight:0,bottomCapHeight:0,autoRefresh:false};a(window).bind("unload",function(){var c=a.jScrollPane.active;for(var b=0;b<c.length;b++){c[b].scrollTo=c[b].scrollBy=null}})})(jQuery);
