(function($){
$.jScrollPane={active:[]};
$.fn.jScrollPane=function(_2){
_2=$.extend({},$.fn.jScrollPane.defaults,_2);
var rf=function(){
return false;
};
return this.each(function(){
var _4=$(this);
_4.css("overflow","hidden");
var _5=this;
if($(this).parent().is(".jScrollPaneContainer")){
var _6=_2.maintainPosition?_4.position().top:0;
var $c=$(this).parent();
var _8=$c.innerWidth();
var _9=$c.outerHeight();
var _a=_9;
$(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown",$c).remove();
_4.css({"top":0});
}else{
var _6=0;
this.originalPadding=_4.css("paddingTop")+" "+_4.css("paddingRight")+" "+_4.css("paddingBottom")+" "+_4.css("paddingLeft");
this.originalSidePaddingTotal=(parseInt(_4.css("paddingLeft"))||0)+(parseInt(_4.css("paddingRight"))||0);
var _8=_4.innerWidth();
var _9=_4.innerHeight();
var _a=_9;
_4.wrap($("<div></div>").attr({"className":"jScrollPaneContainer"}).css({"height":_9+"px","width":_8+"px"}).attr("tabindex",_2.tabIndex));
$(document).bind("emchange",function(e,_c,_d){
_4.jScrollPane(_2);
});
}
if(_2.reinitialiseOnImageLoad){
var _e=$.data(_5,"jScrollPaneImagesToLoad")||$("img",_4);
var _f=[];
if(_e.length){
_e.each(function(i,val){
$(this).bind("load readystatechange",function(){
if($.inArray(i,_f)==-1){
_f.push(val);
_e=$.grep(_e,function(n,i){
return n!=val;
});
$.data(_5,"jScrollPaneImagesToLoad",_e);
var s2=$.extend(_2,{reinitialiseOnImageLoad:false});
_4.jScrollPane(s2);
}
}).each(function(i,val){
if(this.complete||this.complete===undefined){
this.src=this.src;
}
});
});
}
}
var p=this.originalSidePaddingTotal;
var _18=_8-_2.scrollbarWidth-_2.scrollbarMargin-p;
var _19={"height":"auto","width":_18+"px"};
if(_2.scrollbarOnLeft){
_19.paddingLeft=_2.scrollbarMargin+_2.scrollbarWidth+"px";
}else{
_19.paddingRight=_2.scrollbarMargin+"px";
}
_4.css(_19);
var _1a=_4.outerHeight();
var _1b=_9/_1a;
if(_1b<0.99){
var _1c=_4.parent();
_1c.append($("<div></div>").attr({"className":"jScrollPaneTrack"}).css({"width":_2.scrollbarWidth+"px"}).append($("<div></div>").attr({"className":"jScrollPaneDrag"}).css({"width":_2.scrollbarWidth+"px"}).append($("<div></div>").attr({"className":"jScrollPaneDragTop"}).css({"width":_2.scrollbarWidth+"px"}),$("<div></div>").attr({"className":"jScrollPaneDragBottom"}).css({"width":_2.scrollbarWidth+"px"}))));
var _1d=$(">.jScrollPaneTrack",_1c);
var _1e=$(">.jScrollPaneTrack .jScrollPaneDrag",_1c);
var _1f;
var _20=[];
var _21;
var _22=function(){
if(_21>4||_21%4==0){
_23(_24+_1f*_25);
}
_21++;
};
if(_2.enableKeyboardNavigation){
_1c.bind("keydown.jscrollpane",function(e){
switch(e.keyCode){
case 38:
_1f=-1;
_21=0;
_22();
_20[_20.length]=setInterval(_22,100);
return false;
case 40:
_1f=1;
_21=0;
_22();
_20[_20.length]=setInterval(_22,100);
return false;
case 33:
case 34:
return false;
default:
}
}).bind("keyup.jscrollpane",function(e){
if(e.keyCode==38||e.keyCode==40){
for(var i=0;i<_20.length;i++){
clearInterval(_20[i]);
}
return false;
}
});
}
if(_2.showArrows){
var _29;
var _2a;
var _2b=function(_2c){
$("html").unbind("mouseup",_2b);
_29.removeClass("jScrollActiveArrowButton");
clearInterval(_2a);
};
var _2d=function(){
$("html").bind("mouseup",_2b);
_29.addClass("jScrollActiveArrowButton");
_21=0;
_22();
_2a=setInterval(_22,100);
};
_1c.append($("<a></a>").attr({"href":"javascript:;","className":"jScrollArrowUp","tabindex":-1}).css({"width":_2.scrollbarWidth+"px"}).html("Scroll up").bind("mousedown",function(){
_29=$(this);
_1f=-1;
_2d();
this.blur();
return false;
}).bind("click",rf),$("<a></a>").attr({"href":"javascript:;","className":"jScrollArrowDown","tabindex":-1}).css({"width":_2.scrollbarWidth+"px"}).html("Scroll down").bind("mousedown",function(){
_29=$(this);
_1f=1;
_2d();
this.blur();
return false;
}).bind("click",rf));
var _2e=$(">.jScrollArrowUp",_1c);
var _2f=$(">.jScrollArrowDown",_1c);
if(_2.arrowSize){
_a=_9-_2.arrowSize-_2.arrowSize;
_1d.css({"height":_a+"px",top:_2.arrowSize+"px"});
}else{
var _30=_2e.height();
_2.arrowSize=_30;
_a=_9-_30-_2f.height();
_1d.css({"height":_a+"px",top:_30+"px"});
}
}
var _31=$(this).css({"position":"absolute","overflow":"visible"});
var _32;
var _33;
var _25;
var _24=0;
var _34=_1b*_9/2;
var _35=function(_36,c){
var p=c=="X"?"Left":"Top";
return _36["page"+c]||(_36["client"+c]+(document.documentElement["scroll"+p]||document.body["scroll"+p]))||0;
};
var _39=function(){
return false;
};
var _3a=function(){
_3b();
_32=_1e.offset(false);
_32.top-=_24;
_33=_a-_1e[0].offsetHeight;
_25=2*_2.wheelSpeed*_33/_1a;
};
var _3c=function(_3d){
_3a();
_34=_35(_3d,"Y")-_24-_32.top;
$("html").bind("mouseup",_3e).bind("mousemove",_3f);
if($.browser.msie){
$("html").bind("dragstart",_39).bind("selectstart",_39);
}
return false;
};
var _3e=function(){
$("html").unbind("mouseup",_3e).unbind("mousemove",_3f);
_34=_1b*_9/2;
if($.browser.msie){
$("html").unbind("dragstart",_39).unbind("selectstart",_39);
}
};
var _23=function(_40){
_40=_40<0?0:(_40>_33?_33:_40);
_24=_40;
_1e.css({"top":_40+"px"});
var p=_40/_33;
_4.data("jScrollPanePosition",(_9-_1a)*-p);
_31.css({"top":((_9-_1a)*p)+"px"});
_4.trigger("scroll");
if(_2.showArrows){
_2e[_40==0?"addClass":"removeClass"]("disabled");
_2f[_40==_33?"addClass":"removeClass"]("disabled");
}
};
var _3f=function(e){
_23(_35(e,"Y")-_32.top-_34);
};
var _43=Math.max(Math.min(_1b*(_9-_2.arrowSize*2),_2.dragMaxHeight),_2.dragMinHeight);
_1e.css({"height":_43+"px"}).bind("mousedown",_3c);
var _44;
var _45;
var _46;
var _47=function(){
if(_45>8||_45%4==0){
_23((_24-((_24-_46)/2)));
}
_45++;
};
var _48=function(){
clearInterval(_44);
$("html").unbind("mouseup",_48).unbind("mousemove",_49);
};
var _49=function(_4a){
_46=_35(_4a,"Y")-_32.top-_34;
};
var _4b=function(_4c){
_3a();
_49(_4c);
_45=0;
$("html").bind("mouseup",_48).bind("mousemove",_49);
_44=setInterval(_47,100);
_47();
return false;
};
_1d.bind("mousedown",_4b);
_1c.bind("mousewheel",function(_4d,_4e){
_4e=_4e||(_4d.wheelDelta?_4d.wheelDelta/120:(_4d.detail)?-_4d.detail/3:0);
_3a();
_3b();
var d=_24;
_23(_24-_4e*_25);
var _50=d!=_24;
return !_50;
});
var _51;
var _52;
function _53(){
var _54=(_51-_24)/_2.animateStep;
if(_54>1||_54<-1){
_23(_24+_54);
}else{
_23(_51);
_3b();
}
};
var _3b=function(){
if(_52){
clearInterval(_52);
delete _51;
}
};
var _55=function(pos,_57){
if(typeof pos=="string"){
$e=$(pos,_4);
if(!$e.length){
return;
}
pos=$e.offset().top-_4.offset().top;
}
_1c.scrollTop(0);
_3b();
var _58=_1a-_9;
pos=pos>_58?_58:pos;
_4.data("jScrollPaneMaxScroll",_58);
var _59=pos/_58*_33;
if(_57||!_2.animateTo){
_23(_59);
}else{
_51=_59;
_52=setInterval(_53,_2.animateInterval);
}
};
_4[0].scrollTo=_55;
_4[0].scrollBy=function(_5a){
var _5b=-parseInt(_31.css("top"))||0;
_55(_5b+_5a);
};
_3a();
_55(-_6,true);
$("*",this).bind("focus",function(_5c){
var $e=$(this);
var _5e=0;
while($e[0]!=_4[0]){
_5e+=$e.position().top;
$e=$e.offsetParent();
}
var _5f=-parseInt(_31.css("top"))||0;
var _60=_5f+_9;
var _61=_5e>_5f&&_5e<_60;
if(!_61){
var _62=_5e-_2.scrollbarMargin;
if(_5e>_5f){
_62+=$(this).height()+15+_2.scrollbarMargin-_9;
}
_55(_62);
}
});
if(location.hash){
setTimeout(function(){
_55(location.hash);
},$.browser.safari?100:0);
}
$(document).bind("click",function(e){
$target=$(e.target);
if($target.is("a")){
var h=$target.attr("href");
if(h&&h.substr(0,1)=="#"&&h.length>1){
setTimeout(function(){
_55(h,!_2.animateToInternalLinks);
},$.browser.safari?100:0);
}
}
});
function _65(e){
$(document).bind("mousemove.jScrollPaneDragging",_67);
$(document).bind("mouseup.jScrollPaneDragging",_68);
};
var _69;
var _6a;
function _6b(){
direction=_69<0?-1:1;
_4[0].scrollBy(_69/2);
};
function _6c(){
if(_6a){
clearInterval(_6a);
_6a=undefined;
}
};
function _67(e){
var _6e=_4.parent().offset().top;
var _6f=_6e+_9;
var _70=_35(e,"Y");
_69=_70<_6e?_70-_6e:(_70>_6f?_70-_6f:0);
if(_69==0){
_6c();
}else{
if(!_6a){
_6a=setInterval(_6b,100);
}
}
};
function _68(e){
$(document).unbind("mousemove.jScrollPaneDragging").unbind("mouseup.jScrollPaneDragging");
_6c();
};
_1c.bind("mousedown.jScrollPane",_65);
$.jScrollPane.active.push(_4[0]);
}else{
_4.css({"height":_9+"px","width":_8-this.originalSidePaddingTotal+"px","padding":this.originalPadding});
_4[0].scrollTo=_4[0].scrollBy=function(){
};
_4.parent().unbind("mousewheel").unbind("mousedown.jScrollPane").unbind("keydown.jscrollpane").unbind("keyup.jscrollpane");
}
});
};
$.fn.jScrollPaneRemove=function(){
$(this).each(function(){
$this=$(this);
var $c=$this.parent();
if($c.is(".jScrollPaneContainer")){
$this.css({"top":"","height":"","width":"","padding":"","overflow":"","position":""});
$c.after($this).remove();
}
});
};
$.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,tabIndex:0,enableKeyboardNavigation:true,animateToInternalLinks:false};
$(window).bind("unload",function(){
var els=$.jScrollPane.active;
for(var i=0;i<els.length;i++){
els[i].scrollTo=els[i].scrollBy=null;
}
});
})(jQuery);


