2016-08-23 22:29:34 +02:00
/*! jquery.nicescroll 3.6.6 InuYaksa*2015 MIT http://nicescroll.areaaperta.com */ ( function ( e ) { "function" === typeof define && define . amd ? define ( [ "jquery" ] , e ) : "object" === typeof exports ? module . exports = e ( require ( "jquery" ) ) : e ( jQuery ) } ) ( function ( e ) { var A = ! 1 , E = ! 1 , O = 0 , P = 2E3 , z = 0 , I = [ "webkit" , "ms" , "moz" , "o" ] , u = window . requestAnimationFrame || ! 1 , v = window . cancelAnimationFrame || ! 1 ; if ( ! u ) for ( var Q in I ) { var F = I [ Q ] ; u || ( u = window [ F + "RequestAnimationFrame" ] ) ; v || ( v = window [ F + "CancelAnimationFrame" ] || window [ F + "CancelRequestAnimationFrame" ] ) } var x = window . MutationObserver || window . WebKitMutationObserver ||
2016-03-24 11:36:31 +01:00
! 1 , J = { zindex : "auto" , cursoropacitymin : 0 , cursoropacitymax : 1 , cursorcolor : "#424242" , cursorwidth : "5px" , cursorborder : "1px solid #fff" , cursorborderradius : "5px" , scrollspeed : 60 , mousescrollstep : 24 , touchbehavior : ! 1 , hwacceleration : ! 0 , usetransition : ! 0 , boxzoom : ! 1 , dblclickzoom : ! 0 , gesturezoom : ! 0 , grabcursorenabled : ! 0 , autohidemode : ! 0 , background : "" , iframeautoresize : ! 0 , cursorminheight : 32 , preservenativescrolling : ! 0 , railoffset : ! 1 , railhoffset : ! 1 , bouncescroll : ! 0 , spacebarenabled : ! 0 , railpadding : { top : 0 , right : 0 , left : 0 , bottom : 0 } ,
disableoutline : ! 0 , horizrailenabled : ! 0 , railalign : "right" , railvalign : "bottom" , enabletranslate3d : ! 0 , enablemousewheel : ! 0 , enablekeyboard : ! 0 , smoothscroll : ! 0 , sensitiverail : ! 0 , enablemouselockapi : ! 0 , cursorfixedheight : ! 1 , directionlockdeadzone : 6 , hidecursordelay : 400 , nativeparentscrolling : ! 0 , enablescrollonselection : ! 0 , overflowx : ! 0 , overflowy : ! 0 , cursordragspeed : . 3 , rtlmode : "auto" , cursordragontouch : ! 1 , oneaxismousemode : "auto" , scriptpath : function ( ) { var e = document . getElementsByTagName ( "script" ) , e = e . length ? e [ e . length -
1 ] . src . split ( "?" ) [ 0 ] : "" ; return 0 < e . split ( "/" ) . length ? e . split ( "/" ) . slice ( 0 , - 1 ) . join ( "/" ) + "/" : "" } ( ) , preventmultitouchscrolling : ! 0 } , G = ! 1 , R = function ( ) { if ( G ) return G ; var e = document . createElement ( "DIV" ) , c = e . style , h = navigator . userAgent , n = navigator . platform , d = { haspointerlock : "pointerLockElement" in document || "webkitPointerLockElement" in document || "mozPointerLockElement" in document } ; d . isopera = "opera" in window ; d . isopera12 = d . isopera && "getUserMedia" in navigator ; d . isoperamini = "[object OperaMini]" === Object . prototype . toString . call ( window . operamini ) ;
d . isie = "all" in document && "attachEvent" in e && ! d . isopera ; d . isieold = d . isie && ! ( "msInterpolationMode" in c ) ; d . isie7 = d . isie && ! d . isieold && ( ! ( "documentMode" in document ) || 7 == document . documentMode ) ; d . isie8 = d . isie && "documentMode" in document && 8 == document . documentMode ; d . isie9 = d . isie && "performance" in window && 9 <= document . documentMode ; d . isie10 = d . isie && "performance" in window && 10 == document . documentMode ; d . isie11 = "msRequestFullscreen" in e && 11 <= document . documentMode ; d . isieedge = navigator . userAgent . match ( /Edge\/12\./ ) ; d . isie9mobile =
/iemobile.9/i . test ( h ) ; d . isie9mobile && ( d . isie9 = ! 1 ) ; d . isie7mobile = ! d . isie9mobile && d . isie7 && /iemobile/i . test ( h ) ; d . ismozilla = "MozAppearance" in c ; d . iswebkit = "WebkitAppearance" in c ; d . ischrome = "chrome" in window ; d . ischrome22 = d . ischrome && d . haspointerlock ; d . ischrome26 = d . ischrome && "transition" in c ; d . cantouch = "ontouchstart" in document . documentElement || "ontouchstart" in window ; d . hasmstouch = window . MSPointerEvent || ! 1 ; d . hasw3ctouch = ( window . PointerEvent || ! 1 ) && ( 0 < navigator . MaxTouchPoints || 0 < navigator . msMaxTouchPoints ) ;
d . ismac = /^mac$/i . test ( n ) ; d . isios = d . cantouch && /iphone|ipad|ipod/i . test ( n ) ; d . isios4 = d . isios && ! ( "seal" in Object ) ; d . isios7 = d . isios && "webkitHidden" in document ; d . isandroid = /android/i . test ( h ) ; d . haseventlistener = "addEventListener" in e ; d . trstyle = ! 1 ; d . hastransform = ! 1 ; d . hastranslate3d = ! 1 ; d . transitionstyle = ! 1 ; d . hastransition = ! 1 ; d . transitionend = ! 1 ; n = [ "transform" , "msTransform" , "webkitTransform" , "MozTransform" , "OTransform" ] ; for ( h = 0 ; h < n . length ; h ++ ) if ( "undefined" != typeof c [ n [ h ] ] ) { d . trstyle = n [ h ] ; break } d . hastransform =
! ! d . trstyle ; d . hastransform && ( c [ d . trstyle ] = "translate3d(1px,2px,3px)" , d . hastranslate3d = /translate3d/ . test ( c [ d . trstyle ] ) ) ; d . transitionstyle = ! 1 ; d . prefixstyle = "" ; d . transitionend = ! 1 ; for ( var n = "transition webkitTransition msTransition MozTransition OTransition OTransition KhtmlTransition" . split ( " " ) , p = " -webkit- -ms- -moz- -o- -o -khtml-" . split ( " " ) , q = "transitionend webkitTransitionEnd msTransitionEnd transitionend otransitionend oTransitionEnd KhtmlTransitionEnd" . split ( " " ) , h = 0 ; h < n . length ; h ++ ) if ( n [ h ] in
c ) { d . transitionstyle = n [ h ] ; d . prefixstyle = p [ h ] ; d . transitionend = q [ h ] ; break } d . ischrome26 && ( d . prefixstyle = p [ 1 ] ) ; d . hastransition = d . transitionstyle ; a : { h = [ "-webkit-grab" , "-moz-grab" , "grab" ] ; if ( d . ischrome && ! d . ischrome22 || d . isie ) h = [ ] ; for ( n = 0 ; n < h . length ; n ++ ) if ( p = h [ n ] , c . cursor = p , c . cursor == p ) { c = p ; break a } c = "url(//mail.google.com/mail/images/2/openhand.cur),n-resize" } d . cursorgrabvalue = c ; d . hasmousecapture = "setCapture" in e ; d . hasMutationObserver = ! 1 !== x ; return G = d } , S = function ( k , c ) { function h ( ) { var b = a . doc . css ( f . trstyle ) ;
return b && "matrix" == b . substr ( 0 , 6 ) ? b . replace ( /^.*\((.*)\)$/g , "$1" ) . replace ( /px/g , "" ) . split ( /, +/ ) : ! 1 } function n ( ) { var b = a . win ; if ( "zIndex" in b ) return b . zIndex ( ) ; for ( ; 0 < b . length && 9 != b [ 0 ] . nodeType ; ) { var g = b . css ( "zIndex" ) ; if ( ! isNaN ( g ) && 0 != g ) return parseInt ( g ) ; b = b . parent ( ) } return ! 1 } function d ( b , g , l ) { g = b . css ( g ) ; b = parseFloat ( g ) ; return isNaN ( b ) ? ( b = y [ g ] || 0 , l = 3 == b ? l ? a . win . outerHeight ( ) - a . win . innerHeight ( ) : a . win . outerWidth ( ) - a . win . innerWidth ( ) : 1 , a . isie8 && b && ( b += 1 ) , l ? b : 0 ) : b } function p ( b , g , l , c ) { a . _bind ( b , g , function ( a ) { a =
a ? a : window . event ; var c = { original : a , target : a . target || a . srcElement , type : "wheel" , deltaMode : "MozMousePixelScroll" == a . type ? 0 : 1 , deltaX : 0 , deltaZ : 0 , preventDefault : function ( ) { a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 ; return ! 1 } , stopImmediatePropagation : function ( ) { a . stopImmediatePropagation ? a . stopImmediatePropagation ( ) : a . cancelBubble = ! 0 } } ; "mousewheel" == g ? ( c . deltaY = - . 025 * a . wheelDelta , a . wheelDeltaX && ( c . deltaX = - . 025 * a . wheelDeltaX ) ) : c . deltaY = a . detail ; return l . call ( b , c ) } , c ) } function q ( b , g , c ) { var d , f ; 0 ==
b . deltaMode ? ( d = - Math . floor ( a . opt . mousescrollstep / 54 * b . deltaX ) , f = - Math . floor ( a . opt . mousescrollstep / 54 * b . deltaY ) ) : 1 == b . deltaMode && ( d = - Math . floor ( b . deltaX * a . opt . mousescrollstep ) , f = - Math . floor ( b . deltaY * a . opt . mousescrollstep ) ) ; g && a . opt . oneaxismousemode && 0 == d && f && ( d = f , f = 0 , c && ( 0 > d ? a . getScrollLeft ( ) >= a . page . maxw : 0 >= a . getScrollLeft ( ) ) && ( f = d , d = 0 ) ) ; d && ( a . scrollmom && a . scrollmom . stop ( ) , a . lastdeltax += d , a . debounced ( "mousewheelx" , function ( ) { var b = a . lastdeltax ; a . lastdeltax = 0 ; a . rail . drag || a . doScrollLeftBy ( b ) } , 15 ) ) ;
if ( f ) { if ( a . opt . nativeparentscrolling && c && ! a . ispage && ! a . zoomactive ) if ( 0 > f ) { if ( a . getScrollTop ( ) >= a . page . maxh ) return ! 0 } else if ( 0 >= a . getScrollTop ( ) ) return ! 0 ; a . scrollmom && a . scrollmom . stop ( ) ; a . lastdeltay += f ; a . debounced ( "mousewheely" , function ( ) { var b = a . lastdeltay ; a . lastdeltay = 0 ; a . rail . drag || a . doScrollBy ( b ) } , 15 ) } b . stopImmediatePropagation ( ) ; return b . preventDefault ( ) } var a = this ; this . version = "3.6.6" ; this . name = "nicescroll" ; this . me = c ; this . opt = { doc : e ( "body" ) , win : ! 1 } ; e . extend ( this . opt , J ) ; this . opt . snapbackspeed =
80 ; if ( k ) for ( var H in a . opt ) "undefined" != typeof k [ H ] && ( a . opt [ H ] = k [ H ] ) ; this . iddoc = ( this . doc = a . opt . doc ) && this . doc [ 0 ] ? this . doc [ 0 ] . id || "" : "" ; this . ispage = /^BODY|HTML/ . test ( a . opt . win ? a . opt . win [ 0 ] . nodeName : this . doc [ 0 ] . nodeName ) ; this . haswrapper = ! 1 !== a . opt . win ; this . win = a . opt . win || ( this . ispage ? e ( window ) : this . doc ) ; this . docscroll = this . ispage && ! this . haswrapper ? e ( window ) : this . win ; this . body = e ( "body" ) ; this . iframe = this . isfixed = this . viewport = ! 1 ; this . isiframe = "IFRAME" == this . doc [ 0 ] . nodeName && "IFRAME" == this . win [ 0 ] . nodeName ;
this . istextarea = "TEXTAREA" == this . win [ 0 ] . nodeName ; this . forcescreen = ! 1 ; this . canshowonmouseevent = "scroll" != a . opt . autohidemode ; this . page = this . view = this . onzoomout = this . onzoomin = this . onscrollcancel = this . onscrollend = this . onscrollstart = this . onclick = this . ongesturezoom = this . onkeypress = this . onmousewheel = this . onmousemove = this . onmouseup = this . onmousedown = ! 1 ; this . scroll = { x : 0 , y : 0 } ; this . scrollratio = { x : 0 , y : 0 } ; this . cursorheight = 20 ; this . scrollvaluemax = 0 ; this . isrtlmode = "auto" == this . opt . rtlmode ? "rtl" == ( this . win [ 0 ] == window ?
this . body : this . win ) . css ( "direction" ) : ! 0 === this . opt . rtlmode ; this . observerbody = this . observerremover = this . observer = this . scrollmom = this . scrollrunning = ! 1 ; do this . id = "ascrail" + P ++ ; while ( document . getElementById ( this . id ) ) ; this . hasmousefocus = this . hasfocus = this . zoomactive = this . zoom = this . selectiondrag = this . cursorfreezed = this . cursor = this . rail = ! 1 ; this . visibility = ! 0 ; this . hidden = this . locked = this . railslocked = ! 1 ; this . cursoractive = ! 0 ; this . wheelprevented = ! 1 ; this . overflowx = a . opt . overflowx ; this . overflowy = a . opt . overflowy ;
this . nativescrollingarea = ! 1 ; this . checkarea = 0 ; this . events = [ ] ; this . saved = { } ; this . delaylist = { } ; this . synclist = { } ; this . lastdeltay = this . lastdeltax = 0 ; this . detected = R ( ) ; var f = e . extend ( { } , this . detected ) ; this . ishwscroll = ( this . canhwscroll = f . hastransform && a . opt . hwacceleration ) && a . haswrapper ; this . hasreversehr = this . isrtlmode && ! f . iswebkit ; this . istouchcapable = ! 1 ; ! f . cantouch || f . isios || f . isandroid || ! f . iswebkit && ! f . ismozilla || ( this . istouchcapable = ! 0 , f . cantouch = ! 1 ) ; a . opt . enablemouselockapi || ( f . hasmousecapture = ! 1 , f . haspointerlock =
! 1 ) ; this . debounced = function ( b , g , c ) { var d = a . delaylist [ b ] ; a . delaylist [ b ] = g ; d || ( a . debouncedelayed = setTimeout ( function ( ) { if ( a ) { var g = a . delaylist [ b ] ; a . delaylist [ b ] = ! 1 ; g . call ( a ) } } , c ) ) } ; var t = ! 1 ; this . synched = function ( b , g ) { a . synclist [ b ] = g ; ( function ( ) { t || ( u ( function ( ) { t = ! 1 ; for ( var b in a . synclist ) { var g = a . synclist [ b ] ; g && g . call ( a ) ; a . synclist [ b ] = ! 1 } } ) , t = ! 0 ) } ) ( ) ; return b } ; this . unsynched = function ( b ) { a . synclist [ b ] && ( a . synclist [ b ] = ! 1 ) } ; this . css = function ( b , g ) { for ( var c in g ) a . saved . css . push ( [ b , c , b . css ( c ) ] ) , b . css ( c ,
g [ c ] ) } ; this . scrollTop = function ( b ) { return "undefined" == typeof b ? a . getScrollTop ( ) : a . setScrollTop ( b ) } ; this . scrollLeft = function ( b ) { return "undefined" == typeof b ? a . getScrollLeft ( ) : a . setScrollLeft ( b ) } ; var B = function ( a , g , c , d , f , e , h ) { this . st = a ; this . ed = g ; this . spd = c ; this . p1 = d || 0 ; this . p2 = f || 1 ; this . p3 = e || 0 ; this . p4 = h || 1 ; this . ts = ( new Date ) . getTime ( ) ; this . df = this . ed - this . st } ; B . prototype = { B2 : function ( a ) { return 3 * a * a * ( 1 - a ) } , B3 : function ( a ) { return 3 * a * ( 1 - a ) * ( 1 - a ) } , B4 : function ( a ) { return ( 1 - a ) * ( 1 - a ) * ( 1 - a ) } , getNow : function ( ) { var a =
1 - ( ( new Date ) . getTime ( ) - this . ts ) / this . spd , g = this . B2 ( a ) + this . B3 ( a ) + this . B4 ( a ) ; return 0 > a ? this . ed : this . st + Math . round ( this . df * g ) } , update : function ( a , g ) { this . st = this . getNow ( ) ; this . ed = a ; this . spd = g ; this . ts = ( new Date ) . getTime ( ) ; this . df = this . ed - this . st ; return this } } ; if ( this . ishwscroll ) { this . doc . translate = { x : 0 , y : 0 , tx : "0px" , ty : "0px" } ; f . hastranslate3d && f . isios && this . doc . css ( "-webkit-backface-visibility" , "hidden" ) ; this . getScrollTop = function ( b ) { if ( ! b ) { if ( b = h ( ) ) return 16 == b . length ? - b [ 13 ] : - b [ 5 ] ; if ( a . timerscroll &&
a . timerscroll . bz ) return a . timerscroll . bz . getNow ( ) } return a . doc . translate . y } ; this . getScrollLeft = function ( b ) { if ( ! b ) { if ( b = h ( ) ) return 16 == b . length ? - b [ 12 ] : - b [ 4 ] ; if ( a . timerscroll && a . timerscroll . bh ) return a . timerscroll . bh . getNow ( ) } return a . doc . translate . x } ; this . notifyScrollEvent = function ( a ) { var g = document . createEvent ( "UIEvents" ) ; g . initUIEvent ( "scroll" , ! 1 , ! 0 , window , 1 ) ; g . niceevent = ! 0 ; a . dispatchEvent ( g ) } ; var L = this . isrtlmode ? 1 : - 1 ; f . hastranslate3d && a . opt . enabletranslate3d ? ( this . setScrollTop = function ( b , g ) { a . doc . translate . y =
b ; a . doc . translate . ty = - 1 * b + "px" ; a . doc . css ( f . trstyle , "translate3d(" + a . doc . translate . tx + "," + a . doc . translate . ty + ",0px)" ) ; g || a . notifyScrollEvent ( a . win [ 0 ] ) } , this . setScrollLeft = function ( b , g ) { a . doc . translate . x = b ; a . doc . translate . tx = b * L + "px" ; a . doc . css ( f . trstyle , "translate3d(" + a . doc . translate . tx + "," + a . doc . translate . ty + ",0px)" ) ; g || a . notifyScrollEvent ( a . win [ 0 ] ) } ) : ( this . setScrollTop = function ( b , g ) { a . doc . translate . y = b ; a . doc . translate . ty = - 1 * b + "px" ; a . doc . css ( f . trstyle , "translate(" + a . doc . translate . tx + "," + a . doc . translate . ty +
")" ) ; g || a . notifyScrollEvent ( a . win [ 0 ] ) } , this . setScrollLeft = function ( b , g ) { a . doc . translate . x = b ; a . doc . translate . tx = b * L + "px" ; a . doc . css ( f . trstyle , "translate(" + a . doc . translate . tx + "," + a . doc . translate . ty + ")" ) ; g || a . notifyScrollEvent ( a . win [ 0 ] ) } ) } else this . getScrollTop = function ( ) { return a . docscroll . scrollTop ( ) } , this . setScrollTop = function ( b ) { return setTimeout ( function ( ) { a . docscroll . scrollTop ( b ) } , 1 ) } , this . getScrollLeft = function ( ) { return a . detected . ismozilla && a . isrtlmode ? Math . abs ( a . docscroll . scrollLeft ( ) ) : a . docscroll . scrollLeft ( ) } ,
this . setScrollLeft = function ( b ) { return setTimeout ( function ( ) { a . docscroll . scrollLeft ( a . detected . ismozilla && a . isrtlmode ? - b : b ) } , 1 ) } ; this . getTarget = function ( a ) { return a ? a . target ? a . target : a . srcElement ? a . srcElement : ! 1 : ! 1 } ; this . hasParent = function ( a , g ) { if ( ! a ) return ! 1 ; for ( var c = a . target || a . srcElement || a || ! 1 ; c && c . id != g ; ) c = c . parentNode || ! 1 ; return ! 1 !== c } ; var y = { thin : 1 , medium : 3 , thick : 5 } ; this . getDocumentScrollOffset = function ( ) { return { top : window . pageYOffset || document . documentElement . scrollTop , left : window . pageXOffset ||
document . documentElement . scrollLeft } } ; this . getOffset = function ( ) { if ( a . isfixed ) { var b = a . win . offset ( ) , g = a . getDocumentScrollOffset ( ) ; b . top -= g . top ; b . left -= g . left ; return b } b = a . win . offset ( ) ; if ( ! a . viewport ) return b ; g = a . viewport . offset ( ) ; return { top : b . top - g . top , left : b . left - g . left } } ; this . updateScrollBar = function ( b ) { if ( a . ishwscroll ) a . rail . css ( { height : a . win . innerHeight ( ) - ( a . opt . railpadding . top + a . opt . railpadding . bottom ) } ) , a . railh && a . railh . css ( { width : a . win . innerWidth ( ) - ( a . opt . railpadding . left + a . opt . railpadding . right ) } ) ;
else { var g = a . getOffset ( ) , c = g . top , f = g . left - ( a . opt . railpadding . left + a . opt . railpadding . right ) , c = c + d ( a . win , "border-top-width" , ! 0 ) , f = f + ( a . rail . align ? a . win . outerWidth ( ) - d ( a . win , "border-right-width" ) - a . rail . width : d ( a . win , "border-left-width" ) ) , e = a . opt . railoffset ; e && ( e . top && ( c += e . top ) , e . left && ( f += e . left ) ) ; a . railslocked || a . rail . css ( { top : c , left : f , height : ( b ? b . h : a . win . innerHeight ( ) ) - ( a . opt . railpadding . top + a . opt . railpadding . bottom ) } ) ; a . zoom && a . zoom . css ( { top : c + 1 , left : 1 == a . rail . align ? f - 20 : f + a . rail . width + 4 } ) ; if ( a . railh &&
! a . railslocked ) { c = g . top ; f = g . left ; if ( e = a . opt . railhoffset ) e . top && ( c += e . top ) , e . left && ( f += e . left ) ; b = a . railh . align ? c + d ( a . win , "border-top-width" , ! 0 ) + a . win . innerHeight ( ) - a . railh . height : c + d ( a . win , "border-top-width" , ! 0 ) ; f += d ( a . win , "border-left-width" ) ; a . railh . css ( { top : b - ( a . opt . railpadding . top + a . opt . railpadding . bottom ) , left : f , width : a . railh . width } ) } } } ; this . doRailClick = function ( b , g , c ) { var f ; a . railslocked || ( a . cancelEvent ( b ) , g ? ( g = c ? a . doScrollLeft : a . doScrollTop , f = c ? ( b . pageX - a . railh . offset ( ) . left - a . cursorwidth / 2 ) *
a . scrollratio . x : ( b . pageY - a . rail . offset ( ) . top - a . cursorheight / 2 ) * a . scrollratio . y , g ( f ) ) : ( g = c ? a . doScrollLeftBy : a . doScrollBy , f = c ? a . scroll . x : a . scroll . y , b = c ? b . pageX - a . railh . offset ( ) . left : b . pageY - a . rail . offset ( ) . top , c = c ? a . view . w : a . view . h , g ( f >= b ? c : - c ) ) ) } ; a . hasanimationframe = u ; a . hascancelanimationframe = v ; a . hasanimationframe ? a . hascancelanimationframe || ( v = function ( ) { a . cancelAnimationFrame = ! 0 } ) : ( u = function ( a ) { return setTimeout ( a , 15 - Math . floor ( + new Date / 1E3 ) % 16 ) } , v = clearInterval ) ; this . init = function ( ) { a . saved . css =
[ ] ; if ( f . isie7mobile || f . isoperamini ) return ! 0 ; f . hasmstouch && a . css ( a . ispage ? e ( "html" ) : a . win , { "-ms-touch-action" : "none" } ) ; a . zindex = "auto" ; a . zindex = a . ispage || "auto" != a . opt . zindex ? a . opt . zindex : n ( ) || "auto" ; ! a . ispage && "auto" != a . zindex && a . zindex > z && ( z = a . zindex ) ; a . isie && 0 == a . zindex && "auto" == a . opt . zindex && ( a . zindex = "auto" ) ; if ( ! a . ispage || ! f . cantouch && ! f . isieold && ! f . isie9mobile ) { var b = a . docscroll ; a . ispage && ( b = a . haswrapper ? a . win : a . doc ) ; f . isie9mobile || a . css ( b , { "overflow-y" : "hidden" } ) ; a . ispage && f . isie7 && ( "BODY" ==
a . doc [ 0 ] . nodeName ? a . css ( e ( "html" ) , { "overflow-y" : "hidden" } ) : "HTML" == a . doc [ 0 ] . nodeName && a . css ( e ( "body" ) , { "overflow-y" : "hidden" } ) ) ; ! f . isios || a . ispage || a . haswrapper || a . css ( e ( "body" ) , { "-webkit-overflow-scrolling" : "touch" } ) ; var c = e ( document . createElement ( "div" ) ) ; c . css ( { position : "relative" , top : 0 , "float" : "right" , width : a . opt . cursorwidth , height : "0px" , "background-color" : a . opt . cursorcolor , border : a . opt . cursorborder , "background-clip" : "padding-box" , "-webkit-border-radius" : a . opt . cursorborderradius , "-moz-border-radius" : a . opt . cursorborderradius ,
"border-radius" : a . opt . cursorborderradius } ) ; c . hborder = parseFloat ( c . outerHeight ( ) - c . innerHeight ( ) ) ; c . addClass ( "nicescroll-cursors" ) ; a . cursor = c ; var l = e ( document . createElement ( "div" ) ) ; l . attr ( "id" , a . id ) ; l . addClass ( "nicescroll-rails nicescroll-rails-vr" ) ; var d , h , k = [ "left" , "right" , "top" , "bottom" ] , K ; for ( K in k ) h = k [ K ] , ( d = a . opt . railpadding [ h ] ) ? l . css ( "padding-" + h , d + "px" ) : a . opt . railpadding [ h ] = 0 ; l . append ( c ) ; l . width = Math . max ( parseFloat ( a . opt . cursorwidth ) , c . outerWidth ( ) ) ; l . css ( { width : l . width + "px" , zIndex : a . zindex ,
background : a . opt . background , cursor : "default" } ) ; l . visibility = ! 0 ; l . scrollable = ! 0 ; l . align = "left" == a . opt . railalign ? 0 : 1 ; a . rail = l ; c = a . rail . drag = ! 1 ; ! a . opt . boxzoom || a . ispage || f . isieold || ( c = document . createElement ( "div" ) , a . bind ( c , "click" , a . doZoom ) , a . bind ( c , "mouseenter" , function ( ) { a . zoom . css ( "opacity" , a . opt . cursoropacitymax ) } ) , a . bind ( c , "mouseleave" , function ( ) { a . zoom . css ( "opacity" , a . opt . cursoropacitymin ) } ) , a . zoom = e ( c ) , a . zoom . css ( { cursor : "pointer" , "z-index" : a . zindex , backgroundImage : "url(" + a . opt . scriptpath + "zoomico.png)" ,
height : 18 , width : 18 , backgroundPosition : "0px 0px" } ) , a . opt . dblclickzoom && a . bind ( a . win , "dblclick" , a . doZoom ) , f . cantouch && a . opt . gesturezoom && ( a . ongesturezoom = function ( b ) { 1.5 < b . scale && a . doZoomIn ( b ) ; . 8 > b . scale && a . doZoomOut ( b ) ; return a . cancelEvent ( b ) } , a . bind ( a . win , "gestureend" , a . ongesturezoom ) ) ) ; a . railh = ! 1 ; var m ; a . opt . horizrailenabled && ( a . css ( b , { "overflow-x" : "hidden" } ) , c = e ( document . createElement ( "div" ) ) , c . css ( { position : "absolute" , top : 0 , height : a . opt . cursorwidth , width : "0px" , "background-color" : a . opt . cursorcolor ,
border : a . opt . cursorborder , "background-clip" : "padding-box" , "-webkit-border-radius" : a . opt . cursorborderradius , "-moz-border-radius" : a . opt . cursorborderradius , "border-radius" : a . opt . cursorborderradius } ) , f . isieold && c . css ( { overflow : "hidden" } ) , c . wborder = parseFloat ( c . outerWidth ( ) - c . innerWidth ( ) ) , c . addClass ( "nicescroll-cursors" ) , a . cursorh = c , m = e ( document . createElement ( "div" ) ) , m . attr ( "id" , a . id + "-hr" ) , m . addClass ( "nicescroll-rails nicescroll-rails-hr" ) , m . height = Math . max ( parseFloat ( a . opt . cursorwidth ) , c . outerHeight ( ) ) ,
m . css ( { height : m . height + "px" , zIndex : a . zindex , background : a . opt . background } ) , m . append ( c ) , m . visibility = ! 0 , m . scrollable = ! 0 , m . align = "top" == a . opt . railvalign ? 0 : 1 , a . railh = m , a . railh . drag = ! 1 ) ; a . ispage ? ( l . css ( { position : "fixed" , top : "0px" , height : "100%" } ) , l . align ? l . css ( { right : "0px" } ) : l . css ( { left : "0px" } ) , a . body . append ( l ) , a . railh && ( m . css ( { position : "fixed" , left : "0px" , width : "100%" } ) , m . align ? m . css ( { bottom : "0px" } ) : m . css ( { top : "0px" } ) , a . body . append ( m ) ) ) : ( a . ishwscroll ? ( "static" == a . win . css ( "position" ) && a . css ( a . win , { position : "relative" } ) ,
b = "HTML" == a . win [ 0 ] . nodeName ? a . body : a . win , e ( b ) . scrollTop ( 0 ) . scrollLeft ( 0 ) , a . zoom && ( a . zoom . css ( { position : "absolute" , top : 1 , right : 0 , "margin-right" : l . width + 4 } ) , b . append ( a . zoom ) ) , l . css ( { position : "absolute" , top : 0 } ) , l . align ? l . css ( { right : 0 } ) : l . css ( { left : 0 } ) , b . append ( l ) , m && ( m . css ( { position : "absolute" , left : 0 , bottom : 0 } ) , m . align ? m . css ( { bottom : 0 } ) : m . css ( { top : 0 } ) , b . append ( m ) ) ) : ( a . isfixed = "fixed" == a . win . css ( "position" ) , b = a . isfixed ? "fixed" : "absolute" , a . isfixed || ( a . viewport = a . getViewport ( a . win [ 0 ] ) ) , a . viewport && ( a . body =
a . viewport , 0 == /fixed|absolute/ . test ( a . viewport . css ( "position" ) ) && a . css ( a . viewport , { position : "relative" } ) ) , l . css ( { position : b } ) , a . zoom && a . zoom . css ( { position : b } ) , a . updateScrollBar ( ) , a . body . append ( l ) , a . zoom && a . body . append ( a . zoom ) , a . railh && ( m . css ( { position : b } ) , a . body . append ( m ) ) ) , f . isios && a . css ( a . win , { "-webkit-tap-highlight-color" : "rgba(0,0,0,0)" , "-webkit-touch-callout" : "none" } ) , f . isie && a . opt . disableoutline && a . win . attr ( "hideFocus" , "true" ) , f . iswebkit && a . opt . disableoutline && a . win . css ( { outline : "none" } ) ) ; ! 1 ===
a . opt . autohidemode ? ( a . autohidedom = ! 1 , a . rail . css ( { opacity : a . opt . cursoropacitymax } ) , a . railh && a . railh . css ( { opacity : a . opt . cursoropacitymax } ) ) : ! 0 === a . opt . autohidemode || "leave" === a . opt . autohidemode ? ( a . autohidedom = e ( ) . add ( a . rail ) , f . isie8 && ( a . autohidedom = a . autohidedom . add ( a . cursor ) ) , a . railh && ( a . autohidedom = a . autohidedom . add ( a . railh ) ) , a . railh && f . isie8 && ( a . autohidedom = a . autohidedom . add ( a . cursorh ) ) ) : "scroll" == a . opt . autohidemode ? ( a . autohidedom = e ( ) . add ( a . rail ) , a . railh && ( a . autohidedom = a . autohidedom . add ( a . railh ) ) ) :
"cursor" == a . opt . autohidemode ? ( a . autohidedom = e ( ) . add ( a . cursor ) , a . railh && ( a . autohidedom = a . autohidedom . add ( a . cursorh ) ) ) : "hidden" == a . opt . autohidemode && ( a . autohidedom = ! 1 , a . hide ( ) , a . railslocked = ! 1 ) ; if ( f . isie9mobile ) a . scrollmom = new M ( a ) , a . onmangotouch = function ( ) { var b = a . getScrollTop ( ) , c = a . getScrollLeft ( ) ; if ( b == a . scrollmom . lastscrolly && c == a . scrollmom . lastscrollx ) return ! 0 ; var g = b - a . mangotouch . sy , f = c - a . mangotouch . sx ; if ( 0 != Math . round ( Math . sqrt ( Math . pow ( f , 2 ) + Math . pow ( g , 2 ) ) ) ) { var d = 0 > g ? - 1 : 1 , l = 0 > f ? - 1 : 1 , e = + new Date ;
a . mangotouch . lazy && clearTimeout ( a . mangotouch . lazy ) ; 80 < e - a . mangotouch . tm || a . mangotouch . dry != d || a . mangotouch . drx != l ? ( a . scrollmom . stop ( ) , a . scrollmom . reset ( c , b ) , a . mangotouch . sy = b , a . mangotouch . ly = b , a . mangotouch . sx = c , a . mangotouch . lx = c , a . mangotouch . dry = d , a . mangotouch . drx = l , a . mangotouch . tm = e ) : ( a . scrollmom . stop ( ) , a . scrollmom . update ( a . mangotouch . sx - f , a . mangotouch . sy - g ) , a . mangotouch . tm = e , g = Math . max ( Math . abs ( a . mangotouch . ly - b ) , Math . abs ( a . mangotouch . lx - c ) ) , a . mangotouch . ly = b , a . mangotouch . lx = c , 2 < g && ( a . mangotouch . lazy =
setTimeout ( function ( ) { a . mangotouch . lazy = ! 1 ; a . mangotouch . dry = 0 ; a . mangotouch . drx = 0 ; a . mangotouch . tm = 0 ; a . scrollmom . doMomentum ( 30 ) } , 100 ) ) ) } } , l = a . getScrollTop ( ) , m = a . getScrollLeft ( ) , a . mangotouch = { sy : l , ly : l , dry : 0 , sx : m , lx : m , drx : 0 , lazy : ! 1 , tm : 0 } , a . bind ( a . docscroll , "scroll" , a . onmangotouch ) ; else { if ( f . cantouch || a . istouchcapable || a . opt . touchbehavior || f . hasmstouch ) { a . scrollmom = new M ( a ) ; a . ontouchstart = function ( b ) { if ( b . pointerType && 2 != b . pointerType && "touch" != b . pointerType ) return ! 1 ; a . hasmoving = ! 1 ; if ( ! a . railslocked ) { var c ;
if ( f . hasmstouch ) for ( c = b . target ? b . target : ! 1 ; c ; ) { var g = e ( c ) . getNiceScroll ( ) ; if ( 0 < g . length && g [ 0 ] . me == a . me ) break ; if ( 0 < g . length ) return ! 1 ; if ( "DIV" == c . nodeName && c . id == a . id ) break ; c = c . parentNode ? c . parentNode : ! 1 } a . cancelScroll ( ) ; if ( ( c = a . getTarget ( b ) ) && /INPUT/i . test ( c . nodeName ) && /range/i . test ( c . type ) ) return a . stopPropagation ( b ) ; ! ( "clientX" in b ) && "changedTouches" in b && ( b . clientX = b . changedTouches [ 0 ] . clientX , b . clientY = b . changedTouches [ 0 ] . clientY ) ; a . forcescreen && ( g = b , b = { original : b . original ? b . original : b } , b . clientX =
g . screenX , b . clientY = g . screenY ) ; a . rail . drag = { x : b . clientX , y : b . clientY , sx : a . scroll . x , sy : a . scroll . y , st : a . getScrollTop ( ) , sl : a . getScrollLeft ( ) , pt : 2 , dl : ! 1 } ; if ( a . ispage || ! a . opt . directionlockdeadzone ) a . rail . drag . dl = "f" ; else { var g = e ( window ) . width ( ) , d = e ( window ) . height ( ) , d = Math . max ( 0 , Math . max ( document . body . scrollHeight , document . documentElement . scrollHeight ) - d ) , g = Math . max ( 0 , Math . max ( document . body . scrollWidth , document . documentElement . scrollWidth ) - g ) ; a . rail . drag . ck = ! a . rail . scrollable && a . railh . scrollable ? 0 < d ? "v" :
! 1 : a . rail . scrollable && ! a . railh . scrollable ? 0 < g ? "h" : ! 1 : ! 1 ; a . rail . drag . ck || ( a . rail . drag . dl = "f" ) } a . opt . touchbehavior && a . isiframe && f . isie && ( g = a . win . position ( ) , a . rail . drag . x += g . left , a . rail . drag . y += g . top ) ; a . hasmoving = ! 1 ; a . lastmouseup = ! 1 ; a . scrollmom . reset ( b . clientX , b . clientY ) ; if ( ! f . cantouch && ! this . istouchcapable && ! b . pointerType ) { if ( ! c || ! /INPUT|SELECT|TEXTAREA/i . test ( c . nodeName ) ) return ! a . ispage && f . hasmousecapture && c . setCapture ( ) , a . opt . touchbehavior ? ( c . onclick && ! c . _onclick && ( c . _onclick = c . onclick , c . onclick =
function ( b ) { if ( a . hasmoving ) return ! 1 ; c . _onclick . call ( this , b ) } ) , a . cancelEvent ( b ) ) : a . stopPropagation ( b ) ; /SUBMIT|CANCEL|BUTTON/i . test ( e ( c ) . attr ( "type" ) ) && ( pc = { tg : c , click : ! 1 } , a . preventclick = pc ) } } } ; a . ontouchend = function ( b ) { if ( ! a . rail . drag ) return ! 0 ; if ( 2 == a . rail . drag . pt ) { if ( b . pointerType && 2 != b . pointerType && "touch" != b . pointerType ) return ! 1 ; a . scrollmom . doMomentum ( ) ; a . rail . drag = ! 1 ; if ( a . hasmoving && ( a . lastmouseup = ! 0 , a . hideCursor ( ) , f . hasmousecapture && document . releaseCapture ( ) , ! f . cantouch ) ) return a . cancelEvent ( b ) } else if ( 1 ==
a . rail . drag . pt ) return a . onmouseup ( b ) } ; var p = a . opt . touchbehavior && a . isiframe && ! f . hasmousecapture ; a . ontouchmove = function ( b , c ) { if ( ! a . rail . drag || b . targetTouches && a . opt . preventmultitouchscrolling && 1 < b . targetTouches . length || b . pointerType && 2 != b . pointerType && "touch" != b . pointerType ) return ! 1 ; if ( 2 == a . rail . drag . pt ) { if ( f . cantouch && f . isios && "undefined" == typeof b . original ) return ! 0 ; a . hasmoving = ! 0 ; a . preventclick && ! a . preventclick . click && ( a . preventclick . click = a . preventclick . tg . onclick || ! 1 , a . preventclick . tg . onclick =
a . onpreventclick ) ; b = e . extend ( { original : b } , b ) ; "changedTouches" in b && ( b . clientX = b . changedTouches [ 0 ] . clientX , b . clientY = b . changedTouches [ 0 ] . clientY ) ; if ( a . forcescreen ) { var g = b ; b = { original : b . original ? b . original : b } ; b . clientX = g . screenX ; b . clientY = g . screenY } var d , g = d = 0 ; p && ! c && ( d = a . win . position ( ) , g = - d . left , d = - d . top ) ; var l = b . clientY + d ; d = l - a . rail . drag . y ; var h = b . clientX + g , w = h - a . rail . drag . x , k = a . rail . drag . st - d ; a . ishwscroll && a . opt . bouncescroll ? 0 > k ? k = Math . round ( k / 2 ) : k > a . page . maxh && ( k = a . page . maxh + Math . round ( ( k - a . page . maxh ) /
2 ) ) : ( 0 > k && ( l = k = 0 ) , k > a . page . maxh && ( k = a . page . maxh , l = 0 ) ) ; var r ; a . railh && a . railh . scrollable && ( r = a . isrtlmode ? w - a . rail . drag . sl : a . rail . drag . sl - w , a . ishwscroll && a . opt . bouncescroll ? 0 > r ? r = Math . round ( r / 2 ) : r > a . page . maxw && ( r = a . page . maxw + Math . round ( ( r - a . page . maxw ) / 2 ) ) : ( 0 > r && ( h = r = 0 ) , r > a . page . maxw && ( r = a . page . maxw , h = 0 ) ) ) ; g = ! 1 ; if ( a . rail . drag . dl ) g = ! 0 , "v" == a . rail . drag . dl ? r = a . rail . drag . sl : "h" == a . rail . drag . dl && ( k = a . rail . drag . st ) ; else { d = Math . abs ( d ) ; var w = Math . abs ( w ) , m = a . opt . directionlockdeadzone ; if ( "v" == a . rail . drag . ck ) { if ( d >
m && w <= . 3 * d ) return a . rail . drag = ! 1 , ! 0 ; w > m && ( a . rail . drag . dl = "f" , e ( "body" ) . scrollTop ( e ( "body" ) . scrollTop ( ) ) ) } else if ( "h" == a . rail . drag . ck ) { if ( w > m && d <= . 3 * w ) return a . rail . drag = ! 1 , ! 0 ; d > m && ( a . rail . drag . dl = "f" , e ( "body" ) . scrollLeft ( e ( "body" ) . scrollLeft ( ) ) ) } } a . synched ( "touchmove" , function ( ) { a . rail . drag && 2 == a . rail . drag . pt && ( a . prepareTransition && a . prepareTransition ( 0 ) , a . rail . scrollable && a . setScrollTop ( k ) , a . scrollmom . update ( h , l ) , a . railh && a . railh . scrollable ? ( a . setScrollLeft ( r ) , a . showCursor ( k , r ) ) : a . showCursor ( k ) ,
f . isie10 && document . selection . clear ( ) ) } ) ; f . ischrome && a . istouchcapable && ( g = ! 1 ) ; if ( g ) return a . cancelEvent ( b ) } else if ( 1 == a . rail . drag . pt ) return a . onmousemove ( b ) } } a . onmousedown = function ( b , c ) { if ( ! a . rail . drag || 1 == a . rail . drag . pt ) { if ( a . railslocked ) return a . cancelEvent ( b ) ; a . cancelScroll ( ) ; a . rail . drag = { x : b . clientX , y : b . clientY , sx : a . scroll . x , sy : a . scroll . y , pt : 1 , hr : ! ! c } ; var g = a . getTarget ( b ) ; ! a . ispage && f . hasmousecapture && g . setCapture ( ) ; a . isiframe && ! f . hasmousecapture && ( a . saved . csspointerevents = a . doc . css ( "pointer-events" ) ,
a . css ( a . doc , { "pointer-events" : "none" } ) ) ; a . hasmoving = ! 1 ; return a . cancelEvent ( b ) } } ; a . onmouseup = function ( b ) { if ( a . rail . drag ) { if ( 1 != a . rail . drag . pt ) return ! 0 ; f . hasmousecapture && document . releaseCapture ( ) ; a . isiframe && ! f . hasmousecapture && a . doc . css ( "pointer-events" , a . saved . csspointerevents ) ; a . rail . drag = ! 1 ; a . hasmoving && a . triggerScrollEnd ( ) ; return a . cancelEvent ( b ) } } ; a . onmousemove = function ( b ) { if ( a . rail . drag ) { if ( 1 == a . rail . drag . pt ) { if ( f . ischrome && 0 == b . which ) return a . onmouseup ( b ) ; a . cursorfreezed = ! 0 ; a . hasmoving = ! 0 ;
if ( a . rail . drag . hr ) { a . scroll . x = a . rail . drag . sx + ( b . clientX - a . rail . drag . x ) ; 0 > a . scroll . x && ( a . scroll . x = 0 ) ; var c = a . scrollvaluemaxw ; a . scroll . x > c && ( a . scroll . x = c ) } else a . scroll . y = a . rail . drag . sy + ( b . clientY - a . rail . drag . y ) , 0 > a . scroll . y && ( a . scroll . y = 0 ) , c = a . scrollvaluemax , a . scroll . y > c && ( a . scroll . y = c ) ; a . synched ( "mousemove" , function ( ) { a . rail . drag && 1 == a . rail . drag . pt && ( a . showCursor ( ) , a . rail . drag . hr ? a . hasreversehr ? a . doScrollLeft ( a . scrollvaluemaxw - Math . round ( a . scroll . x * a . scrollratio . x ) , a . opt . cursordragspeed ) : a . doScrollLeft ( Math . round ( a . scroll . x *
a . scrollratio . x ) , a . opt . cursordragspeed ) : a . doScrollTop ( Math . round ( a . scroll . y * a . scrollratio . y ) , a . opt . cursordragspeed ) ) } ) ; return a . cancelEvent ( b ) } } else a . checkarea = 0 } ; if ( f . cantouch || a . opt . touchbehavior ) a . onpreventclick = function ( b ) { if ( a . preventclick ) return a . preventclick . tg . onclick = a . preventclick . click , a . preventclick = ! 1 , a . cancelEvent ( b ) } , a . bind ( a . win , "mousedown" , a . ontouchstart ) , a . onclick = f . isios ? ! 1 : function ( b ) { return a . lastmouseup ? ( a . lastmouseup = ! 1 , a . cancelEvent ( b ) ) : ! 0 } , a . opt . grabcursorenabled && f . cursorgrabvalue &&
( a . css ( a . ispage ? a . doc : a . win , { cursor : f . cursorgrabvalue } ) , a . css ( a . rail , { cursor : f . cursorgrabvalue } ) ) ; else { var q = function ( b ) { if ( a . selectiondrag ) { if ( b ) { var c = a . win . outerHeight ( ) ; b = b . pageY - a . selectiondrag . top ; 0 < b && b < c && ( b = 0 ) ; b >= c && ( b -= c ) ; a . selectiondrag . df = b } 0 != a . selectiondrag . df && ( a . doScrollBy ( 2 * - Math . floor ( a . selectiondrag . df / 6 ) ) , a . debounced ( "doselectionscroll" , function ( ) { q ( ) } , 50 ) ) } } ; a . hasTextSelected = "getSelection" in document ? function ( ) { return 0 < document . getSelection ( ) . rangeCount } : "selection" in document ?
function ( ) { return "None" != document . selection . type } : function ( ) { return ! 1 } ; a . onselectionstart = function ( b ) { a . ispage || ( a . selectiondrag = a . win . offset ( ) ) } ; a . onselectionend = function ( b ) { a . selectiondrag = ! 1 } ; a . onselectiondrag = function ( b ) { a . selectiondrag && a . hasTextSelected ( ) && a . debounced ( "selectionscroll" , function ( ) { q ( b ) } , 250 ) } } f . hasw3ctouch ? ( a . css ( a . rail , { "touch-action" : "none" } ) , a . css ( a . cursor , { "touch-action" : "none" } ) , a . bind ( a . win , "pointerdown" , a . ontouchstart ) , a . bind ( document , "pointerup" , a . ontouchend ) , a . bind ( document ,
"pointermove" , a . ontouchmove ) ) : f . hasmstouch ? ( a . css ( a . rail , { "-ms-touch-action" : "none" } ) , a . css ( a . cursor , { "-ms-touch-action" : "none" } ) , a . bind ( a . win , "MSPointerDown" , a . ontouchstart ) , a . bind ( document , "MSPointerUp" , a . ontouchend ) , a . bind ( document , "MSPointerMove" , a . ontouchmove ) , a . bind ( a . cursor , "MSGestureHold" , function ( a ) { a . preventDefault ( ) } ) , a . bind ( a . cursor , "contextmenu" , function ( a ) { a . preventDefault ( ) } ) ) : this . istouchcapable && ( a . bind ( a . win , "touchstart" , a . ontouchstart ) , a . bind ( document , "touchend" , a . ontouchend ) , a . bind ( document ,
"touchcancel" , a . ontouchend ) , a . bind ( document , "touchmove" , a . ontouchmove ) ) ; if ( a . opt . cursordragontouch || ! f . cantouch && ! a . opt . touchbehavior ) a . rail . css ( { cursor : "default" } ) , a . railh && a . railh . css ( { cursor : "default" } ) , a . jqbind ( a . rail , "mouseenter" , function ( ) { if ( ! a . ispage && ! a . win . is ( ":visible" ) ) return ! 1 ; a . canshowonmouseevent && a . showCursor ( ) ; a . rail . active = ! 0 } ) , a . jqbind ( a . rail , "mouseleave" , function ( ) { a . rail . active = ! 1 ; a . rail . drag || a . hideCursor ( ) } ) , a . opt . sensitiverail && ( a . bind ( a . rail , "click" , function ( b ) { a . doRailClick ( b ,
! 1 , ! 1 ) } ) , a . bind ( a . rail , "dblclick" , function ( b ) { a . doRailClick ( b , ! 0 , ! 1 ) } ) , a . bind ( a . cursor , "click" , function ( b ) { a . cancelEvent ( b ) } ) , a . bind ( a . cursor , "dblclick" , function ( b ) { a . cancelEvent ( b ) } ) ) , a . railh && ( a . jqbind ( a . railh , "mouseenter" , function ( ) { if ( ! a . ispage && ! a . win . is ( ":visible" ) ) return ! 1 ; a . canshowonmouseevent && a . showCursor ( ) ; a . rail . active = ! 0 } ) , a . jqbind ( a . railh , "mouseleave" , function ( ) { a . rail . active = ! 1 ; a . rail . drag || a . hideCursor ( ) } ) , a . opt . sensitiverail && ( a . bind ( a . railh , "click" , function ( b ) { a . doRailClick ( b , ! 1 ,
! 0 ) } ) , a . bind ( a . railh , "dblclick" , function ( b ) { a . doRailClick ( b , ! 0 , ! 0 ) } ) , a . bind ( a . cursorh , "click" , function ( b ) { a . cancelEvent ( b ) } ) , a . bind ( a . cursorh , "dblclick" , function ( b ) { a . cancelEvent ( b ) } ) ) ) ; f . cantouch || a . opt . touchbehavior ? ( a . bind ( f . hasmousecapture ? a . win : document , "mouseup" , a . ontouchend ) , a . bind ( document , "mousemove" , a . ontouchmove ) , a . onclick && a . bind ( document , "click" , a . onclick ) , a . opt . cursordragontouch && ( a . bind ( a . cursor , "mousedown" , a . onmousedown ) , a . bind ( a . cursor , "mouseup" , a . onmouseup ) , a . cursorh && a . bind ( a . cursorh ,
"mousedown" , function ( b ) { a . onmousedown ( b , ! 0 ) } ) , a . cursorh && a . bind ( a . cursorh , "mouseup" , a . onmouseup ) ) ) : ( a . bind ( f . hasmousecapture ? a . win : document , "mouseup" , a . onmouseup ) , a . bind ( document , "mousemove" , a . onmousemove ) , a . onclick && a . bind ( document , "click" , a . onclick ) , a . bind ( a . cursor , "mousedown" , a . onmousedown ) , a . bind ( a . cursor , "mouseup" , a . onmouseup ) , a . railh && ( a . bind ( a . cursorh , "mousedown" , function ( b ) { a . onmousedown ( b , ! 0 ) } ) , a . bind ( a . cursorh , "mouseup" , a . onmouseup ) ) , ! a . ispage && a . opt . enablescrollonselection && ( a . bind ( a . win [ 0 ] ,
"mousedown" , a . onselectionstart ) , a . bind ( document , "mouseup" , a . onselectionend ) , a . bind ( a . cursor , "mouseup" , a . onselectionend ) , a . cursorh && a . bind ( a . cursorh , "mouseup" , a . onselectionend ) , a . bind ( document , "mousemove" , a . onselectiondrag ) ) , a . zoom && ( a . jqbind ( a . zoom , "mouseenter" , function ( ) { a . canshowonmouseevent && a . showCursor ( ) ; a . rail . active = ! 0 } ) , a . jqbind ( a . zoom , "mouseleave" , function ( ) { a . rail . active = ! 1 ; a . rail . drag || a . hideCursor ( ) } ) ) ) ; a . opt . enablemousewheel && ( a . isiframe || a . bind ( f . isie && a . ispage ? document : a . win , "mousewheel" ,
a . onmousewheel ) , a . bind ( a . rail , "mousewheel" , a . onmousewheel ) , a . railh && a . bind ( a . railh , "mousewheel" , a . onmousewheelhr ) ) ; a . ispage || f . cantouch || /HTML|^BODY/ . test ( a . win [ 0 ] . nodeName ) || ( a . win . attr ( "tabindex" ) || a . win . attr ( { tabindex : O ++ } ) , a . jqbind ( a . win , "focus" , function ( b ) { A = a . getTarget ( b ) . id || ! 0 ; a . hasfocus = ! 0 ; a . canshowonmouseevent && a . noticeCursor ( ) } ) , a . jqbind ( a . win , "blur" , function ( b ) { A = ! 1 ; a . hasfocus = ! 1 } ) , a . jqbind ( a . win , "mouseenter" , function ( b ) { E = a . getTarget ( b ) . id || ! 0 ; a . hasmousefocus = ! 0 ; a . canshowonmouseevent &&
a . noticeCursor ( ) } ) , a . jqbind ( a . win , "mouseleave" , function ( ) { E = ! 1 ; a . hasmousefocus = ! 1 ; a . rail . drag || a . hideCursor ( ) } ) ) } a . onkeypress = function ( b ) { if ( a . railslocked && 0 == a . page . maxh ) return ! 0 ; b = b ? b : window . e ; var c = a . getTarget ( b ) ; if ( c && /INPUT|TEXTAREA|SELECT|OPTION/ . test ( c . nodeName ) && ( ! c . getAttribute ( "type" ) && ! c . type || ! /submit|button|cancel/i . tp ) || e ( c ) . attr ( "contenteditable" ) ) return ! 0 ; if ( a . hasfocus || a . hasmousefocus && ! A || a . ispage && ! A && ! E ) { c = b . keyCode ; if ( a . railslocked && 27 != c ) return a . cancelEvent ( b ) ; var g = b . ctrlKey ||
! 1 , d = b . shiftKey || ! 1 , f = ! 1 ; switch ( c ) { case 38 : case 63233 : a . doScrollBy ( 72 ) ; f = ! 0 ; break ; case 40 : case 63235 : a . doScrollBy ( - 72 ) ; f = ! 0 ; break ; case 37 : case 63232 : a . railh && ( g ? a . doScrollLeft ( 0 ) : a . doScrollLeftBy ( 72 ) , f = ! 0 ) ; break ; case 39 : case 63234 : a . railh && ( g ? a . doScrollLeft ( a . page . maxw ) : a . doScrollLeftBy ( - 72 ) , f = ! 0 ) ; break ; case 33 : case 63276 : a . doScrollBy ( a . view . h ) ; f = ! 0 ; break ; case 34 : case 63277 : a . doScrollBy ( - a . view . h ) ; f = ! 0 ; break ; case 36 : case 63273 : a . railh && g ? a . doScrollPos ( 0 , 0 ) : a . doScrollTo ( 0 ) ; f = ! 0 ; break ; case 35 : case 63275 : a . railh &&
g ? a . doScrollPos ( a . page . maxw , a . page . maxh ) : a . doScrollTo ( a . page . maxh ) ; f = ! 0 ; break ; case 32 : a . opt . spacebarenabled && ( d ? a . doScrollBy ( a . view . h ) : a . doScrollBy ( - a . view . h ) , f = ! 0 ) ; break ; case 27 : a . zoomactive && ( a . doZoom ( ) , f = ! 0 ) } if ( f ) return a . cancelEvent ( b ) } } ; a . opt . enablekeyboard && a . bind ( document , f . isopera && ! f . isopera12 ? "keypress" : "keydown" , a . onkeypress ) ; a . bind ( document , "keydown" , function ( b ) { b . ctrlKey && ( a . wheelprevented = ! 0 ) } ) ; a . bind ( document , "keyup" , function ( b ) { b . ctrlKey || ( a . wheelprevented = ! 1 ) } ) ; a . bind ( window , "blur" ,
function ( b ) { a . wheelprevented = ! 1 } ) ; a . bind ( window , "resize" , a . lazyResize ) ; a . bind ( window , "orientationchange" , a . lazyResize ) ; a . bind ( window , "load" , a . lazyResize ) ; if ( f . ischrome && ! a . ispage && ! a . haswrapper ) { var t = a . win . attr ( "style" ) , l = parseFloat ( a . win . css ( "width" ) ) + 1 ; a . win . css ( "width" , l ) ; a . synched ( "chromefix" , function ( ) { a . win . attr ( "style" , t ) } ) } a . onAttributeChange = function ( b ) { a . lazyResize ( a . isieold ? 250 : 30 ) } ; ! 1 !== x && ( a . observerbody = new x ( function ( b ) { b . forEach ( function ( b ) { if ( "attributes" == b . type ) return e ( "body" ) . hasClass ( "modal-open" ) &&
! e . contains ( e ( ".modal-dialog" ) [ 0 ] , a . doc [ 0 ] ) ? a . hide ( ) : a . show ( ) } ) ; if ( document . body . scrollHeight != a . page . maxh ) return a . lazyResize ( 30 ) } ) , a . observerbody . observe ( document . body , { childList : ! 0 , subtree : ! 0 , characterData : ! 1 , attributes : ! 0 , attributeFilter : [ "class" ] } ) ) ; a . ispage || a . haswrapper || ( ! 1 !== x ? ( a . observer = new x ( function ( b ) { b . forEach ( a . onAttributeChange ) } ) , a . observer . observe ( a . win [ 0 ] , { childList : ! 0 , characterData : ! 1 , attributes : ! 0 , subtree : ! 1 } ) , a . observerremover = new x ( function ( b ) { b . forEach ( function ( b ) { if ( 0 < b . removedNodes . length ) for ( var c in b . removedNodes ) if ( a &&
b . removedNodes [ c ] == a . win [ 0 ] ) return a . remove ( ) } ) } ) , a . observerremover . observe ( a . win [ 0 ] . parentNode , { childList : ! 0 , characterData : ! 1 , attributes : ! 1 , subtree : ! 1 } ) ) : ( a . bind ( a . win , f . isie && ! f . isie9 ? "propertychange" : "DOMAttrModified" , a . onAttributeChange ) , f . isie9 && a . win [ 0 ] . attachEvent ( "onpropertychange" , a . onAttributeChange ) , a . bind ( a . win , "DOMNodeRemoved" , function ( b ) { b . target == a . win [ 0 ] && a . remove ( ) } ) ) ) ; ! a . ispage && a . opt . boxzoom && a . bind ( window , "resize" , a . resizeZoom ) ; a . istextarea && ( a . bind ( a . win , "keydown" , a . lazyResize ) ,
a . bind ( a . win , "mouseup" , a . lazyResize ) ) ; a . lazyResize ( 30 ) } if ( "IFRAME" == this . doc [ 0 ] . nodeName ) { var N = function ( ) { a . iframexd = ! 1 ; var b ; try { b = "contentDocument" in this ? this . contentDocument : this . contentWindow . document } catch ( c ) { a . iframexd = ! 0 , b = ! 1 } if ( a . iframexd ) return "console" in window && console . log ( "NiceScroll error: policy restriced iframe" ) , ! 0 ; a . forcescreen = ! 0 ; a . isiframe && ( a . iframe = { doc : e ( b ) , html : a . doc . contents ( ) . find ( "html" ) [ 0 ] , body : a . doc . contents ( ) . find ( "body" ) [ 0 ] } , a . getContentSize = function ( ) { return { w : Math . max ( a . iframe . html . scrollWidth ,
a . iframe . body . scrollWidth ) , h : Math . max ( a . iframe . html . scrollHeight , a . iframe . body . scrollHeight ) } } , a . docscroll = e ( a . iframe . body ) ) ; if ( ! f . isios && a . opt . iframeautoresize && ! a . isiframe ) { a . win . scrollTop ( 0 ) ; a . doc . height ( "" ) ; var g = Math . max ( b . getElementsByTagName ( "html" ) [ 0 ] . scrollHeight , b . body . scrollHeight ) ; a . doc . height ( g ) } a . lazyResize ( 30 ) ; f . isie7 && a . css ( e ( a . iframe . html ) , { "overflow-y" : "hidden" } ) ; a . css ( e ( a . iframe . body ) , { "overflow-y" : "hidden" } ) ; f . isios && a . haswrapper && a . css ( e ( b . body ) , { "-webkit-transform" : "translate3d(0,0,0)" } ) ;
"contentWindow" in this ? a . bind ( this . contentWindow , "scroll" , a . onscroll ) : a . bind ( b , "scroll" , a . onscroll ) ; a . opt . enablemousewheel && a . bind ( b , "mousewheel" , a . onmousewheel ) ; a . opt . enablekeyboard && a . bind ( b , f . isopera ? "keypress" : "keydown" , a . onkeypress ) ; if ( f . cantouch || a . opt . touchbehavior ) a . bind ( b , "mousedown" , a . ontouchstart ) , a . bind ( b , "mousemove" , function ( b ) { return a . ontouchmove ( b , ! 0 ) } ) , a . opt . grabcursorenabled && f . cursorgrabvalue && a . css ( e ( b . body ) , { cursor : f . cursorgrabvalue } ) ; a . bind ( b , "mouseup" , a . ontouchend ) ; a . zoom &&
( a . opt . dblclickzoom && a . bind ( b , "dblclick" , a . doZoom ) , a . ongesturezoom && a . bind ( b , "gestureend" , a . ongesturezoom ) ) } ; this . doc [ 0 ] . readyState && "complete" == this . doc [ 0 ] . readyState && setTimeout ( function ( ) { N . call ( a . doc [ 0 ] , ! 1 ) } , 500 ) ; a . bind ( this . doc , "load" , N ) } } ; this . showCursor = function ( b , c ) { a . cursortimeout && ( clearTimeout ( a . cursortimeout ) , a . cursortimeout = 0 ) ; if ( a . rail ) { a . autohidedom && ( a . autohidedom . stop ( ) . css ( { opacity : a . opt . cursoropacitymax } ) , a . cursoractive = ! 0 ) ; a . rail . drag && 1 == a . rail . drag . pt || ( "undefined" != typeof b &&
! 1 !== b && ( a . scroll . y = Math . round ( 1 * b / a . scrollratio . y ) ) , "undefined" != typeof c && ( a . scroll . x = Math . round ( 1 * c / a . scrollratio . x ) ) ) ; a . cursor . css ( { height : a . cursorheight , top : a . scroll . y } ) ; if ( a . cursorh ) { var d = a . hasreversehr ? a . scrollvaluemaxw - a . scroll . x : a . scroll . x ; ! a . rail . align && a . rail . visibility ? a . cursorh . css ( { width : a . cursorwidth , left : d + a . rail . width } ) : a . cursorh . css ( { width : a . cursorwidth , left : d } ) ; a . cursoractive = ! 0 } a . zoom && a . zoom . stop ( ) . css ( { opacity : a . opt . cursoropacitymax } ) } } ; this . hideCursor = function ( b ) { a . cursortimeout ||
! a . rail || ! a . autohidedom || a . hasmousefocus && "leave" == a . opt . autohidemode || ( a . cursortimeout = setTimeout ( function ( ) { a . rail . active && a . showonmouseevent || ( a . autohidedom . stop ( ) . animate ( { opacity : a . opt . cursoropacitymin } ) , a . zoom && a . zoom . stop ( ) . animate ( { opacity : a . opt . cursoropacitymin } ) , a . cursoractive = ! 1 ) ; a . cursortimeout = 0 } , b || a . opt . hidecursordelay ) ) } ; this . noticeCursor = function ( b , c , d ) { a . showCursor ( c , d ) ; a . rail . active || a . hideCursor ( b ) } ; this . getContentSize = a . ispage ? function ( ) { return { w : Math . max ( document . body . scrollWidth ,
document . documentElement . scrollWidth ) , h : Math . max ( document . body . scrollHeight , document . documentElement . scrollHeight ) } } : a . haswrapper ? function ( ) { return { w : a . doc . outerWidth ( ) + parseInt ( a . win . css ( "paddingLeft" ) ) + parseInt ( a . win . css ( "paddingRight" ) ) , h : a . doc . outerHeight ( ) + parseInt ( a . win . css ( "paddingTop" ) ) + parseInt ( a . win . css ( "paddingBottom" ) ) } } : function ( ) { return { w : a . docscroll [ 0 ] . scrollWidth , h : a . docscroll [ 0 ] . scrollHeight } } ; this . onResize = function ( b , c ) { if ( ! a || ! a . win ) return ! 1 ; if ( ! a . haswrapper && ! a . ispage ) { if ( "none" ==
a . win . css ( "display" ) ) return a . visibility && a . hideRail ( ) . hideRailHr ( ) , ! 1 ; a . hidden || a . visibility || a . showRail ( ) . showRailHr ( ) } var d = a . page . maxh , f = a . page . maxw , e = a . view . h , h = a . view . w ; a . view = { w : a . ispage ? a . win . width ( ) : parseInt ( a . win [ 0 ] . clientWidth ) , h : a . ispage ? a . win . height ( ) : parseInt ( a . win [ 0 ] . clientHeight ) } ; a . page = c ? c : a . getContentSize ( ) ; a . page . maxh = Math . max ( 0 , a . page . h - a . view . h ) ; a . page . maxw = Math . max ( 0 , a . page . w - a . view . w ) ; if ( a . page . maxh == d && a . page . maxw == f && a . view . w == h && a . view . h == e ) { if ( a . ispage ) return a ; d = a . win . offset ( ) ;
if ( a . lastposition && ( f = a . lastposition , f . top == d . top && f . left == d . left ) ) return a ; a . lastposition = d } 0 == a . page . maxh ? ( a . hideRail ( ) , a . scrollvaluemax = 0 , a . scroll . y = 0 , a . scrollratio . y = 0 , a . cursorheight = 0 , a . setScrollTop ( 0 ) , a . rail && ( a . rail . scrollable = ! 1 ) ) : ( a . page . maxh -= a . opt . railpadding . top + a . opt . railpadding . bottom , a . rail . scrollable = ! 0 ) ; 0 == a . page . maxw ? ( a . hideRailHr ( ) , a . scrollvaluemaxw = 0 , a . scroll . x = 0 , a . scrollratio . x = 0 , a . cursorwidth = 0 , a . setScrollLeft ( 0 ) , a . railh && ( a . railh . scrollable = ! 1 ) ) : ( a . page . maxw -= a . opt . railpadding . left +
a . opt . railpadding . right , a . railh && ( a . railh . scrollable = a . opt . horizrailenabled ) ) ; a . railslocked = a . locked || 0 == a . page . maxh && 0 == a . page . maxw ; if ( a . railslocked ) return a . ispage || a . updateScrollBar ( a . view ) , ! 1 ; a . hidden || a . visibility ? ! a . railh || a . hidden || a . railh . visibility || a . showRailHr ( ) : a . showRail ( ) . showRailHr ( ) ; a . istextarea && a . win . css ( "resize" ) && "none" != a . win . css ( "resize" ) && ( a . view . h -= 20 ) ; a . cursorheight = Math . min ( a . view . h , Math . round ( a . view . h / a . page . h * a . view . h ) ) ; a . cursorheight = a . opt . cursorfixedheight ? a . opt . cursorfixedheight :
Math . max ( a . opt . cursorminheight , a . cursorheight ) ; a . cursorwidth = Math . min ( a . view . w , Math . round ( a . view . w / a . page . w * a . view . w ) ) ; a . cursorwidth = a . opt . cursorfixedheight ? a . opt . cursorfixedheight : Math . max ( a . opt . cursorminheight , a . cursorwidth ) ; a . scrollvaluemax = a . view . h - a . cursorheight - a . cursor . hborder - ( a . opt . railpadding . top + a . opt . railpadding . bottom ) ; a . railh && ( a . railh . width = 0 < a . page . maxh ? a . view . w - a . rail . width : a . view . w , a . scrollvaluemaxw = a . railh . width - a . cursorwidth - a . cursorh . wborder - ( a . opt . railpadding . left + a . opt . railpadding . right ) ) ;
a . ispage || a . updateScrollBar ( a . view ) ; a . scrollratio = { x : a . page . maxw / a . scrollvaluemaxw , y : a . page . maxh / a . scrollvaluemax } ; a . getScrollTop ( ) > a . page . maxh ? a . doScrollTop ( a . page . maxh ) : ( a . scroll . y = Math . round ( a . getScrollTop ( ) * ( 1 / a . scrollratio . y ) ) , a . scroll . x = Math . round ( a . getScrollLeft ( ) * ( 1 / a . scrollratio . x ) ) , a . cursoractive && a . noticeCursor ( ) ) ; a . scroll . y && 0 == a . getScrollTop ( ) && a . doScrollTo ( Math . floor ( a . scroll . y * a . scrollratio . y ) ) ; return a } ; this . resize = a . onResize ; this . lazyResize = function ( b ) { b = isNaN ( b ) ? 30 : b ; a . debounced ( "resize" ,
a . resize , b ) ; return a } ; this . jqbind = function ( b , c , d ) { a . events . push ( { e : b , n : c , f : d , q : ! 0 } ) ; e ( b ) . bind ( c , d ) } ; this . bind = function ( b , c , d , e ) { var h = "jquery" in b ? b [ 0 ] : b ; "mousewheel" == c ? "onwheel" in a . win ? a . _bind ( h , "wheel" , d , e || ! 1 ) : ( b = "undefined" != typeof document . onmousewheel ? "mousewheel" : "DOMMouseScroll" , p ( h , b , d , e || ! 1 ) , "DOMMouseScroll" == b && p ( h , "MozMousePixelScroll" , d , e || ! 1 ) ) : h . addEventListener ? ( f . cantouch && /mouseup|mousedown|mousemove/ . test ( c ) && a . _bind ( h , "mousedown" == c ? "touchstart" : "mouseup" == c ? "touchend" : "touchmove" ,
function ( a ) { if ( a . touches ) { if ( 2 > a . touches . length ) { var b = a . touches . length ? a . touches [ 0 ] : a ; b . original = a ; d . call ( this , b ) } } else a . changedTouches && ( b = a . changedTouches [ 0 ] , b . original = a , d . call ( this , b ) ) } , e || ! 1 ) , a . _bind ( h , c , d , e || ! 1 ) , f . cantouch && "mouseup" == c && a . _bind ( h , "touchcancel" , d , e || ! 1 ) ) : a . _bind ( h , c , function ( b ) { ( b = b || window . event || ! 1 ) && b . srcElement && ( b . target = b . srcElement ) ; "pageY" in b || ( b . pageX = b . clientX + document . documentElement . scrollLeft , b . pageY = b . clientY + document . documentElement . scrollTop ) ; return ! 1 === d . call ( h ,
b ) || ! 1 === e ? a . cancelEvent ( b ) : ! 0 } ) } ; f . haseventlistener ? ( this . _bind = function ( b , c , d , f ) { a . events . push ( { e : b , n : c , f : d , b : f , q : ! 1 } ) ; b . addEventListener ( c , d , f || ! 1 ) } , this . cancelEvent = function ( a ) { if ( ! a ) return ! 1 ; a = a . original ? a . original : a ; a . preventDefault ( ) ; a . stopPropagation ( ) ; a . preventManipulation && a . preventManipulation ( ) ; return ! 1 } , this . stopPropagation = function ( a ) { if ( ! a ) return ! 1 ; a = a . original ? a . original : a ; a . stopPropagation ( ) ; return ! 1 } , this . _unbind = function ( a , c , d , f ) { a . removeEventListener ( c , d , f ) } ) : ( this . _bind = function ( b ,
c , d , f ) { a . events . push ( { e : b , n : c , f : d , b : f , q : ! 1 } ) ; b . attachEvent ? b . attachEvent ( "on" + c , d ) : b [ "on" + c ] = d } , this . cancelEvent = function ( a ) { a = window . event || ! 1 ; if ( ! a ) return ! 1 ; a . cancelBubble = ! 0 ; a . cancel = ! 0 ; return a . returnValue = ! 1 } , this . stopPropagation = function ( a ) { a = window . event || ! 1 ; if ( ! a ) return ! 1 ; a . cancelBubble = ! 0 ; return ! 1 } , this . _unbind = function ( a , c , d , f ) { a . detachEvent ? a . detachEvent ( "on" + c , d ) : a [ "on" + c ] = ! 1 } ) ; this . unbindAll = function ( ) { for ( var b = 0 ; b < a . events . length ; b ++ ) { var c = a . events [ b ] ; c . q ? c . e . unbind ( c . n , c . f ) : a . _unbind ( c . e ,
c . n , c . f , c . b ) } } ; this . showRail = function ( ) { 0 == a . page . maxh || ! a . ispage && "none" == a . win . css ( "display" ) || ( a . visibility = ! 0 , a . rail . visibility = ! 0 , a . rail . css ( "display" , "block" ) ) ; return a } ; this . showRailHr = function ( ) { if ( ! a . railh ) return a ; 0 == a . page . maxw || ! a . ispage && "none" == a . win . css ( "display" ) || ( a . railh . visibility = ! 0 , a . railh . css ( "display" , "block" ) ) ; return a } ; this . hideRail = function ( ) { a . visibility = ! 1 ; a . rail . visibility = ! 1 ; a . rail . css ( "display" , "none" ) ; return a } ; this . hideRailHr = function ( ) { if ( ! a . railh ) return a ; a . railh . visibility =
! 1 ; a . railh . css ( "display" , "none" ) ; return a } ; this . show = function ( ) { a . hidden = ! 1 ; a . railslocked = ! 1 ; return a . showRail ( ) . showRailHr ( ) } ; this . hide = function ( ) { a . hidden = ! 0 ; a . railslocked = ! 0 ; return a . hideRail ( ) . hideRailHr ( ) } ; this . toggle = function ( ) { return a . hidden ? a . show ( ) : a . hide ( ) } ; this . remove = function ( ) { a . stop ( ) ; a . cursortimeout && clearTimeout ( a . cursortimeout ) ; a . debouncedelayed && clearTimeout ( a . debouncedelayed ) ; a . doZoomOut ( ) ; a . unbindAll ( ) ; f . isie9 && a . win [ 0 ] . detachEvent ( "onpropertychange" , a . onAttributeChange ) ; ! 1 !==
a . observer && a . observer . disconnect ( ) ; ! 1 !== a . observerremover && a . observerremover . disconnect ( ) ; ! 1 !== a . observerbody && a . observerbody . disconnect ( ) ; a . events = null ; a . cursor && a . cursor . remove ( ) ; a . cursorh && a . cursorh . remove ( ) ; a . rail && a . rail . remove ( ) ; a . railh && a . railh . remove ( ) ; a . zoom && a . zoom . remove ( ) ; for ( var b = 0 ; b < a . saved . css . length ; b ++ ) { var c = a . saved . css [ b ] ; c [ 0 ] . css ( c [ 1 ] , "undefined" == typeof c [ 2 ] ? "" : c [ 2 ] ) } a . saved = ! 1 ; a . me . data ( "__nicescroll" , "" ) ; var d = e . nicescroll ; d . each ( function ( b ) { if ( this && this . id === a . id ) { delete d [ b ] ;
for ( var c = ++ b ; c < d . length ; c ++ , b ++ ) d [ b ] = d [ c ] ; d . length -- ; d . length && delete d [ d . length ] } } ) ; for ( var h in a ) a [ h ] = null , delete a [ h ] ; a = null } ; this . scrollstart = function ( b ) { this . onscrollstart = b ; return a } ; this . scrollend = function ( b ) { this . onscrollend = b ; return a } ; this . scrollcancel = function ( b ) { this . onscrollcancel = b ; return a } ; this . zoomin = function ( b ) { this . onzoomin = b ; return a } ; this . zoomout = function ( b ) { this . onzoomout = b ; return a } ; this . isScrollable = function ( a ) { a = a . target ? a . target : a ; if ( "OPTION" == a . nodeName ) return ! 0 ; for ( ; a &&
1 == a . nodeType && ! /^BODY|HTML/ . test ( a . nodeName ) ; ) { var c = e ( a ) , c = c . css ( "overflowY" ) || c . css ( "overflowX" ) || c . css ( "overflow" ) || "" ; if ( /scroll|auto/ . test ( c ) ) return a . clientHeight != a . scrollHeight ; a = a . parentNode ? a . parentNode : ! 1 } return ! 1 } ; this . getViewport = function ( a ) { for ( a = a && a . parentNode ? a . parentNode : ! 1 ; a && 1 == a . nodeType && ! /^BODY|HTML/ . test ( a . nodeName ) ; ) { var c = e ( a ) ; if ( /fixed|absolute/ . test ( c . css ( "position" ) ) ) return c ; var d = c . css ( "overflowY" ) || c . css ( "overflowX" ) || c . css ( "overflow" ) || "" ; if ( /scroll|auto/ . test ( d ) &&
a . clientHeight != a . scrollHeight || 0 < c . getNiceScroll ( ) . length ) return c ; a = a . parentNode ? a . parentNode : ! 1 } return ! 1 } ; this . triggerScrollEnd = function ( ) { if ( a . onscrollend ) { var b = a . getScrollLeft ( ) , c = a . getScrollTop ( ) ; a . onscrollend . call ( a , { type : "scrollend" , current : { x : b , y : c } , end : { x : b , y : c } } ) } } ; this . onmousewheel = function ( b ) { if ( ! a . wheelprevented ) { if ( a . railslocked ) return a . debounced ( "checkunlock" , a . resize , 250 ) , ! 0 ; if ( a . rail . drag ) return a . cancelEvent ( b ) ; "auto" == a . opt . oneaxismousemode && 0 != b . deltaX && ( a . opt . oneaxismousemode =
! 1 ) ; if ( a . opt . oneaxismousemode && 0 == b . deltaX && ! a . rail . scrollable ) return a . railh && a . railh . scrollable ? a . onmousewheelhr ( b ) : ! 0 ; var c = + new Date , d = ! 1 ; a . opt . preservenativescrolling && a . checkarea + 600 < c && ( a . nativescrollingarea = a . isScrollable ( b ) , d = ! 0 ) ; a . checkarea = c ; if ( a . nativescrollingarea ) return ! 0 ; if ( b = q ( b , ! 1 , d ) ) a . checkarea = 0 ; return b } } ; this . onmousewheelhr = function ( b ) { if ( ! a . wheelprevented ) { if ( a . railslocked || ! a . railh . scrollable ) return ! 0 ; if ( a . rail . drag ) return a . cancelEvent ( b ) ; var c = + new Date , d = ! 1 ; a . opt . preservenativescrolling &&
a . checkarea + 600 < c && ( a . nativescrollingarea = a . isScrollable ( b ) , d = ! 0 ) ; a . checkarea = c ; return a . nativescrollingarea ? ! 0 : a . railslocked ? a . cancelEvent ( b ) : q ( b , ! 0 , d ) } } ; this . stop = function ( ) { a . cancelScroll ( ) ; a . scrollmon && a . scrollmon . stop ( ) ; a . cursorfreezed = ! 1 ; a . scroll . y = Math . round ( a . getScrollTop ( ) * ( 1 / a . scrollratio . y ) ) ; a . noticeCursor ( ) ; return a } ; this . getTransitionSpeed = function ( b ) { b = Math . min ( Math . round ( 10 * a . opt . scrollspeed ) , Math . round ( b / 20 * a . opt . scrollspeed ) ) ; return 20 < b ? b : 0 } ; a . opt . smoothscroll ? a . ishwscroll && f . hastransition &&
a . opt . usetransition && a . opt . smoothscroll ? ( this . prepareTransition = function ( b , c ) { var d = c ? 20 < b ? b : 0 : a . getTransitionSpeed ( b ) , e = d ? f . prefixstyle + "transform " + d + "ms ease-out" : "" ; a . lasttransitionstyle && a . lasttransitionstyle == e || ( a . lasttransitionstyle = e , a . doc . css ( f . transitionstyle , e ) ) ; return d } , this . doScrollLeft = function ( b , c ) { var d = a . scrollrunning ? a . newscrolly : a . getScrollTop ( ) ; a . doScrollPos ( b , d , c ) } , this . doScrollTop = function ( b , c ) { var d = a . scrollrunning ? a . newscrollx : a . getScrollLeft ( ) ; a . doScrollPos ( d , b , c ) } , this . doScrollPos =
function ( b , c , d ) { var e = a . getScrollTop ( ) , h = a . getScrollLeft ( ) ; ( 0 > ( a . newscrolly - e ) * ( c - e ) || 0 > ( a . newscrollx - h ) * ( b - h ) ) && a . cancelScroll ( ) ; 0 == a . opt . bouncescroll && ( 0 > c ? c = 0 : c > a . page . maxh && ( c = a . page . maxh ) , 0 > b ? b = 0 : b > a . page . maxw && ( b = a . page . maxw ) ) ; if ( a . scrollrunning && b == a . newscrollx && c == a . newscrolly ) return ! 1 ; a . newscrolly = c ; a . newscrollx = b ; a . newscrollspeed = d || ! 1 ; if ( a . timer ) return ! 1 ; a . timer = setTimeout ( function ( ) { var d = a . getScrollTop ( ) , e = a . getScrollLeft ( ) , h = Math . round ( Math . sqrt ( Math . pow ( b - e , 2 ) + Math . pow ( c - d , 2 ) ) ) , h = a . newscrollspeed &&
1 < a . newscrollspeed ? a . newscrollspeed : a . getTransitionSpeed ( h ) ; a . newscrollspeed && 1 >= a . newscrollspeed && ( h *= a . newscrollspeed ) ; a . prepareTransition ( h , ! 0 ) ; a . timerscroll && a . timerscroll . tm && clearInterval ( a . timerscroll . tm ) ; 0 < h && ( ! a . scrollrunning && a . onscrollstart && a . onscrollstart . call ( a , { type : "scrollstart" , current : { x : e , y : d } , request : { x : b , y : c } , end : { x : a . newscrollx , y : a . newscrolly } , speed : h } ) , f . transitionend ? a . scrollendtrapped || ( a . scrollendtrapped = ! 0 , a . bind ( a . doc , f . transitionend , a . onScrollTransitionEnd , ! 1 ) ) : ( a . scrollendtrapped &&
clearTimeout ( a . scrollendtrapped ) , a . scrollendtrapped = setTimeout ( a . onScrollTransitionEnd , h ) ) , a . timerscroll = { bz : new B ( d , a . newscrolly , h , 0 , 0 , . 58 , 1 ) , bh : new B ( e , a . newscrollx , h , 0 , 0 , . 58 , 1 ) } , a . cursorfreezed || ( a . timerscroll . tm = setInterval ( function ( ) { a . showCursor ( a . getScrollTop ( ) , a . getScrollLeft ( ) ) } , 60 ) ) ) ; a . synched ( "doScroll-set" , function ( ) { a . timer = 0 ; a . scrollendtrapped && ( a . scrollrunning = ! 0 ) ; a . setScrollTop ( a . newscrolly ) ; a . setScrollLeft ( a . newscrollx ) ; if ( ! a . scrollendtrapped ) a . onScrollTransitionEnd ( ) } ) } , 50 ) } , this . cancelScroll =
function ( ) { if ( ! a . scrollendtrapped ) return ! 0 ; var b = a . getScrollTop ( ) , c = a . getScrollLeft ( ) ; a . scrollrunning = ! 1 ; f . transitionend || clearTimeout ( f . transitionend ) ; a . scrollendtrapped = ! 1 ; a . _unbind ( a . doc [ 0 ] , f . transitionend , a . onScrollTransitionEnd ) ; a . prepareTransition ( 0 ) ; a . setScrollTop ( b ) ; a . railh && a . setScrollLeft ( c ) ; a . timerscroll && a . timerscroll . tm && clearInterval ( a . timerscroll . tm ) ; a . timerscroll = ! 1 ; a . cursorfreezed = ! 1 ; a . showCursor ( b , c ) ; return a } , this . onScrollTransitionEnd = function ( ) { a . scrollendtrapped && a . _unbind ( a . doc [ 0 ] ,
f . transitionend , a . onScrollTransitionEnd ) ; a . scrollendtrapped = ! 1 ; a . prepareTransition ( 0 ) ; a . timerscroll && a . timerscroll . tm && clearInterval ( a . timerscroll . tm ) ; a . timerscroll = ! 1 ; var b = a . getScrollTop ( ) , c = a . getScrollLeft ( ) ; a . setScrollTop ( b ) ; a . railh && a . setScrollLeft ( c ) ; a . noticeCursor ( ! 1 , b , c ) ; a . cursorfreezed = ! 1 ; 0 > b ? b = 0 : b > a . page . maxh && ( b = a . page . maxh ) ; 0 > c ? c = 0 : c > a . page . maxw && ( c = a . page . maxw ) ; if ( b != a . newscrolly || c != a . newscrollx ) return a . doScrollPos ( c , b , a . opt . snapbackspeed ) ; a . onscrollend && a . scrollrunning && a . triggerScrollEnd ( ) ;
a . scrollrunning = ! 1 } ) : ( this . doScrollLeft = function ( b , c ) { var d = a . scrollrunning ? a . newscrolly : a . getScrollTop ( ) ; a . doScrollPos ( b , d , c ) } , this . doScrollTop = function ( b , c ) { var d = a . scrollrunning ? a . newscrollx : a . getScrollLeft ( ) ; a . doScrollPos ( d , b , c ) } , this . doScrollPos = function ( b , c , d ) { function f ( ) { if ( a . cancelAnimationFrame ) return ! 0 ; a . scrollrunning = ! 0 ; if ( q = 1 - q ) return a . timer = u ( f ) || 1 ; var b = 0 , c , d , e = d = a . getScrollTop ( ) ; if ( a . dst . ay ) { e = a . bzscroll ? a . dst . py + a . bzscroll . getNow ( ) * a . dst . ay : a . newscrolly ; c = e - d ; if ( 0 > c && e < a . newscrolly ||
0 < c && e > a . newscrolly ) e = a . newscrolly ; a . setScrollTop ( e ) ; e == a . newscrolly && ( b = 1 ) } else b = 1 ; d = c = a . getScrollLeft ( ) ; if ( a . dst . ax ) { d = a . bzscroll ? a . dst . px + a . bzscroll . getNow ( ) * a . dst . ax : a . newscrollx ; c = d - c ; if ( 0 > c && d < a . newscrollx || 0 < c && d > a . newscrollx ) d = a . newscrollx ; a . setScrollLeft ( d ) ; d == a . newscrollx && ( b += 1 ) } else b += 1 ; 2 == b ? ( a . timer = 0 , a . cursorfreezed = ! 1 , a . bzscroll = ! 1 , a . scrollrunning = ! 1 , 0 > e ? e = 0 : e > a . page . maxh && ( e = a . page . maxh ) , 0 > d ? d = 0 : d > a . page . maxw && ( d = a . page . maxw ) , d != a . newscrollx || e != a . newscrolly ? a . doScrollPos ( d , e ) : a . onscrollend &&
a . triggerScrollEnd ( ) ) : a . timer = u ( f ) || 1 } c = "undefined" == typeof c || ! 1 === c ? a . getScrollTop ( ! 0 ) : c ; if ( a . timer && a . newscrolly == c && a . newscrollx == b ) return ! 0 ; a . timer && v ( a . timer ) ; a . timer = 0 ; var e = a . getScrollTop ( ) , h = a . getScrollLeft ( ) ; ( 0 > ( a . newscrolly - e ) * ( c - e ) || 0 > ( a . newscrollx - h ) * ( b - h ) ) && a . cancelScroll ( ) ; a . newscrolly = c ; a . newscrollx = b ; a . bouncescroll && a . rail . visibility || ( 0 > a . newscrolly ? a . newscrolly = 0 : a . newscrolly > a . page . maxh && ( a . newscrolly = a . page . maxh ) ) ; a . bouncescroll && a . railh . visibility || ( 0 > a . newscrollx ? a . newscrollx =
0 : a . newscrollx > a . page . maxw && ( a . newscrollx = a . page . maxw ) ) ; a . dst = { } ; a . dst . x = b - h ; a . dst . y = c - e ; a . dst . px = h ; a . dst . py = e ; var k = Math . round ( Math . sqrt ( Math . pow ( a . dst . x , 2 ) + Math . pow ( a . dst . y , 2 ) ) ) ; a . dst . ax = a . dst . x / k ; a . dst . ay = a . dst . y / k ; var n = 0 , p = k ; 0 == a . dst . x ? ( n = e , p = c , a . dst . ay = 1 , a . dst . py = 0 ) : 0 == a . dst . y && ( n = h , p = b , a . dst . ax = 1 , a . dst . px = 0 ) ; k = a . getTransitionSpeed ( k ) ; d && 1 >= d && ( k *= d ) ; a . bzscroll = 0 < k ? a . bzscroll ? a . bzscroll . update ( p , k ) : new B ( n , p , k , 0 , 1 , 0 , 1 ) : ! 1 ; if ( ! a . timer ) { ( e == a . page . maxh && c >= a . page . maxh || h == a . page . maxw && b >= a . page . maxw ) &&
a . checkContentSize ( ) ; var q = 1 ; a . cancelAnimationFrame = ! 1 ; a . timer = 1 ; a . onscrollstart && ! a . scrollrunning && a . onscrollstart . call ( a , { type : "scrollstart" , current : { x : h , y : e } , request : { x : b , y : c } , end : { x : a . newscrollx , y : a . newscrolly } , speed : k } ) ; f ( ) ; ( e == a . page . maxh && c >= e || h == a . page . maxw && b >= h ) && a . checkContentSize ( ) ; a . noticeCursor ( ) } } , this . cancelScroll = function ( ) { a . timer && v ( a . timer ) ; a . timer = 0 ; a . bzscroll = ! 1 ; a . scrollrunning = ! 1 ; return a } ) : ( this . doScrollLeft = function ( b , c ) { var d = a . getScrollTop ( ) ; a . doScrollPos ( b , d , c ) } , this . doScrollTop =
function ( b , c ) { var d = a . getScrollLeft ( ) ; a . doScrollPos ( d , b , c ) } , this . doScrollPos = function ( b , c , d ) { var f = b > a . page . maxw ? a . page . maxw : b ; 0 > f && ( f = 0 ) ; var e = c > a . page . maxh ? a . page . maxh : c ; 0 > e && ( e = 0 ) ; a . synched ( "scroll" , function ( ) { a . setScrollTop ( e ) ; a . setScrollLeft ( f ) } ) } , this . cancelScroll = function ( ) { } ) ; this . doScrollBy = function ( b , c ) { var d = 0 , d = c ? Math . floor ( ( a . scroll . y - b ) * a . scrollratio . y ) : ( a . timer ? a . newscrolly : a . getScrollTop ( ! 0 ) ) - b ; if ( a . bouncescroll ) { var f = Math . round ( a . view . h / 2 ) ; d < - f ? d = - f : d > a . page . maxh + f && ( d = a . page . maxh +
f ) } a . cursorfreezed = ! 1 ; f = a . getScrollTop ( ! 0 ) ; if ( 0 > d && 0 >= f ) return a . noticeCursor ( ) ; if ( d > a . page . maxh && f >= a . page . maxh ) return a . checkContentSize ( ) , a . noticeCursor ( ) ; a . doScrollTop ( d ) } ; this . doScrollLeftBy = function ( b , c ) { var d = 0 , d = c ? Math . floor ( ( a . scroll . x - b ) * a . scrollratio . x ) : ( a . timer ? a . newscrollx : a . getScrollLeft ( ! 0 ) ) - b ; if ( a . bouncescroll ) { var f = Math . round ( a . view . w / 2 ) ; d < - f ? d = - f : d > a . page . maxw + f && ( d = a . page . maxw + f ) } a . cursorfreezed = ! 1 ; f = a . getScrollLeft ( ! 0 ) ; if ( 0 > d && 0 >= f || d > a . page . maxw && f >= a . page . maxw ) return a . noticeCursor ( ) ;
a . doScrollLeft ( d ) } ; this . doScrollTo = function ( b , c ) { a . cursorfreezed = ! 1 ; a . doScrollTop ( b ) } ; this . checkContentSize = function ( ) { var b = a . getContentSize ( ) ; b . h == a . page . h && b . w == a . page . w || a . resize ( ! 1 , b ) } ; a . onscroll = function ( b ) { a . rail . drag || a . cursorfreezed || a . synched ( "scroll" , function ( ) { a . scroll . y = Math . round ( a . getScrollTop ( ) * ( 1 / a . scrollratio . y ) ) ; a . railh && ( a . scroll . x = Math . round ( a . getScrollLeft ( ) * ( 1 / a . scrollratio . x ) ) ) ; a . noticeCursor ( ) } ) } ; a . bind ( a . docscroll , "scroll" , a . onscroll ) ; this . doZoomIn = function ( b ) { if ( ! a . zoomactive ) { a . zoomactive =
! 0 ; a . zoomrestore = { style : { } } ; var c = "position top left zIndex backgroundColor marginTop marginBottom marginLeft marginRight" . split ( " " ) , d = a . win [ 0 ] . style , h ; for ( h in c ) { var k = c [ h ] ; a . zoomrestore . style [ k ] = "undefined" != typeof d [ k ] ? d [ k ] : "" } a . zoomrestore . style . width = a . win . css ( "width" ) ; a . zoomrestore . style . height = a . win . css ( "height" ) ; a . zoomrestore . padding = { w : a . win . outerWidth ( ) - a . win . width ( ) , h : a . win . outerHeight ( ) - a . win . height ( ) } ; f . isios4 && ( a . zoomrestore . scrollTop = e ( window ) . scrollTop ( ) , e ( window ) . scrollTop ( 0 ) ) ;
a . win . css ( { position : f . isios4 ? "absolute" : "fixed" , top : 0 , left : 0 , "z-index" : z + 100 , margin : "0px" } ) ; c = a . win . css ( "backgroundColor" ) ; ( "" == c || /transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/ . test ( c ) ) && a . win . css ( "backgroundColor" , "#fff" ) ; a . rail . css ( { "z-index" : z + 101 } ) ; a . zoom . css ( { "z-index" : z + 102 } ) ; a . zoom . css ( "backgroundPosition" , "0px -18px" ) ; a . resizeZoom ( ) ; a . onzoomin && a . onzoomin . call ( a ) ; return a . cancelEvent ( b ) } } ; this . doZoomOut = function ( b ) { if ( a . zoomactive ) return a . zoomactive = ! 1 , a . win . css ( "margin" , "" ) , a . win . css ( a . zoomrestore . style ) ,
f . isios4 && e ( window ) . scrollTop ( a . zoomrestore . scrollTop ) , a . rail . css ( { "z-index" : a . zindex } ) , a . zoom . css ( { "z-index" : a . zindex } ) , a . zoomrestore = ! 1 , a . zoom . css ( "backgroundPosition" , "0px 0px" ) , a . onResize ( ) , a . onzoomout && a . onzoomout . call ( a ) , a . cancelEvent ( b ) } ; this . doZoom = function ( b ) { return a . zoomactive ? a . doZoomOut ( b ) : a . doZoomIn ( b ) } ; this . resizeZoom = function ( ) { if ( a . zoomactive ) { var b = a . getScrollTop ( ) ; a . win . css ( { width : e ( window ) . width ( ) - a . zoomrestore . padding . w + "px" , height : e ( window ) . height ( ) - a . zoomrestore . padding . h + "px" } ) ;
a . onResize ( ) ; a . setScrollTop ( Math . min ( a . page . maxh , b ) ) } } ; this . init ( ) ; e . nicescroll . push ( this ) } , M = function ( e ) { var c = this ; this . nc = e ; this . steptime = this . lasttime = this . speedy = this . speedx = this . lasty = this . lastx = 0 ; this . snapy = this . snapx = ! 1 ; this . demuly = this . demulx = 0 ; this . lastscrolly = this . lastscrollx = - 1 ; this . timer = this . chky = this . chkx = 0 ; this . time = function ( ) { return + new Date } ; this . reset = function ( e , k ) { c . stop ( ) ; var d = c . time ( ) ; c . steptime = 0 ; c . lasttime = d ; c . speedx = 0 ; c . speedy = 0 ; c . lastx = e ; c . lasty = k ; c . lastscrollx = - 1 ; c . lastscrolly =
- 1 } ; this . update = function ( e , k ) { var d = c . time ( ) ; c . steptime = d - c . lasttime ; c . lasttime = d ; var d = k - c . lasty , p = e - c . lastx , q = c . nc . getScrollTop ( ) , a = c . nc . getScrollLeft ( ) , q = q + d , a = a + p ; c . snapx = 0 > a || a > c . nc . page . maxw ; c . snapy = 0 > q || q > c . nc . page . maxh ; c . speedx = p ; c . speedy = d ; c . lastx = e ; c . lasty = k } ; this . stop = function ( ) { c . nc . unsynched ( "domomentum2d" ) ; c . timer && clearTimeout ( c . timer ) ; c . timer = 0 ; c . lastscrollx = - 1 ; c . lastscrolly = - 1 } ; this . doSnapy = function ( e , k ) { var d = ! 1 ; 0 > k ? ( k = 0 , d = ! 0 ) : k > c . nc . page . maxh && ( k = c . nc . page . maxh , d = ! 0 ) ; 0 > e ? ( e = 0 , d =
! 0 ) : e > c . nc . page . maxw && ( e = c . nc . page . maxw , d = ! 0 ) ; d ? c . nc . doScrollPos ( e , k , c . nc . opt . snapbackspeed ) : c . nc . triggerScrollEnd ( ) } ; this . doMomentum = function ( e ) { var k = c . time ( ) , d = e ? k + e : c . lasttime ; e = c . nc . getScrollLeft ( ) ; var p = c . nc . getScrollTop ( ) , q = c . nc . page . maxh , a = c . nc . page . maxw ; c . speedx = 0 < a ? Math . min ( 60 , c . speedx ) : 0 ; c . speedy = 0 < q ? Math . min ( 60 , c . speedy ) : 0 ; d = d && 60 >= k - d ; if ( 0 > p || p > q || 0 > e || e > a ) d = ! 1 ; e = c . speedx && d ? c . speedx : ! 1 ; if ( c . speedy && d && c . speedy || e ) { var u = Math . max ( 16 , c . steptime ) ; 50 < u && ( e = u / 50 , c . speedx *= e , c . speedy *= e , u =
50 ) ; c . demulxy = 0 ; c . lastscrollx = c . nc . getScrollLeft ( ) ; c . chkx = c . lastscrollx ; c . lastscrolly = c . nc . getScrollTop ( ) ; c . chky = c . lastscrolly ; var f = c . lastscrollx , t = c . lastscrolly , v = function ( ) { var d = 600 < c . time ( ) - k ? . 04 : . 02 ; c . speedx && ( f = Math . floor ( c . lastscrollx - c . speedx * ( 1 - c . demulxy ) ) , c . lastscrollx = f , 0 > f || f > a ) && ( d = . 1 ) ; c . speedy && ( t = Math . floor ( c . lastscrolly - c . speedy * ( 1 - c . demulxy ) ) , c . lastscrolly = t , 0 > t || t > q ) && ( d = . 1 ) ; c . demulxy = Math . min ( 1 , c . demulxy + d ) ; c . nc . synched ( "domomentum2d" , function ( ) { c . speedx && ( c . nc . getScrollLeft ( ) !=
c . chkx && c . stop ( ) , c . chkx = f , c . nc . setScrollLeft ( f ) ) ; c . speedy && ( c . nc . getScrollTop ( ) != c . chky && c . stop ( ) , c . chky = t , c . nc . setScrollTop ( t ) ) ; c . timer || ( c . nc . hideCursor ( ) , c . doSnapy ( f , t ) ) } ) ; 1 > c . demulxy ? c . timer = setTimeout ( v , u ) : ( c . stop ( ) , c . nc . hideCursor ( ) , c . doSnapy ( f , t ) ) } ; v ( ) } else c . doSnapy ( c . nc . getScrollLeft ( ) , c . nc . getScrollTop ( ) ) } } , y = e . fn . scrollTop ; e . cssHooks . pageYOffset = { get : function ( k , c , h ) { return ( c = e . data ( k , "__nicescroll" ) || ! 1 ) && c . ishwscroll ? c . getScrollTop ( ) : y . call ( k ) } , set : function ( k , c ) { var h = e . data ( k , "__nicescroll" ) ||
! 1 ; h && h . ishwscroll ? h . setScrollTop ( parseInt ( c ) ) : y . call ( k , c ) ; return this } } ; e . fn . scrollTop = function ( k ) { if ( "undefined" == typeof k ) { var c = this [ 0 ] ? e . data ( this [ 0 ] , "__nicescroll" ) || ! 1 : ! 1 ; return c && c . ishwscroll ? c . getScrollTop ( ) : y . call ( this ) } return this . each ( function ( ) { var c = e . data ( this , "__nicescroll" ) || ! 1 ; c && c . ishwscroll ? c . setScrollTop ( parseInt ( k ) ) : y . call ( e ( this ) , k ) } ) } ; var C = e . fn . scrollLeft ; e . cssHooks . pageXOffset = { get : function ( k , c , h ) { return ( c = e . data ( k , "__nicescroll" ) || ! 1 ) && c . ishwscroll ? c . getScrollLeft ( ) : C . call ( k ) } ,
set : function ( k , c ) { var h = e . data ( k , "__nicescroll" ) || ! 1 ; h && h . ishwscroll ? h . setScrollLeft ( parseInt ( c ) ) : C . call ( k , c ) ; return this } } ; e . fn . scrollLeft = function ( k ) { if ( "undefined" == typeof k ) { var c = this [ 0 ] ? e . data ( this [ 0 ] , "__nicescroll" ) || ! 1 : ! 1 ; return c && c . ishwscroll ? c . getScrollLeft ( ) : C . call ( this ) } return this . each ( function ( ) { var c = e . data ( this , "__nicescroll" ) || ! 1 ; c && c . ishwscroll ? c . setScrollLeft ( parseInt ( k ) ) : C . call ( e ( this ) , k ) } ) } ; var D = function ( k ) { var c = this ; this . length = 0 ; this . name = "nicescrollarray" ; this . each = function ( d ) { for ( var e =
0 , h = 0 ; e < c . length ; e ++ ) d . call ( c [ e ] , h ++ ) ; return c } ; this . push = function ( d ) { c [ c . length ] = d ; c . length ++ } ; this . eq = function ( d ) { return c [ d ] } ; if ( k ) for ( var h = 0 ; h < k . length ; h ++ ) { var n = e . data ( k [ h ] , "__nicescroll" ) || ! 1 ; n && ( this [ this . length ] = n , this . length ++ ) } return this } ; ( function ( e , c , h ) { for ( var n = 0 ; n < c . length ; n ++ ) h ( e , c [ n ] ) } ) ( D . prototype , "show hide toggle onResize resize remove stop doScrollPos" . split ( " " ) , function ( e , c ) { e [ c ] = function ( ) { var e = arguments ; return this . each ( function ( ) { this [ c ] . apply ( this , e ) } ) } } ) ; e . fn . getNiceScroll =
function ( k ) { return "undefined" == typeof k ? new D ( this ) : this [ k ] && e . data ( this [ k ] , "__nicescroll" ) || ! 1 } ; e . extend ( e . expr [ ":" ] , { nicescroll : function ( k ) { return e . data ( k , "__nicescroll" ) ? ! 0 : ! 1 } } ) ; e . fn . niceScroll = function ( k , c ) { "undefined" != typeof c || "object" != typeof k || "jquery" in k || ( c = k , k = ! 1 ) ; c = e . extend ( { } , c ) ; var h = new D ; "undefined" == typeof c && ( c = { } ) ; k && ( c . doc = e ( k ) , c . win = e ( this ) ) ; var n = ! ( "doc" in c ) ; n || "win" in c || ( c . win = e ( this ) ) ; this . each ( function ( ) { var d = e ( this ) . data ( "__nicescroll" ) || ! 1 ; d || ( c . doc = n ? e ( this ) : c . doc ,
d = new S ( c , e ( this ) ) , e ( this ) . data ( "__nicescroll" , d ) ) ; h . push ( d ) } ) ; return 1 == h . length ? h [ 0 ] : h } ; window . NiceScroll = { getjQuery : function ( ) { return e } } ; e . nicescroll || ( e . nicescroll = new D , e . nicescroll . options = J ) } ) ;