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