diff --git a/README.md b/README.md index 4b5bae8..9a67013 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ #jQuery.NiceScroll -v. 3.6.7 02-08-2016 +v. 3.6.8 02-29-2016 - [Web Site: nicescroll.areaaperta.com](http://nicescroll.areaaperta.com) - [Repo: github.com/inuyaksa/jquery.nicescroll](https://github.com/inuyaksa/jquery.nicescroll) @@ -165,6 +165,7 @@ $("#thisdiv").niceScroll({ oneaxismousemode: "auto", // it permits horizontal scrolling with mousewheel on horizontal only content, if false (vertical-only) mousewheel don't scroll horizontally, if value is auto detects two-axis mouse scriptpath: "" // define custom path for boxmode icons ("" => same script path) preventmultitouchscrolling: true // prevent scrolling on multitouch events + disablemutationobserver: false // force MutationObserver disabled }); ``` diff --git a/changelog_3.6.7.txt b/changelog_3.6.7.txt deleted file mode 100644 index 99e4227..0000000 --- a/changelog_3.6.7.txt +++ /dev/null @@ -1,28 +0,0 @@ -Changelog nicescroll release 3.6.7 -http://nicescroll.areaaperta.com/ -https://github.com/inuyaksa/jquery.nicescroll - - -New options -none - -Changed features -- optimized debounced function using requestAnimationFrame -- optimized lazyResize - -Fixes -- Horizontal RTL mode support #508 -- Horizontal mousewheel scroll (shift + scroll) not working properly #547 -- jQueryUI draggable scroll Invalid ? #530 -- Fix error when using mm.foundation.modal #550 -- fix docscroll undefined of null by #557 - - -Thanks to great contributors!! - -hakatashi -kris-2k15 - - -TODO -- deprecate legacy browsers \ No newline at end of file diff --git a/changelog_3.6.8.txt b/changelog_3.6.8.txt new file mode 100644 index 0000000..6e94ca4 --- /dev/null +++ b/changelog_3.6.8.txt @@ -0,0 +1,31 @@ +Changelog nicescroll release 3.6.8 +http://nicescroll.areaaperta.com/ +https://github.com/inuyaksa/jquery.nicescroll + + +Changed features + +New options +- disablemutationobserver, = TRUE when you want that MutationObserver disabled #580 + +Fixes +- Fix show of null #583 +- Refactoring js #582 +- Removed comments #577 +- Timeouts & using on dynamic DOM Elements: "Uncaught TypeError" #579 +- version 3.6.6 stack overflow #578 +- MutationObserver. IE11 crashes #568 +- Xbox One IE Edge browser can't scroll anywhere #581 (to test on real hw!) +- NIce Scroll doesnt work on Window Surface IE Edge #555 + + +Thanks to great contributors!! +@silversonicaxel +@vsn4ik +@ronar +@StephanBijzitter + + + +TODO +- deprecate legacy browsers \ No newline at end of file diff --git a/demo/js/jquery.nicescroll.min.js b/demo/js/jquery.nicescroll.min.js index 00f8f02..5fc24bc 100644 --- a/demo/js/jquery.nicescroll.min.js +++ b/demo/js/jquery.nicescroll.min.js @@ -1,2 +1,120 @@ -/* jquery.nicescroll 3.6.7 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){"use strict";function o(){var e=document.getElementsByTagName("script"),o=e.length?e[e.length-1].src.split("?")[0]:"";return o.split("/").length>0?o.split("/").slice(0,-1).join("/")+"/":""}function t(e,o,t){for(var r=0;r=11,n.isieedge=navigator.userAgent.match(/Edge\/12\./),n.isie9mobile=/iemobile.9/i.test(r),n.isie9mobile&&(n.isie9=!1),n.isie7mobile=!n.isie9mobile&&n.isie7&&/iemobile/i.test(r),n.ismozilla="MozAppearance"in t,n.iswebkit="WebkitAppearance"in t,n.ischrome="chrome"in window,n.ischrome38=n.ischrome&&"touchAction"in t,n.ischrome22=!n.ischrome38&&n.ischrome&&n.haspointerlock,n.ischrome26=!n.ischrome38&&n.ischrome&&"transition"in t,n.cantouch="ontouchstart"in document.documentElement||"ontouchstart"in window,n.hasw3ctouch=(window.PointerEvent||!1)&&(navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0),n.hasmstouch=!n.hasw3ctouch&&(window.MSPointerEvent||!1),n.ismac=/^mac$/i.test(i),n.isios=n.cantouch&&/iphone|ipad|ipod/i.test(i),n.isios4=n.isios&&!("seal"in Object),n.isios7=n.isios&&"webkitHidden"in document,n.isios8=n.isios&&"hidden"in document,n.isandroid=/android/i.test(r),n.haseventlistener="addEventListener"in o,n.trstyle=!1,n.hastransform=!1,n.hastranslate3d=!1,n.transitionstyle=!1,n.hastransition=!1,n.transitionend=!1;var s,l=["transform","msTransform","webkitTransform","MozTransform","OTransform"];for(s=0;s0;){if(9==e[0].nodeType)return!1;var o=e.css("zIndex");if(!isNaN(o)&&0!=o)return parseInt(o);e=e.parent()}return!1}function h(e,o,t){var r=e.css(o),i=parseFloat(r);if(isNaN(i)){i=E[r]||0;var n=3==i?t?v.win.outerHeight()-v.win.innerHeight():v.win.outerWidth()-v.win.innerWidth():1;return v.isie8&&i&&(i+=1),n?i:0}return i}function p(e,o,t,r){v._bind(e,o,function(r){var r=r?r:window.event,i={original:r,target:r.target||r.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==r.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){return r.preventDefault?r.preventDefault():r.returnValue=!1,!1},stopImmediatePropagation:function(){r.stopImmediatePropagation?r.stopImmediatePropagation():r.cancelBubble=!0}};return"mousewheel"==o?(r.wheelDeltaX&&(i.deltaX=-1/40*r.wheelDeltaX),r.wheelDeltaY&&(i.deltaY=-1/40*r.wheelDeltaY),!i.deltaY&&!i.deltaX&&(i.deltaY=-1/40*r.wheelDelta)):i.deltaY=r.detail,t.call(e,i)},r)}function g(e,o,t){var r,i;if(0==e.deltaMode?(r=-Math.floor(e.deltaX*(v.opt.mousescrollstep/54)),i=-Math.floor(e.deltaY*(v.opt.mousescrollstep/54))):1==e.deltaMode&&(r=-Math.floor(e.deltaX*v.opt.mousescrollstep),i=-Math.floor(e.deltaY*v.opt.mousescrollstep)),o&&v.opt.oneaxismousemode&&0==r&&i&&(r=i,i=0,t)){var n=0>r?v.getScrollLeft()>=v.page.maxw:v.getScrollLeft()<=0;n&&(i=r,r=0)}if(v.isrtlmode&&(r=-r),r&&(v.scrollmom&&v.scrollmom.stop(),v.lastdeltax+=r,v.debounced("mousewheelx",function(){var e=v.lastdeltax;v.lastdeltax=0,v.rail.drag||v.doScrollLeftBy(e)},15)),i){if(v.opt.nativeparentscrolling&&t&&!v.ispage&&!v.zoomactive)if(0>i){if(v.getScrollTop()>=v.page.maxh)return!0}else if(v.getScrollTop()<=0)return!0;v.scrollmom&&v.scrollmom.stop(),v.lastdeltay+=i,v.synched("mousewheely",function(){var e=v.lastdeltay;v.lastdeltay=0,v.rail.drag||v.doScrollBy(e)},15)}return e.stopImmediatePropagation(),e.preventDefault()}var v=this;if(this.version="3.6.7",this.name="nicescroll",this.me=o,this.opt={doc:a("body"),win:!1},a.extend(this.opt,f),this.opt.snapbackspeed=80,e)for(var y in v.opt)"undefined"!=typeof e[y]&&(v.opt[y]=e[y]);if(this.doc=v.opt.doc,this.iddoc=this.doc&&this.doc[0]?this.doc[0].id||"":"",this.ispage=/^BODY|HTML/.test(v.opt.win?v.opt.win[0].nodeName:this.doc[0].nodeName),this.haswrapper=v.opt.win!==!1,this.win=v.opt.win||(this.ispage?a(window):this.doc),this.docscroll=this.ispage&&!this.haswrapper?a(window):this.win,this.body=a("body"),this.viewport=!1,this.isfixed=!1,this.iframe=!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"!=v.opt.autohidemode,this.onmousedown=!1,this.onmouseup=!1,this.onmousemove=!1,this.onmousewheel=!1,this.onkeypress=!1,this.ongesturezoom=!1,this.onclick=!1,this.onscrollstart=!1,this.onscrollend=!1,this.onscrollcancel=!1,this.onzoomin=!1,this.onzoomout=!1,this.view=!1,this.page=!1,this.scroll={x:0,y:0},this.scrollratio={x:0,y:0},this.cursorheight=20,this.scrollvaluemax=0,"auto"==this.opt.rtlmode){var x=this.win[0]==window?this.body:this.win,S=x.css("writing-mode")||x.css("-webkit-writing-mode")||x.css("-ms-writing-mode")||x.css("-moz-writing-mode");"horizontal-tb"==S||"lr-tb"==S||""==S?(this.isrtlmode="rtl"==x.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==S||"tb"==S||"tb-rl"==S||"rl-tb"==S,this.isvertical="vertical-rl"==S||"tb"==S||"tb-rl"==S)}else this.isrtlmode=this.opt.rtlmode===!0,this.isvertical=!1;this.scrollrunning=!1,this.scrollmom=!1,this.observer=!1,this.observerremover=!1,this.observerbody=!1;do this.id="ascrail"+s++;while(document.getElementById(this.id));this.rail=!1,this.cursor=!1,this.cursorfreezed=!1,this.selectiondrag=!1,this.zoom=!1,this.zoomactive=!1,this.hasfocus=!1,this.hasmousefocus=!1,this.visibility=!0,this.railslocked=!1,this.locked=!1,this.hidden=!1,this.cursoractive=!0,this.wheelprevented=!1,this.overflowx=v.opt.overflowx,this.overflowy=v.opt.overflowy,this.nativescrollingarea=!1,this.checkarea=0,this.events=[],this.saved={},this.delaylist={},this.synclist={},this.lastdeltax=0,this.lastdeltay=0,this.detected=w();var z=a.extend({},this.detected);this.canhwscroll=z.hastransform&&v.opt.hwacceleration,this.ishwscroll=this.canhwscroll&&v.haswrapper,this.isrtlmode?this.isvertical?this.hasreversehr=!(z.iswebkit||z.isie||z.isie11):this.hasreversehr=!(z.iswebkit||z.isie&&!z.isie10&&!z.isie11):this.hasreversehr=!1,this.istouchcapable=!1,z.cantouch||!z.hasw3ctouch&&!z.hasmstouch?!z.cantouch||z.isios||z.isandroid||!z.iswebkit&&!z.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0,v.opt.enablemouselockapi||(z.hasmousecapture=!1,z.haspointerlock=!1),this.debounced=function(e,o,t){if(v){var r=v.delaylist[e]||!1;r||(o.call(v),v.delaylist[e]={h:d(function(){v.delaylist[e].fn.call(v),v.delaylist[e]=!1},t)}),v.delaylist[e].fn=o}};var T=!1;this.synched=function(e,o){function t(){T||(d(function(){if(v){T=!1;for(var e in v.synclist){var o=v.synclist[e];o&&o.call(v),v.synclist[e]=!1}}}),T=!0)}return v.synclist[e]=o,t(),e},this.unsynched=function(e){v.synclist[e]&&(v.synclist[e]=!1)},this.css=function(e,o){for(var t in o)v.saved.css.push([e,t,e.css(t)]),e.css(t,o[t])},this.scrollTop=function(e){return"undefined"==typeof e?v.getScrollTop():v.setScrollTop(e)},this.scrollLeft=function(e){return"undefined"==typeof e?v.getScrollLeft():v.setScrollLeft(e)};var k=function(e,o,t,r,i,n,s){this.st=e,this.ed=o,this.spd=t,this.p1=r||0,this.p2=i||1,this.p3=n||0,this.p4=s||1,this.ts=(new Date).getTime(),this.df=this.ed-this.st};if(k.prototype={B2:function(e){return 3*e*e*(1-e)},B3:function(e){return 3*e*(1-e)*(1-e)},B4:function(e){return(1-e)*(1-e)*(1-e)},getNow:function(){var e=(new Date).getTime(),o=1-(e-this.ts)/this.spd,t=this.B2(o)+this.B3(o)+this.B4(o);return 0>o?this.ed:this.st+Math.round(this.df*t)},update:function(e,o){return this.st=this.getNow(),this.ed=e,this.spd=o,this.ts=(new Date).getTime(),this.df=this.ed-this.st,this}},this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"},z.hastranslate3d&&z.isios&&this.doc.css("-webkit-backface-visibility","hidden"),this.getScrollTop=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[13]:-o[5];if(v.timerscroll&&v.timerscroll.bz)return v.timerscroll.bz.getNow()}return v.doc.translate.y},this.getScrollLeft=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[12]:-o[4];if(v.timerscroll&&v.timerscroll.bh)return v.timerscroll.bh.getNow()}return v.doc.translate.x},this.notifyScrollEvent=function(e){var o=document.createEvent("UIEvents");o.initUIEvent("scroll",!1,!0,window,1),o.niceevent=!0,e.dispatchEvent(o)};var M=this.isrtlmode?1:-1;z.hastranslate3d&&v.opt.enabletranslate3d?(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])}):(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])})}else this.getScrollTop=function(){return v.docscroll.scrollTop()},this.setScrollTop=function(e){return setTimeout(function(){v&&v.docscroll.scrollTop(e)},1)},this.getScrollLeft=function(){var e;return e=v.hasreversehr?v.detected.ismozilla?v.page.maxw-Math.abs(v.docscroll.scrollLeft()):v.page.maxw-v.docscroll.scrollLeft():v.docscroll.scrollLeft()},this.setScrollLeft=function(e){return setTimeout(function(){return v?(v.hasreversehr&&(e=v.detected.ismozilla?-(v.page.maxw-e):v.page.maxw-e),v.docscroll.scrollLeft(e)):void 0},1)};this.getTarget=function(e){return e?e.target?e.target:e.srcElement?e.srcElement:!1:!1},this.hasParent=function(e,o){if(!e)return!1;for(var t=e.target||e.srcElement||e||!1;t&&t.id!=o;)t=t.parentNode||!1;return t!==!1};var E={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(v.isfixed){var e=v.win.offset(),o=v.getDocumentScrollOffset();return e.top-=o.top,e.left-=o.left,e}var t=v.win.offset();if(!v.viewport)return t;var r=v.viewport.offset();return{top:t.top-r.top,left:t.left-r.left}},this.updateScrollBar=function(e){if(v.ishwscroll)v.rail.css({height:v.win.innerHeight()-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.railh&&v.railh.css({width:v.win.innerWidth()-(v.opt.railpadding.left+v.opt.railpadding.right)});else{var o=v.getOffset(),t={top:o.top,left:o.left-(v.opt.railpadding.left+v.opt.railpadding.right)};t.top+=h(v.win,"border-top-width",!0),t.left+=v.rail.align?v.win.outerWidth()-h(v.win,"border-right-width")-v.rail.width:h(v.win,"border-left-width");var r=v.opt.railoffset;if(r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left)),v.railslocked||v.rail.css({top:t.top,left:t.left,height:(e?e.h:v.win.innerHeight())-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.zoom&&v.zoom.css({top:t.top+1,left:1==v.rail.align?t.left-20:t.left+v.rail.width+4}),v.railh&&!v.railslocked){var t={top:o.top,left:o.left},r=v.opt.railhoffset;r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left));var i=v.railh.align?t.top+h(v.win,"border-top-width",!0)+v.win.innerHeight()-v.railh.height:t.top+h(v.win,"border-top-width",!0),n=t.left+h(v.win,"border-left-width");v.railh.css({top:i-(v.opt.railpadding.top+v.opt.railpadding.bottom),left:n,width:v.railh.width})}}},this.doRailClick=function(e,o,t){var r,i,n,s;v.railslocked||(v.cancelEvent(e),o?(r=t?v.doScrollLeft:v.doScrollTop,n=t?(e.pageX-v.railh.offset().left-v.cursorwidth/2)*v.scrollratio.x:(e.pageY-v.rail.offset().top-v.cursorheight/2)*v.scrollratio.y,r(n)):(r=t?v.doScrollLeftBy:v.doScrollBy,n=t?v.scroll.x:v.scroll.y,s=t?e.pageX-v.railh.offset().left:e.pageY-v.rail.offset().top,i=t?v.view.w:v.view.h,r(n>=s?i:-i)))},v.hasanimationframe=d,v.hascancelanimationframe=u,v.hasanimationframe?v.hascancelanimationframe||(u=function(){v.cancelAnimationFrame=!0}):(d=function(e){return setTimeout(e,15-Math.floor(+new Date/1e3)%16)},u=clearTimeout),this.init=function(){if(v.saved.css=[],z.isie7mobile)return!0;if(z.isoperamini)return!0;if(z.hasmstouch&&v.css(v.ispage?a("html"):v.win,{"-ms-touch-action":"none"}),v.zindex="auto",v.ispage||"auto"!=v.opt.zindex?v.zindex=v.opt.zindex:v.zindex=c()||"auto",v.ispage||"auto"==v.zindex||v.zindex>l&&(l=v.zindex),v.isie&&0==v.zindex&&"auto"==v.opt.zindex&&(v.zindex="auto"),!v.ispage||!z.cantouch&&!z.isieold&&!z.isie9mobile){var e=v.docscroll;v.ispage&&(e=v.haswrapper?v.win:v.doc),z.isie9mobile||v.css(e,{"overflow-y":"hidden"}),v.ispage&&z.isie7&&("BODY"==v.doc[0].nodeName?v.css(a("html"),{"overflow-y":"hidden"}):"HTML"==v.doc[0].nodeName&&v.css(a("body"),{"overflow-y":"hidden"})),!z.isios||v.ispage||v.haswrapper||v.css(a("body"),{"-webkit-overflow-scrolling":"touch"});var o=a(document.createElement("div"));o.css({position:"relative",top:0,"float":"right",width:v.opt.cursorwidth,height:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),o.hborder=parseFloat(o.outerHeight()-o.innerHeight()),o.addClass("nicescroll-cursors"),v.cursor=o;var t=a(document.createElement("div"));t.attr("id",v.id),t.addClass("nicescroll-rails nicescroll-rails-vr");var s,d,u=["left","right","top","bottom"];for(var h in u)d=u[h],s=v.opt.railpadding[d],s?t.css("padding-"+d,s+"px"):v.opt.railpadding[d]=0;t.append(o),t.width=Math.max(parseFloat(v.opt.cursorwidth),o.outerWidth()),t.css({width:t.width+"px",zIndex:v.zindex,background:v.opt.background,cursor:"default"}),t.visibility=!0,t.scrollable=!0,t.align="left"==v.opt.railalign?0:1,v.rail=t,v.rail.drag=!1;var p=!1;!v.opt.boxzoom||v.ispage||z.isieold||(p=document.createElement("div"),v.bind(p,"click",v.doZoom),v.bind(p,"mouseenter",function(){v.zoom.css("opacity",v.opt.cursoropacitymax)}),v.bind(p,"mouseleave",function(){v.zoom.css("opacity",v.opt.cursoropacitymin)}),v.zoom=a(p),v.zoom.css({cursor:"pointer","z-index":v.zindex,backgroundImage:"url("+v.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),v.opt.dblclickzoom&&v.bind(v.win,"dblclick",v.doZoom),z.cantouch&&v.opt.gesturezoom&&(v.ongesturezoom=function(e){return e.scale>1.5&&v.doZoomIn(e),e.scale<.8&&v.doZoomOut(e),v.cancelEvent(e)},v.bind(v.win,"gestureend",v.ongesturezoom))),v.railh=!1;var f;if(v.opt.horizrailenabled){v.css(e,{"overflow-x":"hidden"});var o=a(document.createElement("div"));o.css({position:"absolute",top:0,height:v.opt.cursorwidth,width:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),z.isieold&&o.css({overflow:"hidden"}),o.wborder=parseFloat(o.outerWidth()-o.innerWidth()),o.addClass("nicescroll-cursors"),v.cursorh=o,f=a(document.createElement("div")),f.attr("id",v.id+"-hr"),f.addClass("nicescroll-rails nicescroll-rails-hr"),f.height=Math.max(parseFloat(v.opt.cursorwidth),o.outerHeight()),f.css({height:f.height+"px",zIndex:v.zindex,background:v.opt.background}),f.append(o),f.visibility=!0,f.scrollable=!0,f.align="top"==v.opt.railvalign?0:1,v.railh=f,v.railh.drag=!1}if(v.ispage)t.css({position:"fixed",top:"0px",height:"100%"}),t.align?t.css({right:"0px"}):t.css({left:"0px"}),v.body.append(t),v.railh&&(f.css({position:"fixed",left:"0px",width:"100%"}),f.align?f.css({bottom:"0px"}):f.css({top:"0px"}),v.body.append(f));else{if(v.ishwscroll){"static"==v.win.css("position")&&v.css(v.win,{position:"relative"});var g="HTML"==v.win[0].nodeName?v.body:v.win;a(g).scrollTop(0).scrollLeft(0),v.zoom&&(v.zoom.css({position:"absolute",top:1,right:0,"margin-right":t.width+4}),g.append(v.zoom)),t.css({position:"absolute",top:0}),t.align?t.css({right:0}):t.css({left:0}),g.append(t),f&&(f.css({position:"absolute",left:0,bottom:0}),f.align?f.css({bottom:0}):f.css({top:0}),g.append(f))}else{v.isfixed="fixed"==v.win.css("position");var w=v.isfixed?"fixed":"absolute";v.isfixed||(v.viewport=v.getViewport(v.win[0])),v.viewport&&(v.body=v.viewport,0==/fixed|absolute/.test(v.viewport.css("position"))&&v.css(v.viewport,{position:"relative"})),t.css({position:w}),v.zoom&&v.zoom.css({position:w}),v.updateScrollBar(),v.body.append(t),v.zoom&&v.body.append(v.zoom),v.railh&&(f.css({position:w}),v.body.append(f))}z.isios&&v.css(v.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),z.isie&&v.opt.disableoutline&&v.win.attr("hideFocus","true"),z.iswebkit&&v.opt.disableoutline&&v.win.css({outline:"none"})}if(v.opt.autohidemode===!1?(v.autohidedom=!1,v.rail.css({opacity:v.opt.cursoropacitymax}),v.railh&&v.railh.css({opacity:v.opt.cursoropacitymax})):v.opt.autohidemode===!0||"leave"===v.opt.autohidemode?(v.autohidedom=a().add(v.rail),z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursor)),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh)),v.railh&&z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"scroll"==v.opt.autohidemode?(v.autohidedom=a().add(v.rail),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh))):"cursor"==v.opt.autohidemode?(v.autohidedom=a().add(v.cursor),v.railh&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"hidden"==v.opt.autohidemode&&(v.autohidedom=!1,v.hide(),v.railslocked=!1),z.isie9mobile){v.scrollmom=new b(v),v.onmangotouch=function(){var e=v.getScrollTop(),o=v.getScrollLeft();if(e==v.scrollmom.lastscrolly&&o==v.scrollmom.lastscrollx)return!0;var t=e-v.mangotouch.sy,r=o-v.mangotouch.sx,i=Math.round(Math.sqrt(Math.pow(r,2)+Math.pow(t,2)));if(0!=i){var n=0>t?-1:1,s=0>r?-1:1,l=+new Date;if(v.mangotouch.lazy&&clearTimeout(v.mangotouch.lazy),l-v.mangotouch.tm>80||v.mangotouch.dry!=n||v.mangotouch.drx!=s)v.scrollmom.stop(),v.scrollmom.reset(o,e),v.mangotouch.sy=e,v.mangotouch.ly=e,v.mangotouch.sx=o,v.mangotouch.lx=o,v.mangotouch.dry=n,v.mangotouch.drx=s,v.mangotouch.tm=l;else{v.scrollmom.stop(),v.scrollmom.update(v.mangotouch.sx-r,v.mangotouch.sy-t),v.mangotouch.tm=l;var a=Math.max(Math.abs(v.mangotouch.ly-e),Math.abs(v.mangotouch.lx-o));v.mangotouch.ly=e,v.mangotouch.lx=o,a>2&&(v.mangotouch.lazy=setTimeout(function(){v.mangotouch.lazy=!1,v.mangotouch.dry=0,v.mangotouch.drx=0,v.mangotouch.tm=0,v.scrollmom.doMomentum(30)},100))}}};var y=v.getScrollTop(),x=v.getScrollLeft();v.mangotouch={sy:y,ly:y,dry:0,sx:x,lx:x,drx:0,lazy:!1,tm:0},v.bind(v.docscroll,"scroll",v.onmangotouch)}else{if(z.cantouch||v.istouchcapable||v.opt.touchbehavior||z.hasmstouch){v.scrollmom=new b(v),v.ontouchstart=function(e){if(console.log(e.type,e.pointerType),e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(v.hasmoving=!1,!v.railslocked){console.log("touchstart ",e.type);var o;if(z.hasmstouch)for(o=e.target?e.target:!1;o;){var t=a(o).getNiceScroll();if(t.length>0&&t[0].me==v.me)break;if(t.length>0)return!1;if("DIV"==o.nodeName&&o.id==v.id)break;o=o.parentNode?o.parentNode:!1}if(v.cancelScroll(),o=v.getTarget(e)){var r=/INPUT/i.test(o.nodeName)&&/range/i.test(o.type);if(r)return v.stopPropagation(e)}if(!("clientX"in e)&&"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var i=e;e={original:e.original?e.original:e},e.clientX=i.screenX,e.clientY=i.screenY}if(v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,st:v.getScrollTop(),sl:v.getScrollLeft(),pt:2,dl:!1},v.ispage||!v.opt.directionlockdeadzone)v.rail.drag.dl="f";else{var n={w:a(window).width(),h:a(window).height()},s={w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},l=Math.max(0,s.h-n.h),c=Math.max(0,s.w-n.w);!v.rail.scrollable&&v.railh.scrollable?v.rail.drag.ck=l>0?"v":!1:v.rail.scrollable&&!v.railh.scrollable?v.rail.drag.ck=c>0?"h":!1:v.rail.drag.ck=!1,v.rail.drag.ck||(v.rail.drag.dl="f")}if(v.opt.touchbehavior&&v.isiframe&&z.isie){var d=v.win.position();v.rail.drag.x+=d.left,v.rail.drag.y+=d.top}if(v.hasmoving=!1,v.lastmouseup=!1,v.scrollmom.reset(e.clientX,e.clientY),!z.cantouch&&!this.istouchcapable&&!e.pointerType){var u=o?/INPUT|SELECT|TEXTAREA/i.test(o.nodeName):!1;if(!u)return!v.ispage&&z.hasmousecapture&&o.setCapture(),v.opt.touchbehavior?(o.onclick&&!o._onclick&&(o._onclick=o.onclick,o.onclick=function(e){return v.hasmoving?!1:void o._onclick.call(this,e)}),v.cancelEvent(e)):v.stopPropagation(e);/SUBMIT|CANCEL|BUTTON/i.test(a(o).attr("type"))&&(pc={tg:o,click:!1},v.preventclick=pc)}}},v.ontouchend=function(e){if(!v.rail.drag)return!0;if(2==v.rail.drag.pt){if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(console.log("touchend:",e.target.nodeName),v.scrollmom.doMomentum(),v.rail.drag=!1,v.hasmoving&&(v.lastmouseup=!0,v.hideCursor(),z.hasmousecapture&&document.releaseCapture(),!z.cantouch))return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmouseup(e)};var S=v.opt.touchbehavior&&v.isiframe&&!z.hasmousecapture;v.ontouchmove=function(e,o){if(!v.rail.drag)return!1;if(e.targetTouches&&v.opt.preventmultitouchscrolling&&e.targetTouches.length>1)return!1;if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(2==v.rail.drag.pt){if(z.cantouch&&z.isios&&"undefined"==typeof e.original)return!0;v.hasmoving=!0,v.preventclick&&!v.preventclick.click&&(v.preventclick.click=v.preventclick.tg.onclick||!1,v.preventclick.tg.onclick=v.onpreventclick);var t=a.extend({original:e},e);if(e=t,"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var r=e;e={original:e.original?e.original:e},e.clientX=r.screenX,e.clientY=r.screenY}var i,n;if(n=i=0,S&&!o){var s=v.win.position();n=-s.left,i=-s.top}var l=e.clientY+i,c=l-v.rail.drag.y,d=e.clientX+n,u=d-v.rail.drag.x,h=v.rail.drag.st-c;v.ishwscroll&&v.opt.bouncescroll?0>h?h=Math.round(h/2):h>v.page.maxh&&(h=v.page.maxh+Math.round((h-v.page.maxh)/2)):(0>h&&(h=0,l=0),h>v.page.maxh&&(h=v.page.maxh,l=0));var p;v.railh&&v.railh.scrollable&&(p=v.isrtlmode?u-v.rail.drag.sl:v.rail.drag.sl-u,v.ishwscroll&&v.opt.bouncescroll?0>p?p=Math.round(p/2):p>v.page.maxw&&(p=v.page.maxw+Math.round((p-v.page.maxw)/2)):(0>p&&(p=0,d=0),p>v.page.maxw&&(p=v.page.maxw,d=0)));var m=!1;if(v.rail.drag.dl)m=!0,"v"==v.rail.drag.dl?p=v.rail.drag.sl:"h"==v.rail.drag.dl&&(h=v.rail.drag.st);else{var f=Math.abs(c),g=Math.abs(u),w=v.opt.directionlockdeadzone;if("v"==v.rail.drag.ck){if(f>w&&.3*f>=g)return v.rail.drag=!1,!0;g>w&&(v.rail.drag.dl="f",a("body").scrollTop(a("body").scrollTop()))}else if("h"==v.rail.drag.ck){if(g>w&&.3*g>=f)return v.rail.drag=!1,!0;f>w&&(v.rail.drag.dl="f",a("body").scrollLeft(a("body").scrollLeft()))}}if(v.synched("touchmove",function(){v.rail.drag&&2==v.rail.drag.pt&&(v.prepareTransition&&v.prepareTransition(0),v.rail.scrollable&&v.setScrollTop(h),v.scrollmom.update(d,l),v.railh&&v.railh.scrollable?(v.setScrollLeft(p),v.showCursor(h,p)):v.showCursor(h),z.isie10&&document.selection.clear())}),z.ischrome&&v.istouchcapable&&(m=!1),m)return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmousemove(e)}}if(v.onmousedown=function(e,o){if(!v.rail.drag||1==v.rail.drag.pt){if(v.railslocked)return v.cancelEvent(e);v.cancelScroll(),v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,pt:1,hr:!!o};var t=v.getTarget(e);return!v.ispage&&z.hasmousecapture&&t.setCapture(),v.isiframe&&!z.hasmousecapture&&(v.saved.csspointerevents=v.doc.css("pointer-events"),v.css(v.doc,{"pointer-events":"none"})),v.hasmoving=!1,v.cancelEvent(e)}},v.onmouseup=function(e){return v.rail.drag?1!=v.rail.drag.pt?!0:(z.hasmousecapture&&document.releaseCapture(),v.isiframe&&!z.hasmousecapture&&v.doc.css("pointer-events",v.saved.csspointerevents),v.rail.drag=!1,v.hasmoving&&v.triggerScrollEnd(),v.cancelEvent(e)):void 0},v.onmousemove=function(e){if(v.rail.drag){if(1!=v.rail.drag.pt)return;if(z.ischrome&&0==e.which)return v.onmouseup(e);if(v.cursorfreezed=!0,v.hasmoving=!0,v.rail.drag.hr){v.scroll.x=v.rail.drag.sx+(e.clientX-v.rail.drag.x),v.scroll.x<0&&(v.scroll.x=0);var o=v.scrollvaluemaxw;v.scroll.x>o&&(v.scroll.x=o)}else{v.scroll.y=v.rail.drag.sy+(e.clientY-v.rail.drag.y),v.scroll.y<0&&(v.scroll.y=0);var t=v.scrollvaluemax;v.scroll.y>t&&(v.scroll.y=t)}return v.synched("mousemove",function(){v.rail.drag&&1==v.rail.drag.pt&&(v.showCursor(),v.rail.drag.hr?v.hasreversehr?v.doScrollLeft(v.scrollvaluemaxw-Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollLeft(Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollTop(Math.round(v.scroll.y*v.scrollratio.y),v.opt.cursordragspeed))}),v.cancelEvent(e)}v.checkarea=0},z.cantouch||v.opt.touchbehavior)v.onpreventclick=function(e){return v.preventclick?(v.preventclick.tg.onclick=v.preventclick.click,v.preventclick=!1,v.cancelEvent(e)):void 0},v.bind(v.win,"mousedown",v.ontouchstart),v.onclick=z.isios?!1:function(e){return v.lastmouseup?(v.lastmouseup=!1,v.cancelEvent(e)):!0},v.opt.grabcursorenabled&&z.cursorgrabvalue&&(v.css(v.ispage?v.doc:v.win,{cursor:z.cursorgrabvalue}),v.css(v.rail,{cursor:z.cursorgrabvalue}));else{var T=function(e){if(v.selectiondrag){if(e){var o=v.win.outerHeight(),t=e.pageY-v.selectiondrag.top;t>0&&o>t&&(t=0),t>=o&&(t-=o),v.selectiondrag.df=t}if(0!=v.selectiondrag.df){var r=2*-Math.floor(v.selectiondrag.df/6);v.doScrollBy(r),v.debounced("doselectionscroll",function(){T()},50)}}};"getSelection"in document?v.hasTextSelected=function(){return document.getSelection().rangeCount>0}:"selection"in document?v.hasTextSelected=function(){return"None"!=document.selection.type}:v.hasTextSelected=function(){return!1},v.onselectionstart=function(){v.ispage||(v.selectiondrag=v.win.offset())},v.onselectionend=function(){v.selectiondrag=!1},v.onselectiondrag=function(e){v.selectiondrag&&v.hasTextSelected()&&v.debounced("selectionscroll",function(){T(e)},250)}}z.hasw3ctouch?(v.css(v.rail,{"touch-action":"none"}),v.css(v.cursor,{"touch-action":"none"}),v.bind(v.win,"pointerdown",v.ontouchstart),v.bind(document,"pointerup",v.ontouchend),v.bind(document,"pointermove",v.ontouchmove)):z.hasmstouch?(v.css(v.rail,{"-ms-touch-action":"none"}),v.css(v.cursor,{"-ms-touch-action":"none"}),v.bind(v.win,"MSPointerDown",v.ontouchstart),v.bind(document,"MSPointerUp",v.ontouchend),v.bind(document,"MSPointerMove",v.ontouchmove),v.bind(v.cursor,"MSGestureHold",function(e){e.preventDefault()}),v.bind(v.cursor,"contextmenu",function(e){e.preventDefault()})):this.istouchcapable&&(v.bind(v.win,"touchstart",v.ontouchstart),v.bind(document,"touchend",v.ontouchend),v.bind(document,"touchcancel",v.ontouchend),v.bind(document,"touchmove",v.ontouchmove)),(v.opt.cursordragontouch||!z.cantouch&&!v.opt.touchbehavior)&&(v.rail.css({cursor:"default"}),v.railh&&v.railh.css({cursor:"default"}),v.jqbind(v.rail,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.rail,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.rail,"click",function(e){v.doRailClick(e,!1,!1)}),v.bind(v.rail,"dblclick",function(e){v.doRailClick(e,!0,!1)}),v.bind(v.cursor,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursor,"dblclick",function(e){v.cancelEvent(e)})),v.railh&&(v.jqbind(v.railh,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.railh,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.railh,"click",function(e){v.doRailClick(e,!1,!0)}),v.bind(v.railh,"dblclick",function(e){v.doRailClick(e,!0,!0)}),v.bind(v.cursorh,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursorh,"dblclick",function(e){v.cancelEvent(e)})))),z.cantouch||v.opt.touchbehavior?(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.ontouchend),v.bind(document,"mousemove",v.ontouchmove),v.onclick&&v.bind(document,"click",v.onclick),v.opt.cursordragontouch?(v.bind(v.cursor,"mousedown",v.onmousedown),v.bind(v.cursor,"mouseup",v.onmouseup),v.cursorh&&v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onmouseup)):(v.bind(v.rail,"mousedown",function(e){e.preventDefault()}),v.railh&&v.bind(v.railh,"mousedown",function(e){e.preventDefault()}))):(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.onmouseup),v.bind(document,"mousemove",v.onmousemove),v.onclick&&v.bind(document,"click",v.onclick),v.bind(v.cursor,"mousedown",v.onmousedown), -v.bind(v.cursor,"mouseup",v.onmouseup),v.railh&&(v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.bind(v.cursorh,"mouseup",v.onmouseup)),!v.ispage&&v.opt.enablescrollonselection&&(v.bind(v.win[0],"mousedown",v.onselectionstart),v.bind(document,"mouseup",v.onselectionend),v.bind(v.cursor,"mouseup",v.onselectionend),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onselectionend),v.bind(document,"mousemove",v.onselectiondrag)),v.zoom&&(v.jqbind(v.zoom,"mouseenter",function(){v.canshowonmouseevent&&v.showCursor(),v.rail.active=!0}),v.jqbind(v.zoom,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}))),v.opt.enablemousewheel&&(v.isiframe||v.mousewheel(z.isie&&v.ispage?document:v.win,v.onmousewheel),v.mousewheel(v.rail,v.onmousewheel),v.railh&&v.mousewheel(v.railh,v.onmousewheelhr)),v.ispage||z.cantouch||/HTML|^BODY/.test(v.win[0].nodeName)||(v.win.attr("tabindex")||v.win.attr({tabindex:n++}),v.jqbind(v.win,"focus",function(e){r=v.getTarget(e).id||!0,v.hasfocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"blur",function(){r=!1,v.hasfocus=!1}),v.jqbind(v.win,"mouseenter",function(e){i=v.getTarget(e).id||!0,v.hasmousefocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"mouseleave",function(){i=!1,v.hasmousefocus=!1,v.rail.drag||v.hideCursor()}))}if(v.onkeypress=function(e){if(v.railslocked&&0==v.page.maxh)return!0;e=e?e:window.e;var o=v.getTarget(e);if(o&&/INPUT|TEXTAREA|SELECT|OPTION/.test(o.nodeName)){var t=o.getAttribute("type")||o.type||!1;if(!t||!/submit|button|cancel/i.tp)return!0}if(a(o).attr("contenteditable"))return!0;if(v.hasfocus||v.hasmousefocus&&!r||v.ispage&&!r&&!i){var n=e.keyCode;if(v.railslocked&&27!=n)return v.cancelEvent(e);var s=e.ctrlKey||!1,l=e.shiftKey||!1,c=!1;switch(n){case 38:case 63233:v.doScrollBy(72),c=!0;break;case 40:case 63235:v.doScrollBy(-72),c=!0;break;case 37:case 63232:v.railh&&(s?v.doScrollLeft(0):v.doScrollLeftBy(72),c=!0);break;case 39:case 63234:v.railh&&(s?v.doScrollLeft(v.page.maxw):v.doScrollLeftBy(-72),c=!0);break;case 33:case 63276:v.doScrollBy(v.view.h),c=!0;break;case 34:case 63277:v.doScrollBy(-v.view.h),c=!0;break;case 36:case 63273:v.railh&&s?v.doScrollPos(0,0):v.doScrollTo(0),c=!0;break;case 35:case 63275:v.railh&&s?v.doScrollPos(v.page.maxw,v.page.maxh):v.doScrollTo(v.page.maxh),c=!0;break;case 32:v.opt.spacebarenabled&&(l?v.doScrollBy(v.view.h):v.doScrollBy(-v.view.h),c=!0);break;case 27:v.zoomactive&&(v.doZoom(),c=!0)}if(c)return v.cancelEvent(e)}},v.opt.enablekeyboard&&v.bind(document,z.isopera&&!z.isopera12?"keypress":"keydown",v.onkeypress),v.bind(document,"keydown",function(e){var o=e.ctrlKey||!1;o&&(v.wheelprevented=!0)}),v.bind(document,"keyup",function(e){var o=e.ctrlKey||!1;o||(v.wheelprevented=!1)}),v.bind(window,"blur",function(){v.wheelprevented=!1}),v.bind(window,"resize",v.lazyResize),v.bind(window,"orientationchange",v.lazyResize),v.bind(window,"load",v.lazyResize),z.ischrome&&!v.ispage&&!v.haswrapper){var k=v.win.attr("style"),M=parseFloat(v.win.css("width"))+1;v.win.css("width",M),v.synched("chromefix",function(){v.win.attr("style",k)})}v.onAttributeChange=function(){v.lazyResize(v.isieold?250:30)},m!==!1&&(v.observerbody=new m(function(e){return e.forEach(function(e){return"attributes"==e.type?a("body").hasClass("modal-open")&&a("body").hasClass("modal-dialog")&&!a.contains(a(".modal-dialog")[0],v.doc[0])?v.hide():v.show():void 0}),document.body.scrollHeight!=v.page.maxh?v.lazyResize(30):void 0}),v.observerbody.observe(document.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]})),v.ispage||v.haswrapper||(m!==!1?(v.observer=new m(function(e){e.forEach(v.onAttributeChange)}),v.observer.observe(v.win[0],{childList:!0,characterData:!1,attributes:!0,subtree:!1}),v.observerremover=new m(function(e){e.forEach(function(e){if(e.removedNodes.length>0)for(var o in e.removedNodes)if(v&&e.removedNodes[o]==v.win[0])return v.remove()})}),v.observerremover.observe(v.win[0].parentNode,{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(v.bind(v.win,z.isie&&!z.isie9?"propertychange":"DOMAttrModified",v.onAttributeChange),z.isie9&&v.win[0].attachEvent("onpropertychange",v.onAttributeChange),v.bind(v.win,"DOMNodeRemoved",function(e){e.target==v.win[0]&&v.remove()}))),!v.ispage&&v.opt.boxzoom&&v.bind(window,"resize",v.resizeZoom),v.istextarea&&(v.bind(v.win,"keydown",v.lazyResize),v.bind(v.win,"mouseup",v.lazyResize)),v.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var E=function(){v.iframexd=!1;var e;try{e="contentDocument"in this?this.contentDocument:this.contentWindow.document;e.domain}catch(o){v.iframexd=!0,e=!1}if(v.iframexd)return"console"in window&&console.log("NiceScroll error: policy restriced iframe"),!0;if(v.forcescreen=!0,v.isiframe&&(v.iframe={doc:a(e),html:v.doc.contents().find("html")[0],body:v.doc.contents().find("body")[0]},v.getContentSize=function(){return{w:Math.max(v.iframe.html.scrollWidth,v.iframe.body.scrollWidth),h:Math.max(v.iframe.html.scrollHeight,v.iframe.body.scrollHeight)}},v.docscroll=a(v.iframe.body)),!z.isios&&v.opt.iframeautoresize&&!v.isiframe){v.win.scrollTop(0),v.doc.height("");var t=Math.max(e.getElementsByTagName("html")[0].scrollHeight,e.body.scrollHeight);v.doc.height(t)}v.lazyResize(30),z.isie7&&v.css(a(v.iframe.html),{"overflow-y":"hidden"}),v.css(a(v.iframe.body),{"overflow-y":"hidden"}),z.isios&&v.haswrapper&&v.css(a(e.body),{"-webkit-transform":"translate3d(0,0,0)"}),"contentWindow"in this?v.bind(this.contentWindow,"scroll",v.onscroll):v.bind(e,"scroll",v.onscroll),v.opt.enablemousewheel&&v.mousewheel(e,v.onmousewheel),v.opt.enablekeyboard&&v.bind(e,z.isopera?"keypress":"keydown",v.onkeypress),(z.cantouch||v.opt.touchbehavior)&&(v.bind(e,"mousedown",v.ontouchstart),v.bind(e,"mousemove",function(e){return v.ontouchmove(e,!0)}),v.opt.grabcursorenabled&&z.cursorgrabvalue&&v.css(a(e.body),{cursor:z.cursorgrabvalue})),v.bind(e,"mouseup",v.ontouchend),v.zoom&&(v.opt.dblclickzoom&&v.bind(e,"dblclick",v.doZoom),v.ongesturezoom&&v.bind(e,"gestureend",v.ongesturezoom))};this.doc[0].readyState&&"complete"==this.doc[0].readyState&&setTimeout(function(){E.call(v.doc[0],!1)},500),v.bind(this.doc,"load",E)}},this.showCursor=function(e,o){if(v.cursortimeout&&(clearTimeout(v.cursortimeout),v.cursortimeout=0),v.rail){if(v.autohidedom&&(v.autohidedom.stop().css({opacity:v.opt.cursoropacitymax}),v.cursoractive=!0),v.rail.drag&&1==v.rail.drag.pt||("undefined"!=typeof e&&e!==!1&&(v.scroll.y=Math.round(1*e/v.scrollratio.y)),"undefined"!=typeof o&&(v.scroll.x=Math.round(1*o/v.scrollratio.x))),v.cursor.css({height:v.cursorheight,top:v.scroll.y}),v.cursorh){var t=v.hasreversehr?v.scrollvaluemaxw-v.scroll.x:v.scroll.x;!v.rail.align&&v.rail.visibility?v.cursorh.css({width:v.cursorwidth,left:t+v.rail.width}):v.cursorh.css({width:v.cursorwidth,left:t}),v.cursoractive=!0}v.zoom&&v.zoom.stop().css({opacity:v.opt.cursoropacitymax})}},this.hideCursor=function(e){v.cursortimeout||v.rail&&v.autohidedom&&(v.hasmousefocus&&"leave"==v.opt.autohidemode||(v.cursortimeout=setTimeout(function(){v.rail.active&&v.showonmouseevent||(v.autohidedom.stop().animate({opacity:v.opt.cursoropacitymin}),v.zoom&&v.zoom.stop().animate({opacity:v.opt.cursoropacitymin}),v.cursoractive=!1),v.cursortimeout=0},e||v.opt.hidecursordelay)))},this.noticeCursor=function(e,o,t){v.showCursor(o,t),v.rail.active||v.hideCursor(e)},this.getContentSize=v.ispage?function(){return{w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}}:v.haswrapper?function(){return{w:v.doc.outerWidth()+parseInt(v.win.css("paddingLeft"))+parseInt(v.win.css("paddingRight")),h:v.doc.outerHeight()+parseInt(v.win.css("paddingTop"))+parseInt(v.win.css("paddingBottom"))}}:function(){return{w:v.docscroll[0].scrollWidth,h:v.docscroll[0].scrollHeight}},this.onResize=function(e,o){if(!v||!v.win)return!1;if(!v.haswrapper&&!v.ispage){if("none"==v.win.css("display"))return v.visibility&&v.hideRail().hideRailHr(),!1;v.hidden||v.visibility||v.showRail().showRailHr()}var t=v.page.maxh,r=v.page.maxw,i={h:v.view.h,w:v.view.w};if(v.view={w:v.ispage?v.win.width():parseInt(v.win[0].clientWidth),h:v.ispage?v.win.height():parseInt(v.win[0].clientHeight)},v.page=o?o:v.getContentSize(),v.page.maxh=Math.max(0,v.page.h-v.view.h),v.page.maxw=Math.max(0,v.page.w-v.view.w),v.page.maxh==t&&v.page.maxw==r&&v.view.w==i.w&&v.view.h==i.h){if(v.ispage)return v;var n=v.win.offset();if(v.lastposition){var s=v.lastposition;if(s.top==n.top&&s.left==n.left)return v}v.lastposition=n}if(0==v.page.maxh?(v.hideRail(),v.scrollvaluemax=0,v.scroll.y=0,v.scrollratio.y=0,v.cursorheight=0,v.setScrollTop(0),v.rail&&(v.rail.scrollable=!1)):(v.page.maxh-=v.opt.railpadding.top+v.opt.railpadding.bottom,v.rail.scrollable=!0),0==v.page.maxw?(v.hideRailHr(),v.scrollvaluemaxw=0,v.scroll.x=0,v.scrollratio.x=0,v.cursorwidth=0,v.setScrollLeft(0),v.railh&&(v.railh.scrollable=!1)):(v.page.maxw-=v.opt.railpadding.left+v.opt.railpadding.right,v.railh&&(v.railh.scrollable=v.opt.horizrailenabled)),v.railslocked=v.locked||0==v.page.maxh&&0==v.page.maxw,v.railslocked)return v.ispage||v.updateScrollBar(v.view),!1;v.hidden||v.visibility?!v.railh||v.hidden||v.railh.visibility||v.showRailHr():v.showRail().showRailHr(),v.istextarea&&v.win.css("resize")&&"none"!=v.win.css("resize")&&(v.view.h-=20),v.cursorheight=Math.min(v.view.h,Math.round(v.view.h*(v.view.h/v.page.h))),v.cursorheight=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorheight),v.cursorwidth=Math.min(v.view.w,Math.round(v.view.w*(v.view.w/v.page.w))),v.cursorwidth=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorwidth),v.scrollvaluemax=v.view.h-v.cursorheight-v.cursor.hborder-(v.opt.railpadding.top+v.opt.railpadding.bottom),v.railh&&(v.railh.width=v.page.maxh>0?v.view.w-v.rail.width:v.view.w,v.scrollvaluemaxw=v.railh.width-v.cursorwidth-v.cursorh.wborder-(v.opt.railpadding.left+v.opt.railpadding.right)),v.ispage||v.updateScrollBar(v.view),v.scrollratio={x:v.page.maxw/v.scrollvaluemaxw,y:v.page.maxh/v.scrollvaluemax};var l=v.getScrollTop();return l>v.page.maxh?v.doScrollTop(v.page.maxh):(v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x)),v.cursoractive&&v.noticeCursor()),v.scroll.y&&0==v.getScrollTop()&&v.doScrollTo(Math.floor(v.scroll.y*v.scrollratio.y)),v},this.resize=v.onResize,this.hlazyresize=0,this.lazyResize=function(){return v.haswrapper||v.hide(),v.hlazyresize&&clearTimeout(v.hlazyresize),v.hlazyresize=setTimeout(function(){v.show().resize()},240),v},this.jqbind=function(e,o,t){v.events.push({e:e,n:o,f:t,q:!0}),a(e).bind(o,t)},this.mousewheel=function(e,o,t){var r="jquery"in e?e[0]:e;if("onwheel"in document.createElement("div"))v._bind(r,"wheel",o,t||!1);else{var i="undefined"!=typeof document.onmousewheel?"mousewheel":"DOMMouseScroll";p(r,i,o,t||!1),"DOMMouseScroll"==i&&p(r,"MozMousePixelScroll",o,t||!1)}},z.haseventlistener?(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,t,r||!1)},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.addEventListener(o,t,r||!1)},this.cancelEvent=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.cancelable&&e.preventDefault(),e.stopPropagation(),e.preventManipulation&&e.preventManipulation(),!1},this.stopPropagation=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.stopPropagation(),!1},this._unbind=function(e,o,t,r){e.removeEventListener(o,t,r)}):(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,function(e){return e=e||window.event||!1,e&&e.srcElement&&(e.target=e.srcElement),"pageY"in e||(e.pageX=e.clientX+document.documentElement.scrollLeft,e.pageY=e.clientY+document.documentElement.scrollTop),t.call(i,e)===!1||r===!1?v.cancelEvent(e):!0})},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.attachEvent?e.attachEvent("on"+o,t):e["on"+o]=t},this.cancelEvent=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1):!1},this.stopPropagation=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,!1):!1},this._unbind=function(e,o,t){e.detachEvent?e.detachEvent("on"+o,t):e["on"+o]=!1}),this.unbindAll=function(){for(var e=0;e0)return t;o=o.parentNode?o.parentNode:!1}return!1},this.triggerScrollEnd=function(){if(v.onscrollend){var e=v.getScrollLeft(),o=v.getScrollTop(),t={type:"scrollend",current:{x:e,y:o},end:{x:e,y:o}};v.onscrollend.call(v,t)}},this.onmousewheel=function(e){if(!v.wheelprevented){if(v.railslocked)return v.debounced("checkunlock",v.resize,250),!0;if(v.rail.drag)return v.cancelEvent(e);if("auto"==v.opt.oneaxismousemode&&0!=e.deltaX&&(v.opt.oneaxismousemode=!1),v.opt.oneaxismousemode&&0==e.deltaX&&!v.rail.scrollable)return v.railh&&v.railh.scrollable?v.onmousewheelhr(e):!0;var o=+new Date,t=!1;if(v.opt.preservenativescrolling&&v.checkarea+60020?t:0},v.opt.smoothscroll?v.ishwscroll&&z.hastransition&&v.opt.usetransition&&v.opt.smoothscroll?(this.prepareTransition=function(e,o){var t=o?e>20?e:0:v.getTransitionSpeed(e),r=t?z.prefixstyle+"transform "+t+"ms ease-out":"";return v.lasttransitionstyle&&v.lasttransitionstyle==r||(v.lasttransitionstyle=r,v.doc.css(z.transitionstyle,r)),t},this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=v.getScrollTop(),i=v.getScrollLeft();return((v.newscrolly-r)*(o-r)<0||(v.newscrollx-i)*(e-i)<0)&&v.cancelScroll(),0==v.opt.bouncescroll&&(0>o?o=0:o>v.page.maxh&&(o=v.page.maxh),0>e?e=0:e>v.page.maxw&&(e=v.page.maxw)),v.scrollrunning&&e==v.newscrollx&&o==v.newscrolly?!1:(v.newscrolly=o,v.newscrollx=e,v.newscrollspeed=t||!1,v.timer?!1:void(v.timer=setTimeout(function(){var t=v.getScrollTop(),r=v.getScrollLeft(),i={};i.x=e-r,i.y=o-t,i.px=r,i.py=t;var n=Math.round(Math.sqrt(Math.pow(i.x,2)+Math.pow(i.y,2))),s=v.newscrollspeed&&v.newscrollspeed>1?v.newscrollspeed:v.getTransitionSpeed(n);if(v.newscrollspeed&&v.newscrollspeed<=1&&(s*=v.newscrollspeed),v.prepareTransition(s,!0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),s>0){if(!v.scrollrunning&&v.onscrollstart){var l={type:"scrollstart",current:{x:r,y:t},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:s};v.onscrollstart.call(v,l)}z.transitionend?v.scrollendtrapped||(v.scrollendtrapped=!0,v.bind(v.doc,z.transitionend,v.onScrollTransitionEnd,!1)):(v.scrollendtrapped&&clearTimeout(v.scrollendtrapped),v.scrollendtrapped=setTimeout(v.onScrollTransitionEnd,s));var a=t,c=r;v.timerscroll={bz:new k(a,v.newscrolly,s,0,0,.58,1),bh:new k(c,v.newscrollx,s,0,0,.58,1)},v.cursorfreezed||(v.timerscroll.tm=setInterval(function(){v.showCursor(v.getScrollTop(),v.getScrollLeft())},60))}v.synched("doScroll-set",function(){v.timer=0,v.scrollendtrapped&&(v.scrollrunning=!0),v.setScrollTop(v.newscrolly),v.setScrollLeft(v.newscrollx),v.scrollendtrapped||v.onScrollTransitionEnd()})},50)))},this.cancelScroll=function(){if(!v.scrollendtrapped)return!0;var e=v.getScrollTop(),o=v.getScrollLeft();return v.scrollrunning=!1,z.transitionend||clearTimeout(z.transitionend),v.scrollendtrapped=!1,v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.prepareTransition(0),v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1,v.cursorfreezed=!1,v.showCursor(e,o),v},this.onScrollTransitionEnd=function(){v.scrollendtrapped&&v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.scrollendtrapped=!1,v.prepareTransition(0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1;var e=v.getScrollTop(),o=v.getScrollLeft();return v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.noticeCursor(!1,e,o),v.cursorfreezed=!1,0>e?e=0:e>v.page.maxh&&(e=v.page.maxh),0>o?o=0:o>v.page.maxw&&(o=v.page.maxw),e!=v.newscrolly||o!=v.newscrollx?v.doScrollPos(o,e,v.opt.snapbackspeed):(v.onscrollend&&v.scrollrunning&&v.triggerScrollEnd(),void(v.scrollrunning=!1))}):(this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){function r(){if(v.cancelAnimationFrame)return!0;if(v.scrollrunning=!0,h=1-h)return v.timer=d(r)||1;var e,o,t=0,i=o=v.getScrollTop();if(v.dst.ay){i=v.bzscroll?v.dst.py+v.bzscroll.getNow()*v.dst.ay:v.newscrolly;var n=i-o;(0>n&&i0&&i>v.newscrolly)&&(i=v.newscrolly),v.setScrollTop(i),i==v.newscrolly&&(t=1)}else t=1;var s=e=v.getScrollLeft();if(v.dst.ax){s=v.bzscroll?v.dst.px+v.bzscroll.getNow()*v.dst.ax:v.newscrollx;var n=s-e;(0>n&&s0&&s>v.newscrollx)&&(s=v.newscrollx),v.setScrollLeft(s),s==v.newscrollx&&(t+=1)}else t+=1;2==t?(v.timer=0,v.cursorfreezed=!1,v.bzscroll=!1,v.scrollrunning=!1,0>i?i=0:i>v.page.maxh&&(i=v.page.maxh),0>s?s=0:s>v.page.maxw&&(s=v.page.maxw),s!=v.newscrollx||i!=v.newscrolly?v.doScrollPos(s,i):v.onscrollend&&v.triggerScrollEnd()):v.timer=d(r)||1}var o="undefined"==typeof o||o===!1?v.getScrollTop(!0):o;if(v.timer&&v.newscrolly==o&&v.newscrollx==e)return!0;v.timer&&u(v.timer),v.timer=0;var i=v.getScrollTop(),n=v.getScrollLeft();((v.newscrolly-i)*(o-i)<0||(v.newscrollx-n)*(e-n)<0)&&v.cancelScroll(),v.newscrolly=o,v.newscrollx=e,v.bouncescroll&&v.rail.visibility||(v.newscrolly<0?v.newscrolly=0:v.newscrolly>v.page.maxh&&(v.newscrolly=v.page.maxh)),v.bouncescroll&&v.railh.visibility||(v.newscrollx<0?v.newscrollx=0:v.newscrollx>v.page.maxw&&(v.newscrollx=v.page.maxw)),v.dst={},v.dst.x=e-n,v.dst.y=o-i,v.dst.px=n,v.dst.py=i;var s=Math.round(Math.sqrt(Math.pow(v.dst.x,2)+Math.pow(v.dst.y,2)));v.dst.ax=v.dst.x/s,v.dst.ay=v.dst.y/s;var l=0,a=s;0==v.dst.x?(l=i,a=o,v.dst.ay=1,v.dst.py=0):0==v.dst.y&&(l=n,a=e,v.dst.ax=1,v.dst.px=0);var c=v.getTransitionSpeed(s);if(t&&1>=t&&(c*=t),c>0?v.bzscroll=v.bzscroll?v.bzscroll.update(a,c):new k(l,a,c,0,1,0,1):v.bzscroll=!1,!v.timer){(i==v.page.maxh&&o>=v.page.maxh||n==v.page.maxw&&e>=v.page.maxw)&&v.checkContentSize();var h=1;if(v.cancelAnimationFrame=!1,v.timer=1,v.onscrollstart&&!v.scrollrunning){var p={type:"scrollstart",current:{x:n,y:i},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:c};v.onscrollstart.call(v,p)}r(),(i==v.page.maxh&&o>=i||n==v.page.maxw&&e>=n)&&v.checkContentSize(),v.noticeCursor()}},this.cancelScroll=function(){return v.timer&&u(v.timer),v.timer=0,v.bzscroll=!1,v.scrollrunning=!1,v}):(this.doScrollLeft=function(e,o){var t=v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o){var t=e>v.page.maxw?v.page.maxw:e;0>t&&(t=0);var r=o>v.page.maxh?v.page.maxh:o;0>r&&(r=0),v.synched("scroll",function(){v.setScrollTop(r),v.setScrollLeft(t)})},this.cancelScroll=function(){}),this.doScrollBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.y-e)*v.scrollratio.y);else{var r=v.timer?v.newscrolly:v.getScrollTop(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.h/2);-i>t?t=-i:t>v.page.maxh+i&&(t=v.page.maxh+i)}v.cursorfreezed=!1;var n=v.getScrollTop(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxh&&n>=v.page.maxh?(v.checkContentSize(),v.noticeCursor()):void v.doScrollTop(t)},this.doScrollLeftBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.x-e)*v.scrollratio.x);else{var r=v.timer?v.newscrollx:v.getScrollLeft(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.w/2);-i>t?t=-i:t>v.page.maxw+i&&(t=v.page.maxw+i)}v.cursorfreezed=!1;var n=v.getScrollLeft(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxw&&n>=v.page.maxw?v.noticeCursor():void v.doScrollLeft(t)},this.doScrollTo=function(e,o){var t=o?Math.round(e*v.scrollratio.y):e;0>t?t=0:t>v.page.maxh&&(t=v.page.maxh),v.cursorfreezed=!1,v.doScrollTop(e)},this.checkContentSize=function(){var e=v.getContentSize();(e.h!=v.page.h||e.w!=v.page.w)&&v.resize(!1,e)},v.onscroll=function(){v.rail.drag||v.cursorfreezed||v.synched("scroll",function(){v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.railh&&(v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x))),v.noticeCursor()})},v.bind(v.docscroll,"scroll",v.onscroll),this.doZoomIn=function(e){if(!v.zoomactive){v.zoomactive=!0,v.zoomrestore={style:{}};var o=["position","top","left","zIndex","backgroundColor","marginTop","marginBottom","marginLeft","marginRight"],t=v.win[0].style;for(var r in o){var i=o[r];v.zoomrestore.style[i]="undefined"!=typeof t[i]?t[i]:""}v.zoomrestore.style.width=v.win.css("width"),v.zoomrestore.style.height=v.win.css("height"),v.zoomrestore.padding={w:v.win.outerWidth()-v.win.width(),h:v.win.outerHeight()-v.win.height()},z.isios4&&(v.zoomrestore.scrollTop=a(window).scrollTop(),a(window).scrollTop(0)),v.win.css({position:z.isios4?"absolute":"fixed",top:0,left:0,"z-index":l+100,margin:"0px"});var n=v.win.css("backgroundColor");return(""==n||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(n))&&v.win.css("backgroundColor","#fff"),v.rail.css({"z-index":l+101}),v.zoom.css({"z-index":l+102}),v.zoom.css("backgroundPosition","0px -18px"),v.resizeZoom(),v.onzoomin&&v.onzoomin.call(v),v.cancelEvent(e)}},this.doZoomOut=function(e){return v.zoomactive?(v.zoomactive=!1,v.win.css("margin",""),v.win.css(v.zoomrestore.style),z.isios4&&a(window).scrollTop(v.zoomrestore.scrollTop),v.rail.css({"z-index":v.zindex}),v.zoom.css({"z-index":v.zindex}),v.zoomrestore=!1,v.zoom.css("backgroundPosition","0px 0px"),v.onResize(),v.onzoomout&&v.onzoomout.call(v),v.cancelEvent(e)):void 0},this.doZoom=function(e){return v.zoomactive?v.doZoomOut(e):v.doZoomIn(e)},this.resizeZoom=function(){if(v.zoomactive){var e=v.getScrollTop();v.win.css({width:a(window).width()-v.zoomrestore.padding.w+"px",height:a(window).height()-v.zoomrestore.padding.h+"px"}),v.onResize(),v.setScrollTop(Math.min(v.page.maxh,e))}},this.init(),a.nicescroll.push(this)},b=function(e){var o=this;this.nc=e,this.lastx=0,this.lasty=0,this.speedx=0,this.speedy=0,this.lasttime=0,this.steptime=0,this.snapx=!1,this.snapy=!1,this.demulx=0,this.demuly=0,this.lastscrollx=-1,this.lastscrolly=-1,this.chkx=0,this.chky=0,this.timer=0,this.time=function(){return+new Date},this.reset=function(e,t){o.stop();var r=o.time();o.steptime=0,o.lasttime=r,o.speedx=0,o.speedy=0,o.lastx=e,o.lasty=t,o.lastscrollx=-1,o.lastscrolly=-1},this.update=function(e,t){var r=o.time();o.steptime=r-o.lasttime,o.lasttime=r;var i=t-o.lasty,n=e-o.lastx,s=o.nc.getScrollTop(),l=o.nc.getScrollLeft(),a=s+i,c=l+n;o.snapx=0>c||c>o.nc.page.maxw,o.snapy=0>a||a>o.nc.page.maxh,o.speedx=n,o.speedy=i,o.lastx=e,o.lasty=t},this.stop=function(){o.nc.unsynched("domomentum2d"),o.timer&&clearTimeout(o.timer),o.timer=0,o.lastscrollx=-1,o.lastscrolly=-1},this.doSnapy=function(e,t){var r=!1;0>t?(t=0,r=!0):t>o.nc.page.maxh&&(t=o.nc.page.maxh,r=!0),0>e?(e=0,r=!0):e>o.nc.page.maxw&&(e=o.nc.page.maxw,r=!0),r?o.nc.doScrollPos(e,t,o.nc.opt.snapbackspeed):o.nc.triggerScrollEnd()},this.doMomentum=function(e){var t=o.time(),r=e?t+e:o.lasttime,i=o.nc.getScrollLeft(),n=o.nc.getScrollTop(),s=o.nc.page.maxh,l=o.nc.page.maxw;o.speedx=l>0?Math.min(60,o.speedx):0,o.speedy=s>0?Math.min(60,o.speedy):0;var a=r&&60>=t-r;(0>n||n>s||0>i||i>l)&&(a=!1);var c=o.speedy&&a?o.speedy:!1,d=o.speedx&&a?o.speedx:!1;if(c||d){var u=Math.max(16,o.steptime);if(u>50){var h=u/50;o.speedx*=h,o.speedy*=h,u=50}o.demulxy=0,o.lastscrollx=o.nc.getScrollLeft(),o.chkx=o.lastscrollx,o.lastscrolly=o.nc.getScrollTop(),o.chky=o.lastscrolly;var p=o.lastscrollx,m=o.lastscrolly,f=function(){var e=o.time()-t>600?.04:.02;o.speedx&&(p=Math.floor(o.lastscrollx-o.speedx*(1-o.demulxy)),o.lastscrollx=p,(0>p||p>l)&&(e=.1)),o.speedy&&(m=Math.floor(o.lastscrolly-o.speedy*(1-o.demulxy)),o.lastscrolly=m,(0>m||m>s)&&(e=.1)),o.demulxy=Math.min(1,o.demulxy+e),o.nc.synched("domomentum2d",function(){if(o.speedx){o.nc.getScrollLeft();o.chkx=p,o.nc.setScrollLeft(p)}if(o.speedy){o.nc.getScrollTop();o.chky=m,o.nc.setScrollTop(m)}o.timer||(o.nc.hideCursor(),o.doSnapy(p,m))}),o.demulxy<1?o.timer=setTimeout(f,u):(o.stop(),o.nc.hideCursor(),o.doSnapy(p,m))};f()}else o.doSnapy(o.nc.getScrollLeft(),o.nc.getScrollTop())}},y=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollTop():y.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollTop(parseInt(o)):y.call(e,o),this}},e.fn.scrollTop=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollTop():y.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollTop(parseInt(e)):y.call(a(this),e)})};var x=e.fn.scrollLeft;a.cssHooks.pageXOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollLeft(parseInt(o)):x.call(e,o),this}},e.fn.scrollLeft=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollLeft(parseInt(e)):x.call(a(this),e)})};var S=function(e){var o=this;if(this.length=0,this.name="nicescrollarray",this.each=function(e){for(var t=0,r=0;td?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);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(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e; +a.synched("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.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);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?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("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;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode= +"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;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 e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical? +!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched= +function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!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 void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g, +c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.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"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())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=k())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 y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.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*y+"px";a.doc.css(e.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(e.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*y+"px";a.doc.css(e.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&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(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 z={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){var g,c,e;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 f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0); +c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width", +!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=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(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=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(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}: +{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios|| +a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"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});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors"); +a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag= +!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex: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),e.cantouch&&a.opt.gesturezoom&& +(a.ongesturezoom=function(b){1.5b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius, +"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign? +0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)), +m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=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"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(), +a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.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=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().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(e.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,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/ +2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove", +function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.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&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.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;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.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(e.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(e.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=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&& +(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0a.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.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel= +function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original: +a;a.cancelable&&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,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,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(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,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,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1}); +this.unbindAll=function(){for(var b=0;b(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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(),f=a.getScrollLeft(), +k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0b?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 e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll? +a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&fa.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==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&&da.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>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)), +0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(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 e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},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 e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=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 e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+ +e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=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,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}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()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});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({zIndex:A+101});a.zoom.css({zIndex:A+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),e.isios4&&f(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:f(window).width()- +a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;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(f,h){c.stop();var d=c.time();c.steptime= +0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f, +h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy|| +f){var r=Math.max(16,c.steptime);50p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+ +d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h, +c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll? +c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray"; +this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k0?o.split("/").slice(0,-1).join("/")+"/":""}function t(e,o,t){for(var r=0;r=11,n.isieedge=navigator.userAgent.match(/Edge\/12\./),n.isie9mobile=/iemobile.9/i.test(r),n.isie9mobile&&(n.isie9=!1),n.isie7mobile=!n.isie9mobile&&n.isie7&&/iemobile/i.test(r),n.ismozilla="MozAppearance"in t,n.iswebkit="WebkitAppearance"in t,n.ischrome="chrome"in window,n.ischrome38=n.ischrome&&"touchAction"in t,n.ischrome22=!n.ischrome38&&n.ischrome&&n.haspointerlock,n.ischrome26=!n.ischrome38&&n.ischrome&&"transition"in t,n.cantouch="ontouchstart"in document.documentElement||"ontouchstart"in window,n.hasw3ctouch=(window.PointerEvent||!1)&&(navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0),n.hasmstouch=!n.hasw3ctouch&&(window.MSPointerEvent||!1),n.ismac=/^mac$/i.test(i),n.isios=n.cantouch&&/iphone|ipad|ipod/i.test(i),n.isios4=n.isios&&!("seal"in Object),n.isios7=n.isios&&"webkitHidden"in document,n.isios8=n.isios&&"hidden"in document,n.isandroid=/android/i.test(r),n.haseventlistener="addEventListener"in o,n.trstyle=!1,n.hastransform=!1,n.hastranslate3d=!1,n.transitionstyle=!1,n.hastransition=!1,n.transitionend=!1;var s,l=["transform","msTransform","webkitTransform","MozTransform","OTransform"];for(s=0;s0;){if(9==e[0].nodeType)return!1;var o=e.css("zIndex");if(!isNaN(o)&&0!=o)return parseInt(o);e=e.parent()}return!1}function h(e,o,t){var r=e.css(o),i=parseFloat(r);if(isNaN(i)){i=E[r]||0;var n=3==i?t?v.win.outerHeight()-v.win.innerHeight():v.win.outerWidth()-v.win.innerWidth():1;return v.isie8&&i&&(i+=1),n?i:0}return i}function p(e,o,t,r){v._bind(e,o,function(r){var r=r?r:window.event,i={original:r,target:r.target||r.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==r.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){return r.preventDefault?r.preventDefault():r.returnValue=!1,!1},stopImmediatePropagation:function(){r.stopImmediatePropagation?r.stopImmediatePropagation():r.cancelBubble=!0}};return"mousewheel"==o?(r.wheelDeltaX&&(i.deltaX=-1/40*r.wheelDeltaX),r.wheelDeltaY&&(i.deltaY=-1/40*r.wheelDeltaY),!i.deltaY&&!i.deltaX&&(i.deltaY=-1/40*r.wheelDelta)):i.deltaY=r.detail,t.call(e,i)},r)}function g(e,o,t){var r,i;if(0==e.deltaMode?(r=-Math.floor(e.deltaX*(v.opt.mousescrollstep/54)),i=-Math.floor(e.deltaY*(v.opt.mousescrollstep/54))):1==e.deltaMode&&(r=-Math.floor(e.deltaX*v.opt.mousescrollstep),i=-Math.floor(e.deltaY*v.opt.mousescrollstep)),o&&v.opt.oneaxismousemode&&0==r&&i&&(r=i,i=0,t)){var n=0>r?v.getScrollLeft()>=v.page.maxw:v.getScrollLeft()<=0;n&&(i=r,r=0)}if(v.isrtlmode&&(r=-r),r&&(v.scrollmom&&v.scrollmom.stop(),v.lastdeltax+=r,v.debounced("mousewheelx",function(){var e=v.lastdeltax;v.lastdeltax=0,v.rail.drag||v.doScrollLeftBy(e)},15)),i){if(v.opt.nativeparentscrolling&&t&&!v.ispage&&!v.zoomactive)if(0>i){if(v.getScrollTop()>=v.page.maxh)return!0}else if(v.getScrollTop()<=0)return!0;v.scrollmom&&v.scrollmom.stop(),v.lastdeltay+=i,v.synched("mousewheely",function(){var e=v.lastdeltay;v.lastdeltay=0,v.rail.drag||v.doScrollBy(e)},15)}return e.stopImmediatePropagation(),e.preventDefault()}var v=this;if(this.version="3.6.7",this.name="nicescroll",this.me=o,this.opt={doc:a("body"),win:!1},a.extend(this.opt,f),this.opt.snapbackspeed=80,e)for(var y in v.opt)"undefined"!=typeof e[y]&&(v.opt[y]=e[y]);if(this.doc=v.opt.doc,this.iddoc=this.doc&&this.doc[0]?this.doc[0].id||"":"",this.ispage=/^BODY|HTML/.test(v.opt.win?v.opt.win[0].nodeName:this.doc[0].nodeName),this.haswrapper=v.opt.win!==!1,this.win=v.opt.win||(this.ispage?a(window):this.doc),this.docscroll=this.ispage&&!this.haswrapper?a(window):this.win,this.body=a("body"),this.viewport=!1,this.isfixed=!1,this.iframe=!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"!=v.opt.autohidemode,this.onmousedown=!1,this.onmouseup=!1,this.onmousemove=!1,this.onmousewheel=!1,this.onkeypress=!1,this.ongesturezoom=!1,this.onclick=!1,this.onscrollstart=!1,this.onscrollend=!1,this.onscrollcancel=!1,this.onzoomin=!1,this.onzoomout=!1,this.view=!1,this.page=!1,this.scroll={x:0,y:0},this.scrollratio={x:0,y:0},this.cursorheight=20,this.scrollvaluemax=0,"auto"==this.opt.rtlmode){var x=this.win[0]==window?this.body:this.win,S=x.css("writing-mode")||x.css("-webkit-writing-mode")||x.css("-ms-writing-mode")||x.css("-moz-writing-mode");"horizontal-tb"==S||"lr-tb"==S||""==S?(this.isrtlmode="rtl"==x.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==S||"tb"==S||"tb-rl"==S||"rl-tb"==S,this.isvertical="vertical-rl"==S||"tb"==S||"tb-rl"==S)}else this.isrtlmode=this.opt.rtlmode===!0,this.isvertical=!1;this.scrollrunning=!1,this.scrollmom=!1,this.observer=!1,this.observerremover=!1,this.observerbody=!1;do this.id="ascrail"+s++;while(document.getElementById(this.id));this.rail=!1,this.cursor=!1,this.cursorfreezed=!1,this.selectiondrag=!1,this.zoom=!1,this.zoomactive=!1,this.hasfocus=!1,this.hasmousefocus=!1,this.visibility=!0,this.railslocked=!1,this.locked=!1,this.hidden=!1,this.cursoractive=!0,this.wheelprevented=!1,this.overflowx=v.opt.overflowx,this.overflowy=v.opt.overflowy,this.nativescrollingarea=!1,this.checkarea=0,this.events=[],this.saved={},this.delaylist={},this.synclist={},this.lastdeltax=0,this.lastdeltay=0,this.detected=w();var z=a.extend({},this.detected);this.canhwscroll=z.hastransform&&v.opt.hwacceleration,this.ishwscroll=this.canhwscroll&&v.haswrapper,this.isrtlmode?this.isvertical?this.hasreversehr=!(z.iswebkit||z.isie||z.isie11):this.hasreversehr=!(z.iswebkit||z.isie&&!z.isie10&&!z.isie11):this.hasreversehr=!1,this.istouchcapable=!1,z.cantouch||!z.hasw3ctouch&&!z.hasmstouch?!z.cantouch||z.isios||z.isandroid||!z.iswebkit&&!z.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0,v.opt.enablemouselockapi||(z.hasmousecapture=!1,z.haspointerlock=!1),this.debounced=function(e,o,t){if(v){var r=v.delaylist[e]||!1;r||(o.call(v),v.delaylist[e]={h:d(function(){v.delaylist[e].fn.call(v),v.delaylist[e]=!1},t)}),v.delaylist[e].fn=o}};var T=!1;this.synched=function(e,o){function t(){T||(d(function(){if(v){T=!1;for(var e in v.synclist){var o=v.synclist[e];o&&o.call(v),v.synclist[e]=!1}}}),T=!0)}return v.synclist[e]=o,t(),e},this.unsynched=function(e){v.synclist[e]&&(v.synclist[e]=!1)},this.css=function(e,o){for(var t in o)v.saved.css.push([e,t,e.css(t)]),e.css(t,o[t])},this.scrollTop=function(e){return"undefined"==typeof e?v.getScrollTop():v.setScrollTop(e)},this.scrollLeft=function(e){return"undefined"==typeof e?v.getScrollLeft():v.setScrollLeft(e)};var k=function(e,o,t,r,i,n,s){this.st=e,this.ed=o,this.spd=t,this.p1=r||0,this.p2=i||1,this.p3=n||0,this.p4=s||1,this.ts=(new Date).getTime(),this.df=this.ed-this.st};if(k.prototype={B2:function(e){return 3*e*e*(1-e)},B3:function(e){return 3*e*(1-e)*(1-e)},B4:function(e){return(1-e)*(1-e)*(1-e)},getNow:function(){var e=(new Date).getTime(),o=1-(e-this.ts)/this.spd,t=this.B2(o)+this.B3(o)+this.B4(o);return 0>o?this.ed:this.st+Math.round(this.df*t)},update:function(e,o){return this.st=this.getNow(),this.ed=e,this.spd=o,this.ts=(new Date).getTime(),this.df=this.ed-this.st,this}},this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"},z.hastranslate3d&&z.isios&&this.doc.css("-webkit-backface-visibility","hidden"),this.getScrollTop=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[13]:-o[5];if(v.timerscroll&&v.timerscroll.bz)return v.timerscroll.bz.getNow()}return v.doc.translate.y},this.getScrollLeft=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[12]:-o[4];if(v.timerscroll&&v.timerscroll.bh)return v.timerscroll.bh.getNow()}return v.doc.translate.x},this.notifyScrollEvent=function(e){var o=document.createEvent("UIEvents");o.initUIEvent("scroll",!1,!0,window,1),o.niceevent=!0,e.dispatchEvent(o)};var M=this.isrtlmode?1:-1;z.hastranslate3d&&v.opt.enabletranslate3d?(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])}):(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])})}else this.getScrollTop=function(){return v.docscroll.scrollTop()},this.setScrollTop=function(e){return setTimeout(function(){v&&v.docscroll.scrollTop(e)},1)},this.getScrollLeft=function(){var e;return e=v.hasreversehr?v.detected.ismozilla?v.page.maxw-Math.abs(v.docscroll.scrollLeft()):v.page.maxw-v.docscroll.scrollLeft():v.docscroll.scrollLeft()},this.setScrollLeft=function(e){return setTimeout(function(){return v?(v.hasreversehr&&(e=v.detected.ismozilla?-(v.page.maxw-e):v.page.maxw-e),v.docscroll.scrollLeft(e)):void 0},1)};this.getTarget=function(e){return e?e.target?e.target:e.srcElement?e.srcElement:!1:!1},this.hasParent=function(e,o){if(!e)return!1;for(var t=e.target||e.srcElement||e||!1;t&&t.id!=o;)t=t.parentNode||!1;return t!==!1};var E={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(v.isfixed){var e=v.win.offset(),o=v.getDocumentScrollOffset();return e.top-=o.top,e.left-=o.left,e}var t=v.win.offset();if(!v.viewport)return t;var r=v.viewport.offset();return{top:t.top-r.top,left:t.left-r.left}},this.updateScrollBar=function(e){if(v.ishwscroll)v.rail.css({height:v.win.innerHeight()-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.railh&&v.railh.css({width:v.win.innerWidth()-(v.opt.railpadding.left+v.opt.railpadding.right)});else{var o=v.getOffset(),t={top:o.top,left:o.left-(v.opt.railpadding.left+v.opt.railpadding.right)};t.top+=h(v.win,"border-top-width",!0),t.left+=v.rail.align?v.win.outerWidth()-h(v.win,"border-right-width")-v.rail.width:h(v.win,"border-left-width");var r=v.opt.railoffset;if(r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left)),v.railslocked||v.rail.css({top:t.top,left:t.left,height:(e?e.h:v.win.innerHeight())-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.zoom&&v.zoom.css({top:t.top+1,left:1==v.rail.align?t.left-20:t.left+v.rail.width+4}),v.railh&&!v.railslocked){var t={top:o.top,left:o.left},r=v.opt.railhoffset;r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left));var i=v.railh.align?t.top+h(v.win,"border-top-width",!0)+v.win.innerHeight()-v.railh.height:t.top+h(v.win,"border-top-width",!0),n=t.left+h(v.win,"border-left-width");v.railh.css({top:i-(v.opt.railpadding.top+v.opt.railpadding.bottom),left:n,width:v.railh.width})}}},this.doRailClick=function(e,o,t){var r,i,n,s;v.railslocked||(v.cancelEvent(e),o?(r=t?v.doScrollLeft:v.doScrollTop,n=t?(e.pageX-v.railh.offset().left-v.cursorwidth/2)*v.scrollratio.x:(e.pageY-v.rail.offset().top-v.cursorheight/2)*v.scrollratio.y,r(n)):(r=t?v.doScrollLeftBy:v.doScrollBy,n=t?v.scroll.x:v.scroll.y,s=t?e.pageX-v.railh.offset().left:e.pageY-v.rail.offset().top,i=t?v.view.w:v.view.h,r(n>=s?i:-i)))},v.hasanimationframe=d,v.hascancelanimationframe=u,v.hasanimationframe?v.hascancelanimationframe||(u=function(){v.cancelAnimationFrame=!0}):(d=function(e){return setTimeout(e,15-Math.floor(+new Date/1e3)%16)},u=clearTimeout),this.init=function(){if(v.saved.css=[],z.isie7mobile)return!0;if(z.isoperamini)return!0;if(z.hasmstouch&&v.css(v.ispage?a("html"):v.win,{"-ms-touch-action":"none"}),v.zindex="auto",v.ispage||"auto"!=v.opt.zindex?v.zindex=v.opt.zindex:v.zindex=c()||"auto",v.ispage||"auto"==v.zindex||v.zindex>l&&(l=v.zindex),v.isie&&0==v.zindex&&"auto"==v.opt.zindex&&(v.zindex="auto"),!v.ispage||!z.cantouch&&!z.isieold&&!z.isie9mobile){var e=v.docscroll;v.ispage&&(e=v.haswrapper?v.win:v.doc),z.isie9mobile||v.css(e,{"overflow-y":"hidden"}),v.ispage&&z.isie7&&("BODY"==v.doc[0].nodeName?v.css(a("html"),{"overflow-y":"hidden"}):"HTML"==v.doc[0].nodeName&&v.css(a("body"),{"overflow-y":"hidden"})),!z.isios||v.ispage||v.haswrapper||v.css(a("body"),{"-webkit-overflow-scrolling":"touch"});var o=a(document.createElement("div"));o.css({position:"relative",top:0,"float":"right",width:v.opt.cursorwidth,height:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),o.hborder=parseFloat(o.outerHeight()-o.innerHeight()),o.addClass("nicescroll-cursors"),v.cursor=o;var t=a(document.createElement("div"));t.attr("id",v.id),t.addClass("nicescroll-rails nicescroll-rails-vr");var s,d,u=["left","right","top","bottom"];for(var h in u)d=u[h],s=v.opt.railpadding[d],s?t.css("padding-"+d,s+"px"):v.opt.railpadding[d]=0;t.append(o),t.width=Math.max(parseFloat(v.opt.cursorwidth),o.outerWidth()),t.css({width:t.width+"px",zIndex:v.zindex,background:v.opt.background,cursor:"default"}),t.visibility=!0,t.scrollable=!0,t.align="left"==v.opt.railalign?0:1,v.rail=t,v.rail.drag=!1;var p=!1;!v.opt.boxzoom||v.ispage||z.isieold||(p=document.createElement("div"),v.bind(p,"click",v.doZoom),v.bind(p,"mouseenter",function(){v.zoom.css("opacity",v.opt.cursoropacitymax)}),v.bind(p,"mouseleave",function(){v.zoom.css("opacity",v.opt.cursoropacitymin)}),v.zoom=a(p),v.zoom.css({cursor:"pointer","z-index":v.zindex,backgroundImage:"url("+v.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),v.opt.dblclickzoom&&v.bind(v.win,"dblclick",v.doZoom),z.cantouch&&v.opt.gesturezoom&&(v.ongesturezoom=function(e){return e.scale>1.5&&v.doZoomIn(e),e.scale<.8&&v.doZoomOut(e),v.cancelEvent(e)},v.bind(v.win,"gestureend",v.ongesturezoom))),v.railh=!1;var f;if(v.opt.horizrailenabled){v.css(e,{"overflow-x":"hidden"});var o=a(document.createElement("div"));o.css({position:"absolute",top:0,height:v.opt.cursorwidth,width:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),z.isieold&&o.css({overflow:"hidden"}),o.wborder=parseFloat(o.outerWidth()-o.innerWidth()),o.addClass("nicescroll-cursors"),v.cursorh=o,f=a(document.createElement("div")),f.attr("id",v.id+"-hr"),f.addClass("nicescroll-rails nicescroll-rails-hr"),f.height=Math.max(parseFloat(v.opt.cursorwidth),o.outerHeight()),f.css({height:f.height+"px",zIndex:v.zindex,background:v.opt.background}),f.append(o),f.visibility=!0,f.scrollable=!0,f.align="top"==v.opt.railvalign?0:1,v.railh=f,v.railh.drag=!1}if(v.ispage)t.css({position:"fixed",top:"0px",height:"100%"}),t.align?t.css({right:"0px"}):t.css({left:"0px"}),v.body.append(t),v.railh&&(f.css({position:"fixed",left:"0px",width:"100%"}),f.align?f.css({bottom:"0px"}):f.css({top:"0px"}),v.body.append(f));else{if(v.ishwscroll){"static"==v.win.css("position")&&v.css(v.win,{position:"relative"});var g="HTML"==v.win[0].nodeName?v.body:v.win;a(g).scrollTop(0).scrollLeft(0),v.zoom&&(v.zoom.css({position:"absolute",top:1,right:0,"margin-right":t.width+4}),g.append(v.zoom)),t.css({position:"absolute",top:0}),t.align?t.css({right:0}):t.css({left:0}),g.append(t),f&&(f.css({position:"absolute",left:0,bottom:0}),f.align?f.css({bottom:0}):f.css({top:0}),g.append(f))}else{v.isfixed="fixed"==v.win.css("position");var w=v.isfixed?"fixed":"absolute";v.isfixed||(v.viewport=v.getViewport(v.win[0])),v.viewport&&(v.body=v.viewport,0==/fixed|absolute/.test(v.viewport.css("position"))&&v.css(v.viewport,{position:"relative"})),t.css({position:w}),v.zoom&&v.zoom.css({position:w}),v.updateScrollBar(),v.body.append(t),v.zoom&&v.body.append(v.zoom),v.railh&&(f.css({position:w}),v.body.append(f))}z.isios&&v.css(v.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),z.isie&&v.opt.disableoutline&&v.win.attr("hideFocus","true"),z.iswebkit&&v.opt.disableoutline&&v.win.css({outline:"none"})}if(v.opt.autohidemode===!1?(v.autohidedom=!1,v.rail.css({opacity:v.opt.cursoropacitymax}),v.railh&&v.railh.css({opacity:v.opt.cursoropacitymax})):v.opt.autohidemode===!0||"leave"===v.opt.autohidemode?(v.autohidedom=a().add(v.rail),z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursor)),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh)),v.railh&&z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"scroll"==v.opt.autohidemode?(v.autohidedom=a().add(v.rail),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh))):"cursor"==v.opt.autohidemode?(v.autohidedom=a().add(v.cursor),v.railh&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"hidden"==v.opt.autohidemode&&(v.autohidedom=!1,v.hide(),v.railslocked=!1),z.isie9mobile){v.scrollmom=new b(v),v.onmangotouch=function(){var e=v.getScrollTop(),o=v.getScrollLeft();if(e==v.scrollmom.lastscrolly&&o==v.scrollmom.lastscrollx)return!0;var t=e-v.mangotouch.sy,r=o-v.mangotouch.sx,i=Math.round(Math.sqrt(Math.pow(r,2)+Math.pow(t,2)));if(0!=i){var n=0>t?-1:1,s=0>r?-1:1,l=+new Date;if(v.mangotouch.lazy&&clearTimeout(v.mangotouch.lazy),l-v.mangotouch.tm>80||v.mangotouch.dry!=n||v.mangotouch.drx!=s)v.scrollmom.stop(),v.scrollmom.reset(o,e),v.mangotouch.sy=e,v.mangotouch.ly=e,v.mangotouch.sx=o,v.mangotouch.lx=o,v.mangotouch.dry=n,v.mangotouch.drx=s,v.mangotouch.tm=l;else{v.scrollmom.stop(),v.scrollmom.update(v.mangotouch.sx-r,v.mangotouch.sy-t),v.mangotouch.tm=l;var a=Math.max(Math.abs(v.mangotouch.ly-e),Math.abs(v.mangotouch.lx-o));v.mangotouch.ly=e,v.mangotouch.lx=o,a>2&&(v.mangotouch.lazy=setTimeout(function(){v.mangotouch.lazy=!1,v.mangotouch.dry=0,v.mangotouch.drx=0,v.mangotouch.tm=0,v.scrollmom.doMomentum(30)},100))}}};var y=v.getScrollTop(),x=v.getScrollLeft();v.mangotouch={sy:y,ly:y,dry:0,sx:x,lx:x,drx:0,lazy:!1,tm:0},v.bind(v.docscroll,"scroll",v.onmangotouch)}else{if(z.cantouch||v.istouchcapable||v.opt.touchbehavior||z.hasmstouch){v.scrollmom=new b(v),v.ontouchstart=function(e){if(console.log(e.type,e.pointerType),e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(v.hasmoving=!1,!v.railslocked){console.log("touchstart ",e.type);var o;if(z.hasmstouch)for(o=e.target?e.target:!1;o;){var t=a(o).getNiceScroll();if(t.length>0&&t[0].me==v.me)break;if(t.length>0)return!1;if("DIV"==o.nodeName&&o.id==v.id)break;o=o.parentNode?o.parentNode:!1}if(v.cancelScroll(),o=v.getTarget(e)){var r=/INPUT/i.test(o.nodeName)&&/range/i.test(o.type);if(r)return v.stopPropagation(e)}if(!("clientX"in e)&&"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var i=e;e={original:e.original?e.original:e},e.clientX=i.screenX,e.clientY=i.screenY}if(v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,st:v.getScrollTop(),sl:v.getScrollLeft(),pt:2,dl:!1},v.ispage||!v.opt.directionlockdeadzone)v.rail.drag.dl="f";else{var n={w:a(window).width(),h:a(window).height()},s={w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},l=Math.max(0,s.h-n.h),c=Math.max(0,s.w-n.w);!v.rail.scrollable&&v.railh.scrollable?v.rail.drag.ck=l>0?"v":!1:v.rail.scrollable&&!v.railh.scrollable?v.rail.drag.ck=c>0?"h":!1:v.rail.drag.ck=!1,v.rail.drag.ck||(v.rail.drag.dl="f")}if(v.opt.touchbehavior&&v.isiframe&&z.isie){var d=v.win.position();v.rail.drag.x+=d.left,v.rail.drag.y+=d.top}if(v.hasmoving=!1,v.lastmouseup=!1,v.scrollmom.reset(e.clientX,e.clientY),!z.cantouch&&!this.istouchcapable&&!e.pointerType){var u=o?/INPUT|SELECT|TEXTAREA/i.test(o.nodeName):!1;if(!u)return!v.ispage&&z.hasmousecapture&&o.setCapture(),v.opt.touchbehavior?(o.onclick&&!o._onclick&&(o._onclick=o.onclick,o.onclick=function(e){return v.hasmoving?!1:void o._onclick.call(this,e)}),v.cancelEvent(e)):v.stopPropagation(e);/SUBMIT|CANCEL|BUTTON/i.test(a(o).attr("type"))&&(pc={tg:o,click:!1},v.preventclick=pc)}}},v.ontouchend=function(e){if(!v.rail.drag)return!0;if(2==v.rail.drag.pt){if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(console.log("touchend:",e.target.nodeName),v.scrollmom.doMomentum(),v.rail.drag=!1,v.hasmoving&&(v.lastmouseup=!0,v.hideCursor(),z.hasmousecapture&&document.releaseCapture(),!z.cantouch))return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmouseup(e)};var S=v.opt.touchbehavior&&v.isiframe&&!z.hasmousecapture;v.ontouchmove=function(e,o){if(!v.rail.drag)return!1;if(e.targetTouches&&v.opt.preventmultitouchscrolling&&e.targetTouches.length>1)return!1;if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(2==v.rail.drag.pt){if(z.cantouch&&z.isios&&"undefined"==typeof e.original)return!0;v.hasmoving=!0,v.preventclick&&!v.preventclick.click&&(v.preventclick.click=v.preventclick.tg.onclick||!1,v.preventclick.tg.onclick=v.onpreventclick);var t=a.extend({original:e},e);if(e=t,"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var r=e;e={original:e.original?e.original:e},e.clientX=r.screenX,e.clientY=r.screenY}var i,n;if(n=i=0,S&&!o){var s=v.win.position();n=-s.left,i=-s.top}var l=e.clientY+i,c=l-v.rail.drag.y,d=e.clientX+n,u=d-v.rail.drag.x,h=v.rail.drag.st-c;v.ishwscroll&&v.opt.bouncescroll?0>h?h=Math.round(h/2):h>v.page.maxh&&(h=v.page.maxh+Math.round((h-v.page.maxh)/2)):(0>h&&(h=0,l=0),h>v.page.maxh&&(h=v.page.maxh,l=0));var p;v.railh&&v.railh.scrollable&&(p=v.isrtlmode?u-v.rail.drag.sl:v.rail.drag.sl-u,v.ishwscroll&&v.opt.bouncescroll?0>p?p=Math.round(p/2):p>v.page.maxw&&(p=v.page.maxw+Math.round((p-v.page.maxw)/2)):(0>p&&(p=0,d=0),p>v.page.maxw&&(p=v.page.maxw,d=0)));var m=!1;if(v.rail.drag.dl)m=!0,"v"==v.rail.drag.dl?p=v.rail.drag.sl:"h"==v.rail.drag.dl&&(h=v.rail.drag.st);else{var f=Math.abs(c),g=Math.abs(u),w=v.opt.directionlockdeadzone;if("v"==v.rail.drag.ck){if(f>w&&.3*f>=g)return v.rail.drag=!1,!0;g>w&&(v.rail.drag.dl="f",a("body").scrollTop(a("body").scrollTop()))}else if("h"==v.rail.drag.ck){if(g>w&&.3*g>=f)return v.rail.drag=!1,!0;f>w&&(v.rail.drag.dl="f",a("body").scrollLeft(a("body").scrollLeft()))}}if(v.synched("touchmove",function(){v.rail.drag&&2==v.rail.drag.pt&&(v.prepareTransition&&v.prepareTransition(0),v.rail.scrollable&&v.setScrollTop(h),v.scrollmom.update(d,l),v.railh&&v.railh.scrollable?(v.setScrollLeft(p),v.showCursor(h,p)):v.showCursor(h),z.isie10&&document.selection.clear())}),z.ischrome&&v.istouchcapable&&(m=!1),m)return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmousemove(e)}}if(v.onmousedown=function(e,o){if(!v.rail.drag||1==v.rail.drag.pt){if(v.railslocked)return v.cancelEvent(e);v.cancelScroll(),v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,pt:1,hr:!!o};var t=v.getTarget(e);return!v.ispage&&z.hasmousecapture&&t.setCapture(),v.isiframe&&!z.hasmousecapture&&(v.saved.csspointerevents=v.doc.css("pointer-events"),v.css(v.doc,{"pointer-events":"none"})),v.hasmoving=!1,v.cancelEvent(e)}},v.onmouseup=function(e){return v.rail.drag?1!=v.rail.drag.pt?!0:(z.hasmousecapture&&document.releaseCapture(),v.isiframe&&!z.hasmousecapture&&v.doc.css("pointer-events",v.saved.csspointerevents),v.rail.drag=!1,v.hasmoving&&v.triggerScrollEnd(),v.cancelEvent(e)):void 0},v.onmousemove=function(e){if(v.rail.drag){if(1!=v.rail.drag.pt)return;if(z.ischrome&&0==e.which)return v.onmouseup(e);if(v.cursorfreezed=!0,v.hasmoving=!0,v.rail.drag.hr){v.scroll.x=v.rail.drag.sx+(e.clientX-v.rail.drag.x),v.scroll.x<0&&(v.scroll.x=0);var o=v.scrollvaluemaxw;v.scroll.x>o&&(v.scroll.x=o)}else{v.scroll.y=v.rail.drag.sy+(e.clientY-v.rail.drag.y),v.scroll.y<0&&(v.scroll.y=0);var t=v.scrollvaluemax;v.scroll.y>t&&(v.scroll.y=t)}return v.synched("mousemove",function(){v.rail.drag&&1==v.rail.drag.pt&&(v.showCursor(),v.rail.drag.hr?v.hasreversehr?v.doScrollLeft(v.scrollvaluemaxw-Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollLeft(Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollTop(Math.round(v.scroll.y*v.scrollratio.y),v.opt.cursordragspeed))}),v.cancelEvent(e)}v.checkarea=0},z.cantouch||v.opt.touchbehavior)v.onpreventclick=function(e){return v.preventclick?(v.preventclick.tg.onclick=v.preventclick.click,v.preventclick=!1,v.cancelEvent(e)):void 0},v.bind(v.win,"mousedown",v.ontouchstart),v.onclick=z.isios?!1:function(e){return v.lastmouseup?(v.lastmouseup=!1,v.cancelEvent(e)):!0},v.opt.grabcursorenabled&&z.cursorgrabvalue&&(v.css(v.ispage?v.doc:v.win,{cursor:z.cursorgrabvalue}),v.css(v.rail,{cursor:z.cursorgrabvalue}));else{var T=function(e){if(v.selectiondrag){if(e){var o=v.win.outerHeight(),t=e.pageY-v.selectiondrag.top;t>0&&o>t&&(t=0),t>=o&&(t-=o),v.selectiondrag.df=t}if(0!=v.selectiondrag.df){var r=2*-Math.floor(v.selectiondrag.df/6);v.doScrollBy(r),v.debounced("doselectionscroll",function(){T()},50)}}};"getSelection"in document?v.hasTextSelected=function(){return document.getSelection().rangeCount>0}:"selection"in document?v.hasTextSelected=function(){return"None"!=document.selection.type}:v.hasTextSelected=function(){return!1},v.onselectionstart=function(){v.ispage||(v.selectiondrag=v.win.offset())},v.onselectionend=function(){v.selectiondrag=!1},v.onselectiondrag=function(e){v.selectiondrag&&v.hasTextSelected()&&v.debounced("selectionscroll",function(){T(e)},250)}}z.hasw3ctouch?(v.css(v.rail,{"touch-action":"none"}),v.css(v.cursor,{"touch-action":"none"}),v.bind(v.win,"pointerdown",v.ontouchstart),v.bind(document,"pointerup",v.ontouchend),v.bind(document,"pointermove",v.ontouchmove)):z.hasmstouch?(v.css(v.rail,{"-ms-touch-action":"none"}),v.css(v.cursor,{"-ms-touch-action":"none"}),v.bind(v.win,"MSPointerDown",v.ontouchstart),v.bind(document,"MSPointerUp",v.ontouchend),v.bind(document,"MSPointerMove",v.ontouchmove),v.bind(v.cursor,"MSGestureHold",function(e){e.preventDefault()}),v.bind(v.cursor,"contextmenu",function(e){e.preventDefault()})):this.istouchcapable&&(v.bind(v.win,"touchstart",v.ontouchstart),v.bind(document,"touchend",v.ontouchend),v.bind(document,"touchcancel",v.ontouchend),v.bind(document,"touchmove",v.ontouchmove)),(v.opt.cursordragontouch||!z.cantouch&&!v.opt.touchbehavior)&&(v.rail.css({cursor:"default"}),v.railh&&v.railh.css({cursor:"default"}),v.jqbind(v.rail,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.rail,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.rail,"click",function(e){v.doRailClick(e,!1,!1)}),v.bind(v.rail,"dblclick",function(e){v.doRailClick(e,!0,!1)}),v.bind(v.cursor,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursor,"dblclick",function(e){v.cancelEvent(e)})),v.railh&&(v.jqbind(v.railh,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.railh,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.railh,"click",function(e){v.doRailClick(e,!1,!0)}),v.bind(v.railh,"dblclick",function(e){v.doRailClick(e,!0,!0)}),v.bind(v.cursorh,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursorh,"dblclick",function(e){v.cancelEvent(e)})))),z.cantouch||v.opt.touchbehavior?(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.ontouchend),v.bind(document,"mousemove",v.ontouchmove),v.onclick&&v.bind(document,"click",v.onclick),v.opt.cursordragontouch?(v.bind(v.cursor,"mousedown",v.onmousedown),v.bind(v.cursor,"mouseup",v.onmouseup),v.cursorh&&v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onmouseup)):(v.bind(v.rail,"mousedown",function(e){e.preventDefault()}),v.railh&&v.bind(v.railh,"mousedown",function(e){e.preventDefault()}))):(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.onmouseup),v.bind(document,"mousemove",v.onmousemove),v.onclick&&v.bind(document,"click",v.onclick),v.bind(v.cursor,"mousedown",v.onmousedown), -v.bind(v.cursor,"mouseup",v.onmouseup),v.railh&&(v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.bind(v.cursorh,"mouseup",v.onmouseup)),!v.ispage&&v.opt.enablescrollonselection&&(v.bind(v.win[0],"mousedown",v.onselectionstart),v.bind(document,"mouseup",v.onselectionend),v.bind(v.cursor,"mouseup",v.onselectionend),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onselectionend),v.bind(document,"mousemove",v.onselectiondrag)),v.zoom&&(v.jqbind(v.zoom,"mouseenter",function(){v.canshowonmouseevent&&v.showCursor(),v.rail.active=!0}),v.jqbind(v.zoom,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}))),v.opt.enablemousewheel&&(v.isiframe||v.mousewheel(z.isie&&v.ispage?document:v.win,v.onmousewheel),v.mousewheel(v.rail,v.onmousewheel),v.railh&&v.mousewheel(v.railh,v.onmousewheelhr)),v.ispage||z.cantouch||/HTML|^BODY/.test(v.win[0].nodeName)||(v.win.attr("tabindex")||v.win.attr({tabindex:n++}),v.jqbind(v.win,"focus",function(e){r=v.getTarget(e).id||!0,v.hasfocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"blur",function(){r=!1,v.hasfocus=!1}),v.jqbind(v.win,"mouseenter",function(e){i=v.getTarget(e).id||!0,v.hasmousefocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"mouseleave",function(){i=!1,v.hasmousefocus=!1,v.rail.drag||v.hideCursor()}))}if(v.onkeypress=function(e){if(v.railslocked&&0==v.page.maxh)return!0;e=e?e:window.e;var o=v.getTarget(e);if(o&&/INPUT|TEXTAREA|SELECT|OPTION/.test(o.nodeName)){var t=o.getAttribute("type")||o.type||!1;if(!t||!/submit|button|cancel/i.tp)return!0}if(a(o).attr("contenteditable"))return!0;if(v.hasfocus||v.hasmousefocus&&!r||v.ispage&&!r&&!i){var n=e.keyCode;if(v.railslocked&&27!=n)return v.cancelEvent(e);var s=e.ctrlKey||!1,l=e.shiftKey||!1,c=!1;switch(n){case 38:case 63233:v.doScrollBy(72),c=!0;break;case 40:case 63235:v.doScrollBy(-72),c=!0;break;case 37:case 63232:v.railh&&(s?v.doScrollLeft(0):v.doScrollLeftBy(72),c=!0);break;case 39:case 63234:v.railh&&(s?v.doScrollLeft(v.page.maxw):v.doScrollLeftBy(-72),c=!0);break;case 33:case 63276:v.doScrollBy(v.view.h),c=!0;break;case 34:case 63277:v.doScrollBy(-v.view.h),c=!0;break;case 36:case 63273:v.railh&&s?v.doScrollPos(0,0):v.doScrollTo(0),c=!0;break;case 35:case 63275:v.railh&&s?v.doScrollPos(v.page.maxw,v.page.maxh):v.doScrollTo(v.page.maxh),c=!0;break;case 32:v.opt.spacebarenabled&&(l?v.doScrollBy(v.view.h):v.doScrollBy(-v.view.h),c=!0);break;case 27:v.zoomactive&&(v.doZoom(),c=!0)}if(c)return v.cancelEvent(e)}},v.opt.enablekeyboard&&v.bind(document,z.isopera&&!z.isopera12?"keypress":"keydown",v.onkeypress),v.bind(document,"keydown",function(e){var o=e.ctrlKey||!1;o&&(v.wheelprevented=!0)}),v.bind(document,"keyup",function(e){var o=e.ctrlKey||!1;o||(v.wheelprevented=!1)}),v.bind(window,"blur",function(){v.wheelprevented=!1}),v.bind(window,"resize",v.lazyResize),v.bind(window,"orientationchange",v.lazyResize),v.bind(window,"load",v.lazyResize),z.ischrome&&!v.ispage&&!v.haswrapper){var k=v.win.attr("style"),M=parseFloat(v.win.css("width"))+1;v.win.css("width",M),v.synched("chromefix",function(){v.win.attr("style",k)})}v.onAttributeChange=function(){v.lazyResize(v.isieold?250:30)},m!==!1&&(v.observerbody=new m(function(e){return e.forEach(function(e){return"attributes"==e.type?a("body").hasClass("modal-open")&&a("body").hasClass("modal-dialog")&&!a.contains(a(".modal-dialog")[0],v.doc[0])?v.hide():v.show():void 0}),document.body.scrollHeight!=v.page.maxh?v.lazyResize(30):void 0}),v.observerbody.observe(document.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]})),v.ispage||v.haswrapper||(m!==!1?(v.observer=new m(function(e){e.forEach(v.onAttributeChange)}),v.observer.observe(v.win[0],{childList:!0,characterData:!1,attributes:!0,subtree:!1}),v.observerremover=new m(function(e){e.forEach(function(e){if(e.removedNodes.length>0)for(var o in e.removedNodes)if(v&&e.removedNodes[o]==v.win[0])return v.remove()})}),v.observerremover.observe(v.win[0].parentNode,{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(v.bind(v.win,z.isie&&!z.isie9?"propertychange":"DOMAttrModified",v.onAttributeChange),z.isie9&&v.win[0].attachEvent("onpropertychange",v.onAttributeChange),v.bind(v.win,"DOMNodeRemoved",function(e){e.target==v.win[0]&&v.remove()}))),!v.ispage&&v.opt.boxzoom&&v.bind(window,"resize",v.resizeZoom),v.istextarea&&(v.bind(v.win,"keydown",v.lazyResize),v.bind(v.win,"mouseup",v.lazyResize)),v.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var E=function(){v.iframexd=!1;var e;try{e="contentDocument"in this?this.contentDocument:this.contentWindow.document;e.domain}catch(o){v.iframexd=!0,e=!1}if(v.iframexd)return"console"in window&&console.log("NiceScroll error: policy restriced iframe"),!0;if(v.forcescreen=!0,v.isiframe&&(v.iframe={doc:a(e),html:v.doc.contents().find("html")[0],body:v.doc.contents().find("body")[0]},v.getContentSize=function(){return{w:Math.max(v.iframe.html.scrollWidth,v.iframe.body.scrollWidth),h:Math.max(v.iframe.html.scrollHeight,v.iframe.body.scrollHeight)}},v.docscroll=a(v.iframe.body)),!z.isios&&v.opt.iframeautoresize&&!v.isiframe){v.win.scrollTop(0),v.doc.height("");var t=Math.max(e.getElementsByTagName("html")[0].scrollHeight,e.body.scrollHeight);v.doc.height(t)}v.lazyResize(30),z.isie7&&v.css(a(v.iframe.html),{"overflow-y":"hidden"}),v.css(a(v.iframe.body),{"overflow-y":"hidden"}),z.isios&&v.haswrapper&&v.css(a(e.body),{"-webkit-transform":"translate3d(0,0,0)"}),"contentWindow"in this?v.bind(this.contentWindow,"scroll",v.onscroll):v.bind(e,"scroll",v.onscroll),v.opt.enablemousewheel&&v.mousewheel(e,v.onmousewheel),v.opt.enablekeyboard&&v.bind(e,z.isopera?"keypress":"keydown",v.onkeypress),(z.cantouch||v.opt.touchbehavior)&&(v.bind(e,"mousedown",v.ontouchstart),v.bind(e,"mousemove",function(e){return v.ontouchmove(e,!0)}),v.opt.grabcursorenabled&&z.cursorgrabvalue&&v.css(a(e.body),{cursor:z.cursorgrabvalue})),v.bind(e,"mouseup",v.ontouchend),v.zoom&&(v.opt.dblclickzoom&&v.bind(e,"dblclick",v.doZoom),v.ongesturezoom&&v.bind(e,"gestureend",v.ongesturezoom))};this.doc[0].readyState&&"complete"==this.doc[0].readyState&&setTimeout(function(){E.call(v.doc[0],!1)},500),v.bind(this.doc,"load",E)}},this.showCursor=function(e,o){if(v.cursortimeout&&(clearTimeout(v.cursortimeout),v.cursortimeout=0),v.rail){if(v.autohidedom&&(v.autohidedom.stop().css({opacity:v.opt.cursoropacitymax}),v.cursoractive=!0),v.rail.drag&&1==v.rail.drag.pt||("undefined"!=typeof e&&e!==!1&&(v.scroll.y=Math.round(1*e/v.scrollratio.y)),"undefined"!=typeof o&&(v.scroll.x=Math.round(1*o/v.scrollratio.x))),v.cursor.css({height:v.cursorheight,top:v.scroll.y}),v.cursorh){var t=v.hasreversehr?v.scrollvaluemaxw-v.scroll.x:v.scroll.x;!v.rail.align&&v.rail.visibility?v.cursorh.css({width:v.cursorwidth,left:t+v.rail.width}):v.cursorh.css({width:v.cursorwidth,left:t}),v.cursoractive=!0}v.zoom&&v.zoom.stop().css({opacity:v.opt.cursoropacitymax})}},this.hideCursor=function(e){v.cursortimeout||v.rail&&v.autohidedom&&(v.hasmousefocus&&"leave"==v.opt.autohidemode||(v.cursortimeout=setTimeout(function(){v.rail.active&&v.showonmouseevent||(v.autohidedom.stop().animate({opacity:v.opt.cursoropacitymin}),v.zoom&&v.zoom.stop().animate({opacity:v.opt.cursoropacitymin}),v.cursoractive=!1),v.cursortimeout=0},e||v.opt.hidecursordelay)))},this.noticeCursor=function(e,o,t){v.showCursor(o,t),v.rail.active||v.hideCursor(e)},this.getContentSize=v.ispage?function(){return{w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}}:v.haswrapper?function(){return{w:v.doc.outerWidth()+parseInt(v.win.css("paddingLeft"))+parseInt(v.win.css("paddingRight")),h:v.doc.outerHeight()+parseInt(v.win.css("paddingTop"))+parseInt(v.win.css("paddingBottom"))}}:function(){return{w:v.docscroll[0].scrollWidth,h:v.docscroll[0].scrollHeight}},this.onResize=function(e,o){if(!v||!v.win)return!1;if(!v.haswrapper&&!v.ispage){if("none"==v.win.css("display"))return v.visibility&&v.hideRail().hideRailHr(),!1;v.hidden||v.visibility||v.showRail().showRailHr()}var t=v.page.maxh,r=v.page.maxw,i={h:v.view.h,w:v.view.w};if(v.view={w:v.ispage?v.win.width():parseInt(v.win[0].clientWidth),h:v.ispage?v.win.height():parseInt(v.win[0].clientHeight)},v.page=o?o:v.getContentSize(),v.page.maxh=Math.max(0,v.page.h-v.view.h),v.page.maxw=Math.max(0,v.page.w-v.view.w),v.page.maxh==t&&v.page.maxw==r&&v.view.w==i.w&&v.view.h==i.h){if(v.ispage)return v;var n=v.win.offset();if(v.lastposition){var s=v.lastposition;if(s.top==n.top&&s.left==n.left)return v}v.lastposition=n}if(0==v.page.maxh?(v.hideRail(),v.scrollvaluemax=0,v.scroll.y=0,v.scrollratio.y=0,v.cursorheight=0,v.setScrollTop(0),v.rail&&(v.rail.scrollable=!1)):(v.page.maxh-=v.opt.railpadding.top+v.opt.railpadding.bottom,v.rail.scrollable=!0),0==v.page.maxw?(v.hideRailHr(),v.scrollvaluemaxw=0,v.scroll.x=0,v.scrollratio.x=0,v.cursorwidth=0,v.setScrollLeft(0),v.railh&&(v.railh.scrollable=!1)):(v.page.maxw-=v.opt.railpadding.left+v.opt.railpadding.right,v.railh&&(v.railh.scrollable=v.opt.horizrailenabled)),v.railslocked=v.locked||0==v.page.maxh&&0==v.page.maxw,v.railslocked)return v.ispage||v.updateScrollBar(v.view),!1;v.hidden||v.visibility?!v.railh||v.hidden||v.railh.visibility||v.showRailHr():v.showRail().showRailHr(),v.istextarea&&v.win.css("resize")&&"none"!=v.win.css("resize")&&(v.view.h-=20),v.cursorheight=Math.min(v.view.h,Math.round(v.view.h*(v.view.h/v.page.h))),v.cursorheight=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorheight),v.cursorwidth=Math.min(v.view.w,Math.round(v.view.w*(v.view.w/v.page.w))),v.cursorwidth=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorwidth),v.scrollvaluemax=v.view.h-v.cursorheight-v.cursor.hborder-(v.opt.railpadding.top+v.opt.railpadding.bottom),v.railh&&(v.railh.width=v.page.maxh>0?v.view.w-v.rail.width:v.view.w,v.scrollvaluemaxw=v.railh.width-v.cursorwidth-v.cursorh.wborder-(v.opt.railpadding.left+v.opt.railpadding.right)),v.ispage||v.updateScrollBar(v.view),v.scrollratio={x:v.page.maxw/v.scrollvaluemaxw,y:v.page.maxh/v.scrollvaluemax};var l=v.getScrollTop();return l>v.page.maxh?v.doScrollTop(v.page.maxh):(v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x)),v.cursoractive&&v.noticeCursor()),v.scroll.y&&0==v.getScrollTop()&&v.doScrollTo(Math.floor(v.scroll.y*v.scrollratio.y)),v},this.resize=v.onResize,this.hlazyresize=0,this.lazyResize=function(){return v.haswrapper||v.hide(),v.hlazyresize&&clearTimeout(v.hlazyresize),v.hlazyresize=setTimeout(function(){v.show().resize()},240),v},this.jqbind=function(e,o,t){v.events.push({e:e,n:o,f:t,q:!0}),a(e).bind(o,t)},this.mousewheel=function(e,o,t){var r="jquery"in e?e[0]:e;if("onwheel"in document.createElement("div"))v._bind(r,"wheel",o,t||!1);else{var i="undefined"!=typeof document.onmousewheel?"mousewheel":"DOMMouseScroll";p(r,i,o,t||!1),"DOMMouseScroll"==i&&p(r,"MozMousePixelScroll",o,t||!1)}},z.haseventlistener?(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,t,r||!1)},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.addEventListener(o,t,r||!1)},this.cancelEvent=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.cancelable&&e.preventDefault(),e.stopPropagation(),e.preventManipulation&&e.preventManipulation(),!1},this.stopPropagation=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.stopPropagation(),!1},this._unbind=function(e,o,t,r){e.removeEventListener(o,t,r)}):(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,function(e){return e=e||window.event||!1,e&&e.srcElement&&(e.target=e.srcElement),"pageY"in e||(e.pageX=e.clientX+document.documentElement.scrollLeft,e.pageY=e.clientY+document.documentElement.scrollTop),t.call(i,e)===!1||r===!1?v.cancelEvent(e):!0})},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.attachEvent?e.attachEvent("on"+o,t):e["on"+o]=t},this.cancelEvent=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1):!1},this.stopPropagation=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,!1):!1},this._unbind=function(e,o,t){e.detachEvent?e.detachEvent("on"+o,t):e["on"+o]=!1}),this.unbindAll=function(){for(var e=0;e0)return t;o=o.parentNode?o.parentNode:!1}return!1},this.triggerScrollEnd=function(){if(v.onscrollend){var e=v.getScrollLeft(),o=v.getScrollTop(),t={type:"scrollend",current:{x:e,y:o},end:{x:e,y:o}};v.onscrollend.call(v,t)}},this.onmousewheel=function(e){if(!v.wheelprevented){if(v.railslocked)return v.debounced("checkunlock",v.resize,250),!0;if(v.rail.drag)return v.cancelEvent(e);if("auto"==v.opt.oneaxismousemode&&0!=e.deltaX&&(v.opt.oneaxismousemode=!1),v.opt.oneaxismousemode&&0==e.deltaX&&!v.rail.scrollable)return v.railh&&v.railh.scrollable?v.onmousewheelhr(e):!0;var o=+new Date,t=!1;if(v.opt.preservenativescrolling&&v.checkarea+60020?t:0},v.opt.smoothscroll?v.ishwscroll&&z.hastransition&&v.opt.usetransition&&v.opt.smoothscroll?(this.prepareTransition=function(e,o){var t=o?e>20?e:0:v.getTransitionSpeed(e),r=t?z.prefixstyle+"transform "+t+"ms ease-out":"";return v.lasttransitionstyle&&v.lasttransitionstyle==r||(v.lasttransitionstyle=r,v.doc.css(z.transitionstyle,r)),t},this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=v.getScrollTop(),i=v.getScrollLeft();return((v.newscrolly-r)*(o-r)<0||(v.newscrollx-i)*(e-i)<0)&&v.cancelScroll(),0==v.opt.bouncescroll&&(0>o?o=0:o>v.page.maxh&&(o=v.page.maxh),0>e?e=0:e>v.page.maxw&&(e=v.page.maxw)),v.scrollrunning&&e==v.newscrollx&&o==v.newscrolly?!1:(v.newscrolly=o,v.newscrollx=e,v.newscrollspeed=t||!1,v.timer?!1:void(v.timer=setTimeout(function(){var t=v.getScrollTop(),r=v.getScrollLeft(),i={};i.x=e-r,i.y=o-t,i.px=r,i.py=t;var n=Math.round(Math.sqrt(Math.pow(i.x,2)+Math.pow(i.y,2))),s=v.newscrollspeed&&v.newscrollspeed>1?v.newscrollspeed:v.getTransitionSpeed(n);if(v.newscrollspeed&&v.newscrollspeed<=1&&(s*=v.newscrollspeed),v.prepareTransition(s,!0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),s>0){if(!v.scrollrunning&&v.onscrollstart){var l={type:"scrollstart",current:{x:r,y:t},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:s};v.onscrollstart.call(v,l)}z.transitionend?v.scrollendtrapped||(v.scrollendtrapped=!0,v.bind(v.doc,z.transitionend,v.onScrollTransitionEnd,!1)):(v.scrollendtrapped&&clearTimeout(v.scrollendtrapped),v.scrollendtrapped=setTimeout(v.onScrollTransitionEnd,s));var a=t,c=r;v.timerscroll={bz:new k(a,v.newscrolly,s,0,0,.58,1),bh:new k(c,v.newscrollx,s,0,0,.58,1)},v.cursorfreezed||(v.timerscroll.tm=setInterval(function(){v.showCursor(v.getScrollTop(),v.getScrollLeft())},60))}v.synched("doScroll-set",function(){v.timer=0,v.scrollendtrapped&&(v.scrollrunning=!0),v.setScrollTop(v.newscrolly),v.setScrollLeft(v.newscrollx),v.scrollendtrapped||v.onScrollTransitionEnd()})},50)))},this.cancelScroll=function(){if(!v.scrollendtrapped)return!0;var e=v.getScrollTop(),o=v.getScrollLeft();return v.scrollrunning=!1,z.transitionend||clearTimeout(z.transitionend),v.scrollendtrapped=!1,v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.prepareTransition(0),v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1,v.cursorfreezed=!1,v.showCursor(e,o),v},this.onScrollTransitionEnd=function(){v.scrollendtrapped&&v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.scrollendtrapped=!1,v.prepareTransition(0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1;var e=v.getScrollTop(),o=v.getScrollLeft();return v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.noticeCursor(!1,e,o),v.cursorfreezed=!1,0>e?e=0:e>v.page.maxh&&(e=v.page.maxh),0>o?o=0:o>v.page.maxw&&(o=v.page.maxw),e!=v.newscrolly||o!=v.newscrollx?v.doScrollPos(o,e,v.opt.snapbackspeed):(v.onscrollend&&v.scrollrunning&&v.triggerScrollEnd(),void(v.scrollrunning=!1))}):(this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){function r(){if(v.cancelAnimationFrame)return!0;if(v.scrollrunning=!0,h=1-h)return v.timer=d(r)||1;var e,o,t=0,i=o=v.getScrollTop();if(v.dst.ay){i=v.bzscroll?v.dst.py+v.bzscroll.getNow()*v.dst.ay:v.newscrolly;var n=i-o;(0>n&&i0&&i>v.newscrolly)&&(i=v.newscrolly),v.setScrollTop(i),i==v.newscrolly&&(t=1)}else t=1;var s=e=v.getScrollLeft();if(v.dst.ax){s=v.bzscroll?v.dst.px+v.bzscroll.getNow()*v.dst.ax:v.newscrollx;var n=s-e;(0>n&&s0&&s>v.newscrollx)&&(s=v.newscrollx),v.setScrollLeft(s),s==v.newscrollx&&(t+=1)}else t+=1;2==t?(v.timer=0,v.cursorfreezed=!1,v.bzscroll=!1,v.scrollrunning=!1,0>i?i=0:i>v.page.maxh&&(i=v.page.maxh),0>s?s=0:s>v.page.maxw&&(s=v.page.maxw),s!=v.newscrollx||i!=v.newscrolly?v.doScrollPos(s,i):v.onscrollend&&v.triggerScrollEnd()):v.timer=d(r)||1}var o="undefined"==typeof o||o===!1?v.getScrollTop(!0):o;if(v.timer&&v.newscrolly==o&&v.newscrollx==e)return!0;v.timer&&u(v.timer),v.timer=0;var i=v.getScrollTop(),n=v.getScrollLeft();((v.newscrolly-i)*(o-i)<0||(v.newscrollx-n)*(e-n)<0)&&v.cancelScroll(),v.newscrolly=o,v.newscrollx=e,v.bouncescroll&&v.rail.visibility||(v.newscrolly<0?v.newscrolly=0:v.newscrolly>v.page.maxh&&(v.newscrolly=v.page.maxh)),v.bouncescroll&&v.railh.visibility||(v.newscrollx<0?v.newscrollx=0:v.newscrollx>v.page.maxw&&(v.newscrollx=v.page.maxw)),v.dst={},v.dst.x=e-n,v.dst.y=o-i,v.dst.px=n,v.dst.py=i;var s=Math.round(Math.sqrt(Math.pow(v.dst.x,2)+Math.pow(v.dst.y,2)));v.dst.ax=v.dst.x/s,v.dst.ay=v.dst.y/s;var l=0,a=s;0==v.dst.x?(l=i,a=o,v.dst.ay=1,v.dst.py=0):0==v.dst.y&&(l=n,a=e,v.dst.ax=1,v.dst.px=0);var c=v.getTransitionSpeed(s);if(t&&1>=t&&(c*=t),c>0?v.bzscroll=v.bzscroll?v.bzscroll.update(a,c):new k(l,a,c,0,1,0,1):v.bzscroll=!1,!v.timer){(i==v.page.maxh&&o>=v.page.maxh||n==v.page.maxw&&e>=v.page.maxw)&&v.checkContentSize();var h=1;if(v.cancelAnimationFrame=!1,v.timer=1,v.onscrollstart&&!v.scrollrunning){var p={type:"scrollstart",current:{x:n,y:i},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:c};v.onscrollstart.call(v,p)}r(),(i==v.page.maxh&&o>=i||n==v.page.maxw&&e>=n)&&v.checkContentSize(),v.noticeCursor()}},this.cancelScroll=function(){return v.timer&&u(v.timer),v.timer=0,v.bzscroll=!1,v.scrollrunning=!1,v}):(this.doScrollLeft=function(e,o){var t=v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o){var t=e>v.page.maxw?v.page.maxw:e;0>t&&(t=0);var r=o>v.page.maxh?v.page.maxh:o;0>r&&(r=0),v.synched("scroll",function(){v.setScrollTop(r),v.setScrollLeft(t)})},this.cancelScroll=function(){}),this.doScrollBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.y-e)*v.scrollratio.y);else{var r=v.timer?v.newscrolly:v.getScrollTop(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.h/2);-i>t?t=-i:t>v.page.maxh+i&&(t=v.page.maxh+i)}v.cursorfreezed=!1;var n=v.getScrollTop(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxh&&n>=v.page.maxh?(v.checkContentSize(),v.noticeCursor()):void v.doScrollTop(t)},this.doScrollLeftBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.x-e)*v.scrollratio.x);else{var r=v.timer?v.newscrollx:v.getScrollLeft(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.w/2);-i>t?t=-i:t>v.page.maxw+i&&(t=v.page.maxw+i)}v.cursorfreezed=!1;var n=v.getScrollLeft(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxw&&n>=v.page.maxw?v.noticeCursor():void v.doScrollLeft(t)},this.doScrollTo=function(e,o){var t=o?Math.round(e*v.scrollratio.y):e;0>t?t=0:t>v.page.maxh&&(t=v.page.maxh),v.cursorfreezed=!1,v.doScrollTop(e)},this.checkContentSize=function(){var e=v.getContentSize();(e.h!=v.page.h||e.w!=v.page.w)&&v.resize(!1,e)},v.onscroll=function(){v.rail.drag||v.cursorfreezed||v.synched("scroll",function(){v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.railh&&(v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x))),v.noticeCursor()})},v.bind(v.docscroll,"scroll",v.onscroll),this.doZoomIn=function(e){if(!v.zoomactive){v.zoomactive=!0,v.zoomrestore={style:{}};var o=["position","top","left","zIndex","backgroundColor","marginTop","marginBottom","marginLeft","marginRight"],t=v.win[0].style;for(var r in o){var i=o[r];v.zoomrestore.style[i]="undefined"!=typeof t[i]?t[i]:""}v.zoomrestore.style.width=v.win.css("width"),v.zoomrestore.style.height=v.win.css("height"),v.zoomrestore.padding={w:v.win.outerWidth()-v.win.width(),h:v.win.outerHeight()-v.win.height()},z.isios4&&(v.zoomrestore.scrollTop=a(window).scrollTop(),a(window).scrollTop(0)),v.win.css({position:z.isios4?"absolute":"fixed",top:0,left:0,"z-index":l+100,margin:"0px"});var n=v.win.css("backgroundColor");return(""==n||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(n))&&v.win.css("backgroundColor","#fff"),v.rail.css({"z-index":l+101}),v.zoom.css({"z-index":l+102}),v.zoom.css("backgroundPosition","0px -18px"),v.resizeZoom(),v.onzoomin&&v.onzoomin.call(v),v.cancelEvent(e)}},this.doZoomOut=function(e){return v.zoomactive?(v.zoomactive=!1,v.win.css("margin",""),v.win.css(v.zoomrestore.style),z.isios4&&a(window).scrollTop(v.zoomrestore.scrollTop),v.rail.css({"z-index":v.zindex}),v.zoom.css({"z-index":v.zindex}),v.zoomrestore=!1,v.zoom.css("backgroundPosition","0px 0px"),v.onResize(),v.onzoomout&&v.onzoomout.call(v),v.cancelEvent(e)):void 0},this.doZoom=function(e){return v.zoomactive?v.doZoomOut(e):v.doZoomIn(e)},this.resizeZoom=function(){if(v.zoomactive){var e=v.getScrollTop();v.win.css({width:a(window).width()-v.zoomrestore.padding.w+"px",height:a(window).height()-v.zoomrestore.padding.h+"px"}),v.onResize(),v.setScrollTop(Math.min(v.page.maxh,e))}},this.init(),a.nicescroll.push(this)},b=function(e){var o=this;this.nc=e,this.lastx=0,this.lasty=0,this.speedx=0,this.speedy=0,this.lasttime=0,this.steptime=0,this.snapx=!1,this.snapy=!1,this.demulx=0,this.demuly=0,this.lastscrollx=-1,this.lastscrolly=-1,this.chkx=0,this.chky=0,this.timer=0,this.time=function(){return+new Date},this.reset=function(e,t){o.stop();var r=o.time();o.steptime=0,o.lasttime=r,o.speedx=0,o.speedy=0,o.lastx=e,o.lasty=t,o.lastscrollx=-1,o.lastscrolly=-1},this.update=function(e,t){var r=o.time();o.steptime=r-o.lasttime,o.lasttime=r;var i=t-o.lasty,n=e-o.lastx,s=o.nc.getScrollTop(),l=o.nc.getScrollLeft(),a=s+i,c=l+n;o.snapx=0>c||c>o.nc.page.maxw,o.snapy=0>a||a>o.nc.page.maxh,o.speedx=n,o.speedy=i,o.lastx=e,o.lasty=t},this.stop=function(){o.nc.unsynched("domomentum2d"),o.timer&&clearTimeout(o.timer),o.timer=0,o.lastscrollx=-1,o.lastscrolly=-1},this.doSnapy=function(e,t){var r=!1;0>t?(t=0,r=!0):t>o.nc.page.maxh&&(t=o.nc.page.maxh,r=!0),0>e?(e=0,r=!0):e>o.nc.page.maxw&&(e=o.nc.page.maxw,r=!0),r?o.nc.doScrollPos(e,t,o.nc.opt.snapbackspeed):o.nc.triggerScrollEnd()},this.doMomentum=function(e){var t=o.time(),r=e?t+e:o.lasttime,i=o.nc.getScrollLeft(),n=o.nc.getScrollTop(),s=o.nc.page.maxh,l=o.nc.page.maxw;o.speedx=l>0?Math.min(60,o.speedx):0,o.speedy=s>0?Math.min(60,o.speedy):0;var a=r&&60>=t-r;(0>n||n>s||0>i||i>l)&&(a=!1);var c=o.speedy&&a?o.speedy:!1,d=o.speedx&&a?o.speedx:!1;if(c||d){var u=Math.max(16,o.steptime);if(u>50){var h=u/50;o.speedx*=h,o.speedy*=h,u=50}o.demulxy=0,o.lastscrollx=o.nc.getScrollLeft(),o.chkx=o.lastscrollx,o.lastscrolly=o.nc.getScrollTop(),o.chky=o.lastscrolly;var p=o.lastscrollx,m=o.lastscrolly,f=function(){var e=o.time()-t>600?.04:.02;o.speedx&&(p=Math.floor(o.lastscrollx-o.speedx*(1-o.demulxy)),o.lastscrollx=p,(0>p||p>l)&&(e=.1)),o.speedy&&(m=Math.floor(o.lastscrolly-o.speedy*(1-o.demulxy)),o.lastscrolly=m,(0>m||m>s)&&(e=.1)),o.demulxy=Math.min(1,o.demulxy+e),o.nc.synched("domomentum2d",function(){if(o.speedx){o.nc.getScrollLeft();o.chkx=p,o.nc.setScrollLeft(p)}if(o.speedy){o.nc.getScrollTop();o.chky=m,o.nc.setScrollTop(m)}o.timer||(o.nc.hideCursor(),o.doSnapy(p,m))}),o.demulxy<1?o.timer=setTimeout(f,u):(o.stop(),o.nc.hideCursor(),o.doSnapy(p,m))};f()}else o.doSnapy(o.nc.getScrollLeft(),o.nc.getScrollTop())}},y=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollTop():y.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollTop(parseInt(o)):y.call(e,o),this}},e.fn.scrollTop=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollTop():y.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollTop(parseInt(e)):y.call(a(this),e)})};var x=e.fn.scrollLeft;a.cssHooks.pageXOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollLeft(parseInt(o)):x.call(e,o),this}},e.fn.scrollLeft=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollLeft(parseInt(e)):x.call(a(this),e)})};var S=function(e){var o=this;if(this.length=0,this.name="nicescrollarray",this.each=function(e){for(var t=0,r=0;td?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);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(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e; +a.synched("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.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);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?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("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;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode= +"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;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 e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical? +!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched= +function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!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 void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g, +c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.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"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())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=k())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 y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.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*y+"px";a.doc.css(e.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(e.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*y+"px";a.doc.css(e.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&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(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 z={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){var g,c,e;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 f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0); +c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width", +!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=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(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=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(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}: +{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios|| +a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"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});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors"); +a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag= +!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex: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),e.cantouch&&a.opt.gesturezoom&& +(a.ongesturezoom=function(b){1.5b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius, +"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign? +0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)), +m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=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"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(), +a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.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=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().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(e.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,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/ +2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove", +function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.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&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.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;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.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(e.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(e.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=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&& +(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0a.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.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel= +function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original: +a;a.cancelable&&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,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,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(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,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,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1}); +this.unbindAll=function(){for(var b=0;b(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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(),f=a.getScrollLeft(), +k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0b?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 e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll? +a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&fa.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==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&&da.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>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)), +0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(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 e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},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 e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=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 e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+ +e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=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,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}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()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});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({zIndex:A+101});a.zoom.css({zIndex:A+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),e.isios4&&f(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:f(window).width()- +a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;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(f,h){c.stop();var d=c.time();c.steptime= +0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f, +h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy|| +f){var r=Math.max(16,c.steptime);50p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+ +d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h, +c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll? +c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray"; +this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k 0) ? path.split('/').slice(0, -1).join('/') + '/' : ''; - } - - var vendors = ['webkit','ms','moz','o']; - - var setAnimationFrame = window.requestAnimationFrame || false; - var clearAnimationFrame = window.cancelAnimationFrame || false; - - if (!setAnimationFrame) { // legacy detection - for (var vx in vendors) { - var v = vendors[vx]; - setAnimationFrame = window[v + 'RequestAnimationFrame']; - if (setAnimationFrame) { - clearAnimationFrame = window[v + 'CancelAnimationFrame'] || window[v + 'CancelRequestAnimationFrame']; - break; - } - } - } - - var ClsMutationObserver = window.MutationObserver || window.WebKitMutationObserver || false; - - var _globaloptions = { - zindex: "auto", - cursoropacitymin: 0, - cursoropacitymax: 1, - cursorcolor: "#424242", - cursorwidth: "6px", - cursorborder: "1px solid #fff", - cursorborderradius: "5px", - scrollspeed: 60, - mousescrollstep: 8 * 3, - touchbehavior: false, - hwacceleration: true, - usetransition: true, - boxzoom: false, - dblclickzoom: true, - gesturezoom: true, - grabcursorenabled: true, - autohidemode: true, - background: "", - iframeautoresize: true, - cursorminheight: 32, - preservenativescrolling: true, - railoffset: false, - railhoffset: false, - bouncescroll: true, - spacebarenabled: true, - railpadding: { - top: 0, - right: 0, - left: 0, - bottom: 0 - }, - disableoutline: true, - horizrailenabled: true, - railalign: "right", - railvalign: "bottom", - enabletranslate3d: true, - enablemousewheel: true, - enablekeyboard: true, - smoothscroll: true, - sensitiverail: true, - enablemouselockapi: true, - // cursormaxheight:false, - cursorfixedheight: false, - directionlockdeadzone: 6, - hidecursordelay: 400, - nativeparentscrolling: true, - enablescrollonselection: true, - overflowx: true, - overflowy: true, - cursordragspeed: 0.3, - rtlmode: "auto", - cursordragontouch: false, - oneaxismousemode: "auto", - scriptpath: getScriptPath(), - preventmultitouchscrolling: true - }; - - var browserdetected = false; - - var getBrowserDetection = function() { - - if (browserdetected) return browserdetected; - - var _el = document.createElement('DIV'), - _style = _el.style, - _agent = navigator.userAgent, - _platform = navigator.platform, - d = {}; - - d.haspointerlock = "pointerLockElement" in document || "webkitPointerLockElement" in document || "mozPointerLockElement" in document; - - d.isopera = ("opera" in window); // 12- - d.isopera12 = (d.isopera && ("getUserMedia" in navigator)); - d.isoperamini = (Object.prototype.toString.call(window.operamini) === "[object OperaMini]"); - - d.isie = (("all" in document) && ("attachEvent" in _el) && !d.isopera); //IE10- - d.isieold = (d.isie && !("msInterpolationMode" in _style)); // IE6 and older - d.isie7 = d.isie && !d.isieold && (!("documentMode" in document) || (document.documentMode == 7)); - d.isie8 = d.isie && ("documentMode" in document) && (document.documentMode == 8); - d.isie9 = d.isie && ("performance" in window) && (document.documentMode == 9); - d.isie10 = d.isie && ("performance" in window) && (document.documentMode == 10); - d.isie11 = ("msRequestFullscreen" in _el) && (document.documentMode >= 11); // IE11+ - d.isieedge = (navigator.userAgent.match(/Edge\/12\./)); // IE Edge 12 - - d.isie9mobile = /iemobile.9/i.test(_agent); //wp 7.1 mango - if (d.isie9mobile) d.isie9 = false; - d.isie7mobile = (!d.isie9mobile && d.isie7) && /iemobile/i.test(_agent); //wp 7.0 - - d.ismozilla = ("MozAppearance" in _style); - - d.iswebkit = ("WebkitAppearance" in _style); - - d.ischrome = ("chrome" in window); - d.ischrome38 = (d.ischrome && ("touchAction" in _style)); // behavior changed in touch emulation - d.ischrome22 = (!d.ischrome38)&&(d.ischrome && d.haspointerlock); - d.ischrome26 = (!d.ischrome38)&&(d.ischrome && ("transition" in _style)); // issue with transform detection (maintain prefix) - - d.cantouch = ("ontouchstart" in document.documentElement) || ("ontouchstart" in window); // with detection for Chrome Touch Emulation - d.hasw3ctouch = (window.PointerEvent || false) && ((navigator.MaxTouchPoints > 0)||(navigator.msMaxTouchPoints > 0)); //IE11 pointer events, following W3C Pointer Events spec - d.hasmstouch = (!d.hasw3ctouch)&&(window.MSPointerEvent || false); // IE10 pointer events - - d.ismac = /^mac$/i.test(_platform); - - d.isios = (d.cantouch && /iphone|ipad|ipod/i.test(_platform)); - d.isios4 = ((d.isios) && !("seal" in Object)); - d.isios7 = ((d.isios)&&("webkitHidden" in document)); //iOS 7+ - d.isios8 = ((d.isios)&&("hidden" in document)); //iOS 8+ - - d.isandroid = (/android/i.test(_agent)); - - d.haseventlistener = ("addEventListener" in _el); - - d.trstyle = false; - d.hastransform = false; - d.hastranslate3d = false; - d.transitionstyle = false; - d.hastransition = false; - d.transitionend = false; - - var a; - var check = ['transform', 'msTransform', 'webkitTransform', 'MozTransform', 'OTransform']; - for (a = 0; a < check.length; a++) { - if (_style[check[a]] !== undefined) { - d.trstyle = check[a]; - break; - } - } - d.hastransform = (!!d.trstyle); - if (d.hastransform) { - _style[d.trstyle] = "translate3d(1px,2px,3px)"; - d.hastranslate3d = /translate3d/.test(_style[d.trstyle]); - } - - d.transitionstyle = false; - d.prefixstyle = ''; - d.transitionend = false; - check = ['transition', 'webkitTransition', 'msTransition', 'MozTransition', 'OTransition', 'OTransition', 'KhtmlTransition']; - var prefix = ['', '-webkit-', '-ms-', '-moz-', '-o-', '-o', '-khtml-']; - var evs = ['transitionend', 'webkitTransitionEnd', 'msTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd', 'KhtmlTransitionEnd']; - for (a = 0; a < check.length; a++) { - if (check[a] in _style) { - d.transitionstyle = check[a]; - d.prefixstyle = prefix[a]; - d.transitionend = evs[a]; - break; - } - } - if (d.ischrome26) { // always use prefix - d.prefixstyle = prefix[1]; - } - - d.hastransition = (d.transitionstyle); - - function detectCursorGrab() { - var lst = ['grab','-webkit-grab', '-moz-grab']; - if ((d.ischrome && !d.ischrome38) || d.isie) lst = []; // force setting for IE returns false positive and chrome cursor bug - for (var a = 0; a < lst.length; a++) { - var p = lst[a]; - _style.cursor = p; - if (_style.cursor == p) return p; - } - return 'url(//patriciaportfolio.googlecode.com/files/openhand.cur),n-resize'; // thank you google for custom cursor! - } - d.cursorgrabvalue = detectCursorGrab(); - - d.hasmousecapture = ("setCapture" in _el); - - d.hasMutationObserver = (ClsMutationObserver !== false); - - _el = null; //memory released - - browserdetected = d; - - return d; - }; - - var NiceScrollClass = function(myopt, me) { - - var self = this; - - this.version = '3.6.7'; - this.name = 'nicescroll'; - - this.me = me; - - this.opt = { - doc: $("body"), - win: false - }; - - $.extend(this.opt, _globaloptions); // clone opts - - // Options for internal use - this.opt.snapbackspeed = 80; - - if (myopt || false) { - for (var a in self.opt) { - if (myopt[a] !== undefined) self.opt[a] = myopt[a]; - } - } - - this.doc = self.opt.doc; - this.iddoc = (this.doc && this.doc[0]) ? this.doc[0].id || '' : ''; - this.ispage = /^BODY|HTML/.test((self.opt.win) ? self.opt.win[0].nodeName : this.doc[0].nodeName); - this.haswrapper = (self.opt.win !== false); - this.win = self.opt.win || (this.ispage ? $(window) : this.doc); - this.docscroll = (this.ispage && !this.haswrapper) ? $(window) : this.win; - this.body = $("body"); - this.viewport = false; - - this.isfixed = false; - - this.iframe = false; - this.isiframe = ((this.doc[0].nodeName == 'IFRAME') && (this.win[0].nodeName == 'IFRAME')); - - this.istextarea = (this.win[0].nodeName == 'TEXTAREA'); - - this.forcescreen = false; //force to use screen position on events - - this.canshowonmouseevent = (self.opt.autohidemode != "scroll"); - - // Events jump table - this.onmousedown = false; - this.onmouseup = false; - this.onmousemove = false; - this.onmousewheel = false; - this.onkeypress = false; - this.ongesturezoom = false; - this.onclick = false; - - // Nicescroll custom events - this.onscrollstart = false; - this.onscrollend = false; - this.onscrollcancel = false; - - this.onzoomin = false; - this.onzoomout = false; - - // Let's start! - this.view = false; - this.page = false; - - this.scroll = { - x: 0, - y: 0 - }; - this.scrollratio = { - x: 0, - y: 0 - }; - this.cursorheight = 20; - this.scrollvaluemax = 0; - - // http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical - // http://dev.w3.org/csswg/css-writing-modes-3/#svg-writing-mode - if (this.opt.rtlmode == "auto") { - var target = this.win[0] == window ? this.body : this.win; - var writingMode = target.css("writing-mode") || target.css("-webkit-writing-mode") || target.css("-ms-writing-mode") || target.css("-moz-writing-mode"); - - if (writingMode == "horizontal-tb" || writingMode == "lr-tb" || writingMode == "") { - this.isrtlmode = (target.css("direction") == "rtl"); - this.isvertical = false; - } else { - this.isrtlmode = (writingMode == "vertical-rl" || writingMode == "tb" || writingMode == "tb-rl" || writingMode == "rl-tb"); - this.isvertical = (writingMode == "vertical-rl" || writingMode == "tb" || writingMode == "tb-rl"); - } - } else { - this.isrtlmode = (this.opt.rtlmode === true); - this.isvertical = false; - } - // this.checkrtlmode = false; - - this.scrollrunning = false; - - this.scrollmom = false; - - this.observer = false; // observer div changes - this.observerremover = false; // observer on parent for remove detection - this.observerbody = false; // observer on body for position change - - do { - this.id = "ascrail" + (ascrailcounter++); - } while (document.getElementById(this.id)); - - this.rail = false; - this.cursor = false; - this.cursorfreezed = false; - this.selectiondrag = false; - - this.zoom = false; - this.zoomactive = false; - - this.hasfocus = false; - this.hasmousefocus = false; - - this.visibility = true; - this.railslocked = false; // locked by resize - this.locked = false; // prevent lost of locked status sets by user - this.hidden = false; // rails always hidden - this.cursoractive = true; // user can interact with cursors - - this.wheelprevented = false; //prevent mousewheel event - - this.overflowx = self.opt.overflowx; - this.overflowy = self.opt.overflowy; - - this.nativescrollingarea = false; - this.checkarea = 0; - - this.events = []; // event list for unbind - - this.saved = {}; // style saved - - this.delaylist = {}; - this.synclist = {}; - - this.lastdeltax = 0; - this.lastdeltay = 0; - - this.detected = getBrowserDetection(); - - var cap = $.extend({}, this.detected); - - this.canhwscroll = (cap.hastransform && self.opt.hwacceleration); - this.ishwscroll = (this.canhwscroll && self.haswrapper); - - if (!this.isrtlmode) { - this.hasreversehr = false; - } else if (this.isvertical) { // RTL mode with reverse horizontal axis - this.hasreversehr = !(cap.iswebkit || cap.isie || cap.isie11); - } else { - this.hasreversehr = !(cap.iswebkit || (cap.isie && !cap.isie10 && !cap.isie11)); - } - - this.istouchcapable = false; // desktop devices with touch screen support - - //## Check WebKit-based desktop with touch support - //## + Firefox 18 nightly build (desktop) false positive (or desktop with touch support) - - if (!cap.cantouch && (cap.hasw3ctouch||cap.hasmstouch)) { // desktop device with multiple input - this.istouchcapable = true; - } else if (cap.cantouch && !cap.isios && !cap.isandroid && (cap.iswebkit || cap.ismozilla)) { - this.istouchcapable = true; -// cap.cantouch = false; // parse normal desktop events - } - - //## disable MouseLock API on user request - if (!self.opt.enablemouselockapi) { - cap.hasmousecapture = false; - cap.haspointerlock = false; - } - -/* deprecated - this.delayed = function(name, fn, tm, lazy) { - }; -*/ - -/* - this.debounced = function(name, fn, tm) { - if (!self) return; - var dd = self.delaylist[name]; - self.delaylist[name] = fn; - if (!dd) { - self.debouncedelayed = setTimeout(function() { - if (!self) return; - var fn = self.delaylist[name]; - self.delaylist[name] = false; - fn.call(self); - }, tm); - } - }; -*/ - - this.debounced = function(name, fn, tm) { - if (!self) return; - var dd = self.delaylist[name]||false; - if (!dd) { - fn.call(self); - self.delaylist[name] = { - h: setAnimationFrame(function(){ - self.delaylist[name].fn.call(self); - self.delaylist[name] = false; - }, tm) - }; - } - self.delaylist[name].fn = fn; - }; - - var _onsync = false; - - this.synched = function(name, fn) { - - function requestSync() { - if (_onsync) return; - setAnimationFrame(function() { - if (!self) return; - _onsync = false; - for (var nn in self.synclist) { - var fn = self.synclist[nn]; - if (fn) fn.call(self); - self.synclist[nn] = false; - } - }); - _onsync = true; - } - - self.synclist[name] = fn; - requestSync(); - return name; - }; - - this.unsynched = function(name) { - if (self.synclist[name]) self.synclist[name] = false; - }; - - this.css = function(el, pars) { // save & set - for (var n in pars) { - self.saved.css.push([el, n, el.css(n)]); - el.css(n, pars[n]); - } - }; - - this.scrollTop = function(val) { - return (val === undefined) ? self.getScrollTop() : self.setScrollTop(val); - }; - - this.scrollLeft = function(val) { - return (val === undefined) ? self.getScrollLeft() : self.setScrollLeft(val); - }; - - // derived by by Dan Pupius www.pupius.net - var BezierClass = function(st, ed, spd, p1, p2, p3, p4) { - - this.st = st; - this.ed = ed; - this.spd = spd; - - this.p1 = p1 || 0; - this.p2 = p2 || 1; - this.p3 = p3 || 0; - this.p4 = p4 || 1; - - this.ts = (new Date()).getTime(); - this.df = this.ed - this.st; - }; - BezierClass.prototype = { - B2: function(t) { - return 3 * t * t * (1 - t); - }, - B3: function(t) { - return 3 * t * (1 - t) * (1 - t); - }, - B4: function(t) { - return (1 - t) * (1 - t) * (1 - t); - }, - getNow: function() { - var nw = (new Date()).getTime(); - var pc = 1 - ((nw - this.ts) / this.spd); - var bz = this.B2(pc) + this.B3(pc) + this.B4(pc); - return (pc < 0) ? this.ed : this.st + Math.round(this.df * bz); - }, - update: function(ed, spd) { - this.st = this.getNow(); - this.ed = ed; - this.spd = spd; - this.ts = (new Date()).getTime(); - this.df = this.ed - this.st; - return this; - } - }; - - //derived from http://stackoverflow.com/questions/11236090/ - function getMatrixValues() { - var tr = self.doc.css(cap.trstyle); - if (tr && (tr.substr(0, 6) == "matrix")) { - return tr.replace(/^.*\((.*)\)$/g, "$1").replace(/px/g, '').split(/, +/); - } - return false; - } - - if (this.ishwscroll) { - // hw accelerated scroll - this.doc.translate = { - x: 0, - y: 0, - tx: "0px", - ty: "0px" - }; - - //this one can help to enable hw accel on ios6 http://indiegamr.com/ios6-html-hardware-acceleration-changes-and-how-to-fix-them/ - if (cap.hastranslate3d && cap.isios) this.doc.css("-webkit-backface-visibility", "hidden"); // prevent flickering http://stackoverflow.com/questions/3461441/ - - this.getScrollTop = function(last) { - if (!last) { - var mtx = getMatrixValues(); - if (mtx) return (mtx.length == 16) ? -mtx[13] : -mtx[5]; //matrix3d 16 on IE10 - if (self.timerscroll && self.timerscroll.bz) return self.timerscroll.bz.getNow(); - } - return self.doc.translate.y; - }; - - this.getScrollLeft = function(last) { - if (!last) { - var mtx = getMatrixValues(); - if (mtx) return (mtx.length == 16) ? -mtx[12] : -mtx[4]; //matrix3d 16 on IE10 - if (self.timerscroll && self.timerscroll.bh) return self.timerscroll.bh.getNow(); - } - return self.doc.translate.x; - }; - - this.notifyScrollEvent = function(el) { - var e = document.createEvent("UIEvents"); - e.initUIEvent("scroll", false, true, window, 1); - e.niceevent = true; - el.dispatchEvent(e); - }; - - var cxscrollleft = (this.isrtlmode) ? 1 : -1; - - if (cap.hastranslate3d && self.opt.enabletranslate3d) { - this.setScrollTop = function(val, silent) { - self.doc.translate.y = val; - self.doc.translate.ty = (val * -1) + "px"; - self.doc.css(cap.trstyle, "translate3d(" + self.doc.translate.tx + "," + self.doc.translate.ty + ",0px)"); - if (!silent) self.notifyScrollEvent(self.win[0]); - }; - this.setScrollLeft = function(val, silent) { - self.doc.translate.x = val; - self.doc.translate.tx = (val * cxscrollleft) + "px"; - self.doc.css(cap.trstyle, "translate3d(" + self.doc.translate.tx + "," + self.doc.translate.ty + ",0px)"); - if (!silent) self.notifyScrollEvent(self.win[0]); - }; - } else { - this.setScrollTop = function(val, silent) { - self.doc.translate.y = val; - self.doc.translate.ty = (val * -1) + "px"; - self.doc.css(cap.trstyle, "translate(" + self.doc.translate.tx + "," + self.doc.translate.ty + ")"); - if (!silent) self.notifyScrollEvent(self.win[0]); - }; - this.setScrollLeft = function(val, silent) { - self.doc.translate.x = val; - self.doc.translate.tx = (val * cxscrollleft) + "px"; - self.doc.css(cap.trstyle, "translate(" + self.doc.translate.tx + "," + self.doc.translate.ty + ")"); - if (!silent) self.notifyScrollEvent(self.win[0]); - }; - } - } else { - // native scroll - this.getScrollTop = function() { - return self.docscroll.scrollTop(); - }; - this.setScrollTop = function(val) { - return setTimeout(function() {(self)&&self.docscroll.scrollTop(val)}, 1); - }; - this.getScrollLeft = function() { - var val; - if (!self.hasreversehr) { - val = self.docscroll.scrollLeft(); - } else if (self.detected.ismozilla) { - val = self.page.maxw - Math.abs(self.docscroll.scrollLeft()); - } else { - val = self.page.maxw - self.docscroll.scrollLeft(); - } - return val; - }; - this.setScrollLeft = function(val) { - return setTimeout(function() { - if (!self) return; - if (self.hasreversehr) { - if (self.detected.ismozilla) { - val = -(self.page.maxw - val); - } else { - val = self.page.maxw - val; - } - } - return self.docscroll.scrollLeft(val); - }, 1); - }; - } - - this.getTarget = function(e) { - if (!e) return false; - if (e.target) return e.target; - if (e.srcElement) return e.srcElement; - return false; - }; - - this.hasParent = function(e, id) { - if (!e) return false; - var el = e.target || e.srcElement || e || false; - while (el && el.id != id) { - el = el.parentNode || false; - } - return (el !== false); - }; - - function getZIndex() { - var dom = self.win; - if ("zIndex" in dom) return dom.zIndex(); // use jQuery UI method when available - while (dom.length > 0) { - if (dom[0].nodeType == 9) return false; - var zi = dom.css('zIndex'); - if (!isNaN(zi) && zi != 0) return parseInt(zi); - dom = dom.parent(); - } - return false; - } - - //inspired by http://forum.jquery.com/topic/width-includes-border-width-when-set-to-thin-medium-thick-in-ie - var _convertBorderWidth = { - "thin": 1, - "medium": 3, - "thick": 5 - }; - - function getWidthToPixel(dom, prop, chkheight) { - var wd = dom.css(prop); - var px = parseFloat(wd); - if (isNaN(px)) { - px = _convertBorderWidth[wd] || 0; - var brd = (px == 3) ? ((chkheight) ? (self.win.outerHeight() - self.win.innerHeight()) : (self.win.outerWidth() - self.win.innerWidth())) : 1; //DON'T TRUST CSS - if (self.isie8 && px) px += 1; - return (brd) ? px : 0; - } - return px; - } - - this.getDocumentScrollOffset = function() { - return { - top: window.pageYOffset || document.documentElement.scrollTop, - left: window.pageXOffset || document.documentElement.scrollLeft - }; - }; - - this.getOffset = function() { - if (self.isfixed) { - var ofs = self.win.offset(); // fix Chrome auto issue (when right/bottom props only) - var scrl = self.getDocumentScrollOffset(); - ofs.top-=scrl.top; - ofs.left-=scrl.left; - return ofs; - } - var ww = self.win.offset(); - if (!self.viewport) return ww; - var vp = self.viewport.offset(); - return { - top: ww.top - vp.top,// + self.viewport.scrollTop(), - left: ww.left - vp.left // + self.viewport.scrollLeft() - }; - }; - - this.updateScrollBar = function(len) { - var pos, off; - if (self.ishwscroll) { - self.rail.css({ //** - height: self.win.innerHeight() - (self.opt.railpadding.top + self.opt.railpadding.bottom) - }); - if (self.railh) self.railh.css({ //** - width: self.win.innerWidth() - (self.opt.railpadding.left + self.opt.railpadding.right) - }); - - } else { - var wpos = self.getOffset(); - pos = { - top: wpos.top, - left: wpos.left - (self.opt.railpadding.left + self.opt.railpadding.right) - }; - pos.top += getWidthToPixel(self.win, 'border-top-width', true); - pos.left += (self.rail.align) ? self.win.outerWidth() - getWidthToPixel(self.win, 'border-right-width') - self.rail.width : getWidthToPixel(self.win, 'border-left-width'); - - off = self.opt.railoffset; - if (off) { - if (off.top) pos.top += off.top; - if (off.left) pos.left += off.left; - } - - if (!self.railslocked) self.rail.css({ - top: pos.top, - left: pos.left, - height: ((len) ? len.h : self.win.innerHeight()) - (self.opt.railpadding.top + self.opt.railpadding.bottom) - }); - - if (self.zoom) { - self.zoom.css({ - top: pos.top + 1, - left: (self.rail.align == 1) ? pos.left - 20 : pos.left + self.rail.width + 4 - }); - } - - if (self.railh && !self.railslocked) { - pos = { - top: wpos.top, - left: wpos.left - }; - off = self.opt.railhoffset; - if (off) { - if (off.top) pos.top += off.top; - if (off.left) pos.left += off.left; - } - var y = (self.railh.align) ? pos.top + getWidthToPixel(self.win, 'border-top-width', true) + self.win.innerHeight() - self.railh.height : pos.top + getWidthToPixel(self.win, 'border-top-width', true); - var x = pos.left + getWidthToPixel(self.win, 'border-left-width'); - self.railh.css({ - top: y - (self.opt.railpadding.top + self.opt.railpadding.bottom), - left: x, - width: self.railh.width - }); - } - - } - }; - - this.doRailClick = function(e, dbl, hr) { - var fn, pg, cur, pos; - - if (self.railslocked) return; - self.cancelEvent(e); - - if (dbl) { - fn = (hr) ? self.doScrollLeft : self.doScrollTop; - cur = (hr) ? ((e.pageX - self.railh.offset().left - (self.cursorwidth / 2)) * self.scrollratio.x) : ((e.pageY - self.rail.offset().top - (self.cursorheight / 2)) * self.scrollratio.y); - fn(cur); - } else { - fn = (hr) ? self.doScrollLeftBy : self.doScrollBy; - cur = (hr) ? self.scroll.x : self.scroll.y; - pos = (hr) ? e.pageX - self.railh.offset().left : e.pageY - self.rail.offset().top; - pg = (hr) ? self.view.w : self.view.h; - fn((cur >= pos) ? pg: -pg);// (cur >= pos) ? fn(pg): fn(-pg); - } - - }; - - self.hasanimationframe = (setAnimationFrame); - self.hascancelanimationframe = (clearAnimationFrame); - - if (!self.hasanimationframe) { - setAnimationFrame = function(fn) { - return setTimeout(fn, 15 - Math.floor((+new Date()) / 1000) % 16); - }; // 1000/60)}; - clearAnimationFrame = clearTimeout; - } else if (!self.hascancelanimationframe) clearAnimationFrame = function() { - self.cancelAnimationFrame = true; - }; - - this.init = function() { - - self.saved.css = []; - - if (cap.isie7mobile) return true; // SORRY, DO NOT WORK! - if (cap.isoperamini) return true; // SORRY, DO NOT WORK! - - if (cap.hasmstouch) self.css((self.ispage) ? $("html") : self.win, { - '-ms-touch-action': 'none' - }); - - self.zindex = "auto"; - if (!self.ispage && self.opt.zindex == "auto") { - self.zindex = getZIndex() || "auto"; - } else { - self.zindex = self.opt.zindex; - } - - if (!self.ispage && self.zindex != "auto" && self.zindex > globalmaxzindex) { - globalmaxzindex = self.zindex; - } - - if (self.isie && self.zindex == 0 && self.opt.zindex == "auto") { // fix IE auto == 0 - self.zindex = "auto"; - } - - if (!self.ispage || (!cap.cantouch && !cap.isieold && !cap.isie9mobile)) { - - var cont = self.docscroll; - if (self.ispage) cont = (self.haswrapper) ? self.win : self.doc; - - if (!cap.isie9mobile) self.css(cont, { - 'overflow-y': 'hidden' - }); - - if (self.ispage && cap.isie7) { - if (self.doc[0].nodeName == 'BODY') self.css($("html"), { - 'overflow-y': 'hidden' - }); //IE7 double scrollbar issue - else if (self.doc[0].nodeName == 'HTML') self.css($("body"), { - 'overflow-y': 'hidden' - }); //IE7 double scrollbar issue - } - - if (cap.isios && !self.ispage && !self.haswrapper) self.css($("body"), { - "-webkit-overflow-scrolling": "touch" - }); //force hw acceleration - - var cursor = $(document.createElement('div')); - cursor.css({ - position: "relative", - top: 0, - "float": "right", - width: self.opt.cursorwidth, - height: 0, - 'background-color': self.opt.cursorcolor, - border: self.opt.cursorborder, - 'background-clip': 'padding-box', - '-webkit-border-radius': self.opt.cursorborderradius, - '-moz-border-radius': self.opt.cursorborderradius, - 'border-radius': self.opt.cursorborderradius - }); - - cursor.hborder = parseFloat(cursor.outerHeight() - cursor.innerHeight()); - - cursor.addClass('nicescroll-cursors'); - - self.cursor = cursor; - - var rail = $(document.createElement('div')); - rail.attr('id', self.id); - rail.addClass('nicescroll-rails nicescroll-rails-vr'); - - var v, a, kp = ["left","right","top","bottom"]; //** - for (var n in kp) { - a = kp[n]; - v = self.opt.railpadding[a]; - (v) ? rail.css("padding-"+a,v+"px") : self.opt.railpadding[a] = 0; - } - - rail.append(cursor); - - rail.width = Math.max(parseFloat(self.opt.cursorwidth), cursor.outerWidth()); - rail.css({ - width: rail.width + "px", - zIndex: self.zindex, - background: self.opt.background, - cursor: "default" - }); - - rail.visibility = true; - rail.scrollable = true; - - rail.align = (self.opt.railalign == "left") ? 0 : 1; - - self.rail = rail; - - self.rail.drag = false; - - var zoom = false; - if (self.opt.boxzoom && !self.ispage && !cap.isieold) { - zoom = document.createElement('div'); - - self.bind(zoom, "click", self.doZoom); - self.bind(zoom, "mouseenter", function() { - self.zoom.css('opacity', self.opt.cursoropacitymax); - }); - self.bind(zoom, "mouseleave", function() { - self.zoom.css('opacity', self.opt.cursoropacitymin); - }); - - self.zoom = $(zoom); - self.zoom.css({ - cursor: "pointer", - zIndex: self.zindex, - backgroundImage: 'url(' + self.opt.scriptpath + 'zoomico.png)', - height: 18, - width: 18, - backgroundPosition: '0px 0px' - }); - if (self.opt.dblclickzoom) self.bind(self.win, "dblclick", self.doZoom); - if (cap.cantouch && self.opt.gesturezoom) { - self.ongesturezoom = function(e) { - if (e.scale > 1.5) self.doZoomIn(e); - if (e.scale < 0.8) self.doZoomOut(e); - return self.cancelEvent(e); - }; - self.bind(self.win, "gestureend", self.ongesturezoom); - } - } - - // init HORIZ - - self.railh = false; - var railh; - - if (self.opt.horizrailenabled) { - - self.css(cont, { - overflowX: 'hidden' - }); - - var cursor = $(document.createElement('div')); - cursor.css({ - position: "absolute", - top: 0, - height: self.opt.cursorwidth, - width: 0, - backgroundColor: self.opt.cursorcolor, - border: self.opt.cursorborder, - backgroundClip: 'padding-box', - '-webkit-border-radius': self.opt.cursorborderradius, - '-moz-border-radius': self.opt.cursorborderradius, - 'border-radius': self.opt.cursorborderradius - }); - - if (cap.isieold) cursor.css('overflow', 'hidden'); //IE6 horiz scrollbar issue - - cursor.wborder = parseFloat(cursor.outerWidth() - cursor.innerWidth()); - - cursor.addClass('nicescroll-cursors'); - - self.cursorh = cursor; - - railh = $(document.createElement('div')); - railh.attr('id', self.id + '-hr'); - railh.addClass('nicescroll-rails nicescroll-rails-hr'); - railh.height = Math.max(parseFloat(self.opt.cursorwidth), cursor.outerHeight()); - railh.css({ - height: railh.height + "px", - 'zIndex': self.zindex, - "background": self.opt.background - }); - - railh.append(cursor); - - railh.visibility = true; - railh.scrollable = true; - - railh.align = (self.opt.railvalign == "top") ? 0 : 1; - - self.railh = railh; - - self.railh.drag = false; - - } - - // - - if (self.ispage) { - rail.css({ - position: "fixed", - top: 0, - height: "100%" - }); - (rail.align) ? rail.css({ - right: 0 - }): rail.css({ - left: 0 - }); - self.body.append(rail); - if (self.railh) { - railh.css({ - position: "fixed", - left: 0, - width: "100%" - }); - (railh.align) ? railh.css({ - bottom: 0 - }): railh.css({ - top: 0 - }); - self.body.append(railh); - } - } else { - if (self.ishwscroll) { - if (self.win.css('position') == 'static') self.css(self.win, { - 'position': 'relative' - }); - var bd = (self.win[0].nodeName == 'HTML') ? self.body : self.win; - $(bd).scrollTop(0).scrollLeft(0); // fix rail position if content already scrolled - if (self.zoom) { - self.zoom.css({ - position: "absolute", - top: 1, - right: 0, - "margin-right": rail.width + 4 - }); - bd.append(self.zoom); - } - rail.css({ - position: "absolute", - top: 0 - }); - (rail.align) ? rail.css({ - right: 0 - }): rail.css({ - left: 0 - }); - bd.append(rail); - if (railh) { - railh.css({ - position: "absolute", - left: 0, - bottom: 0 - }); - (railh.align) ? railh.css({ - bottom: 0 - }): railh.css({ - top: 0 - }); - bd.append(railh); - } - } else { - self.isfixed = (self.win.css("position") == "fixed"); - var rlpos = (self.isfixed) ? "fixed" : "absolute"; - - if (!self.isfixed) self.viewport = self.getViewport(self.win[0]); - if (self.viewport) { - self.body = self.viewport; - if ((/fixed|absolute/.test(self.viewport.css("position"))) == false) self.css(self.viewport, { - "position": "relative" - }); - } - - rail.css({ - position: rlpos - }); - if (self.zoom) self.zoom.css({ - position: rlpos - }); - self.updateScrollBar(); - self.body.append(rail); - if (self.zoom) self.body.append(self.zoom); - if (self.railh) { - railh.css({ - position: rlpos - }); - self.body.append(railh); - } - } - - if (cap.isios) self.css(self.win, { - '-webkit-tap-highlight-color': 'rgba(0,0,0,0)', - '-webkit-touch-callout': 'none' - }); // prevent grey layer on click - - if (cap.isie && self.opt.disableoutline) self.win.attr("hideFocus", "true"); // IE, prevent dotted rectangle on focused div - if (cap.iswebkit && self.opt.disableoutline) self.win.css('outline', 'none'); // Webkit outline - //if (cap.isopera&&self.opt.disableoutline) self.win.css({"outline":"0"}); // Opera 12- to test [TODO] - - } - - if (self.opt.autohidemode === false) { - self.autohidedom = false; - self.rail.css({ - opacity: self.opt.cursoropacitymax - }); - if (self.railh) self.railh.css({ - opacity: self.opt.cursoropacitymax - }); - } else if ((self.opt.autohidemode === true) || (self.opt.autohidemode === "leave")) { - self.autohidedom = $().add(self.rail); - if (cap.isie8) self.autohidedom = self.autohidedom.add(self.cursor); - if (self.railh) self.autohidedom = self.autohidedom.add(self.railh); - if (self.railh && cap.isie8) self.autohidedom = self.autohidedom.add(self.cursorh); - } else if (self.opt.autohidemode == "scroll") { - self.autohidedom = $().add(self.rail); - if (self.railh) self.autohidedom = self.autohidedom.add(self.railh); - } else if (self.opt.autohidemode == "cursor") { - self.autohidedom = $().add(self.cursor); - if (self.railh) self.autohidedom = self.autohidedom.add(self.cursorh); - } else if (self.opt.autohidemode == "hidden") { - self.autohidedom = false; - self.hide(); - self.railslocked = false; - } - - if (cap.isie9mobile) { - - self.scrollmom = new ScrollMomentumClass2D(self); - - self.onmangotouch = function() { - var py = self.getScrollTop(); - var px = self.getScrollLeft(); - - if ((py == self.scrollmom.lastscrolly) && (px == self.scrollmom.lastscrollx)) return true; - - var dfy = py - self.mangotouch.sy; - var dfx = px - self.mangotouch.sx; - var df = Math.round(Math.sqrt(Math.pow(dfx, 2) + Math.pow(dfy, 2))); - if (df == 0) return; - - var dry = (dfy < 0) ? -1 : 1; - var drx = (dfx < 0) ? -1 : 1; - - var tm = +new Date(); - if (self.mangotouch.lazy) clearTimeout(self.mangotouch.lazy); - - if (((tm - self.mangotouch.tm) > 80) || (self.mangotouch.dry != dry) || (self.mangotouch.drx != drx)) { - self.scrollmom.stop(); - self.scrollmom.reset(px, py); - self.mangotouch.sy = py; - self.mangotouch.ly = py; - self.mangotouch.sx = px; - self.mangotouch.lx = px; - self.mangotouch.dry = dry; - self.mangotouch.drx = drx; - self.mangotouch.tm = tm; - } else { - - self.scrollmom.stop(); - self.scrollmom.update(self.mangotouch.sx - dfx, self.mangotouch.sy - dfy); - self.mangotouch.tm = tm; - - var ds = Math.max(Math.abs(self.mangotouch.ly - py), Math.abs(self.mangotouch.lx - px)); - self.mangotouch.ly = py; - self.mangotouch.lx = px; - - if (ds > 2) { - self.mangotouch.lazy = setTimeout(function() { - self.mangotouch.lazy = false; - self.mangotouch.dry = 0; - self.mangotouch.drx = 0; - self.mangotouch.tm = 0; - self.scrollmom.doMomentum(30); - }, 100); - } - } - }; - - var top = self.getScrollTop(); - var lef = self.getScrollLeft(); - self.mangotouch = { - sy: top, - ly: top, - dry: 0, - sx: lef, - lx: lef, - drx: 0, - lazy: false, - tm: 0 - }; - - self.bind(self.docscroll, "scroll", self.onmangotouch); - - } else { - - if (cap.cantouch || self.istouchcapable || self.opt.touchbehavior || cap.hasmstouch) { - - self.scrollmom = new ScrollMomentumClass2D(self); - - self.ontouchstart = function(e) { - if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; - - self.hasmoving = false; - - if (!self.railslocked) { - var tg; - if (cap.hasmstouch) { - tg = (e.target) ? e.target : false; - while (tg) { - var nc = $(tg).getNiceScroll(); - if ((nc.length > 0) && (nc[0].me == self.me)) break; - if (nc.length > 0) return false; - if ((tg.nodeName == 'DIV') && (tg.id == self.id)) break; - tg = (tg.parentNode) ? tg.parentNode : false; - } - } - - self.cancelScroll(); - - tg = self.getTarget(e); - - if (tg) { - var skp = (/INPUT/i.test(tg.nodeName)) && (/range/i.test(tg.type)); - if (skp) return self.stopPropagation(e); - } - - if (!("clientX" in e) && ("changedTouches" in e)) { - e.clientX = e.changedTouches[0].clientX; - e.clientY = e.changedTouches[0].clientY; - } - - if (self.forcescreen) { - var le = e; - e = { - "original": (e.original) ? e.original : e - }; - e.clientX = le.screenX; - e.clientY = le.screenY; - } - - self.rail.drag = { - x: e.clientX, - y: e.clientY, - sx: self.scroll.x, - sy: self.scroll.y, - st: self.getScrollTop(), - sl: self.getScrollLeft(), - pt: 2, - dl: false - }; - - if (self.ispage || !self.opt.directionlockdeadzone) { - self.rail.drag.dl = "f"; - } else { - - var view = { - w: $(window).width(), - h: $(window).height() - }; - - var page = { - w: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), - h: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) - }; - - var maxh = Math.max(0, page.h - view.h); - var maxw = Math.max(0, page.w - view.w); - - if (!self.rail.scrollable && self.railh.scrollable) self.rail.drag.ck = (maxh > 0) ? "v" : false; - else if (self.rail.scrollable && !self.railh.scrollable) self.rail.drag.ck = (maxw > 0) ? "h" : false; - else self.rail.drag.ck = false; - if (!self.rail.drag.ck) self.rail.drag.dl = "f"; - } - - if (self.opt.touchbehavior && self.isiframe && cap.isie) { - var wp = self.win.position(); - self.rail.drag.x += wp.left; - self.rail.drag.y += wp.top; - } - - self.hasmoving = false; - self.lastmouseup = false; - self.scrollmom.reset(e.clientX, e.clientY); - - if (!cap.cantouch && !this.istouchcapable && !e.pointerType) { - - var ip = (tg) ? /INPUT|SELECT|TEXTAREA/i.test(tg.nodeName) : false; - if (!ip) { - if (!self.ispage && cap.hasmousecapture) tg.setCapture(); - if (self.opt.touchbehavior) { - if (tg.onclick && !(tg._onclick || false)) { // intercept DOM0 onclick event - tg._onclick = tg.onclick; - tg.onclick = function(e) { - if (self.hasmoving) return false; - tg._onclick.call(this, e); - }; - } - return self.cancelEvent(e); - } - return self.stopPropagation(e); - } - - if (/SUBMIT|CANCEL|BUTTON/i.test($(tg).attr('type'))) { - pc = { - "tg": tg, - "click": false - }; - self.preventclick = pc; - } - - } - } - - }; - - self.ontouchend = function(e) { - if (!self.rail.drag) return true; - if (self.rail.drag.pt == 2) { - if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; - - self.scrollmom.doMomentum(); - self.rail.drag = false; - if (self.hasmoving) { - self.lastmouseup = true; - self.hideCursor(); - if (cap.hasmousecapture) document.releaseCapture(); - if (!cap.cantouch) return self.cancelEvent(e); - } - } - else if (self.rail.drag.pt == 1) { - return self.onmouseup(e); - } - - }; - - var moveneedoffset = (self.opt.touchbehavior && self.isiframe && !cap.hasmousecapture); - - self.ontouchmove = function(e, byiframe) { - - if (!self.rail.drag) return false; - - if (e.targetTouches && self.opt.preventmultitouchscrolling) { - if (e.targetTouches.length > 1) return false; // multitouch - } - - if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; - - if (self.rail.drag.pt == 2) { - if (cap.cantouch && (cap.isios) && e.original === undefined) return true; // prevent ios "ghost" events by clickable elements - - self.hasmoving = true; - - if (self.preventclick && !self.preventclick.click) { - self.preventclick.click = self.preventclick.tg.onclick || false; - self.preventclick.tg.onclick = self.onpreventclick; - } - - var ev = $.extend({ - "original": e - }, e); - e = ev; - - if (("changedTouches" in e)) { - e.clientX = e.changedTouches[0].clientX; - e.clientY = e.changedTouches[0].clientY; - } - - if (self.forcescreen) { - var le = e; - e = { - "original": (e.original) ? e.original : e - }; - e.clientX = le.screenX; - e.clientY = le.screenY; - } - - var ofy,ofx; - ofx = ofy = 0; - - if (moveneedoffset && !byiframe) { - var wp = self.win.position(); - ofx = -wp.left; - ofy = -wp.top; - } - - var fy = e.clientY + ofy; - var my = (fy - self.rail.drag.y); - var fx = e.clientX + ofx; - var mx = (fx - self.rail.drag.x); - - var ny = self.rail.drag.st - my; - - if (self.ishwscroll && self.opt.bouncescroll) { - if (ny < 0) { - ny = Math.round(ny / 2); - // fy = 0; - } else if (ny > self.page.maxh) { - ny = self.page.maxh + Math.round((ny - self.page.maxh) / 2); - // fy = 0; - } - } else { - if (ny < 0) { - ny = 0; - fy = 0; - } - if (ny > self.page.maxh) { - ny = self.page.maxh; - fy = 0; - } - } - - var nx; - if (self.railh && self.railh.scrollable) { - nx = (self.isrtlmode) ? mx - self.rail.drag.sl : self.rail.drag.sl - mx; - - if (self.ishwscroll && self.opt.bouncescroll) { - if (nx < 0) { - nx = Math.round(nx / 2); - // fx = 0; - } else if (nx > self.page.maxw) { - nx = self.page.maxw + Math.round((nx - self.page.maxw) / 2); - // fx = 0; - } - } else { - if (nx < 0) { - nx = 0; - fx = 0; - } - if (nx > self.page.maxw) { - nx = self.page.maxw; - fx = 0; - } - } - - } - - var grabbed = false; - if (self.rail.drag.dl) { - grabbed = true; - if (self.rail.drag.dl == "v") nx = self.rail.drag.sl; - else if (self.rail.drag.dl == "h") ny = self.rail.drag.st; - } else { - var ay = Math.abs(my); - var ax = Math.abs(mx); - var dz = self.opt.directionlockdeadzone; - if (self.rail.drag.ck == "v") { - if (ay > dz && (ax <= (ay * 0.3))) { - self.rail.drag = false; - return true; - } else if (ax > dz) { - self.rail.drag.dl = "f"; - $("body").scrollTop($("body").scrollTop()); // stop iOS native scrolling (when active javascript has blocked) - } - } else if (self.rail.drag.ck == "h") { - if (ax > dz && (ay <= (ax * 0.3))) { - self.rail.drag = false; - return true; - } else if (ay > dz) { - self.rail.drag.dl = "f"; - $("body").scrollLeft($("body").scrollLeft()); // stop iOS native scrolling (when active javascript has blocked) - } - } - } - - self.synched("touchmove", function() { - if (self.rail.drag && (self.rail.drag.pt == 2)) { - if (self.prepareTransition) self.prepareTransition(0); - if (self.rail.scrollable) self.setScrollTop(ny); - self.scrollmom.update(fx, fy); - if (self.railh && self.railh.scrollable) { - self.setScrollLeft(nx); - self.showCursor(ny, nx); - } else { - self.showCursor(ny); - } - if (cap.isie10) document.selection.clear(); - } - }); - - if (cap.ischrome && self.istouchcapable) grabbed = false; //chrome touch emulation doesn't like! - if (grabbed) return self.cancelEvent(e); - } - else if (self.rail.drag.pt == 1) { // drag on cursor - return self.onmousemove(e); - } - - }; - - } - - self.onmousedown = function(e, hronly) { - if (self.rail.drag && self.rail.drag.pt != 1) return; - if (self.railslocked) return self.cancelEvent(e); - self.cancelScroll(); - self.rail.drag = { - x: e.clientX, - y: e.clientY, - sx: self.scroll.x, - sy: self.scroll.y, - pt: 1, - hr: (!!hronly) - }; - var tg = self.getTarget(e); - if (!self.ispage && cap.hasmousecapture) tg.setCapture(); - if (self.isiframe && !cap.hasmousecapture) { - self.saved.csspointerevents = self.doc.css("pointer-events"); - self.css(self.doc, { - "pointer-events": "none" - }); - } - self.hasmoving = false; - return self.cancelEvent(e); - }; - - self.onmouseup = function(e) { - if (self.rail.drag) { - if (self.rail.drag.pt != 1) return true; - - if (cap.hasmousecapture) document.releaseCapture(); - if (self.isiframe && !cap.hasmousecapture) self.doc.css("pointer-events", self.saved.csspointerevents); - self.rail.drag = false; - //if (!self.rail.active) self.hideCursor(); - if (self.hasmoving) self.triggerScrollEnd(); // TODO - check &&!self.scrollrunning - return self.cancelEvent(e); - } - }; - - self.onmousemove = function(e) { - if (self.rail.drag) { - if (self.rail.drag.pt != 1) return; - - if (cap.ischrome && e.which == 0) return self.onmouseup(e); - - self.cursorfreezed = true; - self.hasmoving = true; - - if (self.rail.drag.hr) { - self.scroll.x = self.rail.drag.sx + (e.clientX - self.rail.drag.x); - if (self.scroll.x < 0) self.scroll.x = 0; - var mw = self.scrollvaluemaxw; - if (self.scroll.x > mw) self.scroll.x = mw; - } else { - self.scroll.y = self.rail.drag.sy + (e.clientY - self.rail.drag.y); - if (self.scroll.y < 0) self.scroll.y = 0; - var my = self.scrollvaluemax; - if (self.scroll.y > my) self.scroll.y = my; - } - - self.synched('mousemove', function() { - if (self.rail.drag && (self.rail.drag.pt == 1)) { - self.showCursor(); - if (self.rail.drag.hr) { - if (self.hasreversehr) { - self.doScrollLeft(self.scrollvaluemaxw-Math.round(self.scroll.x * self.scrollratio.x), self.opt.cursordragspeed); - } else { - self.doScrollLeft(Math.round(self.scroll.x * self.scrollratio.x), self.opt.cursordragspeed); - } - } - else self.doScrollTop(Math.round(self.scroll.y * self.scrollratio.y), self.opt.cursordragspeed); - } - }); - - return self.cancelEvent(e); - } - else { - self.checkarea = 0; - } - }; - - if (cap.cantouch || self.opt.touchbehavior) { - - self.onpreventclick = function(e) { - if (self.preventclick) { - self.preventclick.tg.onclick = self.preventclick.click; - self.preventclick = false; - return self.cancelEvent(e); - } - }; - - self.bind(self.win, "mousedown", self.ontouchstart); // control content dragging - - self.onclick = (cap.isios) ? false : function(e) { // it needs to check IE11 ??? - if (self.lastmouseup) { - self.lastmouseup = false; - return self.cancelEvent(e); - } else { - return true; - } - }; - - if (self.opt.grabcursorenabled && cap.cursorgrabvalue) { - self.css((self.ispage) ? self.doc : self.win, { - 'cursor': cap.cursorgrabvalue - }); - self.css(self.rail, { - 'cursor': cap.cursorgrabvalue - }); - } - - } else { - - var checkSelectionScroll = function(e) { - if (!self.selectiondrag) return; - - if (e) { - var ww = self.win.outerHeight(); - var df = (e.pageY - self.selectiondrag.top); - if (df > 0 && df < ww) df = 0; - if (df >= ww) df -= ww; - self.selectiondrag.df = df; - } - if (self.selectiondrag.df == 0) return; - - var rt = -Math.floor(self.selectiondrag.df / 6) * 2; - self.doScrollBy(rt); - - self.debounced("doselectionscroll", function() { - checkSelectionScroll(); - }, 50); - }; - - if ("getSelection" in document) { // A grade - Major browsers - self.hasTextSelected = function() { - return (document.getSelection().rangeCount > 0); - }; - } else if ("selection" in document) { //IE9- - self.hasTextSelected = function() { - return (document.selection.type != "None"); - }; - } else { - self.hasTextSelected = function() { // no support - return false; - }; - } - - self.onselectionstart = function(e) { -/* More testing - severe chrome issues - if (!self.haswrapper&&(e.which&&e.which==2)) { // fool browser to manage middle button scrolling - self.win.css({'overflow':'auto'}); - setTimeout(function(){ - self.win.css({'overflow':''}); - },10); - return true; - } -*/ - if (self.ispage) return; - self.selectiondrag = self.win.offset(); - }; - - self.onselectionend = function(e) { - self.selectiondrag = false; - }; - self.onselectiondrag = function(e) { - if (!self.selectiondrag) return; - if (self.hasTextSelected()) self.debounced("selectionscroll", function() { - checkSelectionScroll(e); - }, 250); - }; - - - } - - if (cap.hasw3ctouch) { //IE11+ - self.css(self.rail, { - 'touch-action': 'none' - }); - self.css(self.cursor, { - 'touch-action': 'none' - }); - self.bind(self.win, "pointerdown", self.ontouchstart); - self.bind(document, "pointerup", self.ontouchend); - self.bind(document, "pointermove", self.ontouchmove); - } else if (cap.hasmstouch) { //IE10 - self.css(self.rail, { - '-ms-touch-action': 'none' - }); - self.css(self.cursor, { - '-ms-touch-action': 'none' - }); - self.bind(self.win, "MSPointerDown", self.ontouchstart); - self.bind(document, "MSPointerUp", self.ontouchend); - self.bind(document, "MSPointerMove", self.ontouchmove); - self.bind(self.cursor, "MSGestureHold", function(e) { - e.preventDefault(); - }); - self.bind(self.cursor, "contextmenu", function(e) { - e.preventDefault(); - }); - } else if (this.istouchcapable) { //desktop with screen touch enabled - self.bind(self.win, "touchstart", self.ontouchstart); - self.bind(document, "touchend", self.ontouchend); - self.bind(document, "touchcancel", self.ontouchend); - self.bind(document, "touchmove", self.ontouchmove); - } - - - if (self.opt.cursordragontouch || (!cap.cantouch && !self.opt.touchbehavior)) { - - self.rail.css({ - cursor: "default" - }); - self.railh && self.railh.css({ - cursor: "default" - }); - - self.jqbind(self.rail, "mouseenter", function() { - if (!self.ispage && !self.win.is(":visible")) return false; - if (self.canshowonmouseevent) self.showCursor(); - self.rail.active = true; - }); - self.jqbind(self.rail, "mouseleave", function() { - self.rail.active = false; - if (!self.rail.drag) self.hideCursor(); - }); - - if (self.opt.sensitiverail) { - self.bind(self.rail, "click", function(e) { - self.doRailClick(e, false, false); - }); - self.bind(self.rail, "dblclick", function(e) { - self.doRailClick(e, true, false); - }); - self.bind(self.cursor, "click", function(e) { - self.cancelEvent(e); - }); - self.bind(self.cursor, "dblclick", function(e) { - self.cancelEvent(e); - }); - } - - if (self.railh) { - self.jqbind(self.railh, "mouseenter", function() { - if (!self.ispage && !self.win.is(":visible")) return false; - if (self.canshowonmouseevent) self.showCursor(); - self.rail.active = true; - }); - self.jqbind(self.railh, "mouseleave", function() { - self.rail.active = false; - if (!self.rail.drag) self.hideCursor(); - }); - - if (self.opt.sensitiverail) { - self.bind(self.railh, "click", function(e) { - self.doRailClick(e, false, true); - }); - self.bind(self.railh, "dblclick", function(e) { - self.doRailClick(e, true, true); - }); - self.bind(self.cursorh, "click", function(e) { - self.cancelEvent(e); - }); - self.bind(self.cursorh, "dblclick", function(e) { - self.cancelEvent(e); - }); - } - - } - - } - - if (!cap.cantouch && !self.opt.touchbehavior) { - - self.bind((cap.hasmousecapture) ? self.win : document, "mouseup", self.onmouseup); - self.bind(document, "mousemove", self.onmousemove); - if (self.onclick) self.bind(document, "click", self.onclick); - - self.bind(self.cursor, "mousedown", self.onmousedown); - self.bind(self.cursor, "mouseup", self.onmouseup); - - if (self.railh) { - self.bind(self.cursorh, "mousedown", function(e) { - self.onmousedown(e, true); - }); - self.bind(self.cursorh, "mouseup", self.onmouseup); - } - - if (!self.ispage && self.opt.enablescrollonselection) { - self.bind(self.win[0], "mousedown", self.onselectionstart); - self.bind(document, "mouseup", self.onselectionend); - self.bind(self.cursor, "mouseup", self.onselectionend); - if (self.cursorh) self.bind(self.cursorh, "mouseup", self.onselectionend); - self.bind(document, "mousemove", self.onselectiondrag); - } - - if (self.zoom) { - self.jqbind(self.zoom, "mouseenter", function() { - if (self.canshowonmouseevent) self.showCursor(); - self.rail.active = true; - }); - self.jqbind(self.zoom, "mouseleave", function() { - self.rail.active = false; - if (!self.rail.drag) self.hideCursor(); - }); - } - - } else { - - self.bind((cap.hasmousecapture) ? self.win : document, "mouseup", self.ontouchend); - self.bind(document, "mousemove", self.ontouchmove); - if (self.onclick) self.bind(document, "click", self.onclick); - - if (self.opt.cursordragontouch) { - self.bind(self.cursor, "mousedown", self.onmousedown); - self.bind(self.cursor, "mouseup", self.onmouseup); - //self.bind(self.cursor, "mousemove", self.onmousemove); - self.cursorh && self.bind(self.cursorh, "mousedown", function(e) { - self.onmousedown(e, true); - }); - //self.cursorh && self.bind(self.cursorh, "mousemove", self.onmousemove); - self.cursorh && self.bind(self.cursorh, "mouseup", self.onmouseup); - } else { - self.bind(self.rail, "mousedown", function(e){e.preventDefault();}); // prevent text selection - self.railh&&self.bind(self.railh, "mousedown", function(e){e.preventDefault();}); - } - - } - - - if (self.opt.enablemousewheel) { - if (!self.isiframe) self.mousewheel((cap.isie && self.ispage) ? document : self.win , self.onmousewheel); - self.mousewheel(self.rail, self.onmousewheel); - if (self.railh) self.mousewheel(self.railh, self.onmousewheelhr); - } - - if (!self.ispage && !cap.cantouch && !(/HTML|^BODY/.test(self.win[0].nodeName))) { - if (!self.win.attr("tabindex")) self.win.attr({ - "tabindex": tabindexcounter++ - }); - - self.jqbind(self.win, "focus", function(e) { - domfocus = (self.getTarget(e)).id || true; - self.hasfocus = true; - if (self.canshowonmouseevent) self.noticeCursor(); - }); - self.jqbind(self.win, "blur", function(e) { - domfocus = false; - self.hasfocus = false; - }); - - self.jqbind(self.win, "mouseenter", function(e) { - mousefocus = (self.getTarget(e)).id || true; - self.hasmousefocus = true; - if (self.canshowonmouseevent) self.noticeCursor(); - }); - self.jqbind(self.win, "mouseleave", function() { - mousefocus = false; - self.hasmousefocus = false; - if (!self.rail.drag) self.hideCursor(); - }); - - } - - } // !ie9mobile - - //Thanks to http://www.quirksmode.org !! - self.onkeypress = function(e) { - if (self.railslocked && self.page.maxh == 0) return true; - - e = (e) ? e : window.e; - var tg = self.getTarget(e); - if (tg && /INPUT|TEXTAREA|SELECT|OPTION/.test(tg.nodeName)) { - var tp = tg.getAttribute('type') || tg.type || false; - if ((!tp) || !(/submit|button|cancel/i.tp)) return true; - } - - if ($(tg).attr('contenteditable')) return true; - - if (self.hasfocus || (self.hasmousefocus && !domfocus) || (self.ispage && !domfocus && !mousefocus)) { - var key = e.keyCode; - - if (self.railslocked && key != 27) return self.cancelEvent(e); - - var ctrl = e.ctrlKey || false; - var shift = e.shiftKey || false; - - var ret = false; - switch (key) { - case 38: - case 63233: //safari - self.doScrollBy(24 * 3); - ret = true; - break; - case 40: - case 63235: //safari - self.doScrollBy(-24 * 3); - ret = true; - break; - case 37: - case 63232: //safari - if (self.railh) { - (ctrl) ? self.doScrollLeft(0): self.doScrollLeftBy(24 * 3); - ret = true; - } - break; - case 39: - case 63234: //safari - if (self.railh) { - (ctrl) ? self.doScrollLeft(self.page.maxw): self.doScrollLeftBy(-24 * 3); - ret = true; - } - break; - case 33: - case 63276: // safari - self.doScrollBy(self.view.h); - ret = true; - break; - case 34: - case 63277: // safari - self.doScrollBy(-self.view.h); - ret = true; - break; - case 36: - case 63273: // safari - (self.railh && ctrl) ? self.doScrollPos(0, 0): self.doScrollTo(0); - ret = true; - break; - case 35: - case 63275: // safari - (self.railh && ctrl) ? self.doScrollPos(self.page.maxw, self.page.maxh): self.doScrollTo(self.page.maxh); - ret = true; - break; - case 32: - if (self.opt.spacebarenabled) { - (shift) ? self.doScrollBy(self.view.h): self.doScrollBy(-self.view.h); - ret = true; - } - break; - case 27: // ESC - if (self.zoomactive) { - self.doZoom(); - ret = true; - } - break; - } - if (ret) return self.cancelEvent(e); - } - }; - - if (self.opt.enablekeyboard) self.bind(document, (cap.isopera && !cap.isopera12) ? "keypress" : "keydown", self.onkeypress); - - self.bind(document, "keydown", function(e) { - var ctrl = e.ctrlKey || false; - if (ctrl) self.wheelprevented = true; - }); - self.bind(document, "keyup", function(e) { - var ctrl = e.ctrlKey || false; - if (!ctrl) self.wheelprevented = false; - }); - self.bind(window,"blur",function(e){ - self.wheelprevented = false; - }); - - self.bind(window, 'resize', self.lazyResize); - self.bind(window, 'orientationchange', self.lazyResize); - - self.bind(window, "load", self.lazyResize); - - if (cap.ischrome && !self.ispage && !self.haswrapper) { //chrome void scrollbar bug - it persists in version 26 - var tmp = self.win.attr("style"); - var ww = parseFloat(self.win.css("width")) + 1; - self.win.css('width', ww); - self.synched("chromefix", function() { - self.win.attr("style", tmp); - }); - } - - - // Trying a cross-browser implementation - good luck! - - self.onAttributeChange = function(e) { - self.lazyResize(self.isieold ? 250 : 30); - }; - - if (ClsMutationObserver !== false) { - self.observerbody = new ClsMutationObserver(function(mutations) { - mutations.forEach(function(mut){ - if (mut.type=="attributes") { - return ($("body").hasClass("modal-open") && $("body").hasClass("modal-dialog") && !$.contains($('.modal-dialog')[0],self.doc[0])) ? self.hide() : self.show(); // Support for Bootstrap modal; Added check if the nice scroll element is inside a modal - } - }); - if (document.body.scrollHeight!=self.page.maxh) return self.lazyResize(30); - }); - self.observerbody.observe(document.body, { - childList: true, - subtree: true, - characterData: false, - attributes: true, - attributeFilter: ['class'] - }); - } - - if (!self.ispage && !self.haswrapper) { - // redesigned MutationObserver for Chrome18+/Firefox14+/iOS6+ with support for: remove div, add/remove content - if (ClsMutationObserver !== false) { - self.observer = new ClsMutationObserver(function(mutations) { - mutations.forEach(self.onAttributeChange); - }); - self.observer.observe(self.win[0], { - childList: true, - characterData: false, - attributes: true, - subtree: false - }); - self.observerremover = new ClsMutationObserver(function(mutations) { - mutations.forEach(function(mo) { - if (mo.removedNodes.length > 0) { - for (var dd in mo.removedNodes) { - if (!!self && (mo.removedNodes[dd] == self.win[0])) return self.remove(); - } - } - }); - }); - self.observerremover.observe(self.win[0].parentNode, { - childList: true, - characterData: false, - attributes: false, - subtree: false - }); - } else { - self.bind(self.win, (cap.isie && !cap.isie9) ? "propertychange" : "DOMAttrModified", self.onAttributeChange); - if (cap.isie9) self.win[0].attachEvent("onpropertychange", self.onAttributeChange); //IE9 DOMAttrModified bug - self.bind(self.win, "DOMNodeRemoved", function(e) { - if (e.target == self.win[0]) self.remove(); - }); - } - } - - // - - if (!self.ispage && self.opt.boxzoom) self.bind(window, "resize", self.resizeZoom); - if (self.istextarea) { - self.bind(self.win, "keydown", self.lazyResize); - self.bind(self.win, "mouseup", self.lazyResize); - } - - // self.checkrtlmode = true; - self.lazyResize(30); - - } - - if (this.doc[0].nodeName == 'IFRAME') { - var oniframeload = function() { - self.iframexd = false; - var doc; - try { - doc = 'contentDocument' in this ? this.contentDocument : this.contentWindow.document; - var a = doc.domain; - } catch (e) { - self.iframexd = true; - doc = false; - } - - if (self.iframexd) { - if ("console" in window) console.log('NiceScroll error: policy restriced iframe'); - return true; //cross-domain - I can't manage this - } - - self.forcescreen = true; - - if (self.isiframe) { - self.iframe = { - "doc": $(doc), - "html": self.doc.contents().find('html')[0], - "body": self.doc.contents().find('body')[0] - }; - self.getContentSize = function() { - return { - w: Math.max(self.iframe.html.scrollWidth, self.iframe.body.scrollWidth), - h: Math.max(self.iframe.html.scrollHeight, self.iframe.body.scrollHeight) - }; - }; - self.docscroll = $(self.iframe.body); //$(this.contentWindow); - } - - if (!cap.isios && self.opt.iframeautoresize && !self.isiframe) { - self.win.scrollTop(0); // reset position - self.doc.height(""); //reset height to fix browser bug - var hh = Math.max(doc.getElementsByTagName('html')[0].scrollHeight, doc.body.scrollHeight); - self.doc.height(hh); - } - self.lazyResize(30); - - if (cap.isie7) self.css($(self.iframe.html), { - 'overflow-y': 'hidden' - }); - self.css($(self.iframe.body), { - 'overflow-y': 'hidden' - }); - - if (cap.isios && self.haswrapper) { - self.css($(doc.body), { - '-webkit-transform': 'translate3d(0,0,0)' - }); // avoid iFrame content clipping - thanks to http://blog.derraab.com/2012/04/02/avoid-iframe-content-clipping-with-css-transform-on-ios/ - } - - if ('contentWindow' in this) { - self.bind(this.contentWindow, "scroll", self.onscroll); //IE8 & minor - } else { - self.bind(doc, "scroll", self.onscroll); - } - - if (self.opt.enablemousewheel) { - self.mousewheel(doc, self.onmousewheel); - } - - if (self.opt.enablekeyboard) self.bind(doc, (cap.isopera) ? "keypress" : "keydown", self.onkeypress); - - if (cap.cantouch || self.opt.touchbehavior) { - self.bind(doc, "mousedown", self.ontouchstart); - self.bind(doc, "mousemove", function(e) { - return self.ontouchmove(e, true); - }); - if (self.opt.grabcursorenabled && cap.cursorgrabvalue) self.css($(doc.body), { - 'cursor': cap.cursorgrabvalue - }); - } - - self.bind(doc, "mouseup", self.ontouchend); - - if (self.zoom) { - if (self.opt.dblclickzoom) self.bind(doc, 'dblclick', self.doZoom); - if (self.ongesturezoom) self.bind(doc, "gestureend", self.ongesturezoom); - } - }; - - if (this.doc[0].readyState && this.doc[0].readyState == "complete") { - setTimeout(function() { - oniframeload.call(self.doc[0], false); - }, 500); - } - self.bind(this.doc, "load", oniframeload); - - } - - }; - - this.showCursor = function(py, px) { - if (self.cursortimeout) { - clearTimeout(self.cursortimeout); - self.cursortimeout = 0; - } - if (!self.rail) return; - if (self.autohidedom) { - self.autohidedom.stop().css({ - opacity: self.opt.cursoropacitymax - }); - self.cursoractive = true; - } - - if (!self.rail.drag || self.rail.drag.pt != 1) { - if (py !== undefined && py !== false) { - self.scroll.y = Math.round(py * 1 / self.scrollratio.y); - } - if (px !== undefined) { - self.scroll.x = Math.round(px * 1 / self.scrollratio.x); - } - } - - self.cursor.css({ - height: self.cursorheight, - top: self.scroll.y - }); - if (self.cursorh) { - var lx = (self.hasreversehr) ? self.scrollvaluemaxw-self.scroll.x : self.scroll.x; - (!self.rail.align && self.rail.visibility) ? self.cursorh.css({ - width: self.cursorwidth, - left: lx + self.rail.width - }): self.cursorh.css({ - width: self.cursorwidth, - left: lx - }); - self.cursoractive = true; - } - - if (self.zoom) self.zoom.stop().css({ - opacity: self.opt.cursoropacitymax - }); - }; - - this.hideCursor = function(tm) { - if (self.cursortimeout) return; - if (!self.rail) return; - if (!self.autohidedom) return; - if (self.hasmousefocus && self.opt.autohidemode == "leave") return; - self.cursortimeout = setTimeout(function() { - if (!self.rail.active || !self.showonmouseevent) { - self.autohidedom.stop().animate({ - opacity: self.opt.cursoropacitymin - }); - if (self.zoom) self.zoom.stop().animate({ - opacity: self.opt.cursoropacitymin - }); - self.cursoractive = false; - } - self.cursortimeout = 0; - }, tm || self.opt.hidecursordelay); - }; - - this.noticeCursor = function(tm, py, px) { - self.showCursor(py, px); - if (!self.rail.active) self.hideCursor(tm); - }; - - this.getContentSize = - (self.ispage) ? - function() { - return { - w: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), - h: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) - }; - } : (self.haswrapper) ? - function() { - return { - w: self.doc.outerWidth() + parseInt(self.win.css('paddingLeft')) + parseInt(self.win.css('paddingRight')), - h: self.doc.outerHeight() + parseInt(self.win.css('paddingTop')) + parseInt(self.win.css('paddingBottom')) - }; - } : function() { - return { - w: self.docscroll[0].scrollWidth, - h: self.docscroll[0].scrollHeight - }; - }; - - this.onResize = function(e, page) { - - if (!self || !self.win) return false; - - if (!self.haswrapper && !self.ispage) { - if (self.win.css('display') == 'none') { - if (self.visibility) self.hideRail().hideRailHr(); - return false; - } else { - if (!self.hidden && !self.visibility) self.showRail().showRailHr(); - } - } - - var premaxh = self.page.maxh; - var premaxw = self.page.maxw; - - var preview = { - h: self.view.h, - w: self.view.w - }; - - self.view = { - w: (self.ispage) ? self.win.width() : parseInt(self.win[0].clientWidth), - h: (self.ispage) ? self.win.height() : parseInt(self.win[0].clientHeight) - }; - - self.page = (page) ? page : self.getContentSize(); - - self.page.maxh = Math.max(0, self.page.h - self.view.h); - self.page.maxw = Math.max(0, self.page.w - self.view.w); - - if ((self.page.maxh == premaxh) && (self.page.maxw == premaxw) && (self.view.w == preview.w) && (self.view.h == preview.h)) { - // test position - if (!self.ispage) { - var pos = self.win.offset(); - if (self.lastposition) { - var lst = self.lastposition; - if ((lst.top == pos.top) && (lst.left == pos.left)) return self; //nothing to do - } - self.lastposition = pos; - } else { - return self; //nothing to do - } - } - - if (self.page.maxh == 0) { - self.hideRail(); - self.scrollvaluemax = 0; - self.scroll.y = 0; - self.scrollratio.y = 0; - self.cursorheight = 0; - self.setScrollTop(0); - if (self.rail) self.rail.scrollable = false; - } else { - self.page.maxh -= (self.opt.railpadding.top + self.opt.railpadding.bottom); //** - self.rail.scrollable = true; - } - - if (self.page.maxw == 0) { - self.hideRailHr(); - self.scrollvaluemaxw = 0; - self.scroll.x = 0; - self.scrollratio.x = 0; - self.cursorwidth = 0; - self.setScrollLeft(0); - if (self.railh) { - self.railh.scrollable = false; - } - } else { - self.page.maxw -= (self.opt.railpadding.left + self.opt.railpadding.right); //** - if (self.railh) self.railh.scrollable = (self.opt.horizrailenabled); - } - - self.railslocked = (self.locked) || ((self.page.maxh == 0) && (self.page.maxw == 0)); - if (self.railslocked) { - if (!self.ispage) self.updateScrollBar(self.view); - return false; - } - - if (!self.hidden && !self.visibility) { - self.showRail().showRailHr(); - } - else if (self.railh && (!self.hidden && !self.railh.visibility)) self.showRailHr(); - - if (self.istextarea && self.win.css('resize') && self.win.css('resize') != 'none') self.view.h -= 20; - - self.cursorheight = Math.min(self.view.h, Math.round(self.view.h * (self.view.h / self.page.h))); - self.cursorheight = (self.opt.cursorfixedheight) ? self.opt.cursorfixedheight : Math.max(self.opt.cursorminheight, self.cursorheight); - - self.cursorwidth = Math.min(self.view.w, Math.round(self.view.w * (self.view.w / self.page.w))); - self.cursorwidth = (self.opt.cursorfixedheight) ? self.opt.cursorfixedheight : Math.max(self.opt.cursorminheight, self.cursorwidth); - - self.scrollvaluemax = self.view.h - self.cursorheight - self.cursor.hborder - (self.opt.railpadding.top + self.opt.railpadding.bottom); //** - - if (self.railh) { - self.railh.width = (self.page.maxh > 0) ? (self.view.w - self.rail.width) : self.view.w; - self.scrollvaluemaxw = self.railh.width - self.cursorwidth - self.cursorh.wborder - (self.opt.railpadding.left + self.opt.railpadding.right); //** - } - - /* - if (self.checkrtlmode&&self.railh) { - self.checkrtlmode = false; - if (self.opt.rtlmode&&self.scroll.x==0) self.setScrollLeft(self.page.maxw); - } -*/ - - if (!self.ispage) self.updateScrollBar(self.view); - - self.scrollratio = { - x: (self.page.maxw / self.scrollvaluemaxw), - y: (self.page.maxh / self.scrollvaluemax) - }; - - var sy = self.getScrollTop(); - if (sy > self.page.maxh) { - self.doScrollTop(self.page.maxh); - } else { - self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); - self.scroll.x = Math.round(self.getScrollLeft() * (1 / self.scrollratio.x)); - if (self.cursoractive) self.noticeCursor(); - } - - if (self.scroll.y && (self.getScrollTop() == 0)) self.doScrollTo(Math.floor(self.scroll.y * self.scrollratio.y)); - - return self; - }; - - this.resize = self.onResize; - - this.hlazyresize = 0; - - this.lazyResize = function(tm) { // event debounce -/* - tm = (isNaN(tm)) ? 30 : tm; - self.debounced('resize', self.resize, tm); -*/ - -// if (!self.haswrapper&&self.opt.autohidemode!==false) self.hide(); - if (!self.haswrapper) self.hide(); - if (self.hlazyresize) clearTimeout(self.hlazyresize); - self.hlazyresize = setTimeout(function(){ - self && self.show().resize(); - },240); - - return self; - }; - - // modified by MDN https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/wheel - function _modernWheelEvent(dom, name, fn, bubble) { - self._bind(dom, name, function(e) { - var e = (e) ? e : window.event; - var event = { - original: e, - target: e.target || e.srcElement, - type: "wheel", - deltaMode: e.type == "MozMousePixelScroll" ? 0 : 1, - deltaX: 0, - deltaZ: 0, - preventDefault: function() { - e.preventDefault ? e.preventDefault() : e.returnValue = false; - return false; - }, - stopImmediatePropagation: function() { - (e.stopImmediatePropagation) ? e.stopImmediatePropagation(): e.cancelBubble = true; - } - }; - - if (name == "mousewheel") { - e.wheelDeltaX && (event.deltaX = -1 / 40 * e.wheelDeltaX); - e.wheelDeltaY && (event.deltaY = -1 / 40 * e.wheelDeltaY); - !event.deltaY && !event.deltaX && (event.deltaY = -1 / 40 * e.wheelDelta); - } else { - event.deltaY = e.detail; - } - - return fn.call(dom, event); - }, bubble); - } - - - - this.jqbind = function(dom, name, fn) { // use jquery bind for non-native events (mouseenter/mouseleave) - self.events.push({ - e: dom, - n: name, - f: fn, - q: true - }); - $(dom).bind(name, fn); - }; - - this.mousewheel = function(dom, fn, bubble) { // bind mousewheel - var el = ("jquery" in dom) ? dom[0] : dom; - if ("onwheel" in document.createElement("div")) { // Modern browsers support "wheel" - self._bind(el, "wheel", fn, bubble || false); - } else { - var wname = (document.onmousewheel !== undefined) ? "mousewheel" : "DOMMouseScroll"; // older Webkit+IE support or older Firefox - _modernWheelEvent(el, wname, fn, bubble || false); - if (wname == "DOMMouseScroll") _modernWheelEvent(el, "MozMousePixelScroll", fn, bubble || false); // Firefox legacy - } - }; - - if (cap.haseventlistener) { // W3C standard event model - - this.bind = function(dom, name, fn, bubble) { // W3C - var el = ("jquery" in dom) ? dom[0] : dom; - self._bind(el, name, fn, bubble || false); - }; - - this._bind = function(el, name, fn, bubble) { // primitive bind - self.events.push({ - e: el, - n: name, - f: fn, - b: bubble, - q: false - }); - el.addEventListener(name, fn, bubble || false); - }; - this.cancelEvent = function(e) { - if (!e) return false; - var e = (e.original) ? e.original : e; - if (e.cancelable) e.preventDefault(); - e.stopPropagation(); - if (e.preventManipulation) e.preventManipulation(); //IE10 - return false; - }; - this.stopPropagation = function(e) { - if (!e) return false; - var e = (e.original) ? e.original : e; - e.stopPropagation(); - return false; - }; - this._unbind = function(el, name, fn, bub) { // primitive unbind - el.removeEventListener(name, fn, bub); - }; - } else { // old IE model - - this.bind = function(dom, name, fn, bubble) { // legacy IE - var el = ("jquery" in dom) ? dom[0] : dom; - self._bind(el, name, function(e) { - e = e || window.event || false; - if (e && e.srcElement) { - e.target = e.srcElement; - } - if (!("pageY" in e)) { - e.pageX = e.clientX + document.documentElement.scrollLeft; - e.pageY = e.clientY + document.documentElement.scrollTop; - } - return ((fn.call(el, e) === false) || bubble === false) ? self.cancelEvent(e) : true; - }); - }; - - this._bind = function(el, name, fn, bubble) { // primitive bind - self.events.push({ - e: el, - n: name, - f: fn, - b: bubble, - q: false - }); - if (el.attachEvent) { - el.attachEvent("on" + name, fn); - } else { - el["on" + name] = fn; - } - }; - // Thanks to http://www.switchonthecode.com !! - this.cancelEvent = function(e) { - var e = window.event || false; - if (!e) return false; - e.cancelBubble = true; - e.cancel = true; - e.returnValue = false; - return false; - }; - this.stopPropagation = function(e) { - var e = window.event || false; - if (!e) return false; - e.cancelBubble = true; - return false; - }; - this._unbind = function(el, name, fn, bub) { // primitive unbind IE old - if (el.detachEvent) { - el.detachEvent('on' + name, fn); - } else { - el['on' + name] = false; - } - }; - } - - this.unbindAll = function() { - for (var a = 0; a < self.events.length; a++) { - var r = self.events[a]; - (r.q) ? r.e.unbind(r.n, r.f): self._unbind(r.e, r.n, r.f, r.b); - } - }; - - this.showRail = function() { - if ((self.page.maxh != 0) && (self.ispage || self.win.css('display') != 'none')) { - self.visibility = true; - self.rail.visibility = true; - self.rail.css('display', 'block'); - } - return self; - }; - - this.showRailHr = function() { - if (!self.railh) return self; - if ((self.page.maxw != 0) && (self.ispage || self.win.css('display') != 'none')) { - self.railh.visibility = true; - self.railh.css('display', 'block'); - } - return self; - }; - - this.hideRail = function() { - self.visibility = false; - self.rail.visibility = false; - self.rail.css('display', 'none'); - return self; - }; - - this.hideRailHr = function() { - if (!self.railh) return self; - self.railh.visibility = false; - self.railh.css('display', 'none'); - return self; - }; - - this.show = function() { - self.hidden = false; - self.railslocked = false; - return self.showRail().showRailHr(); - }; - - this.hide = function() { - self.hidden = true; - self.railslocked = true; - return self.hideRail().hideRailHr(); - }; - - this.toggle = function() { - return (self.hidden) ? self.show() : self.hide(); - }; - - this.remove = function() { - self.stop(); - if (self.cursortimeout) clearTimeout(self.cursortimeout); -// if (self.debouncedelayed) clearTimeout(self.debouncedelayed); - for(var n in self.delaylist) if (self.delaylist[n]) clearAnimationFrame(self.delaylist[n].h); - self.doZoomOut(); - self.unbindAll(); - - if (cap.isie9) self.win[0].detachEvent("onpropertychange", self.onAttributeChange); //IE9 DOMAttrModified bug - - if (self.observer !== false) self.observer.disconnect(); - if (self.observerremover !== false) self.observerremover.disconnect(); - if (self.observerbody !== false) self.observerbody.disconnect(); - - self.events = null; - - if (self.cursor) { - self.cursor.remove(); - } - if (self.cursorh) { - self.cursorh.remove(); - } - if (self.rail) { - self.rail.remove(); - } - if (self.railh) { - self.railh.remove(); - } - if (self.zoom) { - self.zoom.remove(); - } - for (var a = 0; a < self.saved.css.length; a++) { - var d = self.saved.css[a]; - d[0].css(d[1], (d[2] === undefined) ? '' : d[2]); - } - self.saved = false; - self.me.data('__nicescroll', ''); //erase all traces - - // memory leak fixed by GianlucaGuarini - thanks a lot! - // remove the current nicescroll from the $.nicescroll array & normalize array - var lst = $.nicescroll; - lst.each(function(i) { - if (!this) return; - if (this.id === self.id) { - delete lst[i]; - for (var b = ++i; b < lst.length; b++, i++) lst[i] = lst[b]; - lst.length--; - if (lst.length) delete lst[lst.length]; - } - }); - - for (var i in self) { - self[i] = null; - delete self[i]; - } - - self = null; - - }; - - this.scrollstart = function(fn) { - this.onscrollstart = fn; - return self; - }; - this.scrollend = function(fn) { - this.onscrollend = fn; - return self; - }; - this.scrollcancel = function(fn) { - this.onscrollcancel = fn; - return self; - }; - - this.zoomin = function(fn) { - this.onzoomin = fn; - return self; - }; - this.zoomout = function(fn) { - this.onzoomout = fn; - return self; - }; - - this.isScrollable = function(e) { - var dom = (e.target) ? e.target : e; - if (dom.nodeName == 'OPTION') return true; - while (dom && (dom.nodeType == 1) && !(/^BODY|HTML/.test(dom.nodeName))) { - var dd = $(dom); - var ov = dd.css('overflowY') || dd.css('overflowX') || dd.css('overflow') || ''; - if (/scroll|auto/.test(ov)) return (dom.clientHeight != dom.scrollHeight); - dom = (dom.parentNode) ? dom.parentNode : false; - } - return false; - }; - - this.getViewport = function(me) { - var dom = (me && me.parentNode) ? me.parentNode : false; - while (dom && (dom.nodeType == 1) && !(/^BODY|HTML/.test(dom.nodeName))) { - var dd = $(dom); - if (/fixed|absolute/.test(dd.css("position"))) return dd; - var ov = dd.css('overflowY') || dd.css('overflowX') || dd.css('overflow') || ''; - if ((/scroll|auto/.test(ov)) && (dom.clientHeight != dom.scrollHeight)) return dd; - if (dd.getNiceScroll().length > 0) return dd; - dom = (dom.parentNode) ? dom.parentNode : false; - } - return false; //(dom) ? $(dom) : false; - }; - - this.triggerScrollEnd = function() { - if (!self.onscrollend) return; - - var px = self.getScrollLeft(); - var py = self.getScrollTop(); - - var info = { - type: "scrollend", - current: { - x: px, - y: py - }, - end: { - x: px, - y: py - } - }; - self.onscrollend.call(self, info); - }; - - function execScrollWheel(e, hr, chkscroll) { - var px, py; - - if (e.deltaMode == 0) { // PIXEL - px = -Math.floor(e.deltaX * (self.opt.mousescrollstep / (18 * 3))); - py = -Math.floor(e.deltaY * (self.opt.mousescrollstep / (18 * 3))); - } else if (e.deltaMode == 1) { // LINE - px = -Math.floor(e.deltaX * self.opt.mousescrollstep); - py = -Math.floor(e.deltaY * self.opt.mousescrollstep); - } - - if (hr && self.opt.oneaxismousemode && (px == 0) && py) { // classic vertical-only mousewheel + browser with x/y support - px = py; - py = 0; - - if (chkscroll) { - var hrend = (px < 0) ? (self.getScrollLeft() >= self.page.maxw) : (self.getScrollLeft() <= 0); - if (hrend) { // preserve vertical scrolling - py = px; - px = 0; - } - } - - } - - // invert horizontal direction for rtl mode - if (self.isrtlmode) px = -px; - - if (px) { - if (self.scrollmom) { - self.scrollmom.stop(); - } - self.lastdeltax += px; - self.debounced("mousewheelx", function() { - var dt = self.lastdeltax; - self.lastdeltax = 0; - if (!self.rail.drag) { - self.doScrollLeftBy(dt); - } - }, 15); - } - if (py) { - if (self.opt.nativeparentscrolling && chkscroll && !self.ispage && !self.zoomactive) { - if (py < 0) { - if (self.getScrollTop() >= self.page.maxh) return true; - } else { - if (self.getScrollTop() <= 0) return true; - } - } - if (self.scrollmom) { - self.scrollmom.stop(); - } - self.lastdeltay += py; -// self.debounced("mousewheely", function() { - self.synched("mousewheely", function() { - var dt = self.lastdeltay; - self.lastdeltay = 0; - if (!self.rail.drag) { - self.doScrollBy(dt); - } - }, 15); - } - - e.stopImmediatePropagation(); - return e.preventDefault(); - } - - this.onmousewheel = function(e) { - if (self.wheelprevented) return; - if (self.railslocked) { - self.debounced("checkunlock", self.resize, 250); - return true; - } - if (self.rail.drag) return self.cancelEvent(e); - - if (self.opt.oneaxismousemode == "auto" && e.deltaX != 0) self.opt.oneaxismousemode = false; // check two-axis mouse support (not very elegant) - - if (self.opt.oneaxismousemode && e.deltaX == 0) { - if (!self.rail.scrollable) { - if (self.railh && self.railh.scrollable) { - return self.onmousewheelhr(e); - } else { - return true; - } - } - } - - var nw = +(new Date()); - var chk = false; - if (self.opt.preservenativescrolling && ((self.checkarea + 600) < nw)) { - self.nativescrollingarea = self.isScrollable(e); - chk = true; - } - self.checkarea = nw; - if (self.nativescrollingarea) return true; // this isn't my business - var ret = execScrollWheel(e, false, chk); - if (ret) self.checkarea = 0; - return ret; - }; - - this.onmousewheelhr = function(e) { - if (self.wheelprevented) return; - if (self.railslocked || !self.railh.scrollable) return true; - if (self.rail.drag) return self.cancelEvent(e); - - var nw = +(new Date()); - var chk = false; - if (self.opt.preservenativescrolling && ((self.checkarea + 600) < nw)) { - self.nativescrollingarea = self.isScrollable(e); - chk = true; - } - self.checkarea = nw; - if (self.nativescrollingarea) return true; // this isn't my business - if (self.railslocked) return self.cancelEvent(e); - - return execScrollWheel(e, true, chk); - }; - - this.stop = function() { - self.cancelScroll(); - if (self.scrollmon) self.scrollmon.stop(); - self.cursorfreezed = false; - self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); - self.noticeCursor(); - return self; - }; - - this.getTransitionSpeed = function(dif) { - var sp = Math.round(self.opt.scrollspeed * 10); - var ex = Math.min(sp, Math.round((dif / 20) * self.opt.scrollspeed)); - return (ex > 20) ? ex : 0; - }; - - if (!self.opt.smoothscroll) { - this.doScrollLeft = function(x, spd) { //direct - var y = self.getScrollTop(); - self.doScrollPos(x, y, spd); - }; - this.doScrollTop = function(y, spd) { //direct - var x = self.getScrollLeft(); - self.doScrollPos(x, y, spd); - }; - this.doScrollPos = function(x, y, spd) { //direct - var nx = (x > self.page.maxw) ? self.page.maxw : x; - if (nx < 0) nx = 0; - var ny = (y > self.page.maxh) ? self.page.maxh : y; - if (ny < 0) ny = 0; - self.synched('scroll', function() { - self.setScrollTop(ny); - self.setScrollLeft(nx); - }); - }; - this.cancelScroll = function() {}; // direct - } else if (self.ishwscroll && cap.hastransition && self.opt.usetransition && !!self.opt.smoothscroll) { - this.prepareTransition = function(dif, istime) { - var ex = (istime) ? ((dif > 20) ? dif : 0) : self.getTransitionSpeed(dif); - var trans = (ex) ? cap.prefixstyle + 'transform ' + ex + 'ms ease-out' : ''; - if (!self.lasttransitionstyle || self.lasttransitionstyle != trans) { - self.lasttransitionstyle = trans; - self.doc.css(cap.transitionstyle, trans); - } - return ex; - }; - - this.doScrollLeft = function(x, spd) { //trans - var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop(); - self.doScrollPos(x, y, spd); - }; - - this.doScrollTop = function(y, spd) { //trans - var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft(); - self.doScrollPos(x, y, spd); - }; - - this.doScrollPos = function(x, y, spd) { //trans - - var py = self.getScrollTop(); - var px = self.getScrollLeft(); - - if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection - - if (self.opt.bouncescroll == false) { - if (y < 0) y = 0; - else if (y > self.page.maxh) y = self.page.maxh; - if (x < 0) x = 0; - else if (x > self.page.maxw) x = self.page.maxw; - } - - if (self.scrollrunning && x == self.newscrollx && y == self.newscrolly) return false; - - self.newscrolly = y; - self.newscrollx = x; - - self.newscrollspeed = spd || false; - - if (self.timer) return false; - - self.timer = setTimeout(function() { - - var top = self.getScrollTop(); - var lft = self.getScrollLeft(); - - var dst = {}; - dst.x = x - lft; - dst.y = y - top; - dst.px = lft; - dst.py = top; - - var dd = Math.round(Math.sqrt(Math.pow(dst.x, 2) + Math.pow(dst.y, 2))); - var ms = (self.newscrollspeed && self.newscrollspeed > 1) ? self.newscrollspeed : self.getTransitionSpeed(dd); - if (self.newscrollspeed && self.newscrollspeed <= 1) ms *= self.newscrollspeed; - - self.prepareTransition(ms, true); - - if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); - - if (ms > 0) { - - if (!self.scrollrunning && self.onscrollstart) { - var info = { - "type": "scrollstart", - "current": { - "x": lft, - "y": top - }, - "request": { - "x": x, - "y": y - }, - "end": { - "x": self.newscrollx, - "y": self.newscrolly - }, - "speed": ms - }; - self.onscrollstart.call(self, info); - } - - if (cap.transitionend) { - if (!self.scrollendtrapped) { - self.scrollendtrapped = true; - self.bind(self.doc, cap.transitionend, self.onScrollTransitionEnd, false); //I have got to do something usefull!! - } - } else { - if (self.scrollendtrapped) clearTimeout(self.scrollendtrapped); - self.scrollendtrapped = setTimeout(self.onScrollTransitionEnd, ms); // simulate transitionend event - } - - var py = top; - var px = lft; - self.timerscroll = { - bz: new BezierClass(py, self.newscrolly, ms, 0, 0, 0.58, 1), - bh: new BezierClass(px, self.newscrollx, ms, 0, 0, 0.58, 1) - }; - if (!self.cursorfreezed) self.timerscroll.tm = setInterval(function() { - self.showCursor(self.getScrollTop(), self.getScrollLeft()); - }, 60); - - } - - self.synched("doScroll-set", function() { - self.timer = 0; - if (self.scrollendtrapped) self.scrollrunning = true; - self.setScrollTop(self.newscrolly); - self.setScrollLeft(self.newscrollx); - if (!self.scrollendtrapped) self.onScrollTransitionEnd(); - }); - - - }, 50); - - }; - - this.cancelScroll = function() { - if (!self.scrollendtrapped) return true; - var py = self.getScrollTop(); - var px = self.getScrollLeft(); - self.scrollrunning = false; - if (!cap.transitionend) clearTimeout(cap.transitionend); - self.scrollendtrapped = false; - self._unbind(self.doc[0], cap.transitionend, self.onScrollTransitionEnd); - self.prepareTransition(0); - self.setScrollTop(py); // fire event onscroll - if (self.railh) self.setScrollLeft(px); - if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); - self.timerscroll = false; - - self.cursorfreezed = false; - - self.showCursor(py, px); - return self; - }; - this.onScrollTransitionEnd = function() { - if (self.scrollendtrapped) self._unbind(self.doc[0], cap.transitionend, self.onScrollTransitionEnd); - self.scrollendtrapped = false; - self.prepareTransition(0); - if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); - self.timerscroll = false; - var py = self.getScrollTop(); - var px = self.getScrollLeft(); - self.setScrollTop(py); // fire event onscroll - if (self.railh) self.setScrollLeft(px); // fire event onscroll left - - self.noticeCursor(false, py, px); - - self.cursorfreezed = false; - - if (py < 0) py = 0; - else if (py > self.page.maxh) py = self.page.maxh; - if (px < 0) px = 0; - else if (px > self.page.maxw) px = self.page.maxw; - if ((py != self.newscrolly) || (px != self.newscrollx)) return self.doScrollPos(px, py, self.opt.snapbackspeed); - - if (self.onscrollend && self.scrollrunning) { - self.triggerScrollEnd(); - } - self.scrollrunning = false; - - }; - - } else { - - this.doScrollLeft = function(x, spd) { //no-trans - var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop(); - self.doScrollPos(x, y, spd); - }; - - this.doScrollTop = function(y, spd) { //no-trans - var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft(); - self.doScrollPos(x, y, spd); - }; - - this.doScrollPos = function(x, y, spd) { //no-trans - var y = (y === undefined || y === false) ? self.getScrollTop(true) : y; - - if ((self.timer) && (self.newscrolly == y) && (self.newscrollx == x)) return true; - - if (self.timer) clearAnimationFrame(self.timer); - self.timer = 0; - - var py = self.getScrollTop(); - var px = self.getScrollLeft(); - - if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection - - self.newscrolly = y; - self.newscrollx = x; - - if (!self.bouncescroll || !self.rail.visibility) { - if (self.newscrolly < 0) { - self.newscrolly = 0; - } else if (self.newscrolly > self.page.maxh) { - self.newscrolly = self.page.maxh; - } - } - if (!self.bouncescroll || !self.railh.visibility) { - if (self.newscrollx < 0) { - self.newscrollx = 0; - } else if (self.newscrollx > self.page.maxw) { - self.newscrollx = self.page.maxw; - } - } - - self.dst = {}; - self.dst.x = x - px; - self.dst.y = y - py; - self.dst.px = px; - self.dst.py = py; - - var dst = Math.round(Math.sqrt(Math.pow(self.dst.x, 2) + Math.pow(self.dst.y, 2))); - - self.dst.ax = self.dst.x / dst; - self.dst.ay = self.dst.y / dst; - - var pa = 0; - var pe = dst; - - if (self.dst.x == 0) { - pa = py; - pe = y; - self.dst.ay = 1; - self.dst.py = 0; - } else if (self.dst.y == 0) { - pa = px; - pe = x; - self.dst.ax = 1; - self.dst.px = 0; - } - - var ms = self.getTransitionSpeed(dst); - if (spd && spd <= 1) ms *= spd; - if (ms > 0) { - self.bzscroll = (self.bzscroll) ? self.bzscroll.update(pe, ms) : new BezierClass(pa, pe, ms, 0, 1, 0, 1); - } else { - self.bzscroll = false; - } - - if (self.timer) return; - - if ((py == self.page.maxh && y >= self.page.maxh) || (px == self.page.maxw && x >= self.page.maxw)) self.checkContentSize(); - - var sync = 1; - - function scrolling() { - if (self.cancelAnimationFrame) return true; - - self.scrollrunning = true; - - sync = 1 - sync; - if (sync) return (self.timer = setAnimationFrame(scrolling) || 1); - - var done = 0; - var sx, sy; - - var sc = sy = self.getScrollTop(); - if (self.dst.ay) { - sc = (self.bzscroll) ? self.dst.py + (self.bzscroll.getNow() * self.dst.ay) : self.newscrolly; - var dr = sc - sy; - if ((dr < 0 && sc < self.newscrolly) || (dr > 0 && sc > self.newscrolly)) sc = self.newscrolly; - self.setScrollTop(sc); - if (sc == self.newscrolly) done = 1; - } else { - done = 1; - } - - var scx = sx = self.getScrollLeft(); - if (self.dst.ax) { - scx = (self.bzscroll) ? self.dst.px + (self.bzscroll.getNow() * self.dst.ax) : self.newscrollx; - var dr = scx - sx; - if ((dr < 0 && scx < self.newscrollx) || (dr > 0 && scx > self.newscrollx)) scx = self.newscrollx; - self.setScrollLeft(scx); - if (scx == self.newscrollx) done += 1; - } else { - done += 1; - } - - if (done == 2) { - self.timer = 0; - self.cursorfreezed = false; - self.bzscroll = false; - self.scrollrunning = false; - if (sc < 0) sc = 0; - else if (sc > self.page.maxh) sc = self.page.maxh; - if (scx < 0) scx = 0; - else if (scx > self.page.maxw) scx = self.page.maxw; - if ((scx != self.newscrollx) || (sc != self.newscrolly)) self.doScrollPos(scx, sc); - else { - if (self.onscrollend) { - self.triggerScrollEnd(); - } - } - } else { - self.timer = setAnimationFrame(scrolling) || 1; - } - } - self.cancelAnimationFrame = false; - self.timer = 1; - - if (self.onscrollstart && !self.scrollrunning) { - var info = { - "type": "scrollstart", - "current": { - "x": px, - "y": py - }, - "request": { - "x": x, - "y": y - }, - "end": { - "x": self.newscrollx, - "y": self.newscrolly - }, - "speed": ms - }; - self.onscrollstart.call(self, info); - } - - scrolling(); - - if ((py == self.page.maxh && y >= py) || (px == self.page.maxw && x >= px)) self.checkContentSize(); - - self.noticeCursor(); - }; - - this.cancelScroll = function() { - if (self.timer) clearAnimationFrame(self.timer); - self.timer = 0; - self.bzscroll = false; - self.scrollrunning = false; - return self; - }; - - } - - this.doScrollBy = function(stp, relative) { - var ny = 0; - if (relative) { - ny = Math.floor((self.scroll.y - stp) * self.scrollratio.y); - } else { - var sy = (self.timer) ? self.newscrolly : self.getScrollTop(true); - ny = sy - stp; - } - if (self.bouncescroll) { - var haf = Math.round(self.view.h / 2); - if (ny < -haf) ny = -haf; - else if (ny > (self.page.maxh + haf)) ny = (self.page.maxh + haf); - } - self.cursorfreezed = false; - - var py = self.getScrollTop(true); - if (ny < 0 && py <= 0) return self.noticeCursor(); - else if (ny > self.page.maxh && py >= self.page.maxh) { - self.checkContentSize(); - return self.noticeCursor(); - } - - self.doScrollTop(ny); - }; - - this.doScrollLeftBy = function(stp, relative) { - var nx = 0; - if (relative) { - nx = Math.floor((self.scroll.x - stp) * self.scrollratio.x); - } else { - var sx = (self.timer) ? self.newscrollx : self.getScrollLeft(true); - nx = sx - stp; - } - if (self.bouncescroll) { - var haf = Math.round(self.view.w / 2); - if (nx < -haf) nx = -haf; - else if (nx > (self.page.maxw + haf)) nx = (self.page.maxw + haf); - } - self.cursorfreezed = false; - - var px = self.getScrollLeft(true); - if (nx < 0 && px <= 0) return self.noticeCursor(); - else if (nx > self.page.maxw && px >= self.page.maxw) return self.noticeCursor(); - - self.doScrollLeft(nx); - }; - - this.doScrollTo = function(pos, relative) { - var ny = (relative) ? Math.round(pos * self.scrollratio.y) : pos; - if (ny < 0) ny = 0; - else if (ny > self.page.maxh) ny = self.page.maxh; - self.cursorfreezed = false; - self.doScrollTop(pos); - }; - - this.checkContentSize = function() { - var pg = self.getContentSize(); - if ((pg.h != self.page.h) || (pg.w != self.page.w)) self.resize(false, pg); - }; - - self.onscroll = function(e) { - if (self.rail.drag) return; - if (!self.cursorfreezed) { - self.synched('scroll', function() { - self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); - if (self.railh) self.scroll.x = Math.round(self.getScrollLeft() * (1 / self.scrollratio.x)); - self.noticeCursor(); - }); - } - }; - self.bind(self.docscroll, "scroll", self.onscroll); - - this.doZoomIn = function(e) { - if (self.zoomactive) return; - self.zoomactive = true; - - self.zoomrestore = { - style: {} - }; - var lst = ['position', 'top', 'left', 'zIndex', 'backgroundColor', 'marginTop', 'marginBottom', 'marginLeft', 'marginRight']; - var win = self.win[0].style; - for (var a in lst) { - var pp = lst[a]; - self.zoomrestore.style[pp] = (win[pp] !== undefined) ? win[pp] : ''; - } - - self.zoomrestore.style.width = self.win.css('width'); - self.zoomrestore.style.height = self.win.css('height'); - - self.zoomrestore.padding = { - w: self.win.outerWidth() - self.win.width(), - h: self.win.outerHeight() - self.win.height() - }; - - if (cap.isios4) { - self.zoomrestore.scrollTop = $(window).scrollTop(); - $(window).scrollTop(0); - } - - self.win.css({ - position: (cap.isios4) ? "absolute" : "fixed", - top: 0, - left: 0, - zIndex: globalmaxzindex + 100, - margin: 0 - }); - var bkg = self.win.css("backgroundColor"); - if (bkg == "" || /transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(bkg)) self.win.css("backgroundColor", "#fff"); - self.rail.css({ - zIndex: globalmaxzindex + 101 - }); - self.zoom.css({ - zIndex: globalmaxzindex + 102 - }); - self.zoom.css('backgroundPosition', '0px -18px'); - self.resizeZoom(); - - if (self.onzoomin) self.onzoomin.call(self); - - return self.cancelEvent(e); - }; - - this.doZoomOut = function(e) { - if (!self.zoomactive) return; - self.zoomactive = false; - - self.win.css("margin", ""); - self.win.css(self.zoomrestore.style); - - if (cap.isios4) { - $(window).scrollTop(self.zoomrestore.scrollTop); - } - - self.rail.css({ - "z-index": self.zindex - }); - self.zoom.css({ - "z-index": self.zindex - }); - self.zoomrestore = false; - self.zoom.css('backgroundPosition', '0px 0px'); - self.onResize(); - - if (self.onzoomout) self.onzoomout.call(self); - - return self.cancelEvent(e); - }; - - this.doZoom = function(e) { - return (self.zoomactive) ? self.doZoomOut(e) : self.doZoomIn(e); - }; - - this.resizeZoom = function() { - if (!self.zoomactive) return; - - var py = self.getScrollTop(); //preserve scrolling position - self.win.css({ - width: $(window).width() - self.zoomrestore.padding.w + "px", - height: $(window).height() - self.zoomrestore.padding.h + "px" - }); - self.onResize(); - - self.setScrollTop(Math.min(self.page.maxh, py)); - }; - - this.init(); - - $.nicescroll.push(this); - - }; - - // Inspired by the work of Kin Blas - // http://webpro.host.adobe.com/people/jblas/momentum/includes/jquery.momentum.0.7.js - - - var ScrollMomentumClass2D = function(nc) { - var self = this; - this.nc = nc; - - this.lastx = 0; - this.lasty = 0; - this.speedx = 0; - this.speedy = 0; - this.lasttime = 0; - this.steptime = 0; - this.snapx = false; - this.snapy = false; - this.demulx = 0; - this.demuly = 0; - - this.lastscrollx = -1; - this.lastscrolly = -1; - - this.chkx = 0; - this.chky = 0; - - this.timer = 0; - - this.time = function() { - return +new Date(); //beautifull hack - }; - - this.reset = function(px, py) { - self.stop(); - var now = self.time(); - self.steptime = 0; - self.lasttime = now; - self.speedx = 0; - self.speedy = 0; - self.lastx = px; - self.lasty = py; - self.lastscrollx = -1; - self.lastscrolly = -1; - }; - - this.update = function(px, py) { - var now = self.time(); - self.steptime = now - self.lasttime; - self.lasttime = now; - var dy = py - self.lasty; - var dx = px - self.lastx; - var sy = self.nc.getScrollTop(); - var sx = self.nc.getScrollLeft(); - var newy = sy + dy; - var newx = sx + dx; - self.snapx = (newx < 0) || (newx > self.nc.page.maxw); - self.snapy = (newy < 0) || (newy > self.nc.page.maxh); - self.speedx = dx; - self.speedy = dy; - self.lastx = px; - self.lasty = py; - }; - - this.stop = function() { - self.nc.unsynched("domomentum2d"); - if (self.timer) clearTimeout(self.timer); - self.timer = 0; - self.lastscrollx = -1; - self.lastscrolly = -1; - }; - - this.doSnapy = function(nx, ny) { - var snap = false; - - if (ny < 0) { - ny = 0; - snap = true; - } else if (ny > self.nc.page.maxh) { - ny = self.nc.page.maxh; - snap = true; - } - - if (nx < 0) { - nx = 0; - snap = true; - } else if (nx > self.nc.page.maxw) { - nx = self.nc.page.maxw; - snap = true; - } - - (snap) ? self.nc.doScrollPos(nx, ny, self.nc.opt.snapbackspeed): self.nc.triggerScrollEnd(); - }; - - this.doMomentum = function(gp) { - var t = self.time(); - var l = (gp) ? t + gp : self.lasttime; - - var sl = self.nc.getScrollLeft(); - var st = self.nc.getScrollTop(); - - var pageh = self.nc.page.maxh; - var pagew = self.nc.page.maxw; - - self.speedx = (pagew > 0) ? Math.min(60, self.speedx) : 0; - self.speedy = (pageh > 0) ? Math.min(60, self.speedy) : 0; - - var chk = l && (t - l) <= 60; - - if ((st < 0) || (st > pageh) || (sl < 0) || (sl > pagew)) chk = false; - - var sy = (self.speedy && chk) ? self.speedy : false; - var sx = (self.speedx && chk) ? self.speedx : false; - - if (sy || sx) { - var tm = Math.max(16, self.steptime); //timeout granularity - - if (tm > 50) { // do smooth - var xm = tm / 50; - self.speedx *= xm; - self.speedy *= xm; - tm = 50; - } - - self.demulxy = 0; - - self.lastscrollx = self.nc.getScrollLeft(); - self.chkx = self.lastscrollx; - self.lastscrolly = self.nc.getScrollTop(); - self.chky = self.lastscrolly; - - var nx = self.lastscrollx; - var ny = self.lastscrolly; - - var onscroll = function() { - var df = ((self.time() - t) > 600) ? 0.04 : 0.02; - - if (self.speedx) { - nx = Math.floor(self.lastscrollx - (self.speedx * (1 - self.demulxy))); - self.lastscrollx = nx; - if ((nx < 0) || (nx > pagew)) df = 0.10; - } - - if (self.speedy) { - ny = Math.floor(self.lastscrolly - (self.speedy * (1 - self.demulxy))); - self.lastscrolly = ny; - if ((ny < 0) || (ny > pageh)) df = 0.10; - } - - self.demulxy = Math.min(1, self.demulxy + df); - - self.nc.synched("domomentum2d", function() { - - if (self.speedx) { - var scx = self.nc.getScrollLeft(); -// if (scx != self.chkx) self.stop(); - self.chkx = nx; - self.nc.setScrollLeft(nx); - } - - if (self.speedy) { - var scy = self.nc.getScrollTop(); -// if (scy != self.chky) self.stop(); - self.chky = ny; - self.nc.setScrollTop(ny); - } - - if (!self.timer) { - self.nc.hideCursor(); - self.doSnapy(nx, ny); - } - - }); - - if (self.demulxy < 1) { - self.timer = setTimeout(onscroll, tm); - } else { - self.stop(); - self.nc.hideCursor(); - self.doSnapy(nx, ny); - } - }; - - onscroll(); - - } else { - self.doSnapy(self.nc.getScrollLeft(), self.nc.getScrollTop()); - } - - }; - - }; - - - // override jQuery scrollTop - - var _scrollTop = jQuery.fn.scrollTop; // preserve original function - - jQuery.cssHooks.pageYOffset = { - get: function(elem, computed, extra) { - var nice = $.data(elem, '__nicescroll') || false; - return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(elem); - }, - set: function(elem, value) { - var nice = $.data(elem, '__nicescroll') || false; - (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)): _scrollTop.call(elem, value); - return this; - } - }; - - /* - $.fx.step["scrollTop"] = function(fx){ - $.cssHooks["scrollTop"].set( fx.elem, fx.now + fx.unit ); - }; -*/ - - jQuery.fn.scrollTop = function(value) { - if (value === undefined) { - var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false; - return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(this); - } else { - return this.each(function() { - var nice = $.data(this, '__nicescroll') || false; - (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)): _scrollTop.call($(this), value); - }); - } - }; - - // override jQuery scrollLeft - - var _scrollLeft = jQuery.fn.scrollLeft; // preserve original function - - $.cssHooks.pageXOffset = { - get: function(elem, computed, extra) { - var nice = $.data(elem, '__nicescroll') || false; - return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(elem); - }, - set: function(elem, value) { - var nice = $.data(elem, '__nicescroll') || false; - (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)): _scrollLeft.call(elem, value); - return this; - } - }; - - /* - $.fx.step["scrollLeft"] = function(fx){ - $.cssHooks["scrollLeft"].set( fx.elem, fx.now + fx.unit ); - }; -*/ - - jQuery.fn.scrollLeft = function(value) { - if (value === undefined) { - var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false; - return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(this); - } else { - return this.each(function() { - var nice = $.data(this, '__nicescroll') || false; - (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)): _scrollLeft.call($(this), value); - }); - } - }; - - var NiceScrollArray = function(doms) { - var self = this; - this.length = 0; - this.name = "nicescrollarray"; - - this.each = function(fn) { - $.each(self, fn); - return self; - }; - - this.push = function(nice) { - self[self.length] = nice; - self.length++; - }; - - this.eq = function(idx) { - return self[idx]; - }; - - if (doms) { - for (var a = 0; a < doms.length; a++) { - var nice = $.data(doms[a], '__nicescroll') || false; - if (nice) { - this[this.length] = nice; - this.length++; - } - } - } - - return this; - }; - - function mplex(el, lst, fn) { - for (var a = 0; a < lst.length; a++) fn(el, lst[a]); - } - mplex( - NiceScrollArray.prototype, ['show', 'hide', 'toggle', 'onResize', 'resize', 'remove', 'stop', 'doScrollPos'], - function(e, n) { - e[n] = function() { - var args = arguments; - return this.each(function() { - this[n].apply(this, args); - }); - }; - } - ); - - jQuery.fn.getNiceScroll = function(index) { - if (index === undefined) { - return new NiceScrollArray(this); - } else { - return this[index] && $.data(this[index], '__nicescroll') || false; - } - }; - - jQuery.expr[':'].nicescroll = function(a) { - return $.data(a, '__nicescroll') !== undefined; - }; - - $.fn.niceScroll = function(wrapper, opt) { - if (opt === undefined && typeof wrapper == "object" && !("jquery" in wrapper)) { - opt = wrapper; - wrapper = false; - } - opt = $.extend({},opt); // cloning - var ret = new NiceScrollArray(); - if (opt === undefined) opt = {}; - - if (wrapper || false) { - opt.doc = $(wrapper); - opt.win = $(this); - } - var docundef = !("doc" in opt); - if (!docundef && !("win" in opt)) opt.win = $(this); - - this.each(function() { - var nice = $(this).data('__nicescroll') || false; - if (!nice) { - opt.doc = (docundef) ? $(this) : opt.doc; - nice = new NiceScrollClass(opt, $(this)); - $(this).data('__nicescroll', nice); - } - ret.push(nice); - }); - return (ret.length == 1) ? ret[0] : ret; - }; - - window.NiceScroll = { - getjQuery: function() { - return jQuery; - } - }; - - if (!$.nicescroll) { - $.nicescroll = new NiceScrollArray(); - $.nicescroll.options = _globaloptions; - } - -})); - diff --git a/jquery.nicescroll.min.js b/jquery.nicescroll.min.js index 00f8f02..5fc24bc 100644 --- a/jquery.nicescroll.min.js +++ b/jquery.nicescroll.min.js @@ -1,2 +1,120 @@ -/* jquery.nicescroll 3.6.7 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){"use strict";function o(){var e=document.getElementsByTagName("script"),o=e.length?e[e.length-1].src.split("?")[0]:"";return o.split("/").length>0?o.split("/").slice(0,-1).join("/")+"/":""}function t(e,o,t){for(var r=0;r=11,n.isieedge=navigator.userAgent.match(/Edge\/12\./),n.isie9mobile=/iemobile.9/i.test(r),n.isie9mobile&&(n.isie9=!1),n.isie7mobile=!n.isie9mobile&&n.isie7&&/iemobile/i.test(r),n.ismozilla="MozAppearance"in t,n.iswebkit="WebkitAppearance"in t,n.ischrome="chrome"in window,n.ischrome38=n.ischrome&&"touchAction"in t,n.ischrome22=!n.ischrome38&&n.ischrome&&n.haspointerlock,n.ischrome26=!n.ischrome38&&n.ischrome&&"transition"in t,n.cantouch="ontouchstart"in document.documentElement||"ontouchstart"in window,n.hasw3ctouch=(window.PointerEvent||!1)&&(navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0),n.hasmstouch=!n.hasw3ctouch&&(window.MSPointerEvent||!1),n.ismac=/^mac$/i.test(i),n.isios=n.cantouch&&/iphone|ipad|ipod/i.test(i),n.isios4=n.isios&&!("seal"in Object),n.isios7=n.isios&&"webkitHidden"in document,n.isios8=n.isios&&"hidden"in document,n.isandroid=/android/i.test(r),n.haseventlistener="addEventListener"in o,n.trstyle=!1,n.hastransform=!1,n.hastranslate3d=!1,n.transitionstyle=!1,n.hastransition=!1,n.transitionend=!1;var s,l=["transform","msTransform","webkitTransform","MozTransform","OTransform"];for(s=0;s0;){if(9==e[0].nodeType)return!1;var o=e.css("zIndex");if(!isNaN(o)&&0!=o)return parseInt(o);e=e.parent()}return!1}function h(e,o,t){var r=e.css(o),i=parseFloat(r);if(isNaN(i)){i=E[r]||0;var n=3==i?t?v.win.outerHeight()-v.win.innerHeight():v.win.outerWidth()-v.win.innerWidth():1;return v.isie8&&i&&(i+=1),n?i:0}return i}function p(e,o,t,r){v._bind(e,o,function(r){var r=r?r:window.event,i={original:r,target:r.target||r.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==r.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){return r.preventDefault?r.preventDefault():r.returnValue=!1,!1},stopImmediatePropagation:function(){r.stopImmediatePropagation?r.stopImmediatePropagation():r.cancelBubble=!0}};return"mousewheel"==o?(r.wheelDeltaX&&(i.deltaX=-1/40*r.wheelDeltaX),r.wheelDeltaY&&(i.deltaY=-1/40*r.wheelDeltaY),!i.deltaY&&!i.deltaX&&(i.deltaY=-1/40*r.wheelDelta)):i.deltaY=r.detail,t.call(e,i)},r)}function g(e,o,t){var r,i;if(0==e.deltaMode?(r=-Math.floor(e.deltaX*(v.opt.mousescrollstep/54)),i=-Math.floor(e.deltaY*(v.opt.mousescrollstep/54))):1==e.deltaMode&&(r=-Math.floor(e.deltaX*v.opt.mousescrollstep),i=-Math.floor(e.deltaY*v.opt.mousescrollstep)),o&&v.opt.oneaxismousemode&&0==r&&i&&(r=i,i=0,t)){var n=0>r?v.getScrollLeft()>=v.page.maxw:v.getScrollLeft()<=0;n&&(i=r,r=0)}if(v.isrtlmode&&(r=-r),r&&(v.scrollmom&&v.scrollmom.stop(),v.lastdeltax+=r,v.debounced("mousewheelx",function(){var e=v.lastdeltax;v.lastdeltax=0,v.rail.drag||v.doScrollLeftBy(e)},15)),i){if(v.opt.nativeparentscrolling&&t&&!v.ispage&&!v.zoomactive)if(0>i){if(v.getScrollTop()>=v.page.maxh)return!0}else if(v.getScrollTop()<=0)return!0;v.scrollmom&&v.scrollmom.stop(),v.lastdeltay+=i,v.synched("mousewheely",function(){var e=v.lastdeltay;v.lastdeltay=0,v.rail.drag||v.doScrollBy(e)},15)}return e.stopImmediatePropagation(),e.preventDefault()}var v=this;if(this.version="3.6.7",this.name="nicescroll",this.me=o,this.opt={doc:a("body"),win:!1},a.extend(this.opt,f),this.opt.snapbackspeed=80,e)for(var y in v.opt)"undefined"!=typeof e[y]&&(v.opt[y]=e[y]);if(this.doc=v.opt.doc,this.iddoc=this.doc&&this.doc[0]?this.doc[0].id||"":"",this.ispage=/^BODY|HTML/.test(v.opt.win?v.opt.win[0].nodeName:this.doc[0].nodeName),this.haswrapper=v.opt.win!==!1,this.win=v.opt.win||(this.ispage?a(window):this.doc),this.docscroll=this.ispage&&!this.haswrapper?a(window):this.win,this.body=a("body"),this.viewport=!1,this.isfixed=!1,this.iframe=!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"!=v.opt.autohidemode,this.onmousedown=!1,this.onmouseup=!1,this.onmousemove=!1,this.onmousewheel=!1,this.onkeypress=!1,this.ongesturezoom=!1,this.onclick=!1,this.onscrollstart=!1,this.onscrollend=!1,this.onscrollcancel=!1,this.onzoomin=!1,this.onzoomout=!1,this.view=!1,this.page=!1,this.scroll={x:0,y:0},this.scrollratio={x:0,y:0},this.cursorheight=20,this.scrollvaluemax=0,"auto"==this.opt.rtlmode){var x=this.win[0]==window?this.body:this.win,S=x.css("writing-mode")||x.css("-webkit-writing-mode")||x.css("-ms-writing-mode")||x.css("-moz-writing-mode");"horizontal-tb"==S||"lr-tb"==S||""==S?(this.isrtlmode="rtl"==x.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==S||"tb"==S||"tb-rl"==S||"rl-tb"==S,this.isvertical="vertical-rl"==S||"tb"==S||"tb-rl"==S)}else this.isrtlmode=this.opt.rtlmode===!0,this.isvertical=!1;this.scrollrunning=!1,this.scrollmom=!1,this.observer=!1,this.observerremover=!1,this.observerbody=!1;do this.id="ascrail"+s++;while(document.getElementById(this.id));this.rail=!1,this.cursor=!1,this.cursorfreezed=!1,this.selectiondrag=!1,this.zoom=!1,this.zoomactive=!1,this.hasfocus=!1,this.hasmousefocus=!1,this.visibility=!0,this.railslocked=!1,this.locked=!1,this.hidden=!1,this.cursoractive=!0,this.wheelprevented=!1,this.overflowx=v.opt.overflowx,this.overflowy=v.opt.overflowy,this.nativescrollingarea=!1,this.checkarea=0,this.events=[],this.saved={},this.delaylist={},this.synclist={},this.lastdeltax=0,this.lastdeltay=0,this.detected=w();var z=a.extend({},this.detected);this.canhwscroll=z.hastransform&&v.opt.hwacceleration,this.ishwscroll=this.canhwscroll&&v.haswrapper,this.isrtlmode?this.isvertical?this.hasreversehr=!(z.iswebkit||z.isie||z.isie11):this.hasreversehr=!(z.iswebkit||z.isie&&!z.isie10&&!z.isie11):this.hasreversehr=!1,this.istouchcapable=!1,z.cantouch||!z.hasw3ctouch&&!z.hasmstouch?!z.cantouch||z.isios||z.isandroid||!z.iswebkit&&!z.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0,v.opt.enablemouselockapi||(z.hasmousecapture=!1,z.haspointerlock=!1),this.debounced=function(e,o,t){if(v){var r=v.delaylist[e]||!1;r||(o.call(v),v.delaylist[e]={h:d(function(){v.delaylist[e].fn.call(v),v.delaylist[e]=!1},t)}),v.delaylist[e].fn=o}};var T=!1;this.synched=function(e,o){function t(){T||(d(function(){if(v){T=!1;for(var e in v.synclist){var o=v.synclist[e];o&&o.call(v),v.synclist[e]=!1}}}),T=!0)}return v.synclist[e]=o,t(),e},this.unsynched=function(e){v.synclist[e]&&(v.synclist[e]=!1)},this.css=function(e,o){for(var t in o)v.saved.css.push([e,t,e.css(t)]),e.css(t,o[t])},this.scrollTop=function(e){return"undefined"==typeof e?v.getScrollTop():v.setScrollTop(e)},this.scrollLeft=function(e){return"undefined"==typeof e?v.getScrollLeft():v.setScrollLeft(e)};var k=function(e,o,t,r,i,n,s){this.st=e,this.ed=o,this.spd=t,this.p1=r||0,this.p2=i||1,this.p3=n||0,this.p4=s||1,this.ts=(new Date).getTime(),this.df=this.ed-this.st};if(k.prototype={B2:function(e){return 3*e*e*(1-e)},B3:function(e){return 3*e*(1-e)*(1-e)},B4:function(e){return(1-e)*(1-e)*(1-e)},getNow:function(){var e=(new Date).getTime(),o=1-(e-this.ts)/this.spd,t=this.B2(o)+this.B3(o)+this.B4(o);return 0>o?this.ed:this.st+Math.round(this.df*t)},update:function(e,o){return this.st=this.getNow(),this.ed=e,this.spd=o,this.ts=(new Date).getTime(),this.df=this.ed-this.st,this}},this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"},z.hastranslate3d&&z.isios&&this.doc.css("-webkit-backface-visibility","hidden"),this.getScrollTop=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[13]:-o[5];if(v.timerscroll&&v.timerscroll.bz)return v.timerscroll.bz.getNow()}return v.doc.translate.y},this.getScrollLeft=function(e){if(!e){var o=t();if(o)return 16==o.length?-o[12]:-o[4];if(v.timerscroll&&v.timerscroll.bh)return v.timerscroll.bh.getNow()}return v.doc.translate.x},this.notifyScrollEvent=function(e){var o=document.createEvent("UIEvents");o.initUIEvent("scroll",!1,!0,window,1),o.niceevent=!0,e.dispatchEvent(o)};var M=this.isrtlmode?1:-1;z.hastranslate3d&&v.opt.enabletranslate3d?(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate3d("+v.doc.translate.tx+","+v.doc.translate.ty+",0px)"),o||v.notifyScrollEvent(v.win[0])}):(this.setScrollTop=function(e,o){v.doc.translate.y=e,v.doc.translate.ty=-1*e+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])},this.setScrollLeft=function(e,o){v.doc.translate.x=e,v.doc.translate.tx=e*M+"px",v.doc.css(z.trstyle,"translate("+v.doc.translate.tx+","+v.doc.translate.ty+")"),o||v.notifyScrollEvent(v.win[0])})}else this.getScrollTop=function(){return v.docscroll.scrollTop()},this.setScrollTop=function(e){return setTimeout(function(){v&&v.docscroll.scrollTop(e)},1)},this.getScrollLeft=function(){var e;return e=v.hasreversehr?v.detected.ismozilla?v.page.maxw-Math.abs(v.docscroll.scrollLeft()):v.page.maxw-v.docscroll.scrollLeft():v.docscroll.scrollLeft()},this.setScrollLeft=function(e){return setTimeout(function(){return v?(v.hasreversehr&&(e=v.detected.ismozilla?-(v.page.maxw-e):v.page.maxw-e),v.docscroll.scrollLeft(e)):void 0},1)};this.getTarget=function(e){return e?e.target?e.target:e.srcElement?e.srcElement:!1:!1},this.hasParent=function(e,o){if(!e)return!1;for(var t=e.target||e.srcElement||e||!1;t&&t.id!=o;)t=t.parentNode||!1;return t!==!1};var E={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(v.isfixed){var e=v.win.offset(),o=v.getDocumentScrollOffset();return e.top-=o.top,e.left-=o.left,e}var t=v.win.offset();if(!v.viewport)return t;var r=v.viewport.offset();return{top:t.top-r.top,left:t.left-r.left}},this.updateScrollBar=function(e){if(v.ishwscroll)v.rail.css({height:v.win.innerHeight()-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.railh&&v.railh.css({width:v.win.innerWidth()-(v.opt.railpadding.left+v.opt.railpadding.right)});else{var o=v.getOffset(),t={top:o.top,left:o.left-(v.opt.railpadding.left+v.opt.railpadding.right)};t.top+=h(v.win,"border-top-width",!0),t.left+=v.rail.align?v.win.outerWidth()-h(v.win,"border-right-width")-v.rail.width:h(v.win,"border-left-width");var r=v.opt.railoffset;if(r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left)),v.railslocked||v.rail.css({top:t.top,left:t.left,height:(e?e.h:v.win.innerHeight())-(v.opt.railpadding.top+v.opt.railpadding.bottom)}),v.zoom&&v.zoom.css({top:t.top+1,left:1==v.rail.align?t.left-20:t.left+v.rail.width+4}),v.railh&&!v.railslocked){var t={top:o.top,left:o.left},r=v.opt.railhoffset;r&&(r.top&&(t.top+=r.top),r.left&&(t.left+=r.left));var i=v.railh.align?t.top+h(v.win,"border-top-width",!0)+v.win.innerHeight()-v.railh.height:t.top+h(v.win,"border-top-width",!0),n=t.left+h(v.win,"border-left-width");v.railh.css({top:i-(v.opt.railpadding.top+v.opt.railpadding.bottom),left:n,width:v.railh.width})}}},this.doRailClick=function(e,o,t){var r,i,n,s;v.railslocked||(v.cancelEvent(e),o?(r=t?v.doScrollLeft:v.doScrollTop,n=t?(e.pageX-v.railh.offset().left-v.cursorwidth/2)*v.scrollratio.x:(e.pageY-v.rail.offset().top-v.cursorheight/2)*v.scrollratio.y,r(n)):(r=t?v.doScrollLeftBy:v.doScrollBy,n=t?v.scroll.x:v.scroll.y,s=t?e.pageX-v.railh.offset().left:e.pageY-v.rail.offset().top,i=t?v.view.w:v.view.h,r(n>=s?i:-i)))},v.hasanimationframe=d,v.hascancelanimationframe=u,v.hasanimationframe?v.hascancelanimationframe||(u=function(){v.cancelAnimationFrame=!0}):(d=function(e){return setTimeout(e,15-Math.floor(+new Date/1e3)%16)},u=clearTimeout),this.init=function(){if(v.saved.css=[],z.isie7mobile)return!0;if(z.isoperamini)return!0;if(z.hasmstouch&&v.css(v.ispage?a("html"):v.win,{"-ms-touch-action":"none"}),v.zindex="auto",v.ispage||"auto"!=v.opt.zindex?v.zindex=v.opt.zindex:v.zindex=c()||"auto",v.ispage||"auto"==v.zindex||v.zindex>l&&(l=v.zindex),v.isie&&0==v.zindex&&"auto"==v.opt.zindex&&(v.zindex="auto"),!v.ispage||!z.cantouch&&!z.isieold&&!z.isie9mobile){var e=v.docscroll;v.ispage&&(e=v.haswrapper?v.win:v.doc),z.isie9mobile||v.css(e,{"overflow-y":"hidden"}),v.ispage&&z.isie7&&("BODY"==v.doc[0].nodeName?v.css(a("html"),{"overflow-y":"hidden"}):"HTML"==v.doc[0].nodeName&&v.css(a("body"),{"overflow-y":"hidden"})),!z.isios||v.ispage||v.haswrapper||v.css(a("body"),{"-webkit-overflow-scrolling":"touch"});var o=a(document.createElement("div"));o.css({position:"relative",top:0,"float":"right",width:v.opt.cursorwidth,height:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),o.hborder=parseFloat(o.outerHeight()-o.innerHeight()),o.addClass("nicescroll-cursors"),v.cursor=o;var t=a(document.createElement("div"));t.attr("id",v.id),t.addClass("nicescroll-rails nicescroll-rails-vr");var s,d,u=["left","right","top","bottom"];for(var h in u)d=u[h],s=v.opt.railpadding[d],s?t.css("padding-"+d,s+"px"):v.opt.railpadding[d]=0;t.append(o),t.width=Math.max(parseFloat(v.opt.cursorwidth),o.outerWidth()),t.css({width:t.width+"px",zIndex:v.zindex,background:v.opt.background,cursor:"default"}),t.visibility=!0,t.scrollable=!0,t.align="left"==v.opt.railalign?0:1,v.rail=t,v.rail.drag=!1;var p=!1;!v.opt.boxzoom||v.ispage||z.isieold||(p=document.createElement("div"),v.bind(p,"click",v.doZoom),v.bind(p,"mouseenter",function(){v.zoom.css("opacity",v.opt.cursoropacitymax)}),v.bind(p,"mouseleave",function(){v.zoom.css("opacity",v.opt.cursoropacitymin)}),v.zoom=a(p),v.zoom.css({cursor:"pointer","z-index":v.zindex,backgroundImage:"url("+v.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),v.opt.dblclickzoom&&v.bind(v.win,"dblclick",v.doZoom),z.cantouch&&v.opt.gesturezoom&&(v.ongesturezoom=function(e){return e.scale>1.5&&v.doZoomIn(e),e.scale<.8&&v.doZoomOut(e),v.cancelEvent(e)},v.bind(v.win,"gestureend",v.ongesturezoom))),v.railh=!1;var f;if(v.opt.horizrailenabled){v.css(e,{"overflow-x":"hidden"});var o=a(document.createElement("div"));o.css({position:"absolute",top:0,height:v.opt.cursorwidth,width:"0px","background-color":v.opt.cursorcolor,border:v.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":v.opt.cursorborderradius,"-moz-border-radius":v.opt.cursorborderradius,"border-radius":v.opt.cursorborderradius}),z.isieold&&o.css({overflow:"hidden"}),o.wborder=parseFloat(o.outerWidth()-o.innerWidth()),o.addClass("nicescroll-cursors"),v.cursorh=o,f=a(document.createElement("div")),f.attr("id",v.id+"-hr"),f.addClass("nicescroll-rails nicescroll-rails-hr"),f.height=Math.max(parseFloat(v.opt.cursorwidth),o.outerHeight()),f.css({height:f.height+"px",zIndex:v.zindex,background:v.opt.background}),f.append(o),f.visibility=!0,f.scrollable=!0,f.align="top"==v.opt.railvalign?0:1,v.railh=f,v.railh.drag=!1}if(v.ispage)t.css({position:"fixed",top:"0px",height:"100%"}),t.align?t.css({right:"0px"}):t.css({left:"0px"}),v.body.append(t),v.railh&&(f.css({position:"fixed",left:"0px",width:"100%"}),f.align?f.css({bottom:"0px"}):f.css({top:"0px"}),v.body.append(f));else{if(v.ishwscroll){"static"==v.win.css("position")&&v.css(v.win,{position:"relative"});var g="HTML"==v.win[0].nodeName?v.body:v.win;a(g).scrollTop(0).scrollLeft(0),v.zoom&&(v.zoom.css({position:"absolute",top:1,right:0,"margin-right":t.width+4}),g.append(v.zoom)),t.css({position:"absolute",top:0}),t.align?t.css({right:0}):t.css({left:0}),g.append(t),f&&(f.css({position:"absolute",left:0,bottom:0}),f.align?f.css({bottom:0}):f.css({top:0}),g.append(f))}else{v.isfixed="fixed"==v.win.css("position");var w=v.isfixed?"fixed":"absolute";v.isfixed||(v.viewport=v.getViewport(v.win[0])),v.viewport&&(v.body=v.viewport,0==/fixed|absolute/.test(v.viewport.css("position"))&&v.css(v.viewport,{position:"relative"})),t.css({position:w}),v.zoom&&v.zoom.css({position:w}),v.updateScrollBar(),v.body.append(t),v.zoom&&v.body.append(v.zoom),v.railh&&(f.css({position:w}),v.body.append(f))}z.isios&&v.css(v.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),z.isie&&v.opt.disableoutline&&v.win.attr("hideFocus","true"),z.iswebkit&&v.opt.disableoutline&&v.win.css({outline:"none"})}if(v.opt.autohidemode===!1?(v.autohidedom=!1,v.rail.css({opacity:v.opt.cursoropacitymax}),v.railh&&v.railh.css({opacity:v.opt.cursoropacitymax})):v.opt.autohidemode===!0||"leave"===v.opt.autohidemode?(v.autohidedom=a().add(v.rail),z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursor)),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh)),v.railh&&z.isie8&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"scroll"==v.opt.autohidemode?(v.autohidedom=a().add(v.rail),v.railh&&(v.autohidedom=v.autohidedom.add(v.railh))):"cursor"==v.opt.autohidemode?(v.autohidedom=a().add(v.cursor),v.railh&&(v.autohidedom=v.autohidedom.add(v.cursorh))):"hidden"==v.opt.autohidemode&&(v.autohidedom=!1,v.hide(),v.railslocked=!1),z.isie9mobile){v.scrollmom=new b(v),v.onmangotouch=function(){var e=v.getScrollTop(),o=v.getScrollLeft();if(e==v.scrollmom.lastscrolly&&o==v.scrollmom.lastscrollx)return!0;var t=e-v.mangotouch.sy,r=o-v.mangotouch.sx,i=Math.round(Math.sqrt(Math.pow(r,2)+Math.pow(t,2)));if(0!=i){var n=0>t?-1:1,s=0>r?-1:1,l=+new Date;if(v.mangotouch.lazy&&clearTimeout(v.mangotouch.lazy),l-v.mangotouch.tm>80||v.mangotouch.dry!=n||v.mangotouch.drx!=s)v.scrollmom.stop(),v.scrollmom.reset(o,e),v.mangotouch.sy=e,v.mangotouch.ly=e,v.mangotouch.sx=o,v.mangotouch.lx=o,v.mangotouch.dry=n,v.mangotouch.drx=s,v.mangotouch.tm=l;else{v.scrollmom.stop(),v.scrollmom.update(v.mangotouch.sx-r,v.mangotouch.sy-t),v.mangotouch.tm=l;var a=Math.max(Math.abs(v.mangotouch.ly-e),Math.abs(v.mangotouch.lx-o));v.mangotouch.ly=e,v.mangotouch.lx=o,a>2&&(v.mangotouch.lazy=setTimeout(function(){v.mangotouch.lazy=!1,v.mangotouch.dry=0,v.mangotouch.drx=0,v.mangotouch.tm=0,v.scrollmom.doMomentum(30)},100))}}};var y=v.getScrollTop(),x=v.getScrollLeft();v.mangotouch={sy:y,ly:y,dry:0,sx:x,lx:x,drx:0,lazy:!1,tm:0},v.bind(v.docscroll,"scroll",v.onmangotouch)}else{if(z.cantouch||v.istouchcapable||v.opt.touchbehavior||z.hasmstouch){v.scrollmom=new b(v),v.ontouchstart=function(e){if(console.log(e.type,e.pointerType),e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(v.hasmoving=!1,!v.railslocked){console.log("touchstart ",e.type);var o;if(z.hasmstouch)for(o=e.target?e.target:!1;o;){var t=a(o).getNiceScroll();if(t.length>0&&t[0].me==v.me)break;if(t.length>0)return!1;if("DIV"==o.nodeName&&o.id==v.id)break;o=o.parentNode?o.parentNode:!1}if(v.cancelScroll(),o=v.getTarget(e)){var r=/INPUT/i.test(o.nodeName)&&/range/i.test(o.type);if(r)return v.stopPropagation(e)}if(!("clientX"in e)&&"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var i=e;e={original:e.original?e.original:e},e.clientX=i.screenX,e.clientY=i.screenY}if(v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,st:v.getScrollTop(),sl:v.getScrollLeft(),pt:2,dl:!1},v.ispage||!v.opt.directionlockdeadzone)v.rail.drag.dl="f";else{var n={w:a(window).width(),h:a(window).height()},s={w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},l=Math.max(0,s.h-n.h),c=Math.max(0,s.w-n.w);!v.rail.scrollable&&v.railh.scrollable?v.rail.drag.ck=l>0?"v":!1:v.rail.scrollable&&!v.railh.scrollable?v.rail.drag.ck=c>0?"h":!1:v.rail.drag.ck=!1,v.rail.drag.ck||(v.rail.drag.dl="f")}if(v.opt.touchbehavior&&v.isiframe&&z.isie){var d=v.win.position();v.rail.drag.x+=d.left,v.rail.drag.y+=d.top}if(v.hasmoving=!1,v.lastmouseup=!1,v.scrollmom.reset(e.clientX,e.clientY),!z.cantouch&&!this.istouchcapable&&!e.pointerType){var u=o?/INPUT|SELECT|TEXTAREA/i.test(o.nodeName):!1;if(!u)return!v.ispage&&z.hasmousecapture&&o.setCapture(),v.opt.touchbehavior?(o.onclick&&!o._onclick&&(o._onclick=o.onclick,o.onclick=function(e){return v.hasmoving?!1:void o._onclick.call(this,e)}),v.cancelEvent(e)):v.stopPropagation(e);/SUBMIT|CANCEL|BUTTON/i.test(a(o).attr("type"))&&(pc={tg:o,click:!1},v.preventclick=pc)}}},v.ontouchend=function(e){if(!v.rail.drag)return!0;if(2==v.rail.drag.pt){if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(console.log("touchend:",e.target.nodeName),v.scrollmom.doMomentum(),v.rail.drag=!1,v.hasmoving&&(v.lastmouseup=!0,v.hideCursor(),z.hasmousecapture&&document.releaseCapture(),!z.cantouch))return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmouseup(e)};var S=v.opt.touchbehavior&&v.isiframe&&!z.hasmousecapture;v.ontouchmove=function(e,o){if(!v.rail.drag)return!1;if(e.targetTouches&&v.opt.preventmultitouchscrolling&&e.targetTouches.length>1)return!1;if(e.pointerType&&2!=e.pointerType&&"touch"!=e.pointerType)return!1;if(2==v.rail.drag.pt){if(z.cantouch&&z.isios&&"undefined"==typeof e.original)return!0;v.hasmoving=!0,v.preventclick&&!v.preventclick.click&&(v.preventclick.click=v.preventclick.tg.onclick||!1,v.preventclick.tg.onclick=v.onpreventclick);var t=a.extend({original:e},e);if(e=t,"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),v.forcescreen){var r=e;e={original:e.original?e.original:e},e.clientX=r.screenX,e.clientY=r.screenY}var i,n;if(n=i=0,S&&!o){var s=v.win.position();n=-s.left,i=-s.top}var l=e.clientY+i,c=l-v.rail.drag.y,d=e.clientX+n,u=d-v.rail.drag.x,h=v.rail.drag.st-c;v.ishwscroll&&v.opt.bouncescroll?0>h?h=Math.round(h/2):h>v.page.maxh&&(h=v.page.maxh+Math.round((h-v.page.maxh)/2)):(0>h&&(h=0,l=0),h>v.page.maxh&&(h=v.page.maxh,l=0));var p;v.railh&&v.railh.scrollable&&(p=v.isrtlmode?u-v.rail.drag.sl:v.rail.drag.sl-u,v.ishwscroll&&v.opt.bouncescroll?0>p?p=Math.round(p/2):p>v.page.maxw&&(p=v.page.maxw+Math.round((p-v.page.maxw)/2)):(0>p&&(p=0,d=0),p>v.page.maxw&&(p=v.page.maxw,d=0)));var m=!1;if(v.rail.drag.dl)m=!0,"v"==v.rail.drag.dl?p=v.rail.drag.sl:"h"==v.rail.drag.dl&&(h=v.rail.drag.st);else{var f=Math.abs(c),g=Math.abs(u),w=v.opt.directionlockdeadzone;if("v"==v.rail.drag.ck){if(f>w&&.3*f>=g)return v.rail.drag=!1,!0;g>w&&(v.rail.drag.dl="f",a("body").scrollTop(a("body").scrollTop()))}else if("h"==v.rail.drag.ck){if(g>w&&.3*g>=f)return v.rail.drag=!1,!0;f>w&&(v.rail.drag.dl="f",a("body").scrollLeft(a("body").scrollLeft()))}}if(v.synched("touchmove",function(){v.rail.drag&&2==v.rail.drag.pt&&(v.prepareTransition&&v.prepareTransition(0),v.rail.scrollable&&v.setScrollTop(h),v.scrollmom.update(d,l),v.railh&&v.railh.scrollable?(v.setScrollLeft(p),v.showCursor(h,p)):v.showCursor(h),z.isie10&&document.selection.clear())}),z.ischrome&&v.istouchcapable&&(m=!1),m)return v.cancelEvent(e)}else if(1==v.rail.drag.pt)return v.onmousemove(e)}}if(v.onmousedown=function(e,o){if(!v.rail.drag||1==v.rail.drag.pt){if(v.railslocked)return v.cancelEvent(e);v.cancelScroll(),v.rail.drag={x:e.clientX,y:e.clientY,sx:v.scroll.x,sy:v.scroll.y,pt:1,hr:!!o};var t=v.getTarget(e);return!v.ispage&&z.hasmousecapture&&t.setCapture(),v.isiframe&&!z.hasmousecapture&&(v.saved.csspointerevents=v.doc.css("pointer-events"),v.css(v.doc,{"pointer-events":"none"})),v.hasmoving=!1,v.cancelEvent(e)}},v.onmouseup=function(e){return v.rail.drag?1!=v.rail.drag.pt?!0:(z.hasmousecapture&&document.releaseCapture(),v.isiframe&&!z.hasmousecapture&&v.doc.css("pointer-events",v.saved.csspointerevents),v.rail.drag=!1,v.hasmoving&&v.triggerScrollEnd(),v.cancelEvent(e)):void 0},v.onmousemove=function(e){if(v.rail.drag){if(1!=v.rail.drag.pt)return;if(z.ischrome&&0==e.which)return v.onmouseup(e);if(v.cursorfreezed=!0,v.hasmoving=!0,v.rail.drag.hr){v.scroll.x=v.rail.drag.sx+(e.clientX-v.rail.drag.x),v.scroll.x<0&&(v.scroll.x=0);var o=v.scrollvaluemaxw;v.scroll.x>o&&(v.scroll.x=o)}else{v.scroll.y=v.rail.drag.sy+(e.clientY-v.rail.drag.y),v.scroll.y<0&&(v.scroll.y=0);var t=v.scrollvaluemax;v.scroll.y>t&&(v.scroll.y=t)}return v.synched("mousemove",function(){v.rail.drag&&1==v.rail.drag.pt&&(v.showCursor(),v.rail.drag.hr?v.hasreversehr?v.doScrollLeft(v.scrollvaluemaxw-Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollLeft(Math.round(v.scroll.x*v.scrollratio.x),v.opt.cursordragspeed):v.doScrollTop(Math.round(v.scroll.y*v.scrollratio.y),v.opt.cursordragspeed))}),v.cancelEvent(e)}v.checkarea=0},z.cantouch||v.opt.touchbehavior)v.onpreventclick=function(e){return v.preventclick?(v.preventclick.tg.onclick=v.preventclick.click,v.preventclick=!1,v.cancelEvent(e)):void 0},v.bind(v.win,"mousedown",v.ontouchstart),v.onclick=z.isios?!1:function(e){return v.lastmouseup?(v.lastmouseup=!1,v.cancelEvent(e)):!0},v.opt.grabcursorenabled&&z.cursorgrabvalue&&(v.css(v.ispage?v.doc:v.win,{cursor:z.cursorgrabvalue}),v.css(v.rail,{cursor:z.cursorgrabvalue}));else{var T=function(e){if(v.selectiondrag){if(e){var o=v.win.outerHeight(),t=e.pageY-v.selectiondrag.top;t>0&&o>t&&(t=0),t>=o&&(t-=o),v.selectiondrag.df=t}if(0!=v.selectiondrag.df){var r=2*-Math.floor(v.selectiondrag.df/6);v.doScrollBy(r),v.debounced("doselectionscroll",function(){T()},50)}}};"getSelection"in document?v.hasTextSelected=function(){return document.getSelection().rangeCount>0}:"selection"in document?v.hasTextSelected=function(){return"None"!=document.selection.type}:v.hasTextSelected=function(){return!1},v.onselectionstart=function(){v.ispage||(v.selectiondrag=v.win.offset())},v.onselectionend=function(){v.selectiondrag=!1},v.onselectiondrag=function(e){v.selectiondrag&&v.hasTextSelected()&&v.debounced("selectionscroll",function(){T(e)},250)}}z.hasw3ctouch?(v.css(v.rail,{"touch-action":"none"}),v.css(v.cursor,{"touch-action":"none"}),v.bind(v.win,"pointerdown",v.ontouchstart),v.bind(document,"pointerup",v.ontouchend),v.bind(document,"pointermove",v.ontouchmove)):z.hasmstouch?(v.css(v.rail,{"-ms-touch-action":"none"}),v.css(v.cursor,{"-ms-touch-action":"none"}),v.bind(v.win,"MSPointerDown",v.ontouchstart),v.bind(document,"MSPointerUp",v.ontouchend),v.bind(document,"MSPointerMove",v.ontouchmove),v.bind(v.cursor,"MSGestureHold",function(e){e.preventDefault()}),v.bind(v.cursor,"contextmenu",function(e){e.preventDefault()})):this.istouchcapable&&(v.bind(v.win,"touchstart",v.ontouchstart),v.bind(document,"touchend",v.ontouchend),v.bind(document,"touchcancel",v.ontouchend),v.bind(document,"touchmove",v.ontouchmove)),(v.opt.cursordragontouch||!z.cantouch&&!v.opt.touchbehavior)&&(v.rail.css({cursor:"default"}),v.railh&&v.railh.css({cursor:"default"}),v.jqbind(v.rail,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.rail,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.rail,"click",function(e){v.doRailClick(e,!1,!1)}),v.bind(v.rail,"dblclick",function(e){v.doRailClick(e,!0,!1)}),v.bind(v.cursor,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursor,"dblclick",function(e){v.cancelEvent(e)})),v.railh&&(v.jqbind(v.railh,"mouseenter",function(){return v.ispage||v.win.is(":visible")?(v.canshowonmouseevent&&v.showCursor(),void(v.rail.active=!0)):!1}),v.jqbind(v.railh,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}),v.opt.sensitiverail&&(v.bind(v.railh,"click",function(e){v.doRailClick(e,!1,!0)}),v.bind(v.railh,"dblclick",function(e){v.doRailClick(e,!0,!0)}),v.bind(v.cursorh,"click",function(e){v.cancelEvent(e)}),v.bind(v.cursorh,"dblclick",function(e){v.cancelEvent(e)})))),z.cantouch||v.opt.touchbehavior?(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.ontouchend),v.bind(document,"mousemove",v.ontouchmove),v.onclick&&v.bind(document,"click",v.onclick),v.opt.cursordragontouch?(v.bind(v.cursor,"mousedown",v.onmousedown),v.bind(v.cursor,"mouseup",v.onmouseup),v.cursorh&&v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onmouseup)):(v.bind(v.rail,"mousedown",function(e){e.preventDefault()}),v.railh&&v.bind(v.railh,"mousedown",function(e){e.preventDefault()}))):(v.bind(z.hasmousecapture?v.win:document,"mouseup",v.onmouseup),v.bind(document,"mousemove",v.onmousemove),v.onclick&&v.bind(document,"click",v.onclick),v.bind(v.cursor,"mousedown",v.onmousedown), -v.bind(v.cursor,"mouseup",v.onmouseup),v.railh&&(v.bind(v.cursorh,"mousedown",function(e){v.onmousedown(e,!0)}),v.bind(v.cursorh,"mouseup",v.onmouseup)),!v.ispage&&v.opt.enablescrollonselection&&(v.bind(v.win[0],"mousedown",v.onselectionstart),v.bind(document,"mouseup",v.onselectionend),v.bind(v.cursor,"mouseup",v.onselectionend),v.cursorh&&v.bind(v.cursorh,"mouseup",v.onselectionend),v.bind(document,"mousemove",v.onselectiondrag)),v.zoom&&(v.jqbind(v.zoom,"mouseenter",function(){v.canshowonmouseevent&&v.showCursor(),v.rail.active=!0}),v.jqbind(v.zoom,"mouseleave",function(){v.rail.active=!1,v.rail.drag||v.hideCursor()}))),v.opt.enablemousewheel&&(v.isiframe||v.mousewheel(z.isie&&v.ispage?document:v.win,v.onmousewheel),v.mousewheel(v.rail,v.onmousewheel),v.railh&&v.mousewheel(v.railh,v.onmousewheelhr)),v.ispage||z.cantouch||/HTML|^BODY/.test(v.win[0].nodeName)||(v.win.attr("tabindex")||v.win.attr({tabindex:n++}),v.jqbind(v.win,"focus",function(e){r=v.getTarget(e).id||!0,v.hasfocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"blur",function(){r=!1,v.hasfocus=!1}),v.jqbind(v.win,"mouseenter",function(e){i=v.getTarget(e).id||!0,v.hasmousefocus=!0,v.canshowonmouseevent&&v.noticeCursor()}),v.jqbind(v.win,"mouseleave",function(){i=!1,v.hasmousefocus=!1,v.rail.drag||v.hideCursor()}))}if(v.onkeypress=function(e){if(v.railslocked&&0==v.page.maxh)return!0;e=e?e:window.e;var o=v.getTarget(e);if(o&&/INPUT|TEXTAREA|SELECT|OPTION/.test(o.nodeName)){var t=o.getAttribute("type")||o.type||!1;if(!t||!/submit|button|cancel/i.tp)return!0}if(a(o).attr("contenteditable"))return!0;if(v.hasfocus||v.hasmousefocus&&!r||v.ispage&&!r&&!i){var n=e.keyCode;if(v.railslocked&&27!=n)return v.cancelEvent(e);var s=e.ctrlKey||!1,l=e.shiftKey||!1,c=!1;switch(n){case 38:case 63233:v.doScrollBy(72),c=!0;break;case 40:case 63235:v.doScrollBy(-72),c=!0;break;case 37:case 63232:v.railh&&(s?v.doScrollLeft(0):v.doScrollLeftBy(72),c=!0);break;case 39:case 63234:v.railh&&(s?v.doScrollLeft(v.page.maxw):v.doScrollLeftBy(-72),c=!0);break;case 33:case 63276:v.doScrollBy(v.view.h),c=!0;break;case 34:case 63277:v.doScrollBy(-v.view.h),c=!0;break;case 36:case 63273:v.railh&&s?v.doScrollPos(0,0):v.doScrollTo(0),c=!0;break;case 35:case 63275:v.railh&&s?v.doScrollPos(v.page.maxw,v.page.maxh):v.doScrollTo(v.page.maxh),c=!0;break;case 32:v.opt.spacebarenabled&&(l?v.doScrollBy(v.view.h):v.doScrollBy(-v.view.h),c=!0);break;case 27:v.zoomactive&&(v.doZoom(),c=!0)}if(c)return v.cancelEvent(e)}},v.opt.enablekeyboard&&v.bind(document,z.isopera&&!z.isopera12?"keypress":"keydown",v.onkeypress),v.bind(document,"keydown",function(e){var o=e.ctrlKey||!1;o&&(v.wheelprevented=!0)}),v.bind(document,"keyup",function(e){var o=e.ctrlKey||!1;o||(v.wheelprevented=!1)}),v.bind(window,"blur",function(){v.wheelprevented=!1}),v.bind(window,"resize",v.lazyResize),v.bind(window,"orientationchange",v.lazyResize),v.bind(window,"load",v.lazyResize),z.ischrome&&!v.ispage&&!v.haswrapper){var k=v.win.attr("style"),M=parseFloat(v.win.css("width"))+1;v.win.css("width",M),v.synched("chromefix",function(){v.win.attr("style",k)})}v.onAttributeChange=function(){v.lazyResize(v.isieold?250:30)},m!==!1&&(v.observerbody=new m(function(e){return e.forEach(function(e){return"attributes"==e.type?a("body").hasClass("modal-open")&&a("body").hasClass("modal-dialog")&&!a.contains(a(".modal-dialog")[0],v.doc[0])?v.hide():v.show():void 0}),document.body.scrollHeight!=v.page.maxh?v.lazyResize(30):void 0}),v.observerbody.observe(document.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]})),v.ispage||v.haswrapper||(m!==!1?(v.observer=new m(function(e){e.forEach(v.onAttributeChange)}),v.observer.observe(v.win[0],{childList:!0,characterData:!1,attributes:!0,subtree:!1}),v.observerremover=new m(function(e){e.forEach(function(e){if(e.removedNodes.length>0)for(var o in e.removedNodes)if(v&&e.removedNodes[o]==v.win[0])return v.remove()})}),v.observerremover.observe(v.win[0].parentNode,{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(v.bind(v.win,z.isie&&!z.isie9?"propertychange":"DOMAttrModified",v.onAttributeChange),z.isie9&&v.win[0].attachEvent("onpropertychange",v.onAttributeChange),v.bind(v.win,"DOMNodeRemoved",function(e){e.target==v.win[0]&&v.remove()}))),!v.ispage&&v.opt.boxzoom&&v.bind(window,"resize",v.resizeZoom),v.istextarea&&(v.bind(v.win,"keydown",v.lazyResize),v.bind(v.win,"mouseup",v.lazyResize)),v.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var E=function(){v.iframexd=!1;var e;try{e="contentDocument"in this?this.contentDocument:this.contentWindow.document;e.domain}catch(o){v.iframexd=!0,e=!1}if(v.iframexd)return"console"in window&&console.log("NiceScroll error: policy restriced iframe"),!0;if(v.forcescreen=!0,v.isiframe&&(v.iframe={doc:a(e),html:v.doc.contents().find("html")[0],body:v.doc.contents().find("body")[0]},v.getContentSize=function(){return{w:Math.max(v.iframe.html.scrollWidth,v.iframe.body.scrollWidth),h:Math.max(v.iframe.html.scrollHeight,v.iframe.body.scrollHeight)}},v.docscroll=a(v.iframe.body)),!z.isios&&v.opt.iframeautoresize&&!v.isiframe){v.win.scrollTop(0),v.doc.height("");var t=Math.max(e.getElementsByTagName("html")[0].scrollHeight,e.body.scrollHeight);v.doc.height(t)}v.lazyResize(30),z.isie7&&v.css(a(v.iframe.html),{"overflow-y":"hidden"}),v.css(a(v.iframe.body),{"overflow-y":"hidden"}),z.isios&&v.haswrapper&&v.css(a(e.body),{"-webkit-transform":"translate3d(0,0,0)"}),"contentWindow"in this?v.bind(this.contentWindow,"scroll",v.onscroll):v.bind(e,"scroll",v.onscroll),v.opt.enablemousewheel&&v.mousewheel(e,v.onmousewheel),v.opt.enablekeyboard&&v.bind(e,z.isopera?"keypress":"keydown",v.onkeypress),(z.cantouch||v.opt.touchbehavior)&&(v.bind(e,"mousedown",v.ontouchstart),v.bind(e,"mousemove",function(e){return v.ontouchmove(e,!0)}),v.opt.grabcursorenabled&&z.cursorgrabvalue&&v.css(a(e.body),{cursor:z.cursorgrabvalue})),v.bind(e,"mouseup",v.ontouchend),v.zoom&&(v.opt.dblclickzoom&&v.bind(e,"dblclick",v.doZoom),v.ongesturezoom&&v.bind(e,"gestureend",v.ongesturezoom))};this.doc[0].readyState&&"complete"==this.doc[0].readyState&&setTimeout(function(){E.call(v.doc[0],!1)},500),v.bind(this.doc,"load",E)}},this.showCursor=function(e,o){if(v.cursortimeout&&(clearTimeout(v.cursortimeout),v.cursortimeout=0),v.rail){if(v.autohidedom&&(v.autohidedom.stop().css({opacity:v.opt.cursoropacitymax}),v.cursoractive=!0),v.rail.drag&&1==v.rail.drag.pt||("undefined"!=typeof e&&e!==!1&&(v.scroll.y=Math.round(1*e/v.scrollratio.y)),"undefined"!=typeof o&&(v.scroll.x=Math.round(1*o/v.scrollratio.x))),v.cursor.css({height:v.cursorheight,top:v.scroll.y}),v.cursorh){var t=v.hasreversehr?v.scrollvaluemaxw-v.scroll.x:v.scroll.x;!v.rail.align&&v.rail.visibility?v.cursorh.css({width:v.cursorwidth,left:t+v.rail.width}):v.cursorh.css({width:v.cursorwidth,left:t}),v.cursoractive=!0}v.zoom&&v.zoom.stop().css({opacity:v.opt.cursoropacitymax})}},this.hideCursor=function(e){v.cursortimeout||v.rail&&v.autohidedom&&(v.hasmousefocus&&"leave"==v.opt.autohidemode||(v.cursortimeout=setTimeout(function(){v.rail.active&&v.showonmouseevent||(v.autohidedom.stop().animate({opacity:v.opt.cursoropacitymin}),v.zoom&&v.zoom.stop().animate({opacity:v.opt.cursoropacitymin}),v.cursoractive=!1),v.cursortimeout=0},e||v.opt.hidecursordelay)))},this.noticeCursor=function(e,o,t){v.showCursor(o,t),v.rail.active||v.hideCursor(e)},this.getContentSize=v.ispage?function(){return{w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}}:v.haswrapper?function(){return{w:v.doc.outerWidth()+parseInt(v.win.css("paddingLeft"))+parseInt(v.win.css("paddingRight")),h:v.doc.outerHeight()+parseInt(v.win.css("paddingTop"))+parseInt(v.win.css("paddingBottom"))}}:function(){return{w:v.docscroll[0].scrollWidth,h:v.docscroll[0].scrollHeight}},this.onResize=function(e,o){if(!v||!v.win)return!1;if(!v.haswrapper&&!v.ispage){if("none"==v.win.css("display"))return v.visibility&&v.hideRail().hideRailHr(),!1;v.hidden||v.visibility||v.showRail().showRailHr()}var t=v.page.maxh,r=v.page.maxw,i={h:v.view.h,w:v.view.w};if(v.view={w:v.ispage?v.win.width():parseInt(v.win[0].clientWidth),h:v.ispage?v.win.height():parseInt(v.win[0].clientHeight)},v.page=o?o:v.getContentSize(),v.page.maxh=Math.max(0,v.page.h-v.view.h),v.page.maxw=Math.max(0,v.page.w-v.view.w),v.page.maxh==t&&v.page.maxw==r&&v.view.w==i.w&&v.view.h==i.h){if(v.ispage)return v;var n=v.win.offset();if(v.lastposition){var s=v.lastposition;if(s.top==n.top&&s.left==n.left)return v}v.lastposition=n}if(0==v.page.maxh?(v.hideRail(),v.scrollvaluemax=0,v.scroll.y=0,v.scrollratio.y=0,v.cursorheight=0,v.setScrollTop(0),v.rail&&(v.rail.scrollable=!1)):(v.page.maxh-=v.opt.railpadding.top+v.opt.railpadding.bottom,v.rail.scrollable=!0),0==v.page.maxw?(v.hideRailHr(),v.scrollvaluemaxw=0,v.scroll.x=0,v.scrollratio.x=0,v.cursorwidth=0,v.setScrollLeft(0),v.railh&&(v.railh.scrollable=!1)):(v.page.maxw-=v.opt.railpadding.left+v.opt.railpadding.right,v.railh&&(v.railh.scrollable=v.opt.horizrailenabled)),v.railslocked=v.locked||0==v.page.maxh&&0==v.page.maxw,v.railslocked)return v.ispage||v.updateScrollBar(v.view),!1;v.hidden||v.visibility?!v.railh||v.hidden||v.railh.visibility||v.showRailHr():v.showRail().showRailHr(),v.istextarea&&v.win.css("resize")&&"none"!=v.win.css("resize")&&(v.view.h-=20),v.cursorheight=Math.min(v.view.h,Math.round(v.view.h*(v.view.h/v.page.h))),v.cursorheight=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorheight),v.cursorwidth=Math.min(v.view.w,Math.round(v.view.w*(v.view.w/v.page.w))),v.cursorwidth=v.opt.cursorfixedheight?v.opt.cursorfixedheight:Math.max(v.opt.cursorminheight,v.cursorwidth),v.scrollvaluemax=v.view.h-v.cursorheight-v.cursor.hborder-(v.opt.railpadding.top+v.opt.railpadding.bottom),v.railh&&(v.railh.width=v.page.maxh>0?v.view.w-v.rail.width:v.view.w,v.scrollvaluemaxw=v.railh.width-v.cursorwidth-v.cursorh.wborder-(v.opt.railpadding.left+v.opt.railpadding.right)),v.ispage||v.updateScrollBar(v.view),v.scrollratio={x:v.page.maxw/v.scrollvaluemaxw,y:v.page.maxh/v.scrollvaluemax};var l=v.getScrollTop();return l>v.page.maxh?v.doScrollTop(v.page.maxh):(v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x)),v.cursoractive&&v.noticeCursor()),v.scroll.y&&0==v.getScrollTop()&&v.doScrollTo(Math.floor(v.scroll.y*v.scrollratio.y)),v},this.resize=v.onResize,this.hlazyresize=0,this.lazyResize=function(){return v.haswrapper||v.hide(),v.hlazyresize&&clearTimeout(v.hlazyresize),v.hlazyresize=setTimeout(function(){v.show().resize()},240),v},this.jqbind=function(e,o,t){v.events.push({e:e,n:o,f:t,q:!0}),a(e).bind(o,t)},this.mousewheel=function(e,o,t){var r="jquery"in e?e[0]:e;if("onwheel"in document.createElement("div"))v._bind(r,"wheel",o,t||!1);else{var i="undefined"!=typeof document.onmousewheel?"mousewheel":"DOMMouseScroll";p(r,i,o,t||!1),"DOMMouseScroll"==i&&p(r,"MozMousePixelScroll",o,t||!1)}},z.haseventlistener?(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,t,r||!1)},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.addEventListener(o,t,r||!1)},this.cancelEvent=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.cancelable&&e.preventDefault(),e.stopPropagation(),e.preventManipulation&&e.preventManipulation(),!1},this.stopPropagation=function(e){if(!e)return!1;var e=e.original?e.original:e;return e.stopPropagation(),!1},this._unbind=function(e,o,t,r){e.removeEventListener(o,t,r)}):(this.bind=function(e,o,t,r){var i="jquery"in e?e[0]:e;v._bind(i,o,function(e){return e=e||window.event||!1,e&&e.srcElement&&(e.target=e.srcElement),"pageY"in e||(e.pageX=e.clientX+document.documentElement.scrollLeft,e.pageY=e.clientY+document.documentElement.scrollTop),t.call(i,e)===!1||r===!1?v.cancelEvent(e):!0})},this._bind=function(e,o,t,r){v.events.push({e:e,n:o,f:t,b:r,q:!1}),e.attachEvent?e.attachEvent("on"+o,t):e["on"+o]=t},this.cancelEvent=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1):!1},this.stopPropagation=function(e){var e=window.event||!1;return e?(e.cancelBubble=!0,!1):!1},this._unbind=function(e,o,t){e.detachEvent?e.detachEvent("on"+o,t):e["on"+o]=!1}),this.unbindAll=function(){for(var e=0;e0)return t;o=o.parentNode?o.parentNode:!1}return!1},this.triggerScrollEnd=function(){if(v.onscrollend){var e=v.getScrollLeft(),o=v.getScrollTop(),t={type:"scrollend",current:{x:e,y:o},end:{x:e,y:o}};v.onscrollend.call(v,t)}},this.onmousewheel=function(e){if(!v.wheelprevented){if(v.railslocked)return v.debounced("checkunlock",v.resize,250),!0;if(v.rail.drag)return v.cancelEvent(e);if("auto"==v.opt.oneaxismousemode&&0!=e.deltaX&&(v.opt.oneaxismousemode=!1),v.opt.oneaxismousemode&&0==e.deltaX&&!v.rail.scrollable)return v.railh&&v.railh.scrollable?v.onmousewheelhr(e):!0;var o=+new Date,t=!1;if(v.opt.preservenativescrolling&&v.checkarea+60020?t:0},v.opt.smoothscroll?v.ishwscroll&&z.hastransition&&v.opt.usetransition&&v.opt.smoothscroll?(this.prepareTransition=function(e,o){var t=o?e>20?e:0:v.getTransitionSpeed(e),r=t?z.prefixstyle+"transform "+t+"ms ease-out":"";return v.lasttransitionstyle&&v.lasttransitionstyle==r||(v.lasttransitionstyle=r,v.doc.css(z.transitionstyle,r)),t},this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=v.getScrollTop(),i=v.getScrollLeft();return((v.newscrolly-r)*(o-r)<0||(v.newscrollx-i)*(e-i)<0)&&v.cancelScroll(),0==v.opt.bouncescroll&&(0>o?o=0:o>v.page.maxh&&(o=v.page.maxh),0>e?e=0:e>v.page.maxw&&(e=v.page.maxw)),v.scrollrunning&&e==v.newscrollx&&o==v.newscrolly?!1:(v.newscrolly=o,v.newscrollx=e,v.newscrollspeed=t||!1,v.timer?!1:void(v.timer=setTimeout(function(){var t=v.getScrollTop(),r=v.getScrollLeft(),i={};i.x=e-r,i.y=o-t,i.px=r,i.py=t;var n=Math.round(Math.sqrt(Math.pow(i.x,2)+Math.pow(i.y,2))),s=v.newscrollspeed&&v.newscrollspeed>1?v.newscrollspeed:v.getTransitionSpeed(n);if(v.newscrollspeed&&v.newscrollspeed<=1&&(s*=v.newscrollspeed),v.prepareTransition(s,!0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),s>0){if(!v.scrollrunning&&v.onscrollstart){var l={type:"scrollstart",current:{x:r,y:t},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:s};v.onscrollstart.call(v,l)}z.transitionend?v.scrollendtrapped||(v.scrollendtrapped=!0,v.bind(v.doc,z.transitionend,v.onScrollTransitionEnd,!1)):(v.scrollendtrapped&&clearTimeout(v.scrollendtrapped),v.scrollendtrapped=setTimeout(v.onScrollTransitionEnd,s));var a=t,c=r;v.timerscroll={bz:new k(a,v.newscrolly,s,0,0,.58,1),bh:new k(c,v.newscrollx,s,0,0,.58,1)},v.cursorfreezed||(v.timerscroll.tm=setInterval(function(){v.showCursor(v.getScrollTop(),v.getScrollLeft())},60))}v.synched("doScroll-set",function(){v.timer=0,v.scrollendtrapped&&(v.scrollrunning=!0),v.setScrollTop(v.newscrolly),v.setScrollLeft(v.newscrollx),v.scrollendtrapped||v.onScrollTransitionEnd()})},50)))},this.cancelScroll=function(){if(!v.scrollendtrapped)return!0;var e=v.getScrollTop(),o=v.getScrollLeft();return v.scrollrunning=!1,z.transitionend||clearTimeout(z.transitionend),v.scrollendtrapped=!1,v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.prepareTransition(0),v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1,v.cursorfreezed=!1,v.showCursor(e,o),v},this.onScrollTransitionEnd=function(){v.scrollendtrapped&&v._unbind(v.doc[0],z.transitionend,v.onScrollTransitionEnd),v.scrollendtrapped=!1,v.prepareTransition(0),v.timerscroll&&v.timerscroll.tm&&clearInterval(v.timerscroll.tm),v.timerscroll=!1;var e=v.getScrollTop(),o=v.getScrollLeft();return v.setScrollTop(e),v.railh&&v.setScrollLeft(o),v.noticeCursor(!1,e,o),v.cursorfreezed=!1,0>e?e=0:e>v.page.maxh&&(e=v.page.maxh),0>o?o=0:o>v.page.maxw&&(o=v.page.maxw),e!=v.newscrolly||o!=v.newscrollx?v.doScrollPos(o,e,v.opt.snapbackspeed):(v.onscrollend&&v.scrollrunning&&v.triggerScrollEnd(),void(v.scrollrunning=!1))}):(this.doScrollLeft=function(e,o){var t=v.scrollrunning?v.newscrolly:v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.scrollrunning?v.newscrollx:v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){function r(){if(v.cancelAnimationFrame)return!0;if(v.scrollrunning=!0,h=1-h)return v.timer=d(r)||1;var e,o,t=0,i=o=v.getScrollTop();if(v.dst.ay){i=v.bzscroll?v.dst.py+v.bzscroll.getNow()*v.dst.ay:v.newscrolly;var n=i-o;(0>n&&i0&&i>v.newscrolly)&&(i=v.newscrolly),v.setScrollTop(i),i==v.newscrolly&&(t=1)}else t=1;var s=e=v.getScrollLeft();if(v.dst.ax){s=v.bzscroll?v.dst.px+v.bzscroll.getNow()*v.dst.ax:v.newscrollx;var n=s-e;(0>n&&s0&&s>v.newscrollx)&&(s=v.newscrollx),v.setScrollLeft(s),s==v.newscrollx&&(t+=1)}else t+=1;2==t?(v.timer=0,v.cursorfreezed=!1,v.bzscroll=!1,v.scrollrunning=!1,0>i?i=0:i>v.page.maxh&&(i=v.page.maxh),0>s?s=0:s>v.page.maxw&&(s=v.page.maxw),s!=v.newscrollx||i!=v.newscrolly?v.doScrollPos(s,i):v.onscrollend&&v.triggerScrollEnd()):v.timer=d(r)||1}var o="undefined"==typeof o||o===!1?v.getScrollTop(!0):o;if(v.timer&&v.newscrolly==o&&v.newscrollx==e)return!0;v.timer&&u(v.timer),v.timer=0;var i=v.getScrollTop(),n=v.getScrollLeft();((v.newscrolly-i)*(o-i)<0||(v.newscrollx-n)*(e-n)<0)&&v.cancelScroll(),v.newscrolly=o,v.newscrollx=e,v.bouncescroll&&v.rail.visibility||(v.newscrolly<0?v.newscrolly=0:v.newscrolly>v.page.maxh&&(v.newscrolly=v.page.maxh)),v.bouncescroll&&v.railh.visibility||(v.newscrollx<0?v.newscrollx=0:v.newscrollx>v.page.maxw&&(v.newscrollx=v.page.maxw)),v.dst={},v.dst.x=e-n,v.dst.y=o-i,v.dst.px=n,v.dst.py=i;var s=Math.round(Math.sqrt(Math.pow(v.dst.x,2)+Math.pow(v.dst.y,2)));v.dst.ax=v.dst.x/s,v.dst.ay=v.dst.y/s;var l=0,a=s;0==v.dst.x?(l=i,a=o,v.dst.ay=1,v.dst.py=0):0==v.dst.y&&(l=n,a=e,v.dst.ax=1,v.dst.px=0);var c=v.getTransitionSpeed(s);if(t&&1>=t&&(c*=t),c>0?v.bzscroll=v.bzscroll?v.bzscroll.update(a,c):new k(l,a,c,0,1,0,1):v.bzscroll=!1,!v.timer){(i==v.page.maxh&&o>=v.page.maxh||n==v.page.maxw&&e>=v.page.maxw)&&v.checkContentSize();var h=1;if(v.cancelAnimationFrame=!1,v.timer=1,v.onscrollstart&&!v.scrollrunning){var p={type:"scrollstart",current:{x:n,y:i},request:{x:e,y:o},end:{x:v.newscrollx,y:v.newscrolly},speed:c};v.onscrollstart.call(v,p)}r(),(i==v.page.maxh&&o>=i||n==v.page.maxw&&e>=n)&&v.checkContentSize(),v.noticeCursor()}},this.cancelScroll=function(){return v.timer&&u(v.timer),v.timer=0,v.bzscroll=!1,v.scrollrunning=!1,v}):(this.doScrollLeft=function(e,o){var t=v.getScrollTop();v.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=v.getScrollLeft();v.doScrollPos(t,e,o)},this.doScrollPos=function(e,o){var t=e>v.page.maxw?v.page.maxw:e;0>t&&(t=0);var r=o>v.page.maxh?v.page.maxh:o;0>r&&(r=0),v.synched("scroll",function(){v.setScrollTop(r),v.setScrollLeft(t)})},this.cancelScroll=function(){}),this.doScrollBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.y-e)*v.scrollratio.y);else{var r=v.timer?v.newscrolly:v.getScrollTop(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.h/2);-i>t?t=-i:t>v.page.maxh+i&&(t=v.page.maxh+i)}v.cursorfreezed=!1;var n=v.getScrollTop(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxh&&n>=v.page.maxh?(v.checkContentSize(),v.noticeCursor()):void v.doScrollTop(t)},this.doScrollLeftBy=function(e,o){var t=0;if(o)t=Math.floor((v.scroll.x-e)*v.scrollratio.x);else{var r=v.timer?v.newscrollx:v.getScrollLeft(!0);t=r-e}if(v.bouncescroll){var i=Math.round(v.view.w/2);-i>t?t=-i:t>v.page.maxw+i&&(t=v.page.maxw+i)}v.cursorfreezed=!1;var n=v.getScrollLeft(!0);return 0>t&&0>=n?v.noticeCursor():t>v.page.maxw&&n>=v.page.maxw?v.noticeCursor():void v.doScrollLeft(t)},this.doScrollTo=function(e,o){var t=o?Math.round(e*v.scrollratio.y):e;0>t?t=0:t>v.page.maxh&&(t=v.page.maxh),v.cursorfreezed=!1,v.doScrollTop(e)},this.checkContentSize=function(){var e=v.getContentSize();(e.h!=v.page.h||e.w!=v.page.w)&&v.resize(!1,e)},v.onscroll=function(){v.rail.drag||v.cursorfreezed||v.synched("scroll",function(){v.scroll.y=Math.round(v.getScrollTop()*(1/v.scrollratio.y)),v.railh&&(v.scroll.x=Math.round(v.getScrollLeft()*(1/v.scrollratio.x))),v.noticeCursor()})},v.bind(v.docscroll,"scroll",v.onscroll),this.doZoomIn=function(e){if(!v.zoomactive){v.zoomactive=!0,v.zoomrestore={style:{}};var o=["position","top","left","zIndex","backgroundColor","marginTop","marginBottom","marginLeft","marginRight"],t=v.win[0].style;for(var r in o){var i=o[r];v.zoomrestore.style[i]="undefined"!=typeof t[i]?t[i]:""}v.zoomrestore.style.width=v.win.css("width"),v.zoomrestore.style.height=v.win.css("height"),v.zoomrestore.padding={w:v.win.outerWidth()-v.win.width(),h:v.win.outerHeight()-v.win.height()},z.isios4&&(v.zoomrestore.scrollTop=a(window).scrollTop(),a(window).scrollTop(0)),v.win.css({position:z.isios4?"absolute":"fixed",top:0,left:0,"z-index":l+100,margin:"0px"});var n=v.win.css("backgroundColor");return(""==n||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(n))&&v.win.css("backgroundColor","#fff"),v.rail.css({"z-index":l+101}),v.zoom.css({"z-index":l+102}),v.zoom.css("backgroundPosition","0px -18px"),v.resizeZoom(),v.onzoomin&&v.onzoomin.call(v),v.cancelEvent(e)}},this.doZoomOut=function(e){return v.zoomactive?(v.zoomactive=!1,v.win.css("margin",""),v.win.css(v.zoomrestore.style),z.isios4&&a(window).scrollTop(v.zoomrestore.scrollTop),v.rail.css({"z-index":v.zindex}),v.zoom.css({"z-index":v.zindex}),v.zoomrestore=!1,v.zoom.css("backgroundPosition","0px 0px"),v.onResize(),v.onzoomout&&v.onzoomout.call(v),v.cancelEvent(e)):void 0},this.doZoom=function(e){return v.zoomactive?v.doZoomOut(e):v.doZoomIn(e)},this.resizeZoom=function(){if(v.zoomactive){var e=v.getScrollTop();v.win.css({width:a(window).width()-v.zoomrestore.padding.w+"px",height:a(window).height()-v.zoomrestore.padding.h+"px"}),v.onResize(),v.setScrollTop(Math.min(v.page.maxh,e))}},this.init(),a.nicescroll.push(this)},b=function(e){var o=this;this.nc=e,this.lastx=0,this.lasty=0,this.speedx=0,this.speedy=0,this.lasttime=0,this.steptime=0,this.snapx=!1,this.snapy=!1,this.demulx=0,this.demuly=0,this.lastscrollx=-1,this.lastscrolly=-1,this.chkx=0,this.chky=0,this.timer=0,this.time=function(){return+new Date},this.reset=function(e,t){o.stop();var r=o.time();o.steptime=0,o.lasttime=r,o.speedx=0,o.speedy=0,o.lastx=e,o.lasty=t,o.lastscrollx=-1,o.lastscrolly=-1},this.update=function(e,t){var r=o.time();o.steptime=r-o.lasttime,o.lasttime=r;var i=t-o.lasty,n=e-o.lastx,s=o.nc.getScrollTop(),l=o.nc.getScrollLeft(),a=s+i,c=l+n;o.snapx=0>c||c>o.nc.page.maxw,o.snapy=0>a||a>o.nc.page.maxh,o.speedx=n,o.speedy=i,o.lastx=e,o.lasty=t},this.stop=function(){o.nc.unsynched("domomentum2d"),o.timer&&clearTimeout(o.timer),o.timer=0,o.lastscrollx=-1,o.lastscrolly=-1},this.doSnapy=function(e,t){var r=!1;0>t?(t=0,r=!0):t>o.nc.page.maxh&&(t=o.nc.page.maxh,r=!0),0>e?(e=0,r=!0):e>o.nc.page.maxw&&(e=o.nc.page.maxw,r=!0),r?o.nc.doScrollPos(e,t,o.nc.opt.snapbackspeed):o.nc.triggerScrollEnd()},this.doMomentum=function(e){var t=o.time(),r=e?t+e:o.lasttime,i=o.nc.getScrollLeft(),n=o.nc.getScrollTop(),s=o.nc.page.maxh,l=o.nc.page.maxw;o.speedx=l>0?Math.min(60,o.speedx):0,o.speedy=s>0?Math.min(60,o.speedy):0;var a=r&&60>=t-r;(0>n||n>s||0>i||i>l)&&(a=!1);var c=o.speedy&&a?o.speedy:!1,d=o.speedx&&a?o.speedx:!1;if(c||d){var u=Math.max(16,o.steptime);if(u>50){var h=u/50;o.speedx*=h,o.speedy*=h,u=50}o.demulxy=0,o.lastscrollx=o.nc.getScrollLeft(),o.chkx=o.lastscrollx,o.lastscrolly=o.nc.getScrollTop(),o.chky=o.lastscrolly;var p=o.lastscrollx,m=o.lastscrolly,f=function(){var e=o.time()-t>600?.04:.02;o.speedx&&(p=Math.floor(o.lastscrollx-o.speedx*(1-o.demulxy)),o.lastscrollx=p,(0>p||p>l)&&(e=.1)),o.speedy&&(m=Math.floor(o.lastscrolly-o.speedy*(1-o.demulxy)),o.lastscrolly=m,(0>m||m>s)&&(e=.1)),o.demulxy=Math.min(1,o.demulxy+e),o.nc.synched("domomentum2d",function(){if(o.speedx){o.nc.getScrollLeft();o.chkx=p,o.nc.setScrollLeft(p)}if(o.speedy){o.nc.getScrollTop();o.chky=m,o.nc.setScrollTop(m)}o.timer||(o.nc.hideCursor(),o.doSnapy(p,m))}),o.demulxy<1?o.timer=setTimeout(f,u):(o.stop(),o.nc.hideCursor(),o.doSnapy(p,m))};f()}else o.doSnapy(o.nc.getScrollLeft(),o.nc.getScrollTop())}},y=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollTop():y.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollTop(parseInt(o)):y.call(e,o),this}},e.fn.scrollTop=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollTop():y.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollTop(parseInt(e)):y.call(a(this),e)})};var x=e.fn.scrollLeft;a.cssHooks.pageXOffset={get:function(e){var o=a.data(e,"__nicescroll")||!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(e)},set:function(e,o){var t=a.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollLeft(parseInt(o)):x.call(e,o),this}},e.fn.scrollLeft=function(e){if("undefined"==typeof e){var o=this[0]?a.data(this[0],"__nicescroll")||!1:!1;return o&&o.ishwscroll?o.getScrollLeft():x.call(this)}return this.each(function(){var o=a.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollLeft(parseInt(e)):x.call(a(this),e)})};var S=function(e){var o=this;if(this.length=0,this.name="nicescrollarray",this.each=function(e){for(var t=0,r=0;td?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);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(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e; +a.synched("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.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);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?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("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;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode= +"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;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 e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical? +!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched= +function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!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 void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g, +c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.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"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())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=k())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 y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.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*y+"px";a.doc.css(e.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(e.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*y+"px";a.doc.css(e.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&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(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 z={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){var g,c,e;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 f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0); +c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width", +!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=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(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=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(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}: +{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios|| +a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"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});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors"); +a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag= +!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex: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),e.cantouch&&a.opt.gesturezoom&& +(a.ongesturezoom=function(b){1.5b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius, +"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign? +0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)), +m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=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"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(), +a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.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=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().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(e.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,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/ +2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove", +function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.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&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.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;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.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(e.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(e.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=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&& +(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0a.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.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel= +function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original: +a;a.cancelable&&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,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,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(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,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,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1}); +this.unbindAll=function(){for(var b=0;b(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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(),f=a.getScrollLeft(), +k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0b?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 e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll? +a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&fa.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==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&&da.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>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)), +0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&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-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(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 e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},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 e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=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 e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+ +e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=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,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}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()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});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({zIndex:A+101});a.zoom.css({zIndex:A+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),e.isios4&&f(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:f(window).width()- +a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;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(f,h){c.stop();var d=c.time();c.steptime= +0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f, +h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy|| +f){var r=Math.max(16,c.steptime);50p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+ +d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h, +c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll? +c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray"; +this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k