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