/*! copyright (c) 2011 piotr rochala (http://rocha.la) * dual licensed under the mit (http://www.opensource.org/licenses/mit-license.php) * and gpl (http://www.opensource.org/licenses/gpl-license.php) licenses. * * version: 1.1.1 * */ (function(a){jquery.fn.extend({slimscroll:function(b){var c={width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysvisible:false,disablefadeout:false,railvisible:false,railcolor:"#333",railopacity:0.2,raildraggable:true,railclass:"slimscrollrail",barclass:"slimscrollbar",wrapperclass:"slimscrolldiv",allowpagescroll:false,wheelstep:20,touchscrollstep:200};var d=a.extend(c,b);this.each(function(){var w,r,k,p,z,s,o,j,l="
",t=30,q=false;var a=a(this);if(a.parent().hasclass(d.wrapperclass)){var h=a.scrolltop();u=a.parent().find("."+d.barclass);e=a.parent().find("."+d.railclass);b();if(a.isplainobject(b)){if("height" in b&&b.height=="auto"){a.parent().css("height","auto");a.css("height","auto");var n=a.parent().parent().innerheight();a.parent().css("height",n);a.css("height",n)}if("scrollto" in b){h=parseint(d.scrollto)}else{if("scrollby" in b){h+=parseint(d.scrollby)}else{if("destroy" in b){u.remove();e.remove();a.unwrap();return}}}v(h,false,true)}return}d.height=(d.height=="auto")?a.parent().innerheight():d.height;var i=a(l).addclass(d.wrapperclass).css({position:"relative",overflow:"hidden",width:d.width,height:d.height});a.css({overflow:"hidden",width:d.width,height:d.height});var e=a(l).addclass(d.railclass).css({width:d.size,height:"100%",position:"absolute",top:0,display:(d.alwaysvisible&&d.railvisible)?"block":"none","border-radius":d.size,background:d.railcolor,opacity:d.railopacity,zindex:90});var u=a(l).addclass(d.barclass).css({background:d.color,width:d.size,position:"absolute",top:0,opacity:d.opacity,display:d.alwaysvisible?"block":"none","border-radius":d.size,borderradius:d.size,mozborderradius:d.size,webkitborderradius:d.size,zindex:99});var f=(d.position=="right")?{right:d.distance}:{left:d.distance};e.css(f);u.css(f);a.wrap(i);a.parent().append(u);a.parent().append(e);if(d.raildraggable){u.draggable({axis:"y",containment:"parent",start:function(){k=true},stop:function(){k=false;m()},drag:function(c){v(0,a(this).position().top,false)}})}e.hover(function(){g()},function(){m()});u.hover(function(){r=true},function(){r=false});a.hover(function(){w=true;g();m()},function(){w=false;m()});a.bind("touchstart",function(d,c){if(d.originalevent.touches.length){z=d.originalevent.touches[0].pagey}});a.bind("touchmove",function(d){d.originalevent.preventdefault();if(d.originalevent.touches.length){var c=(z-d.originalevent.touches[0].pagey)/d.touchscrollstep;z=d.originalevent.touches[0].pagey;v(c,true)}});if(d.start==="bottom"){u.css({top:a.outerheight()-u.outerheight()});v(0,true)}else{if(d.start!=="top"){v(a(d.start).position().top,null,true);if(!d.alwaysvisible){u.hide()}}}x();b();function y(d){if(!w){return}var d=d||window.event;var e=0;if(d.wheeldelta){e=-d.wheeldelta/120}if(d.detail){e=d.detail/3}var c=d.target||d.srctarget||d.srcelement;if(a(c).closest("."+d.wrapperclass).is(a.parent())){v(e,true)}if(d.preventdefault&&!q){d.preventdefault()}if(!q){d.returnvalue=false}}function v(h,e,c){var g=h;var f=a.outerheight()-u.outerheight();if(e){g=parseint(u.css("top"))+h*parseint(d.wheelstep)/100*u.outerheight();g=math.min(math.max(g,0),f);g=(h>0)?math.ceil(g):math.floor(g);u.css({top:g+"px"})}o=parseint(u.css("top"))/(a.outerheight()-u.outerheight());g=o*(a[0].scrollheight-a.outerheight());if(c){g=h;var d=g/a[0].scrollheight*a.outerheight();d=math.min(math.max(d,0),f);u.css({top:d+"px"})}a.scrolltop(g);a.trigger("slimscrolling",~~g);g();m()}function x(){if(window.addeventlistener){this.addeventlistener("dommousescroll",y,false);this.addeventlistener("mousewheel",y,false)}else{document.attachevent("onmousewheel",y)}}function b(){s=math.max((a.outerheight()/a[0].scrollheight)*a.outerheight(),t);u.css({height:s+"px"});var c=s==a.outerheight()?"none":"block";u.css({display:c})}function g(){b();cleartimeout(p);if(o==~~o){q=d.allowpagescroll;if(j!=o){var c=(~~o==0)?"top":"bottom";a.trigger("slimscroll",c)}}j=o;if(s>=a.outerheight()){q=true;return}u.stop(true,true).fadein("fast");if(d.railvisible){e.stop(true,true).fadein("fast")}}function m(){if(!d.alwaysvisible){p=settimeout(function(){if(!(d.disablefadeout&&w)&&!r&&!k){u.fadeout("slow");e.fadeout("slow")}},1000)}}});return this}});jquery.fn.extend({slimscroll:jquery.fn.slimscroll})})(jquery);