{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/floating-form-labels/dist/floatingFormLabels.min.js","webpack:///./node_modules/jquery.nicescroll/jquery.nicescroll.js","webpack:///./node_modules/waypoints/lib/jquery.waypoints.js","webpack:///./node_modules/waypoints/lib/shortcuts/inview.js","webpack:///./node_modules/waypoints/lib/shortcuts/sticky.js","webpack:///./src/images sync \\.(gif|png|jpe","webpack:///./src/images/quotations.svg","webpack:///./src/js/partials/_constants.js","webpack:///./src/js/partials/_utilities/get-color-for-percentage.js","webpack:///./src/js/partials/breakpoints.js","webpack:///./src/js/partials/forms.js","webpack:///./src/js/partials/main-content-min-height.js","webpack:///./src/js/partials/main-content-waypoints.js","webpack:///./src/js/partials/nav.js","webpack:///./src/js/partials/screen-height.js","webpack:///./src/js/square360.main.js","webpack:///./src/vendors/breakpoints.js/breakpoints.js","webpack:///external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined","e","label","formElements","floatedClass","this","_name","el","options","extend","find","input","floated","_init","_toggleClass","_isFloated","_hasPlaceholder","on","focus.ffl","blur.ffl","change.ffl","trigger","attr","val","length","addClass","removeClass","destroy","off","removeData","fn","Array","slice","arguments","each","data","apply","jQuery","domfocus","mousefocus","tabindexcounter","ascrailcounter","globalmaxzindex","$","_doc","document","_win","window","$window","delegatevents","setAnimationFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","clearAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","id","anilasttime","callback","element","currTime","Date","getTime","timeToCall","Math","max","setTimeout","clearTimeout","ClsMutationObserver","MutationObserver","WebKitMutationObserver","now","_globaloptions","zindex","cursoropacitymin","cursoropacitymax","cursorcolor","cursorwidth","cursorborder","cursorborderradius","scrollspeed","mousescrollstep","touchbehavior","emulatetouch","hwacceleration","usetransition","boxzoom","dblclickzoom","gesturezoom","grabcursorenabled","autohidemode","background","iframeautoresize","cursorminheight","preservenativescrolling","railoffset","railhoffset","bouncescroll","spacebarenabled","railpadding","top","right","left","bottom","disableoutline","horizrailenabled","railalign","railvalign","enabletranslate3d","enablemousewheel","enablekeyboard","smoothscroll","sensitiverail","enablemouselockapi","cursorfixedheight","directionlockdeadzone","hidecursordelay","nativeparentscrolling","enablescrollonselection","overflowx","overflowy","cursordragspeed","rtlmode","cursordragontouch","oneaxismousemode","scriptpath","scripts","currentScript","getElementsByTagName","path","src","split","join","getScriptPath","preventmultitouchscrolling","disablemutationobserver","enableobserver","scrollbarid","browserdetected","ScrollMomentumClass2D","nc","self","lastx","lasty","speedx","speedy","lasttime","steptime","snapx","snapy","demulx","demuly","lastscrollx","lastscrolly","chkx","chky","timer","reset","px","py","stop","update","tm","dy","dx","sy","getScrollTop","sx","getScrollLeft","newy","newx","page","maxw","maxh","unsynched","doSnapy","nx","ny","snap","doScrollPos","opt","snapbackspeed","triggerScrollEnd","doMomentum","gp","sl","st","pageh","pagew","min","chk","xm","demulxy","onscroll","df","floor","synched","setScrollLeft","setScrollTop","hideCursor","_scrollTop","scrollTop","cssHooks","pageYOffset","elem","computed","extra","nice","ishwscroll","set","parseInt","_scrollLeft","scrollLeft","pageXOffset","NiceScrollArray","doms","push","eq","idx","a","lst","mplex","args","getNiceScroll","index","expr","pseudos","nicescroll","niceScroll","wrapper","_opt","ret","$this","wrp","doc","win","myopt","me","version","$body","iddoc","ispage","test","nodeName","haswrapper","docscroll","body","viewport","isfixed","iframe","isiframe","istextarea","forcescreen","canshowonmouseevent","onmousedown","onmouseup","onmousemove","onmousewheel","onkeypress","ongesturezoom","onclick","onscrollstart","onscrollend","onscrollcancel","onzoomin","onzoomout","view","scroll","x","y","scrollratio","cursorheight","scrollvaluemax","target","writingMode","css","isrtlmode","isvertical","scrollrunning","scrollmom","observer","observerremover","observerbody","getElementById","rail","cursor","cursorfreezed","selectiondrag","zoom","zoomactive","hasfocus","hasmousefocus","railslocked","locked","hidden","cursoractive","wheelprevented","nativescrollingarea","checkarea","events","saved","delaylist","synclist","lastdeltax","lastdeltay","detected","_el","createElement","_style","style","_agent","navigator","userAgent","_platform","platform","haspointerlock","isopera","isopera12","isoperamini","toString","operamini","isie","isieold","isie7","documentMode","isie8","isie9","isie10","isie11","ismsedge","ismozilla","iswebkit","ischrome","ischrome38","ischrome22","ischrome26","cantouch","documentElement","hasw3ctouch","PointerEvent","maxTouchPoints","msMaxTouchPoints","hasmstouch","MSPointerEvent","ismac","isios","isios4","isios7","isios8","isios10","Proxy","isandroid","haseventlistener","trstyle","hastransform","hastranslate3d","transitionstyle","hastransition","transitionend","check","prefixstyle","prefix","evs","cursorgrabvalue","detectCursorGrab","hasmousecapture","hasMutationObserver","getBrowserDetection","cap","canhwscroll","hasreversehr","istouchcapable","debounced","dd","h","pars","BezierClass","ed","spd","p1","p2","p3","p4","ts","getMatrixValues","tr","substr","replace","B2","B3","B4","getPos","getNow","pc","bz","translate","tx","ty","last","mtx","timerscroll","bh","notifyScrollEvent","createEvent","initUIEvent","niceevent","dispatchEvent","cxscrollleft","silent","abs","getTarget","srcElement","hasParent","parentNode","_convertBorderWidth","thin","medium","thick","getWidthToPixel","dom","prop","chkheight","wd","parseFloat","isNaN","brd","outerHeight","innerHeight","outerWidth","innerWidth","getDocumentScrollOffset","getOffset","ofs","offset","scrl","ww","vp","updateScrollBar","len","pos","height","railh","width","wpos","align","doRailClick","dbl","hr","pg","cur","cancelEvent","pageX","clientX","pageY","clientY","doScrollLeft","doScrollTop","doScrollLeftBy","doScrollBy","w","newscrolly","newscrollx","hasanimationframe","hascancelanimationframe","hasborderbox","init","getComputedStyle","_scrollyhidden","overflow-y","onScrollTransitionEnd","zIndex","nodeType","zi","parent","getZIndex","cont","-webkit-overflow-scrolling","position","float","background-color","border","background-clip","-webkit-border-radius","-moz-border-radius","border-radius","v","kp","append","visibility","scrollable","drag","doZoom","backgroundImage","backgroundPosition","scale","doZoomIn","doZoomOut","overflowX","backgroundColor","backgroundClip","cursorh","bd","margin-right","rlpos","getViewport","-webkit-tap-highlight-color","-webkit-touch-callout","autohidedom","opacity","add","hide","ontouchstart","pointerType","MSPOINTER_TYPE_MOUSE","hasmoving","tg","skp","type","stopPropagation","ismouse","changedTouches","le","original","screenX","screenY","pt","dl","getContentSize","ck","wp","lastmouseup","ip","setCapture","_onclick","preventclick","click","ontouchend","releaseCapture","moveneedoffset","locktollerance","ontouchmove","byiframe","targetTouches","ofy","ofx","fy","my","fx","mx","round","ay","ax","dz","triggerScrollStart","onpreventclick","prepareTransition","resetTransition","showCursor","selection","clear","ontouchstartCursor","hronly","cancelScroll","touches","csspointerevents","pointer-events","ontouchendCursor","ontouchmoveCursor","mw","scrollvaluemaxw","which","checkSelectionScroll","rt","hasTextSelected","getSelection","rangeCount","onselectionstart","onselectionend","onselectiondrag","touch-action","delegate","-ms-touch-action","preventDefault","jqbind","is","active","mousewheel","onmousewheelhr","tabindex","noticeCursor","event","tp","getAttribute","keyCode","ctrl","ctrlKey","shift","shiftKey","doScrollTo","onscreenresize","lazyResize","tmp","onAttributeChange","mutations","forEach","mut","hasClass","contains","show","clientWidth","clientHeight","observe","childList","subtree","characterData","attributes","attributeFilter","_dom","mo","removedNodes","remove","attachEvent","resizeZoom","oniframeload","iframexd","contentDocument","contentWindow","domain","console","log","html","contents","scrollWidth","scrollHeight","hh","-webkit-transform","readyState","cursortimeout","lx","showonmouseevent","animate","offsetWidth","offsetHeight","onResize","premaxh","premaxw","previewh","previeww","lastposition","hideRail","hideRailHr","showRail","showRailHr","resize","hlazyresize","_modernWheelEvent","bubble","_bind","deltaMode","deltaX","deltaZ","returnValue","stopImmediatePropagation","cancelBubble","wheelDeltaX","wheelDeltaY","deltaY","wheelDelta","detail","hiderails","hideRails","showRails","f","q","wname","passiveSupported","addEventListener","err","cancelable","preventManipulation","Event","constructor","Element","listener","useCapture","removeEventListener","detachEvent","cancel","de","concat","undelegate","splice","_unbind","b","passive","capture","bub","unbindAll","unbind","toggle","disconnect","scrollstart","scrollend","scrollcancel","zoomin","zoomout","isScrollable","ov","cx","cy","rx","ry","ms","info","current","request","end","speed","scrolldiry","scrolldirx","scrolltmr","scrollspd","doScrollRelative","chkscroll","iswheel","gap","dty","dtx","hasparentscrollingphase","execScrollWheel","hrend","nw","scrollmon","getTransitionSpeed","dif","lasttransitionstyle","istime","ex","trans","cursorupdate","running","start","loop","lft","dst","sqrt","scrollendtrapped","clearInterval","clipped","bzscroll","stp","relative","checkContentSize","zoomrestore","pp","padding","margin","bkg","z-index","NiceScroll","getjQuery","__webpack_provided_window_dot_jQuery","keyCounter","allWaypoints","Waypoint","Error","handler","Adapter","defaults","adapter","axis","horizontal","enabled","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","queueTrigger","direction","disable","enable","refresh","next","previous","invokeAll","method","allWaypointsArray","waypointKey","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","viewportWidth","adapters","continuous","bottom-in-view","right-in-view","requestAnimationFrameShim","contexts","oldWindowLoad","onload","didScroll","didResize","oldScroll","waypoints","vertical","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","isWindow","resizeHandler","handleResize","scrollHandler","handleScroll","isTouch","triggeredGroups","axes","newScroll","forward","backward","axisKey","wasBeforeTriggerPoint","nowAfterTriggerPoint","groupKey","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","contextModifier","wasBeforeScroll","nowAfterScroll","triggeredForward","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","indexOf","ceil","findByElement","contextId","byTriggerPoint","byReverseTriggerPoint","groups","clearTriggerQueues","triggerQueues","up","down","reverse","sort","inArray","first","JQueryAdapter","$element","createExtension","framework","overrides","isFunction","closest","Zepto","noop","Inview","createWaypoints","configs","config","createWaypoint","enter","entered","exit","exited","Sticky","createWrapper","originalHandler","proxy","shouldBeStuck","wrapperHeight","$wrapper","toggleClass","stuckClass","wrap","unwrap","map","./quotations.svg","webpackContext","req","webpackContextResolve","code","keys","resolve","COLORS_WHITE_TO_BLACK","pct","color","g","getColorForPercentage","colors","LOWER","UPPER","RANGE_PCT","PCT_LOWER","PCT_UPPER","COLOR","setBreakpoints","breakpoints","Drupal","behaviors","tweakForm","attach","settings","$FORM","floatingFormLabels","ready","$MAIN_CONTENT","SITE_HEADER_HEIGHT","SITE_FOOTER_HEIGHT","min-height","$WINDOW","$BODY","$BRAND_LOGO","$NAV_BAR","$NAV_TOGGLE","$HEADER","$MEDIA","LOGO_HEIGHT","NAV_BAR_OFFSET","scrollY","$NAV","$FOOTER","$NAV_COLORS","logoStyle","random","clearQueue","delay","queue","focus","mobileSizing","vh","setProperty","require","lastSize","interval","resetBreakpoints","distinct","setInterval","done","bp"],"mappings":"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","file":"js/square360.main.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/square360.main.js\");\n","/*!**************************************************************\n * Package: floating-form-labels\n * Version: v1.2.4\n * Built : Mon Jun 25 2018 16:43:50 GMT+0200 (CEST)\n * URL : https://github.com/Baedda/floating-form-labels\n ***************************************************************/\n\n!function(t,i){\"function\"==typeof define&&define.amd?define([\"jquery\"],i):\"object\"==typeof exports?i(require(\"jquery\")):i(t.jQuery)}(this,function(e){var l=\"floatingFormLabels\",s={label:\".ffl-label\",formElements:\"input, textarea\",floatedClass:\"ffl-floated\"};function o(t,i){this._name=l,this.el=e(t),this.options=e.extend({},s,i),this.label=this.el.find(this.options.label),this.input=this.el.find(this.options.formElements),this.floated=!1,this._init()}o.prototype={_init:function(){var t=this;this._toggleClass(this._isFloated()),this._hasPlaceholder()?this._toggleClass(!0):(this.input.on({\"focus.ffl\":function(){t._toggleClass(!0)},\"blur.ffl\":function(){t._toggleClass(t._isFloated())},\"change.ffl\":function(){t._toggleClass(!0)}}),this.el.trigger(\"init.ffl\",this))},_hasPlaceholder:function(){return void 0!==this.input.attr(\"placeholder\")},_isFloated:function(){return\"\"!==this.input.val()&&null!==this.input.val()&&0!==this.input.val().length},_toggleClass:function(t){t?(this.el.addClass(this.options.floatedClass),this.floated=!0):(this.el.removeClass(this.options.floatedClass),this.floated=!1),this.label.trigger(\"toggle.ffl\",this)},destroy:function(){this.input.off(\".ffl\"),this.el.removeClass(this.options.floatedClass).removeData(l)}},e.fn[l]=function(t){var i,s=Array.prototype.slice.call(arguments,1);return this.each(function(){e.data(this,l)?\"string\"==typeof t&&(i=e.data(this,l))[t].apply(i,s):e.data(this,l,new o(this,t))})}});","/* jquery.nicescroll\r\n-- version 3.7.6\r\n-- copyright 2017-07-19 InuYaksa*2017\r\n-- licensed under the MIT\r\n--\r\n-- https://nicescroll.areaaperta.com/\r\n-- https://github.com/inuyaksa/jquery.nicescroll\r\n--\r\n*/\r\n\r\n/* jshint expr: true */\r\n\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as anonymous module.\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS.\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Browser globals.\r\n factory(jQuery);\r\n }\r\n}(function (jQuery) {\r\n\r\n \"use strict\";\r\n\r\n // globals\r\n var domfocus = false,\r\n mousefocus = false,\r\n tabindexcounter = 0,\r\n ascrailcounter = 2000,\r\n globalmaxzindex = 0;\r\n\r\n var $ = jQuery, // sandbox\r\n _doc = document,\r\n _win = window,\r\n $window = $(_win);\r\n\r\n var delegatevents = [];\r\n\r\n // http://stackoverflow.com/questions/2161159/get-script-path\r\n function getScriptPath() {\r\n var scripts = _doc.currentScript || (function () { var s = _doc.getElementsByTagName('script'); return (s.length) ? s[s.length - 1] : false; })();\r\n var path = scripts ? scripts.src.split('?')[0] : '';\r\n return (path.split('/').length > 0) ? path.split('/').slice(0, -1).join('/') + '/' : '';\r\n }\r\n\r\n // based on code by Paul Irish https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ \r\n var setAnimationFrame = _win.requestAnimationFrame || _win.webkitRequestAnimationFrame || _win.mozRequestAnimationFrame || false;\r\n var clearAnimationFrame = _win.cancelAnimationFrame || _win.webkitCancelAnimationFrame || _win.mozCancelAnimationFrame || false;\r\n\r\n if (!setAnimationFrame) {\r\n var anilasttime = 0;\r\n setAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - anilasttime));\r\n var id = _win.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n anilasttime = currTime + timeToCall;\r\n return id;\r\n };\r\n clearAnimationFrame = function (id) {\r\n _win.clearTimeout(id);\r\n };\r\n } else {\r\n if (!_win.cancelAnimationFrame) clearAnimationFrame = function (id) { };\r\n }\r\n\r\n var ClsMutationObserver = _win.MutationObserver || _win.WebKitMutationObserver || false;\r\n\r\n var now = Date.now || function () { return new Date().getTime(); };\r\n\r\n var _globaloptions = {\r\n zindex: \"auto\",\r\n cursoropacitymin: 0,\r\n cursoropacitymax: 1,\r\n cursorcolor: \"#424242\",\r\n cursorwidth: \"6px\",\r\n cursorborder: \"1px solid #fff\",\r\n cursorborderradius: \"5px\",\r\n scrollspeed: 40,\r\n mousescrollstep: 9 * 3,\r\n touchbehavior: false, // deprecated\r\n emulatetouch: false, // replacing touchbehavior\r\n hwacceleration: true,\r\n usetransition: true,\r\n boxzoom: false,\r\n dblclickzoom: true,\r\n gesturezoom: true,\r\n grabcursorenabled: true,\r\n autohidemode: true,\r\n background: \"\",\r\n iframeautoresize: true,\r\n cursorminheight: 32,\r\n preservenativescrolling: true,\r\n railoffset: false,\r\n railhoffset: false,\r\n bouncescroll: true,\r\n spacebarenabled: true,\r\n railpadding: {\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n bottom: 0\r\n },\r\n disableoutline: true,\r\n horizrailenabled: true,\r\n railalign: \"right\",\r\n railvalign: \"bottom\",\r\n enabletranslate3d: true,\r\n enablemousewheel: true,\r\n enablekeyboard: true,\r\n smoothscroll: true,\r\n sensitiverail: true,\r\n enablemouselockapi: true,\r\n // cursormaxheight:false,\r\n cursorfixedheight: false,\r\n directionlockdeadzone: 6,\r\n hidecursordelay: 400,\r\n nativeparentscrolling: true,\r\n enablescrollonselection: true,\r\n overflowx: true,\r\n overflowy: true,\r\n cursordragspeed: 0.3,\r\n rtlmode: \"auto\",\r\n cursordragontouch: false,\r\n oneaxismousemode: \"auto\",\r\n scriptpath: getScriptPath(),\r\n preventmultitouchscrolling: true,\r\n disablemutationobserver: false,\r\n enableobserver: true,\r\n scrollbarid: false\r\n };\r\n\r\n var browserdetected = false;\r\n\r\n var getBrowserDetection = function () {\r\n\r\n if (browserdetected) return browserdetected;\r\n\r\n var _el = _doc.createElement('DIV'),\r\n _style = _el.style,\r\n _agent = navigator.userAgent,\r\n _platform = navigator.platform,\r\n d = {};\r\n\r\n d.haspointerlock = \"pointerLockElement\" in _doc || \"webkitPointerLockElement\" in _doc || \"mozPointerLockElement\" in _doc;\r\n\r\n d.isopera = (\"opera\" in _win); // 12-\r\n d.isopera12 = (d.isopera && (\"getUserMedia\" in navigator));\r\n d.isoperamini = (Object.prototype.toString.call(_win.operamini) === \"[object OperaMini]\");\r\n\r\n d.isie = ((\"all\" in _doc) && (\"attachEvent\" in _el) && !d.isopera); //IE10-\r\n d.isieold = (d.isie && !(\"msInterpolationMode\" in _style)); // IE6 and older\r\n d.isie7 = d.isie && !d.isieold && (!(\"documentMode\" in _doc) || (_doc.documentMode === 7));\r\n d.isie8 = d.isie && (\"documentMode\" in _doc) && (_doc.documentMode === 8);\r\n d.isie9 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 9);\r\n d.isie10 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 10);\r\n d.isie11 = (\"msRequestFullscreen\" in _el) && (_doc.documentMode >= 11); // IE11+\r\n\r\n d.ismsedge = (\"msCredentials\" in _win); // MS Edge 14+\r\n\r\n d.ismozilla = (\"MozAppearance\" in _style);\r\n\r\n d.iswebkit = !d.ismsedge && (\"WebkitAppearance\" in _style);\r\n\r\n d.ischrome = d.iswebkit && (\"chrome\" in _win);\r\n d.ischrome38 = (d.ischrome && (\"touchAction\" in _style)); // behavior changed in touch emulation \r\n d.ischrome22 = (!d.ischrome38) && (d.ischrome && d.haspointerlock);\r\n d.ischrome26 = (!d.ischrome38) && (d.ischrome && (\"transition\" in _style)); // issue with transform detection (maintain prefix)\r\n\r\n d.cantouch = (\"ontouchstart\" in _doc.documentElement) || (\"ontouchstart\" in _win); // with detection for Chrome Touch Emulation \r\n d.hasw3ctouch = (_win.PointerEvent || false) && ((navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)); //IE11 pointer events, following W3C Pointer Events spec\r\n d.hasmstouch = (!d.hasw3ctouch) && (_win.MSPointerEvent || false); // IE10 pointer events\r\n\r\n d.ismac = /^mac$/i.test(_platform);\r\n\r\n d.isios = d.cantouch && /iphone|ipad|ipod/i.test(_platform);\r\n d.isios4 = d.isios && !(\"seal\" in Object);\r\n d.isios7 = d.isios && (\"webkitHidden\" in _doc); //iOS 7+\r\n d.isios8 = d.isios && (\"hidden\" in _doc); //iOS 8+\r\n d.isios10 = d.isios && _win.Proxy; //iOS 10+\r\n\r\n d.isandroid = (/android/i.test(_agent));\r\n\r\n d.haseventlistener = (\"addEventListener\" in _el);\r\n\r\n d.trstyle = false;\r\n d.hastransform = false;\r\n d.hastranslate3d = false;\r\n d.transitionstyle = false;\r\n d.hastransition = false;\r\n d.transitionend = false;\r\n\r\n d.trstyle = \"transform\";\r\n d.hastransform = (\"transform\" in _style) || (function () {\r\n var check = ['msTransform', 'webkitTransform', 'MozTransform', 'OTransform'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (_style[check[a]] !== undefined) {\r\n d.trstyle = check[a];\r\n break;\r\n }\r\n }\r\n d.hastransform = (!!d.trstyle);\r\n })();\r\n\r\n if (d.hastransform) {\r\n _style[d.trstyle] = \"translate3d(1px,2px,3px)\";\r\n d.hastranslate3d = /translate3d/.test(_style[d.trstyle]);\r\n }\r\n\r\n d.transitionstyle = \"transition\";\r\n d.prefixstyle = '';\r\n d.transitionend = \"transitionend\";\r\n\r\n d.hastransition = (\"transition\" in _style) || (function () {\r\n\r\n d.transitionend = false;\r\n var check = ['webkitTransition', 'msTransition', 'MozTransition', 'OTransition', 'OTransition', 'KhtmlTransition'];\r\n var prefix = ['-webkit-', '-ms-', '-moz-', '-o-', '-o', '-khtml-'];\r\n var evs = ['webkitTransitionEnd', 'msTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd', 'KhtmlTransitionEnd'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (check[a] in _style) {\r\n d.transitionstyle = check[a];\r\n d.prefixstyle = prefix[a];\r\n d.transitionend = evs[a];\r\n break;\r\n }\r\n }\r\n if (d.ischrome26) d.prefixstyle = prefix[1]; // always use prefix\r\n\r\n d.hastransition = (d.transitionstyle);\r\n\r\n })();\r\n\r\n function detectCursorGrab() {\r\n var lst = ['grab', '-webkit-grab', '-moz-grab'];\r\n if ((d.ischrome && !d.ischrome38) || d.isie) lst = []; // force setting for IE returns false positive and chrome cursor bug\r\n for (var a = 0, l = lst.length; a < l; a++) {\r\n var p = lst[a];\r\n _style.cursor = p;\r\n if (_style.cursor == p) return p;\r\n }\r\n return 'url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize'; // thanks to https://cdnjs.com/ for the openhand cursor!\r\n }\r\n d.cursorgrabvalue = detectCursorGrab();\r\n\r\n d.hasmousecapture = (\"setCapture\" in _el);\r\n\r\n d.hasMutationObserver = (ClsMutationObserver !== false);\r\n\r\n _el = null; //memory released\r\n\r\n browserdetected = d;\r\n\r\n return d;\r\n };\r\n\r\n var NiceScrollClass = function (myopt, me) {\r\n\r\n var self = this;\r\n\r\n this.version = '3.7.6';\r\n this.name = 'nicescroll';\r\n\r\n this.me = me;\r\n\r\n var $body = $(\"body\");\r\n\r\n var opt = this.opt = {\r\n doc: $body,\r\n win: false\r\n };\r\n\r\n $.extend(opt, _globaloptions); // clone opts\r\n\r\n // Options for internal use\r\n opt.snapbackspeed = 80;\r\n\r\n if (myopt || false) {\r\n for (var a in opt) {\r\n if (myopt[a] !== undefined) opt[a] = myopt[a];\r\n }\r\n }\r\n\r\n if (opt.disablemutationobserver) ClsMutationObserver = false;\r\n\r\n this.doc = opt.doc;\r\n this.iddoc = (this.doc && this.doc[0]) ? this.doc[0].id || '' : '';\r\n this.ispage = /^BODY|HTML/.test((opt.win) ? opt.win[0].nodeName : this.doc[0].nodeName);\r\n this.haswrapper = (opt.win !== false);\r\n this.win = opt.win || (this.ispage ? $window : this.doc);\r\n this.docscroll = (this.ispage && !this.haswrapper) ? $window : this.win;\r\n this.body = $body;\r\n this.viewport = false;\r\n\r\n this.isfixed = false;\r\n\r\n this.iframe = false;\r\n this.isiframe = ((this.doc[0].nodeName == 'IFRAME') && (this.win[0].nodeName == 'IFRAME'));\r\n\r\n this.istextarea = (this.win[0].nodeName == 'TEXTAREA');\r\n\r\n this.forcescreen = false; //force to use screen position on events\r\n\r\n this.canshowonmouseevent = (opt.autohidemode != \"scroll\");\r\n\r\n // Events jump table \r\n this.onmousedown = false;\r\n this.onmouseup = false;\r\n this.onmousemove = false;\r\n this.onmousewheel = false;\r\n this.onkeypress = false;\r\n this.ongesturezoom = false;\r\n this.onclick = false;\r\n\r\n // Nicescroll custom events\r\n this.onscrollstart = false;\r\n this.onscrollend = false;\r\n this.onscrollcancel = false;\r\n\r\n this.onzoomin = false;\r\n this.onzoomout = false;\r\n\r\n // Let's start! \r\n this.view = false;\r\n this.page = false;\r\n\r\n this.scroll = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.scrollratio = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.cursorheight = 20;\r\n this.scrollvaluemax = 0;\r\n\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#svg-writing-mode\r\n if (opt.rtlmode == \"auto\") {\r\n var target = this.win[0] == _win ? this.body : this.win;\r\n var writingMode = target.css(\"writing-mode\") || target.css(\"-webkit-writing-mode\") || target.css(\"-ms-writing-mode\") || target.css(\"-moz-writing-mode\");\r\n\r\n if (writingMode == \"horizontal-tb\" || writingMode == \"lr-tb\" || writingMode === \"\") {\r\n this.isrtlmode = (target.css(\"direction\") == \"rtl\");\r\n this.isvertical = false;\r\n } else {\r\n this.isrtlmode = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\" || writingMode == \"rl-tb\");\r\n this.isvertical = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\");\r\n }\r\n } else {\r\n this.isrtlmode = (opt.rtlmode === true);\r\n this.isvertical = false;\r\n }\r\n // this.checkrtlmode = false;\r\n\r\n this.scrollrunning = false;\r\n\r\n this.scrollmom = false;\r\n\r\n this.observer = false; // observer div changes\r\n this.observerremover = false; // observer on parent for remove detection\r\n this.observerbody = false; // observer on body for position change\r\n\r\n if (opt.scrollbarid !== false) {\r\n this.id = opt.scrollbarid;\r\n } else {\r\n do {\r\n this.id = \"ascrail\" + (ascrailcounter++);\r\n } while (_doc.getElementById(this.id));\r\n }\r\n\r\n this.rail = false;\r\n this.cursor = false;\r\n this.cursorfreezed = false;\r\n this.selectiondrag = false;\r\n\r\n this.zoom = false;\r\n this.zoomactive = false;\r\n\r\n this.hasfocus = false;\r\n this.hasmousefocus = false;\r\n\r\n //this.visibility = true;\r\n this.railslocked = false; // locked by resize\r\n this.locked = false; // prevent lost of locked status sets by user\r\n this.hidden = false; // rails always hidden\r\n this.cursoractive = true; // user can interact with cursors\r\n\r\n this.wheelprevented = false; //prevent mousewheel event\r\n\r\n this.overflowx = opt.overflowx;\r\n this.overflowy = opt.overflowy;\r\n\r\n this.nativescrollingarea = false;\r\n this.checkarea = 0;\r\n\r\n this.events = []; // event list for unbind\r\n\r\n this.saved = {}; // style saved\r\n\r\n this.delaylist = {};\r\n this.synclist = {};\r\n\r\n this.lastdeltax = 0;\r\n this.lastdeltay = 0;\r\n\r\n this.detected = getBrowserDetection();\r\n\r\n var cap = $.extend({}, this.detected);\r\n\r\n this.canhwscroll = (cap.hastransform && opt.hwacceleration);\r\n this.ishwscroll = (this.canhwscroll && self.haswrapper);\r\n\r\n if (!this.isrtlmode) {\r\n this.hasreversehr = false;\r\n } else if (this.isvertical) { // RTL mode with reverse horizontal axis\r\n this.hasreversehr = !(cap.iswebkit || cap.isie || cap.isie11);\r\n } else {\r\n this.hasreversehr = !(cap.iswebkit || (cap.isie && !cap.isie10 && !cap.isie11));\r\n }\r\n\r\n this.istouchcapable = false; // desktop devices with touch screen support\r\n\r\n //## Check WebKit-based desktop with touch support\r\n //## + Firefox 18 nightly build (desktop) false positive (or desktop with touch support)\r\n\r\n if (!cap.cantouch && (cap.hasw3ctouch || cap.hasmstouch)) { // desktop device with multiple input\r\n this.istouchcapable = true;\r\n } else if (cap.cantouch && !cap.isios && !cap.isandroid && (cap.iswebkit || cap.ismozilla)) {\r\n this.istouchcapable = true;\r\n }\r\n\r\n //## disable MouseLock API on user request\r\n if (!opt.enablemouselockapi) {\r\n cap.hasmousecapture = false;\r\n cap.haspointerlock = false;\r\n }\r\n\r\n this.debounced = function (name, fn, tm) {\r\n if (!self) return;\r\n var dd = self.delaylist[name] || false;\r\n if (!dd) {\r\n self.delaylist[name] = {\r\n h: setAnimationFrame(function () {\r\n self.delaylist[name].fn.call(self);\r\n self.delaylist[name] = false;\r\n }, tm)\r\n };\r\n fn.call(self);\r\n }\r\n self.delaylist[name].fn = fn;\r\n };\r\n\r\n\r\n this.synched = function (name, fn) {\r\n if (self.synclist[name]) self.synclist[name] = fn;\r\n else {\r\n self.synclist[name] = fn;\r\n setAnimationFrame(function () {\r\n if (!self) return;\r\n self.synclist[name] && self.synclist[name].call(self);\r\n self.synclist[name] = null;\r\n });\r\n }\r\n };\r\n\r\n this.unsynched = function (name) {\r\n if (self.synclist[name]) self.synclist[name] = false;\r\n };\r\n\r\n this.css = function (el, pars) { // save & set\r\n for (var n in pars) {\r\n self.saved.css.push([el, n, el.css(n)]);\r\n el.css(n, pars[n]);\r\n }\r\n };\r\n\r\n this.scrollTop = function (val) {\r\n return (val === undefined) ? self.getScrollTop() : self.setScrollTop(val);\r\n };\r\n\r\n this.scrollLeft = function (val) {\r\n return (val === undefined) ? self.getScrollLeft() : self.setScrollLeft(val);\r\n };\r\n\r\n // derived by by Dan Pupius www.pupius.net\r\n var BezierClass = function (st, ed, spd, p1, p2, p3, p4) {\r\n\r\n this.st = st;\r\n this.ed = ed;\r\n this.spd = spd;\r\n\r\n this.p1 = p1 || 0;\r\n this.p2 = p2 || 1;\r\n this.p3 = p3 || 0;\r\n this.p4 = p4 || 1;\r\n\r\n this.ts = now();\r\n this.df = ed - st;\r\n };\r\n BezierClass.prototype = {\r\n B2: function (t) {\r\n return 3 * (1 - t) * (1 - t) * t;\r\n },\r\n B3: function (t) {\r\n return 3 * (1 - t) * t * t;\r\n },\r\n B4: function (t) {\r\n return t * t * t;\r\n },\r\n getPos: function () {\r\n return (now() - this.ts) / this.spd;\r\n },\r\n getNow: function () {\r\n var pc = (now() - this.ts) / this.spd;\r\n var bz = this.B2(pc) + this.B3(pc) + this.B4(pc);\r\n return (pc >= 1) ? this.ed : this.st + (this.df * bz) | 0;\r\n },\r\n update: function (ed, spd) {\r\n this.st = this.getNow();\r\n this.ed = ed;\r\n this.spd = spd;\r\n this.ts = now();\r\n this.df = this.ed - this.st;\r\n return this;\r\n }\r\n };\r\n\r\n //derived from http://stackoverflow.com/questions/11236090/\r\n function getMatrixValues() {\r\n var tr = self.doc.css(cap.trstyle);\r\n if (tr && (tr.substr(0, 6) == \"matrix\")) {\r\n return tr.replace(/^.*\\((.*)\\)$/g, \"$1\").replace(/px/g, '').split(/, +/);\r\n }\r\n return false;\r\n }\r\n\r\n if (this.ishwscroll) { // hw accelerated scroll\r\n\r\n this.doc.translate = {\r\n x: 0,\r\n y: 0,\r\n tx: \"0px\",\r\n ty: \"0px\"\r\n };\r\n\r\n //this one can help to enable hw accel on ios6 http://indiegamr.com/ios6-html-hardware-acceleration-changes-and-how-to-fix-them/\r\n if (cap.hastranslate3d && cap.isios) this.doc.css(\"-webkit-backface-visibility\", \"hidden\"); // prevent flickering http://stackoverflow.com/questions/3461441/ \r\n\r\n this.getScrollTop = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[13] : -mtx[5]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bz) return self.timerscroll.bz.getNow();\r\n }\r\n return self.doc.translate.y;\r\n };\r\n\r\n this.getScrollLeft = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[12] : -mtx[4]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bh) return self.timerscroll.bh.getNow();\r\n }\r\n return self.doc.translate.x;\r\n };\r\n\r\n this.notifyScrollEvent = function (el) {\r\n var e = _doc.createEvent(\"UIEvents\");\r\n e.initUIEvent(\"scroll\", false, false, _win, 1);\r\n e.niceevent = true;\r\n el.dispatchEvent(e);\r\n };\r\n\r\n var cxscrollleft = (this.isrtlmode) ? 1 : -1;\r\n\r\n if (cap.hastranslate3d && opt.enabletranslate3d) {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n } else {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n }\r\n } else { // native scroll\r\n\r\n this.getScrollTop = function () {\r\n return self.docscroll.scrollTop();\r\n };\r\n this.setScrollTop = function (val) {\r\n self.docscroll.scrollTop(val);\r\n };\r\n\r\n this.getScrollLeft = function () {\r\n var val;\r\n if (!self.hasreversehr) {\r\n val = self.docscroll.scrollLeft();\r\n } else if (self.detected.ismozilla) {\r\n val = self.page.maxw - Math.abs(self.docscroll.scrollLeft());\r\n } else {\r\n val = self.page.maxw - self.docscroll.scrollLeft();\r\n }\r\n return val;\r\n };\r\n this.setScrollLeft = function (val) {\r\n return setTimeout(function () {\r\n if (!self) return;\r\n if (self.hasreversehr) {\r\n if (self.detected.ismozilla) {\r\n val = -(self.page.maxw - val);\r\n } else {\r\n val = self.page.maxw - val;\r\n }\r\n }\r\n return self.docscroll.scrollLeft(val);\r\n }, 1);\r\n };\r\n }\r\n\r\n this.getTarget = function (e) {\r\n if (!e) return false;\r\n if (e.target) return e.target;\r\n if (e.srcElement) return e.srcElement;\r\n return false;\r\n };\r\n\r\n this.hasParent = function (e, id) {\r\n if (!e) return false;\r\n var el = e.target || e.srcElement || e || false;\r\n while (el && el.id != id) {\r\n el = el.parentNode || false;\r\n }\r\n return (el !== false);\r\n };\r\n\r\n function getZIndex() {\r\n var dom = self.win;\r\n if (\"zIndex\" in dom) return dom.zIndex(); // use jQuery UI method when available\r\n while (dom.length > 0) {\r\n if (dom[0].nodeType == 9) return false;\r\n var zi = dom.css('zIndex');\r\n if (!isNaN(zi) && zi !== 0) return parseInt(zi);\r\n dom = dom.parent();\r\n }\r\n return false;\r\n }\r\n\r\n //inspired by http://forum.jquery.com/topic/width-includes-border-width-when-set-to-thin-medium-thick-in-ie\r\n var _convertBorderWidth = {\r\n \"thin\": 1,\r\n \"medium\": 3,\r\n \"thick\": 5\r\n };\r\n\r\n function getWidthToPixel(dom, prop, chkheight) {\r\n var wd = dom.css(prop);\r\n var px = parseFloat(wd);\r\n if (isNaN(px)) {\r\n px = _convertBorderWidth[wd] || 0;\r\n var brd = (px == 3) ? ((chkheight) ? (self.win.outerHeight() - self.win.innerHeight()) : (self.win.outerWidth() - self.win.innerWidth())) : 1; //DON'T TRUST CSS\r\n if (self.isie8 && px) px += 1;\r\n return (brd) ? px : 0;\r\n }\r\n return px;\r\n }\r\n\r\n this.getDocumentScrollOffset = function () {\r\n return {\r\n top: _win.pageYOffset || _doc.documentElement.scrollTop,\r\n left: _win.pageXOffset || _doc.documentElement.scrollLeft\r\n };\r\n };\r\n\r\n this.getOffset = function () {\r\n if (self.isfixed) {\r\n var ofs = self.win.offset(); // fix Chrome auto issue (when right/bottom props only)\r\n var scrl = self.getDocumentScrollOffset();\r\n ofs.top -= scrl.top;\r\n ofs.left -= scrl.left;\r\n return ofs;\r\n }\r\n var ww = self.win.offset();\r\n if (!self.viewport) return ww;\r\n var vp = self.viewport.offset();\r\n return {\r\n top: ww.top - vp.top,\r\n left: ww.left - vp.left\r\n };\r\n };\r\n\r\n this.updateScrollBar = function (len) {\r\n var pos, off;\r\n if (self.ishwscroll) {\r\n self.rail.css({\r\n height: self.win.innerHeight() - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n if (self.railh) self.railh.css({\r\n width: self.win.innerWidth() - (opt.railpadding.left + opt.railpadding.right)\r\n });\r\n } else {\r\n var wpos = self.getOffset();\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left - (opt.railpadding.left + opt.railpadding.right)\r\n };\r\n pos.top += getWidthToPixel(self.win, 'border-top-width', true);\r\n pos.left += (self.rail.align) ? self.win.outerWidth() - getWidthToPixel(self.win, 'border-right-width') - self.rail.width : getWidthToPixel(self.win, 'border-left-width');\r\n\r\n off = opt.railoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n\r\n if (!self.railslocked) self.rail.css({\r\n top: pos.top,\r\n left: pos.left,\r\n height: ((len) ? len.h : self.win.innerHeight()) - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n\r\n if (self.zoom) {\r\n self.zoom.css({\r\n top: pos.top + 1,\r\n left: (self.rail.align == 1) ? pos.left - 20 : pos.left + self.rail.width + 4\r\n });\r\n }\r\n\r\n if (self.railh && !self.railslocked) {\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left\r\n };\r\n off = opt.railhoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n 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);\r\n var x = pos.left + getWidthToPixel(self.win, 'border-left-width');\r\n self.railh.css({\r\n top: y - (opt.railpadding.top + opt.railpadding.bottom),\r\n left: x,\r\n width: self.railh.width\r\n });\r\n }\r\n\r\n }\r\n };\r\n\r\n this.doRailClick = function (e, dbl, hr) {\r\n var fn, pg, cur, pos;\r\n\r\n if (self.railslocked) return;\r\n\r\n self.cancelEvent(e);\r\n\r\n if (!(\"pageY\" in e)) {\r\n e.pageX = e.clientX + _doc.documentElement.scrollLeft;\r\n e.pageY = e.clientY + _doc.documentElement.scrollTop;\r\n }\r\n\r\n if (dbl) {\r\n fn = (hr) ? self.doScrollLeft : self.doScrollTop;\r\n 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);\r\n self.unsynched(\"relativexy\");\r\n fn(cur|0);\r\n } else {\r\n fn = (hr) ? self.doScrollLeftBy : self.doScrollBy;\r\n cur = (hr) ? self.scroll.x : self.scroll.y;\r\n pos = (hr) ? e.pageX - self.railh.offset().left : e.pageY - self.rail.offset().top;\r\n pg = (hr) ? self.view.w : self.view.h;\r\n fn((cur >= pos) ? pg : -pg);\r\n }\r\n\r\n };\r\n\r\n self.newscrolly = self.newscrollx = 0;\r\n\r\n self.hasanimationframe = (\"requestAnimationFrame\" in _win);\r\n self.hascancelanimationframe = (\"cancelAnimationFrame\" in _win);\r\n\r\n self.hasborderbox = false;\r\n\r\n this.init = function () {\r\n\r\n self.saved.css = [];\r\n\r\n if (cap.isoperamini) return true; // SORRY, DO NOT WORK!\r\n if (cap.isandroid && !(\"hidden\" in _doc)) return true; // Android 3- SORRY, DO NOT WORK!\r\n\r\n opt.emulatetouch = opt.emulatetouch || opt.touchbehavior; // mantain compatibility with \"touchbehavior\" \r\n\r\n self.hasborderbox = _win.getComputedStyle && (_win.getComputedStyle(_doc.body)['box-sizing'] === \"border-box\");\r\n\r\n var _scrollyhidden = { 'overflow-y': 'hidden' };\r\n if (cap.isie11 || cap.isie10) _scrollyhidden['-ms-overflow-style'] = 'none'; // IE 10 & 11 is always a world apart!\r\n\r\n if (self.ishwscroll) {\r\n this.doc.css(cap.transitionstyle, cap.prefixstyle + 'transform 0ms ease-out');\r\n if (cap.transitionend) self.bind(self.doc, cap.transitionend, self.onScrollTransitionEnd, false); //I have got to do something usefull!!\r\n }\r\n\r\n self.zindex = \"auto\";\r\n if (!self.ispage && opt.zindex == \"auto\") {\r\n self.zindex = getZIndex() || \"auto\";\r\n } else {\r\n self.zindex = opt.zindex;\r\n }\r\n\r\n if (!self.ispage && self.zindex != \"auto\" && self.zindex > globalmaxzindex) {\r\n globalmaxzindex = self.zindex;\r\n }\r\n\r\n if (self.isie && self.zindex === 0 && opt.zindex == \"auto\") { // fix IE auto == 0\r\n self.zindex = \"auto\";\r\n }\r\n\r\n if (!self.ispage || !cap.isieold) {\r\n\r\n var cont = self.docscroll;\r\n if (self.ispage) cont = (self.haswrapper) ? self.win : self.doc;\r\n\r\n self.css(cont, _scrollyhidden);\r\n\r\n if (self.ispage && (cap.isie11 || cap.isie)) { // IE 7-11\r\n self.css($(\"html\"), _scrollyhidden);\r\n }\r\n\r\n if (cap.isios && !self.ispage && !self.haswrapper) self.css($body, {\r\n \"-webkit-overflow-scrolling\": \"touch\"\r\n }); //force hw acceleration\r\n\r\n var cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"relative\",\r\n top: 0,\r\n \"float\": \"right\",\r\n width: opt.cursorwidth,\r\n height: 0,\r\n 'background-color': opt.cursorcolor,\r\n border: opt.cursorborder,\r\n 'background-clip': 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursor = cursor;\r\n\r\n var rail = $(_doc.createElement('div'));\r\n rail.attr('id', self.id);\r\n rail.addClass('nicescroll-rails nicescroll-rails-vr');\r\n\r\n var v, a, kp = [\"left\", \"right\", \"top\", \"bottom\"]; //**\r\n for (var n in kp) {\r\n a = kp[n];\r\n v = opt.railpadding[a] || 0;\r\n v && rail.css(\"padding-\" + a, v + \"px\");\r\n }\r\n\r\n rail.append(cursor);\r\n\r\n rail.width = Math.max(parseFloat(opt.cursorwidth), cursor.outerWidth());\r\n rail.css({\r\n width: rail.width + \"px\",\r\n zIndex: self.zindex,\r\n background: opt.background,\r\n cursor: \"default\"\r\n });\r\n\r\n rail.visibility = true;\r\n rail.scrollable = true;\r\n\r\n rail.align = (opt.railalign == \"left\") ? 0 : 1;\r\n\r\n self.rail = rail;\r\n\r\n self.rail.drag = false;\r\n\r\n var zoom = false;\r\n if (opt.boxzoom && !self.ispage && !cap.isieold) {\r\n zoom = _doc.createElement('div');\r\n\r\n self.bind(zoom, \"click\", self.doZoom);\r\n self.bind(zoom, \"mouseenter\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymax);\r\n });\r\n self.bind(zoom, \"mouseleave\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymin);\r\n });\r\n\r\n self.zoom = $(zoom);\r\n self.zoom.css({\r\n cursor: \"pointer\",\r\n zIndex: self.zindex,\r\n backgroundImage: 'url(' + opt.scriptpath + 'zoomico.png)',\r\n height: 18,\r\n width: 18,\r\n backgroundPosition: '0 0'\r\n });\r\n if (opt.dblclickzoom) self.bind(self.win, \"dblclick\", self.doZoom);\r\n if (cap.cantouch && opt.gesturezoom) {\r\n self.ongesturezoom = function (e) {\r\n if (e.scale > 1.5) self.doZoomIn(e);\r\n if (e.scale < 0.8) self.doZoomOut(e);\r\n return self.cancelEvent(e);\r\n };\r\n self.bind(self.win, \"gestureend\", self.ongesturezoom);\r\n }\r\n }\r\n\r\n // init HORIZ\r\n\r\n self.railh = false;\r\n var railh;\r\n\r\n if (opt.horizrailenabled) {\r\n\r\n self.css(cont, {\r\n overflowX: 'hidden'\r\n });\r\n\r\n cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"absolute\",\r\n top: 0,\r\n height: opt.cursorwidth,\r\n width: 0,\r\n backgroundColor: opt.cursorcolor,\r\n border: opt.cursorborder,\r\n backgroundClip: 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n if (cap.isieold) cursor.css('overflow', 'hidden'); //IE6 horiz scrollbar issue\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursorh = cursor;\r\n\r\n railh = $(_doc.createElement('div'));\r\n railh.attr('id', self.id + '-hr');\r\n railh.addClass('nicescroll-rails nicescroll-rails-hr');\r\n railh.height = Math.max(parseFloat(opt.cursorwidth), cursor.outerHeight());\r\n railh.css({\r\n height: railh.height + \"px\",\r\n 'zIndex': self.zindex,\r\n \"background\": opt.background\r\n });\r\n\r\n railh.append(cursor);\r\n\r\n railh.visibility = true;\r\n railh.scrollable = true;\r\n\r\n railh.align = (opt.railvalign == \"top\") ? 0 : 1;\r\n\r\n self.railh = railh;\r\n\r\n self.railh.drag = false;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n\r\n rail.css({\r\n position: \"fixed\",\r\n top: 0,\r\n height: \"100%\"\r\n });\r\n\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n\r\n self.body.append(rail);\r\n if (self.railh) {\r\n railh.css({\r\n position: \"fixed\",\r\n left: 0,\r\n width: \"100%\"\r\n });\r\n\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n\r\n self.body.append(railh);\r\n }\r\n } else {\r\n if (self.ishwscroll) {\r\n if (self.win.css('position') == 'static') self.css(self.win, { 'position': 'relative' });\r\n var bd = (self.win[0].nodeName == 'HTML') ? self.body : self.win;\r\n $(bd).scrollTop(0).scrollLeft(0); // fix rail position if content already scrolled\r\n if (self.zoom) {\r\n self.zoom.css({\r\n position: \"absolute\",\r\n top: 1,\r\n right: 0,\r\n \"margin-right\": rail.width + 4\r\n });\r\n bd.append(self.zoom);\r\n }\r\n rail.css({\r\n position: \"absolute\",\r\n top: 0\r\n });\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n bd.append(rail);\r\n if (railh) {\r\n railh.css({\r\n position: \"absolute\",\r\n left: 0,\r\n bottom: 0\r\n });\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n bd.append(railh);\r\n }\r\n } else {\r\n self.isfixed = (self.win.css(\"position\") == \"fixed\");\r\n var rlpos = (self.isfixed) ? \"fixed\" : \"absolute\";\r\n\r\n if (!self.isfixed) self.viewport = self.getViewport(self.win[0]);\r\n if (self.viewport) {\r\n self.body = self.viewport;\r\n if (!(/fixed|absolute/.test(self.viewport.css(\"position\")))) self.css(self.viewport, {\r\n \"position\": \"relative\"\r\n });\r\n }\r\n\r\n rail.css({\r\n position: rlpos\r\n });\r\n if (self.zoom) self.zoom.css({\r\n position: rlpos\r\n });\r\n self.updateScrollBar();\r\n self.body.append(rail);\r\n if (self.zoom) self.body.append(self.zoom);\r\n if (self.railh) {\r\n railh.css({\r\n position: rlpos\r\n });\r\n self.body.append(railh);\r\n }\r\n }\r\n\r\n if (cap.isios) self.css(self.win, {\r\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\r\n '-webkit-touch-callout': 'none'\r\n }); // prevent grey layer on click\r\n\r\n if (opt.disableoutline) {\r\n if (cap.isie) self.win.attr(\"hideFocus\", \"true\"); // IE, prevent dotted rectangle on focused div\r\n if (cap.iswebkit) self.win.css('outline', 'none'); // Webkit outline\r\n }\r\n\r\n }\r\n\r\n if (opt.autohidemode === false) {\r\n self.autohidedom = false;\r\n self.rail.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n if (self.railh) self.railh.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n } else if ((opt.autohidemode === true) || (opt.autohidemode === \"leave\")) {\r\n self.autohidedom = $().add(self.rail);\r\n if (cap.isie8) self.autohidedom = self.autohidedom.add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n if (self.railh && cap.isie8) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"scroll\") {\r\n self.autohidedom = $().add(self.rail);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n } else if (opt.autohidemode == \"cursor\") {\r\n self.autohidedom = $().add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"hidden\") {\r\n self.autohidedom = false;\r\n self.hide();\r\n self.railslocked = false;\r\n }\r\n\r\n if (cap.cantouch || self.istouchcapable || opt.emulatetouch || cap.hasmstouch) {\r\n\r\n self.scrollmom = new ScrollMomentumClass2D(self);\r\n\r\n var delayedclick = null;\r\n\r\n self.ontouchstart = function (e) {\r\n\r\n if (self.locked) return false;\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false; // need test on surface!!\r\n\r\n self.hasmoving = false;\r\n\r\n if (self.scrollmom.timer) {\r\n self.triggerScrollEnd();\r\n self.scrollmom.stop();\r\n }\r\n\r\n if (!self.railslocked) {\r\n var tg = self.getTarget(e);\r\n\r\n if (tg) {\r\n var skp = (/INPUT/i.test(tg.nodeName)) && (/range/i.test(tg.type));\r\n if (skp) return self.stopPropagation(e);\r\n }\r\n\r\n var ismouse = (e.type === \"mousedown\");\r\n\r\n if (!(\"clientX\" in e) && (\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n if (self.forcescreen) {\r\n var le = e;\r\n e = {\r\n \"original\": (e.original) ? e.original : e\r\n };\r\n e.clientX = le.screenX;\r\n e.clientY = le.screenY;\r\n }\r\n\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n st: self.getScrollTop(),\r\n sl: self.getScrollLeft(),\r\n pt: 2,\r\n dl: false,\r\n tg: tg\r\n };\r\n\r\n if (self.ispage || !opt.directionlockdeadzone) {\r\n\r\n self.rail.drag.dl = \"f\";\r\n\r\n } else {\r\n\r\n var view = {\r\n w: $window.width(),\r\n h: $window.height()\r\n };\r\n\r\n var page = self.getContentSize();\r\n\r\n var maxh = page.h - view.h;\r\n var maxw = page.w - view.w;\r\n\r\n if (self.rail.scrollable && !self.railh.scrollable) self.rail.drag.ck = (maxh > 0) ? \"v\" : false;\r\n else if (!self.rail.scrollable && self.railh.scrollable) self.rail.drag.ck = (maxw > 0) ? \"h\" : false;\r\n else self.rail.drag.ck = false;\r\n\r\n }\r\n\r\n if (opt.emulatetouch && self.isiframe && cap.isie) {\r\n var wp = self.win.position();\r\n self.rail.drag.x += wp.left;\r\n self.rail.drag.y += wp.top;\r\n }\r\n\r\n self.hasmoving = false;\r\n self.lastmouseup = false;\r\n self.scrollmom.reset(e.clientX, e.clientY);\r\n\r\n if (tg&&ismouse) {\r\n\r\n var ip = /INPUT|SELECT|BUTTON|TEXTAREA/i.test(tg.nodeName);\r\n if (!ip) {\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (opt.emulatetouch) {\r\n if (tg.onclick && !(tg._onclick || false)) { // intercept DOM0 onclick event\r\n tg._onclick = tg.onclick;\r\n tg.onclick = function (e) {\r\n if (self.hasmoving) return false;\r\n tg._onclick.call(this, e);\r\n };\r\n }\r\n return self.cancelEvent(e);\r\n }\r\n return self.stopPropagation(e);\r\n }\r\n\r\n if (/SUBMIT|CANCEL|BUTTON/i.test($(tg).attr('type'))) {\r\n self.preventclick = {\r\n \"tg\": tg,\r\n \"click\": false\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n };\r\n\r\n self.ontouchend = function (e) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false;\r\n\r\n self.rail.drag = false;\r\n\r\n var ismouse = (e.type === \"mouseup\");\r\n\r\n if (self.hasmoving) {\r\n self.scrollmom.doMomentum();\r\n self.lastmouseup = true;\r\n self.hideCursor();\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (ismouse) return self.cancelEvent(e);\r\n }\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) {\r\n return self.onmouseup(e);\r\n }\r\n\r\n };\r\n\r\n var moveneedoffset = (opt.emulatetouch && self.isiframe && !cap.hasmousecapture);\r\n\r\n var locktollerance = opt.directionlockdeadzone * 0.3 | 0;\r\n\r\n self.ontouchmove = function (e, byiframe) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (e.targetTouches && opt.preventmultitouchscrolling) {\r\n if (e.targetTouches.length > 1) return true; // multitouch\r\n }\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n\r\n if ((\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n var ofy, ofx;\r\n ofx = ofy = 0;\r\n\r\n if (moveneedoffset && !byiframe) {\r\n var wp = self.win.position();\r\n ofx = -wp.left;\r\n ofy = -wp.top;\r\n }\r\n\r\n var fy = e.clientY + ofy;\r\n var my = (fy - self.rail.drag.y);\r\n var fx = e.clientX + ofx;\r\n var mx = (fx - self.rail.drag.x);\r\n\r\n var ny = self.rail.drag.st - my;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (ny < 0) {\r\n ny = Math.round(ny / 2);\r\n } else if (ny > self.page.maxh) {\r\n ny = self.page.maxh + Math.round((ny - self.page.maxh) / 2);\r\n }\r\n } else {\r\n if (ny < 0) {\r\n ny = 0;\r\n fy = 0;\r\n }\r\n else if (ny > self.page.maxh) {\r\n ny = self.page.maxh;\r\n fy = 0;\r\n }\r\n if (fy === 0 && !self.hasmoving) {\r\n if (!self.ispage) self.rail.drag = false;\r\n return true;\r\n }\r\n }\r\n\r\n var nx = self.getScrollLeft();\r\n\r\n if (self.railh && self.railh.scrollable) {\r\n nx = (self.isrtlmode) ? mx - self.rail.drag.sl : self.rail.drag.sl - mx;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (nx < 0) {\r\n nx = Math.round(nx / 2);\r\n } else if (nx > self.page.maxw) {\r\n nx = self.page.maxw + Math.round((nx - self.page.maxw) / 2);\r\n }\r\n } else {\r\n if (nx < 0) {\r\n nx = 0;\r\n fx = 0;\r\n }\r\n if (nx > self.page.maxw) {\r\n nx = self.page.maxw;\r\n fx = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n if (!self.hasmoving) {\r\n\r\n if (self.rail.drag.y === e.clientY && self.rail.drag.x === e.clientX) return self.cancelEvent(e); // prevent first useless move event \r\n\r\n var ay = Math.abs(my);\r\n var ax = Math.abs(mx);\r\n var dz = opt.directionlockdeadzone;\r\n\r\n if (!self.rail.drag.ck) {\r\n if (ay > dz && ax > dz) self.rail.drag.dl = \"f\";\r\n else if (ay > dz) self.rail.drag.dl = (ax > locktollerance) ? \"f\" : \"v\";\r\n else if (ax > dz) self.rail.drag.dl = (ay > locktollerance) ? \"f\" : \"h\";\r\n }\r\n else if (self.rail.drag.ck == \"v\") {\r\n if (ax > dz && ay <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ay > dz) self.rail.drag.dl = \"v\";\r\n\r\n }\r\n else if (self.rail.drag.ck == \"h\") {\r\n\r\n if (ay > dz && ax <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ax > dz) self.rail.drag.dl = \"h\";\r\n\r\n }\r\n\r\n if (!self.rail.drag.dl) return self.cancelEvent(e);\r\n\r\n self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n self.hasmoving = true;\r\n }\r\n\r\n if (self.preventclick && !self.preventclick.click) {\r\n self.preventclick.click = self.preventclick.tg.onclick || false;\r\n self.preventclick.tg.onclick = self.onpreventclick;\r\n }\r\n\r\n if (self.rail.drag.dl) {\r\n if (self.rail.drag.dl == \"v\") nx = self.rail.drag.sl;\r\n else if (self.rail.drag.dl == \"h\") ny = self.rail.drag.st;\r\n }\r\n\r\n self.synched(\"touchmove\", function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 2)) {\r\n if (self.prepareTransition) self.resetTransition();\r\n if (self.rail.scrollable) self.setScrollTop(ny);\r\n self.scrollmom.update(fx, fy);\r\n if (self.railh && self.railh.scrollable) {\r\n self.setScrollLeft(nx);\r\n self.showCursor(ny, nx);\r\n } else {\r\n self.showCursor(ny);\r\n }\r\n if (cap.isie10) _doc.selection.clear();\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) { // drag on cursor\r\n return self.onmousemove(e);\r\n }\r\n\r\n };\r\n\r\n self.ontouchstartCursor = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 3) return;\r\n if (self.locked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.touches[0].clientX,\r\n y: e.touches[0].clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 3,\r\n hr: (!!hronly)\r\n };\r\n var tg = self.getTarget(e);\r\n if (!self.ispage && cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, { \"pointer-events\": \"none\" });\r\n }\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.ontouchendCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n if (self.rail.drag.pt != 3) return;\r\n self.rail.drag = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.ontouchmoveCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 3) return;\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.touches[0].clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.touches[0].clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('touchmove', function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 3)) {\r\n self.showCursor();\r\n if (self.rail.drag.hr) self.doScrollLeft(Math.round(self.scroll.x * self.scrollratio.x), opt.cursordragspeed);\r\n else self.doScrollTop(Math.round(self.scroll.y * self.scrollratio.y), opt.cursordragspeed);\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n\r\n };\r\n\r\n }\r\n\r\n self.onmousedown = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 1) return;\r\n if (self.railslocked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 1,\r\n hr: hronly || false\r\n };\r\n var tg = self.getTarget(e);\r\n\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, {\r\n \"pointer-events\": \"none\"\r\n });\r\n }\r\n self.hasmoving = false;\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.onmouseup = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 1) return true;\r\n\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n self.rail.drag = false;\r\n self.cursorfreezed = false;\r\n if (self.hasmoving) self.triggerScrollEnd();\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onmousemove = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt !== 1) return;\r\n\r\n if (cap.ischrome && e.which === 0) return self.onmouseup(e);\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (!self.hasmoving) self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n\r\n self.hasmoving = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('mousemove', function () {\r\n\r\n if (self.cursorfreezed) {\r\n self.showCursor();\r\n\r\n if (self.rail.drag.hr) {\r\n self.scrollLeft(Math.round(self.scroll.x * self.scrollratio.x));\r\n } else {\r\n self.scrollTop(Math.round(self.scroll.y * self.scrollratio.y));\r\n }\r\n\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n else {\r\n self.checkarea = 0;\r\n }\r\n };\r\n\r\n if (cap.cantouch || opt.emulatetouch) {\r\n\r\n self.onpreventclick = function (e) {\r\n if (self.preventclick) {\r\n self.preventclick.tg.onclick = self.preventclick.click;\r\n self.preventclick = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onclick = (cap.isios) ? false : function (e) { // it needs to check IE11 ???\r\n if (self.lastmouseup) {\r\n self.lastmouseup = false;\r\n return self.cancelEvent(e);\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) {\r\n self.css((self.ispage) ? self.doc : self.win, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n self.css(self.rail, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n } else {\r\n\r\n var checkSelectionScroll = function (e) {\r\n if (!self.selectiondrag) return;\r\n\r\n if (e) {\r\n var ww = self.win.outerHeight();\r\n var df = (e.pageY - self.selectiondrag.top);\r\n if (df > 0 && df < ww) df = 0;\r\n if (df >= ww) df -= ww;\r\n self.selectiondrag.df = df;\r\n }\r\n if (self.selectiondrag.df === 0) return;\r\n\r\n var rt = -(self.selectiondrag.df*2/6)|0;\r\n self.doScrollBy(rt);\r\n\r\n self.debounced(\"doselectionscroll\", function () {\r\n checkSelectionScroll();\r\n }, 50);\r\n };\r\n\r\n if (\"getSelection\" in _doc) { // A grade - Major browsers\r\n self.hasTextSelected = function () {\r\n return (_doc.getSelection().rangeCount > 0);\r\n };\r\n } else if (\"selection\" in _doc) { //IE9-\r\n self.hasTextSelected = function () {\r\n return (_doc.selection.type != \"None\");\r\n };\r\n } else {\r\n self.hasTextSelected = function () { // no support\r\n return false;\r\n };\r\n }\r\n\r\n self.onselectionstart = function (e) {\r\n // More testing - severe chrome issues \r\n /* \r\n if (!self.haswrapper&&(e.which&&e.which==2)) { // fool browser to manage middle button scrolling\r\n self.win.css({'overflow':'auto'});\r\n setTimeout(function(){\r\n self.win.css({'overflow':'hidden'});\r\n },10); \r\n return true;\r\n } \r\n */\r\n if (self.ispage) return;\r\n self.selectiondrag = self.win.offset();\r\n };\r\n\r\n self.onselectionend = function (e) {\r\n self.selectiondrag = false;\r\n };\r\n self.onselectiondrag = function (e) {\r\n if (!self.selectiondrag) return;\r\n if (self.hasTextSelected()) self.debounced(\"selectionscroll\", function () {\r\n checkSelectionScroll(e);\r\n }, 250);\r\n };\r\n }\r\n\r\n if (cap.hasw3ctouch) { //IE11+\r\n self.css((self.ispage) ? $(\"html\") : self.win, { 'touch-action': 'none' });\r\n self.css(self.rail, {\r\n 'touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n 'touch-action': 'none'\r\n });\r\n self.bind(self.win, \"pointerdown\", self.ontouchstart);\r\n self.bind(_doc, \"pointerup\", self.ontouchend);\r\n self.delegate(_doc, \"pointermove\", self.ontouchmove);\r\n } else if (cap.hasmstouch) { //IE10\r\n self.css((self.ispage) ? $(\"html\") : self.win, { '-ms-touch-action': 'none' });\r\n self.css(self.rail, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.bind(self.win, \"MSPointerDown\", self.ontouchstart);\r\n self.bind(_doc, \"MSPointerUp\", self.ontouchend);\r\n self.delegate(_doc, \"MSPointerMove\", self.ontouchmove);\r\n self.bind(self.cursor, \"MSGestureHold\", function (e) {\r\n e.preventDefault();\r\n });\r\n self.bind(self.cursor, \"contextmenu\", function (e) {\r\n e.preventDefault();\r\n });\r\n } else if (cap.cantouch) { // smartphones/touch devices\r\n self.bind(self.win, \"touchstart\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"touchend\", self.ontouchend, false, true);\r\n self.bind(_doc, \"touchcancel\", self.ontouchend, false, true);\r\n self.delegate(_doc, \"touchmove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.emulatetouch) {\r\n self.bind(self.win, \"mousedown\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"mouseup\", self.ontouchend, false, true);\r\n self.bind(_doc, \"mousemove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.cursordragontouch || (!cap.cantouch && !opt.emulatetouch)) {\r\n\r\n self.rail.css({\r\n cursor: \"default\"\r\n });\r\n self.railh && self.railh.css({\r\n cursor: \"default\"\r\n });\r\n\r\n self.jqbind(self.rail, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.rail, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.rail, \"click\", function (e) {\r\n self.doRailClick(e, false, false);\r\n });\r\n self.bind(self.rail, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, false);\r\n });\r\n self.bind(self.cursor, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursor, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n if (self.railh) {\r\n self.jqbind(self.railh, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.railh, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.railh, \"click\", function (e) {\r\n self.doRailClick(e, false, true);\r\n });\r\n self.bind(self.railh, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, true);\r\n });\r\n self.bind(self.cursorh, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursorh, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (opt.cursordragontouch && (this.istouchcapable || cap.cantouch)) {\r\n self.bind(self.cursor, \"touchstart\", self.ontouchstartCursor);\r\n self.bind(self.cursor, \"touchmove\", self.ontouchmoveCursor);\r\n self.bind(self.cursor, \"touchend\", self.ontouchendCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchstart\", function (e) {\r\n self.ontouchstartCursor(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"touchmove\", self.ontouchmoveCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchend\", self.ontouchendCursor);\r\n }\r\n\r\n// if (!cap.cantouch && !opt.emulatetouch) {\r\n if (!opt.emulatetouch && !cap.isandroid && !cap.isios) {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.onmouseup);\r\n self.bind(_doc, \"mousemove\", self.onmousemove);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n\r\n if (self.railh) {\r\n self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n }\r\n\r\n if (!self.ispage && opt.enablescrollonselection) {\r\n self.bind(self.win[0], \"mousedown\", self.onselectionstart);\r\n self.bind(_doc, \"mouseup\", self.onselectionend);\r\n self.bind(self.cursor, \"mouseup\", self.onselectionend);\r\n if (self.cursorh) self.bind(self.cursorh, \"mouseup\", self.onselectionend);\r\n self.bind(_doc, \"mousemove\", self.onselectiondrag);\r\n }\r\n\r\n if (self.zoom) {\r\n self.jqbind(self.zoom, \"mouseenter\", function () {\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.zoom, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n }\r\n\r\n } else {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.ontouchend);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n if (opt.cursordragontouch) {\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n self.cursorh && self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n } else {\r\n self.bind(self.rail, \"mousedown\", function (e) { e.preventDefault(); }); // prevent text selection \r\n self.railh && self.bind(self.railh, \"mousedown\", function (e) { e.preventDefault(); });\r\n }\r\n\r\n }\r\n\r\n\r\n if (opt.enablemousewheel) {\r\n if (!self.isiframe) self.mousewheel((cap.isie && self.ispage) ? _doc : self.win, self.onmousewheel);\r\n self.mousewheel(self.rail, self.onmousewheel);\r\n if (self.railh) self.mousewheel(self.railh, self.onmousewheelhr);\r\n }\r\n\r\n if (!self.ispage && !cap.cantouch && !(/HTML|^BODY/.test(self.win[0].nodeName))) {\r\n if (!self.win.attr(\"tabindex\")) self.win.attr({\r\n \"tabindex\": ++tabindexcounter\r\n });\r\n\r\n self.bind(self.win, \"focus\", function (e) { // better using native events\r\n domfocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasfocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"blur\", function (e) { // *\r\n domfocus = false;\r\n self.hasfocus = false;\r\n });\r\n\r\n self.bind(self.win, \"mouseenter\", function (e) { // *\r\n mousefocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasmousefocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"mouseleave\", function (e) { // * \r\n mousefocus = false;\r\n self.hasmousefocus = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n }\r\n\r\n\r\n //Thanks to http://www.quirksmode.org !!\r\n self.onkeypress = function (e) {\r\n if (self.railslocked && self.page.maxh === 0) return true;\r\n\r\n e = e || _win.event;\r\n var tg = self.getTarget(e);\r\n if (tg && /INPUT|TEXTAREA|SELECT|OPTION/.test(tg.nodeName)) {\r\n var tp = tg.getAttribute('type') || tg.type || false;\r\n if ((!tp) || !(/submit|button|cancel/i.tp)) return true;\r\n }\r\n\r\n if ($(tg).attr('contenteditable')) return true;\r\n\r\n if (self.hasfocus || (self.hasmousefocus && !domfocus) || (self.ispage && !domfocus && !mousefocus)) {\r\n var key = e.keyCode;\r\n\r\n if (self.railslocked && key != 27) return self.cancelEvent(e);\r\n\r\n var ctrl = e.ctrlKey || false;\r\n var shift = e.shiftKey || false;\r\n\r\n var ret = false;\r\n switch (key) {\r\n case 38:\r\n case 63233: //safari\r\n self.doScrollBy(24 * 3);\r\n ret = true;\r\n break;\r\n case 40:\r\n case 63235: //safari\r\n self.doScrollBy(-24 * 3);\r\n ret = true;\r\n break;\r\n case 37:\r\n case 63232: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(0) : self.doScrollLeftBy(24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 39:\r\n case 63234: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(self.page.maxw) : self.doScrollLeftBy(-24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 33:\r\n case 63276: // safari\r\n self.doScrollBy(self.view.h);\r\n ret = true;\r\n break;\r\n case 34:\r\n case 63277: // safari\r\n self.doScrollBy(-self.view.h);\r\n ret = true;\r\n break;\r\n case 36:\r\n case 63273: // safari \r\n (self.railh && ctrl) ? self.doScrollPos(0, 0) : self.doScrollTo(0);\r\n ret = true;\r\n break;\r\n case 35:\r\n case 63275: // safari\r\n (self.railh && ctrl) ? self.doScrollPos(self.page.maxw, self.page.maxh) : self.doScrollTo(self.page.maxh);\r\n ret = true;\r\n break;\r\n case 32:\r\n if (opt.spacebarenabled) {\r\n (shift) ? self.doScrollBy(self.view.h) : self.doScrollBy(-self.view.h);\r\n ret = true;\r\n }\r\n break;\r\n case 27: // ESC\r\n if (self.zoomactive) {\r\n self.doZoom();\r\n ret = true;\r\n }\r\n break;\r\n }\r\n if (ret) return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n if (opt.enablekeyboard) self.bind(_doc, (cap.isopera && !cap.isopera12) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n self.bind(_doc, \"keydown\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (ctrl) self.wheelprevented = true;\r\n });\r\n self.bind(_doc, \"keyup\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (!ctrl) self.wheelprevented = false;\r\n });\r\n self.bind(_win, \"blur\", function (e) {\r\n self.wheelprevented = false;\r\n });\r\n\r\n self.bind(_win, 'resize', self.onscreenresize);\r\n self.bind(_win, 'orientationchange', self.onscreenresize);\r\n\r\n self.bind(_win, \"load\", self.lazyResize);\r\n\r\n if (cap.ischrome && !self.ispage && !self.haswrapper) { //chrome void scrollbar bug - it persists in version 26\r\n var tmp = self.win.attr(\"style\");\r\n var ww = parseFloat(self.win.css(\"width\")) + 1;\r\n self.win.css('width', ww);\r\n self.synched(\"chromefix\", function () {\r\n self.win.attr(\"style\", tmp);\r\n });\r\n }\r\n\r\n\r\n // Trying a cross-browser implementation - good luck!\r\n\r\n self.onAttributeChange = function (e) {\r\n self.lazyResize(self.isieold ? 250 : 30);\r\n };\r\n\r\n if (opt.enableobserver) {\r\n\r\n if ((!self.isie11) && (ClsMutationObserver !== false)) { // IE11 crashes #568\r\n self.observerbody = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mut) {\r\n if (mut.type == \"attributes\") {\r\n 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\r\n }\r\n });\r\n if (self.me.clientWidth != self.page.width || self.me.clientHeight != self.page.height) return self.lazyResize(30);\r\n });\r\n self.observerbody.observe(_doc.body, {\r\n childList: true,\r\n subtree: true,\r\n characterData: false,\r\n attributes: true,\r\n attributeFilter: ['class']\r\n });\r\n }\r\n\r\n if (!self.ispage && !self.haswrapper) {\r\n\r\n var _dom = self.win[0];\r\n\r\n // redesigned MutationObserver for Chrome18+/Firefox14+/iOS6+ with support for: remove div, add/remove content\r\n if (ClsMutationObserver !== false) {\r\n self.observer = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(self.onAttributeChange);\r\n });\r\n self.observer.observe(_dom, {\r\n childList: true,\r\n characterData: false,\r\n attributes: true,\r\n subtree: false\r\n });\r\n self.observerremover = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mo) {\r\n if (mo.removedNodes.length > 0) {\r\n for (var dd in mo.removedNodes) {\r\n if (!!self && (mo.removedNodes[dd] === _dom)) return self.remove();\r\n }\r\n }\r\n });\r\n });\r\n self.observerremover.observe(_dom.parentNode, {\r\n childList: true,\r\n characterData: false,\r\n attributes: false,\r\n subtree: false\r\n });\r\n } else {\r\n self.bind(_dom, (cap.isie && !cap.isie9) ? \"propertychange\" : \"DOMAttrModified\", self.onAttributeChange);\r\n if (cap.isie9) _dom.attachEvent(\"onpropertychange\", self.onAttributeChange); //IE9 DOMAttrModified bug\r\n self.bind(_dom, \"DOMNodeRemoved\", function (e) {\r\n if (e.target === _dom) self.remove();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n //\r\n\r\n if (!self.ispage && opt.boxzoom) self.bind(_win, \"resize\", self.resizeZoom);\r\n if (self.istextarea) {\r\n self.bind(self.win, \"keydown\", self.lazyResize);\r\n self.bind(self.win, \"mouseup\", self.lazyResize);\r\n }\r\n\r\n self.lazyResize(30);\r\n\r\n }\r\n\r\n if (this.doc[0].nodeName == 'IFRAME') {\r\n var oniframeload = function () {\r\n self.iframexd = false;\r\n var doc;\r\n try {\r\n doc = 'contentDocument' in this ? this.contentDocument : this.contentWindow._doc;\r\n var a = doc.domain;\r\n } catch (e) {\r\n self.iframexd = true;\r\n doc = false;\r\n }\r\n\r\n if (self.iframexd) {\r\n if (\"console\" in _win) console.log('NiceScroll error: policy restriced iframe');\r\n return true; //cross-domain - I can't manage this \r\n }\r\n\r\n self.forcescreen = true;\r\n\r\n if (self.isiframe) {\r\n self.iframe = {\r\n \"doc\": $(doc),\r\n \"html\": self.doc.contents().find('html')[0],\r\n \"body\": self.doc.contents().find('body')[0]\r\n };\r\n self.getContentSize = function () {\r\n return {\r\n w: Math.max(self.iframe.html.scrollWidth, self.iframe.body.scrollWidth),\r\n h: Math.max(self.iframe.html.scrollHeight, self.iframe.body.scrollHeight)\r\n };\r\n };\r\n self.docscroll = $(self.iframe.body);\r\n }\r\n\r\n if (!cap.isios && opt.iframeautoresize && !self.isiframe) {\r\n self.win.scrollTop(0); // reset position\r\n self.doc.height(\"\"); //reset height to fix browser bug\r\n var hh = Math.max(doc.getElementsByTagName('html')[0].scrollHeight, doc.body.scrollHeight);\r\n self.doc.height(hh);\r\n }\r\n self.lazyResize(30);\r\n\r\n self.css($(self.iframe.body), _scrollyhidden);\r\n\r\n if (cap.isios && self.haswrapper) {\r\n self.css($(doc.body), {\r\n '-webkit-transform': 'translate3d(0,0,0)'\r\n }); // avoid iFrame content clipping - thanks to http://blog.derraab.com/2012/04/02/avoid-iframe-content-clipping-with-css-transform-on-ios/\r\n }\r\n\r\n if ('contentWindow' in this) {\r\n self.bind(this.contentWindow, \"scroll\", self.onscroll); //IE8 & minor\r\n } else {\r\n self.bind(doc, \"scroll\", self.onscroll);\r\n }\r\n\r\n if (opt.enablemousewheel) {\r\n self.mousewheel(doc, self.onmousewheel);\r\n }\r\n\r\n if (opt.enablekeyboard) self.bind(doc, (cap.isopera) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n if (cap.cantouch) {\r\n self.bind(doc, \"touchstart\", self.ontouchstart);\r\n self.bind(doc, \"touchmove\", self.ontouchmove);\r\n }\r\n else if (opt.emulatetouch) {\r\n self.bind(doc, \"mousedown\", self.ontouchstart);\r\n self.bind(doc, \"mousemove\", function (e) {\r\n return self.ontouchmove(e, true);\r\n });\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) self.css($(doc.body), {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n self.bind(doc, \"mouseup\", self.ontouchend);\r\n\r\n if (self.zoom) {\r\n if (opt.dblclickzoom) self.bind(doc, 'dblclick', self.doZoom);\r\n if (self.ongesturezoom) self.bind(doc, \"gestureend\", self.ongesturezoom);\r\n }\r\n };\r\n\r\n if (this.doc[0].readyState && this.doc[0].readyState === \"complete\") {\r\n setTimeout(function () {\r\n oniframeload.call(self.doc[0], false);\r\n }, 500);\r\n }\r\n self.bind(this.doc, \"load\", oniframeload);\r\n\r\n }\r\n\r\n };\r\n\r\n this.showCursor = function (py, px) {\r\n if (self.cursortimeout) {\r\n clearTimeout(self.cursortimeout);\r\n self.cursortimeout = 0;\r\n }\r\n if (!self.rail) return;\r\n if (self.autohidedom) {\r\n self.autohidedom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (!self.rail.drag || self.rail.drag.pt != 1) {\r\n if (py !== undefined && py !== false) {\r\n self.scroll.y = (py / self.scrollratio.y) | 0;\r\n }\r\n if (px !== undefined) {\r\n self.scroll.x = (px / self.scrollratio.x) | 0;\r\n }\r\n }\r\n\r\n self.cursor.css({\r\n height: self.cursorheight,\r\n top: self.scroll.y\r\n });\r\n if (self.cursorh) {\r\n var lx = (self.hasreversehr) ? self.scrollvaluemaxw - self.scroll.x : self.scroll.x;\r\n self.cursorh.css({\r\n width: self.cursorwidth,\r\n left: (!self.rail.align && self.rail.visibility) ? lx + self.rail.width : lx\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (self.zoom) self.zoom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n };\r\n\r\n this.hideCursor = function (tm) {\r\n if (self.cursortimeout) return;\r\n if (!self.rail) return;\r\n if (!self.autohidedom) return;\r\n\r\n if (self.hasmousefocus && opt.autohidemode === \"leave\") return;\r\n self.cursortimeout = setTimeout(function () {\r\n if (!self.rail.active || !self.showonmouseevent) {\r\n self.autohidedom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n if (self.zoom) self.zoom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n self.cursoractive = false;\r\n }\r\n self.cursortimeout = 0;\r\n }, tm || opt.hidecursordelay);\r\n };\r\n\r\n this.noticeCursor = function (tm, py, px) {\r\n self.showCursor(py, px);\r\n if (!self.rail.active) self.hideCursor(tm);\r\n };\r\n\r\n this.getContentSize =\r\n (self.ispage) ?\r\n function () {\r\n return {\r\n w: Math.max(_doc.body.scrollWidth, _doc.documentElement.scrollWidth),\r\n h: Math.max(_doc.body.scrollHeight, _doc.documentElement.scrollHeight)\r\n };\r\n } : (self.haswrapper) ?\r\n function () {\r\n return {\r\n w: self.doc[0].offsetWidth,\r\n h: self.doc[0].offsetHeight\r\n };\r\n } : function () {\r\n return {\r\n w: self.docscroll[0].scrollWidth,\r\n h: self.docscroll[0].scrollHeight\r\n };\r\n };\r\n\r\n this.onResize = function (e, page) {\r\n\r\n if (!self || !self.win) return false;\r\n\r\n var premaxh = self.page.maxh,\r\n premaxw = self.page.maxw,\r\n previewh = self.view.h,\r\n previeww = self.view.w;\r\n\r\n self.view = {\r\n w: (self.ispage) ? self.win.width() : self.win[0].clientWidth,\r\n h: (self.ispage) ? self.win.height() : self.win[0].clientHeight\r\n };\r\n\r\n self.page = (page) ? page : self.getContentSize();\r\n\r\n self.page.maxh = Math.max(0, self.page.h - self.view.h);\r\n self.page.maxw = Math.max(0, self.page.w - self.view.w);\r\n\r\n if ((self.page.maxh == premaxh) && (self.page.maxw == premaxw) && (self.view.w == previeww) && (self.view.h == previewh)) {\r\n // test position \r\n if (!self.ispage) {\r\n var pos = self.win.offset();\r\n if (self.lastposition) {\r\n var lst = self.lastposition;\r\n if ((lst.top == pos.top) && (lst.left == pos.left)) return self; //nothing to do \r\n }\r\n self.lastposition = pos;\r\n } else {\r\n return self; //nothing to do\r\n }\r\n }\r\n\r\n if (self.page.maxh === 0) {\r\n self.hideRail();\r\n self.scrollvaluemax = 0;\r\n self.scroll.y = 0;\r\n self.scrollratio.y = 0;\r\n self.cursorheight = 0;\r\n self.setScrollTop(0);\r\n if (self.rail) self.rail.scrollable = false;\r\n } else {\r\n self.page.maxh -= (opt.railpadding.top + opt.railpadding.bottom);\r\n self.rail.scrollable = true;\r\n }\r\n\r\n if (self.page.maxw === 0) {\r\n self.hideRailHr();\r\n self.scrollvaluemaxw = 0;\r\n self.scroll.x = 0;\r\n self.scrollratio.x = 0;\r\n self.cursorwidth = 0;\r\n self.setScrollLeft(0);\r\n if (self.railh) {\r\n self.railh.scrollable = false;\r\n }\r\n } else {\r\n self.page.maxw -= (opt.railpadding.left + opt.railpadding.right);\r\n if (self.railh) self.railh.scrollable = (opt.horizrailenabled);\r\n }\r\n\r\n self.railslocked = (self.locked) || ((self.page.maxh === 0) && (self.page.maxw === 0));\r\n if (self.railslocked) {\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n return false;\r\n }\r\n\r\n if (!self.hidden) {\r\n if (!self.rail.visibility) self.showRail();\r\n if (self.railh && !self.railh.visibility) self.showRailHr();\r\n }\r\n\r\n if (self.istextarea && self.win.css('resize') && self.win.css('resize') != 'none') self.view.h -= 20;\r\n\r\n self.cursorheight = Math.min(self.view.h, Math.round(self.view.h * (self.view.h / self.page.h)));\r\n self.cursorheight = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorheight);\r\n\r\n self.cursorwidth = Math.min(self.view.w, Math.round(self.view.w * (self.view.w / self.page.w)));\r\n self.cursorwidth = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorwidth);\r\n\r\n self.scrollvaluemax = self.view.h - self.cursorheight - (opt.railpadding.top + opt.railpadding.bottom);\r\n if (!self.hasborderbox) self.scrollvaluemax -= self.cursor[0].offsetHeight - self.cursor[0].clientHeight;\r\n\r\n if (self.railh) {\r\n self.railh.width = (self.page.maxh > 0) ? (self.view.w - self.rail.width) : self.view.w;\r\n self.scrollvaluemaxw = self.railh.width - self.cursorwidth - (opt.railpadding.left + opt.railpadding.right);\r\n }\r\n\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n\r\n self.scrollratio = {\r\n x: (self.page.maxw / self.scrollvaluemaxw),\r\n y: (self.page.maxh / self.scrollvaluemax)\r\n };\r\n\r\n var sy = self.getScrollTop();\r\n if (sy > self.page.maxh) {\r\n self.doScrollTop(self.page.maxh);\r\n } else {\r\n self.scroll.y = (self.getScrollTop() / self.scrollratio.y) | 0;\r\n self.scroll.x = (self.getScrollLeft() / self.scrollratio.x) | 0;\r\n if (self.cursoractive) self.noticeCursor();\r\n }\r\n\r\n if (self.scroll.y && (self.getScrollTop() === 0)) self.doScrollTo((self.scroll.y * self.scrollratio.y)|0);\r\n\r\n return self;\r\n };\r\n\r\n this.resize = self.onResize;\r\n\r\n var hlazyresize = 0;\r\n\r\n this.onscreenresize = function(e) {\r\n clearTimeout(hlazyresize);\r\n\r\n var hiderails = (!self.ispage && !self.haswrapper);\r\n if (hiderails) self.hideRails();\r\n\r\n hlazyresize = setTimeout(function () {\r\n if (self) {\r\n if (hiderails) self.showRails();\r\n self.resize();\r\n }\r\n hlazyresize=0;\r\n }, 120);\r\n };\r\n\r\n this.lazyResize = function (tm) { // event debounce\r\n\r\n clearTimeout(hlazyresize);\r\n\r\n tm = isNaN(tm) ? 240 : tm;\r\n\r\n hlazyresize = setTimeout(function () {\r\n self && self.resize();\r\n hlazyresize=0;\r\n }, tm);\r\n\r\n return self;\r\n\r\n };\r\n\r\n // derived by MDN https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/wheel\r\n function _modernWheelEvent(dom, name, fn, bubble) {\r\n self._bind(dom, name, function (e) {\r\n e = e || _win.event;\r\n var event = {\r\n original: e,\r\n target: e.target || e.srcElement,\r\n type: \"wheel\",\r\n deltaMode: e.type == \"MozMousePixelScroll\" ? 0 : 1,\r\n deltaX: 0,\r\n deltaZ: 0,\r\n preventDefault: function () {\r\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n return false;\r\n },\r\n stopImmediatePropagation: function () {\r\n (e.stopImmediatePropagation) ? e.stopImmediatePropagation() : e.cancelBubble = true;\r\n }\r\n };\r\n\r\n if (name == \"mousewheel\") {\r\n e.wheelDeltaX && (event.deltaX = -1 / 40 * e.wheelDeltaX);\r\n e.wheelDeltaY && (event.deltaY = -1 / 40 * e.wheelDeltaY);\r\n !event.deltaY && !event.deltaX && (event.deltaY = -1 / 40 * e.wheelDelta);\r\n } else {\r\n event.deltaY = e.detail;\r\n }\r\n\r\n return fn.call(dom, event);\r\n }, bubble);\r\n }\r\n\r\n\r\n\r\n this.jqbind = function (dom, name, fn) { // use jquery bind for non-native events (mouseenter/mouseleave)\r\n self.events.push({\r\n e: dom,\r\n n: name,\r\n f: fn,\r\n q: true\r\n });\r\n $(dom).on(name, fn);\r\n };\r\n\r\n this.mousewheel = function (dom, fn, bubble) { // bind mousewheel\r\n var el = (\"jquery\" in dom) ? dom[0] : dom;\r\n if (\"onwheel\" in _doc.createElement(\"div\")) { // Modern browsers support \"wheel\"\r\n self._bind(el, \"wheel\", fn, bubble || false);\r\n } else {\r\n var wname = (_doc.onmousewheel !== undefined) ? \"mousewheel\" : \"DOMMouseScroll\"; // older Webkit+IE support or older Firefox \r\n _modernWheelEvent(el, wname, fn, bubble || false);\r\n if (wname == \"DOMMouseScroll\") _modernWheelEvent(el, \"MozMousePixelScroll\", fn, bubble || false); // Firefox legacy\r\n }\r\n };\r\n\r\n var passiveSupported = false;\r\n\r\n if (cap.haseventlistener) { // W3C standard event model\r\n\r\n // thanks to https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\n try { var options = Object.defineProperty({}, \"passive\", { get: function () { passiveSupported = !0; } }); _win.addEventListener(\"test\", null, options); } catch (err) { }\r\n\r\n this.stopPropagation = function (e) {\r\n if (!e) return false;\r\n e = (e.original) ? e.original : e;\r\n e.stopPropagation();\r\n return false;\r\n };\r\n\r\n this.cancelEvent = function(e) {\r\n if (e.cancelable) e.preventDefault();\r\n e.stopImmediatePropagation();\r\n if (e.preventManipulation) e.preventManipulation(); // IE10+\r\n return false;\r\n }; \r\n\r\n } else {\r\n\r\n // inspired from https://gist.github.com/jonathantneal/2415137 \r\n\r\n Event.prototype.preventDefault = function () {\r\n this.returnValue = false;\r\n };\r\n\r\n Event.prototype.stopPropagation = function () {\r\n this.cancelBubble = true;\r\n };\r\n\r\n _win.constructor.prototype.addEventListener = _doc.constructor.prototype.addEventListener = Element.prototype.addEventListener = function (type, listener, useCapture) {\r\n this.attachEvent(\"on\" + type, listener);\r\n };\r\n _win.constructor.prototype.removeEventListener = _doc.constructor.prototype.removeEventListener = Element.prototype.removeEventListener = function (type, listener, useCapture) {\r\n this.detachEvent(\"on\" + type, listener);\r\n };\r\n\r\n // Thanks to http://www.switchonthecode.com !!\r\n this.cancelEvent = function (e) {\r\n e = e || _win.event;\r\n if (e) { \r\n e.cancelBubble = true;\r\n e.cancel = true;\r\n e.returnValue = false;\r\n } \r\n return false;\r\n };\r\n\r\n this.stopPropagation = function (e) {\r\n e = e || _win.event;\r\n if (e) e.cancelBubble = true;\r\n return false;\r\n };\r\n\r\n }\r\n\r\n this.delegate = function (dom, name, fn, bubble, active) {\r\n\r\n var de = delegatevents[name] || false;\r\n\r\n if (!de) {\r\n\r\n de = {\r\n a: [],\r\n l: [],\r\n f: function (e) {\r\n var lst = de.l, l = lst.length - 1;\r\n var r = false;\r\n for (var a = l; a >= 0; a--) {\r\n r = lst[a].call(e.target, e);\r\n if (r === false) return false;\r\n }\r\n return r;\r\n }\r\n };\r\n\r\n self.bind(dom, name, de.f, bubble, active);\r\n\r\n delegatevents[name] = de;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n de.a = [self.id].concat(de.a);\r\n de.l = [fn].concat(de.l);\r\n } else {\r\n de.a.push(self.id);\r\n de.l.push(fn); \r\n }\r\n\r\n };\r\n\r\n this.undelegate = function (dom, name, fn, bubble, active) {\r\n var de = delegatevents[name]||false;\r\n if (de&&de.l) { // quick fix #683\r\n for (var a=0,l=de.l.length;a 0) return dd;\r\n dom = (dom.parentNode) ? dom.parentNode : false;\r\n }\r\n return false;\r\n };\r\n\r\n this.triggerScrollStart = function (cx, cy, rx, ry, ms) {\r\n\r\n if (self.onscrollstart) {\r\n var info = {\r\n type: \"scrollstart\",\r\n current: {\r\n x: cx,\r\n y: cy\r\n },\r\n request: {\r\n x: rx,\r\n y: ry\r\n },\r\n end: {\r\n x: self.newscrollx,\r\n y: self.newscrolly\r\n },\r\n speed: ms\r\n };\r\n self.onscrollstart.call(self, info);\r\n }\r\n\r\n };\r\n\r\n this.triggerScrollEnd = function () {\r\n if (self.onscrollend) {\r\n\r\n var px = self.getScrollLeft();\r\n var py = self.getScrollTop();\r\n\r\n var info = {\r\n type: \"scrollend\",\r\n current: {\r\n x: px,\r\n y: py\r\n },\r\n end: {\r\n x: px,\r\n y: py\r\n }\r\n };\r\n\r\n self.onscrollend.call(self, info);\r\n\r\n }\r\n\r\n };\r\n\r\n var scrolldiry = 0, scrolldirx = 0, scrolltmr = 0, scrollspd = 1;\r\n\r\n function doScrollRelative(px, py, chkscroll, iswheel) {\r\n\r\n if (!self.scrollrunning) {\r\n self.newscrolly = self.getScrollTop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolltmr = now();\r\n }\r\n\r\n var gap = (now() - scrolltmr);\r\n scrolltmr = now();\r\n\r\n if (gap > 350) {\r\n scrollspd = 1;\r\n } else {\r\n scrollspd += (2 - scrollspd) / 10;\r\n }\r\n\r\n px = px * scrollspd | 0;\r\n py = py * scrollspd | 0;\r\n\r\n if (px) {\r\n\r\n if (iswheel) { // mouse-only\r\n if (px < 0) { // fix apple magic mouse swipe back/forward\r\n if (self.getScrollLeft() >= self.page.maxw) return true;\r\n } else {\r\n if (self.getScrollLeft() <= 0) return true;\r\n }\r\n }\r\n\r\n var dx = px > 0 ? 1 : -1;\r\n\r\n if (scrolldirx !== dx) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolldirx = dx;\r\n }\r\n\r\n self.lastdeltax -= px;\r\n\r\n }\r\n\r\n if (py) {\r\n\r\n var chk = (function () {\r\n var top = self.getScrollTop();\r\n if (py < 0) {\r\n if (top >= self.page.maxh) return true;\r\n } else {\r\n if (top <= 0) return true;\r\n }\r\n })();\r\n\r\n if (chk) {\r\n if (opt.nativeparentscrolling && chkscroll && !self.ispage && !self.zoomactive) return true;\r\n var ny = self.view.h >> 1;\r\n if (self.newscrolly < -ny) { self.newscrolly = -ny; py = -1; }\r\n else if (self.newscrolly > self.page.maxh + ny) { self.newscrolly = self.page.maxh + ny; py = 1; }\r\n else py = 0;\r\n }\r\n\r\n var dy = py > 0 ? 1 : -1;\r\n\r\n if (scrolldiry !== dy) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrolly = self.getScrollTop();\r\n scrolldiry = dy;\r\n }\r\n\r\n self.lastdeltay -= py;\r\n\r\n }\r\n\r\n if (py || px) {\r\n self.synched(\"relativexy\", function () {\r\n\r\n var dty = self.lastdeltay + self.newscrolly;\r\n self.lastdeltay = 0;\r\n\r\n var dtx = self.lastdeltax + self.newscrollx;\r\n self.lastdeltax = 0;\r\n\r\n if (!self.rail.drag) self.doScrollPos(dtx, dty);\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n var hasparentscrollingphase = false;\r\n\r\n function execScrollWheel(e, hr, chkscroll) {\r\n var px, py;\r\n\r\n if (!chkscroll && hasparentscrollingphase) return true;\r\n\r\n if (e.deltaMode === 0) { // PIXEL\r\n px = -(e.deltaX * (opt.mousescrollstep / (18 * 3))) | 0;\r\n py = -(e.deltaY * (opt.mousescrollstep / (18 * 3))) | 0;\r\n } else if (e.deltaMode === 1) { // LINE\r\n px = -(e.deltaX * opt.mousescrollstep * 50 / 80) | 0;\r\n py = -(e.deltaY * opt.mousescrollstep * 50 / 80) | 0;\r\n }\r\n\r\n if (hr && opt.oneaxismousemode && (px === 0) && py) { // classic vertical-only mousewheel + browser with x/y support \r\n px = py;\r\n py = 0;\r\n\r\n if (chkscroll) {\r\n var hrend = (px < 0) ? (self.getScrollLeft() >= self.page.maxw) : (self.getScrollLeft() <= 0);\r\n if (hrend) { // preserve vertical scrolling\r\n py = px;\r\n px = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n // invert horizontal direction for rtl mode\r\n if (self.isrtlmode) px = -px;\r\n\r\n var chk = doScrollRelative(px, py, chkscroll, true);\r\n\r\n if (chk) {\r\n if (chkscroll) hasparentscrollingphase = true;\r\n } else {\r\n hasparentscrollingphase = false;\r\n e.stopImmediatePropagation();\r\n return e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n this.onmousewheel = function (e) {\r\n if (self.wheelprevented||self.locked) return false;\r\n if (self.railslocked) {\r\n self.debounced(\"checkunlock\", self.resize, 250);\r\n return false;\r\n }\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n if (opt.oneaxismousemode === \"auto\" && e.deltaX !== 0) opt.oneaxismousemode = false; // check two-axis mouse support (not very elegant)\r\n\r\n if (opt.oneaxismousemode && e.deltaX === 0) {\r\n if (!self.rail.scrollable) {\r\n if (self.railh && self.railh.scrollable) {\r\n return self.onmousewheelhr(e);\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this isn't my business\r\n var ret = execScrollWheel(e, false, chk);\r\n if (ret) self.checkarea = 0;\r\n return ret;\r\n };\r\n\r\n this.onmousewheelhr = function (e) {\r\n if (self.wheelprevented) return;\r\n if (self.railslocked || !self.railh.scrollable) return true;\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this is not my business\r\n if (self.railslocked) return self.cancelEvent(e);\r\n\r\n return execScrollWheel(e, true, chk);\r\n };\r\n\r\n this.stop = function () {\r\n self.cancelScroll();\r\n if (self.scrollmon) self.scrollmon.stop();\r\n self.cursorfreezed = false;\r\n self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y));\r\n self.noticeCursor();\r\n return self;\r\n };\r\n\r\n this.getTransitionSpeed = function (dif) {\r\n\r\n return 80 + (dif / 72) * opt.scrollspeed |0;\r\n\r\n };\r\n\r\n if (!opt.smoothscroll) {\r\n this.doScrollLeft = function (x, spd) { //direct\r\n var y = self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollTop = function (y, spd) { //direct\r\n var x = self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollPos = function (x, y, spd) { //direct\r\n var nx = (x > self.page.maxw) ? self.page.maxw : x;\r\n if (nx < 0) nx = 0;\r\n var ny = (y > self.page.maxh) ? self.page.maxh : y;\r\n if (ny < 0) ny = 0;\r\n self.synched('scroll', function () {\r\n self.setScrollTop(ny);\r\n self.setScrollLeft(nx);\r\n });\r\n };\r\n this.cancelScroll = function () { }; // direct\r\n\r\n } else if (self.ishwscroll && cap.hastransition && opt.usetransition && !!opt.smoothscroll) {\r\n\r\n var lasttransitionstyle = '';\r\n\r\n this.resetTransition = function () {\r\n lasttransitionstyle = '';\r\n self.doc.css(cap.prefixstyle + 'transition-duration', '0ms');\r\n };\r\n\r\n this.prepareTransition = function (dif, istime) {\r\n var ex = (istime) ? dif : self.getTransitionSpeed(dif);\r\n var trans = ex + 'ms';\r\n if (lasttransitionstyle !== trans) {\r\n lasttransitionstyle = trans;\r\n self.doc.css(cap.prefixstyle + 'transition-duration', trans);\r\n }\r\n return ex;\r\n };\r\n\r\n this.doScrollLeft = function (x, spd) { //trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.cursorupdate = {\r\n running: false,\r\n start: function () {\r\n var m = this;\r\n\r\n if (m.running) return;\r\n m.running = true;\r\n\r\n var loop = function () {\r\n if (m.running) setAnimationFrame(loop);\r\n self.showCursor(self.getScrollTop(), self.getScrollLeft());\r\n self.notifyScrollEvent(self.win[0]);\r\n };\r\n\r\n setAnimationFrame(loop);\r\n },\r\n stop: function () {\r\n this.running = false;\r\n }\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection \r\n\r\n if (!opt.bouncescroll) {\r\n if (y < 0) y = 0;\r\n else if (y > self.page.maxh) y = self.page.maxh;\r\n if (x < 0) x = 0;\r\n else if (x > self.page.maxw) x = self.page.maxw;\r\n } else {\r\n if (y < 0) y = y / 2 | 0;\r\n else if (y > self.page.maxh) y = self.page.maxh + (y - self.page.maxh) / 2 | 0;\r\n if (x < 0) x = x / 2 | 0;\r\n else if (x > self.page.maxw) x = self.page.maxw + (x - self.page.maxw) / 2 | 0;\r\n }\r\n\r\n if (self.scrollrunning && x == self.newscrollx && y == self.newscrolly) return false;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n var top = self.getScrollTop();\r\n var lft = self.getScrollLeft();\r\n\r\n var dst = {};\r\n dst.x = x - lft;\r\n dst.y = y - top;\r\n\r\n var dd = Math.sqrt((dst.x * dst.x) + (dst.y * dst.y)) | 0;\r\n\r\n var ms = self.prepareTransition(dd);\r\n\r\n if (!self.scrollrunning) {\r\n self.scrollrunning = true;\r\n self.triggerScrollStart(lft, top, x, y, ms);\r\n self.cursorupdate.start();\r\n }\r\n\r\n self.scrollendtrapped = true;\r\n\r\n if (!cap.transitionend) {\r\n if (self.scrollendtrapped) clearTimeout(self.scrollendtrapped);\r\n self.scrollendtrapped = setTimeout(self.onScrollTransitionEnd, ms); // simulate transitionend event\r\n }\r\n\r\n self.setScrollTop(self.newscrolly);\r\n self.setScrollLeft(self.newscrollx);\r\n\r\n };\r\n\r\n this.cancelScroll = function () {\r\n if (!self.scrollendtrapped) return true;\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n self.scrollrunning = false;\r\n if (!cap.transitionend) clearTimeout(cap.transitionend);\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.setScrollTop(py); // fire event onscroll\r\n if (self.railh) self.setScrollLeft(px);\r\n if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm);\r\n self.timerscroll = false;\r\n\r\n self.cursorfreezed = false;\r\n\r\n self.cursorupdate.stop();\r\n self.showCursor(py, px);\r\n return self;\r\n };\r\n\r\n this.onScrollTransitionEnd = function () {\r\n\r\n if (!self.scrollendtrapped) return;\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (py < 0) py = 0;\r\n else if (py > self.page.maxh) py = self.page.maxh;\r\n if (px < 0) px = 0;\r\n else if (px > self.page.maxw) px = self.page.maxw;\r\n if ((py != self.newscrolly) || (px != self.newscrollx)) return self.doScrollPos(px, py, opt.snapbackspeed);\r\n\r\n if (self.scrollrunning) self.triggerScrollEnd();\r\n self.scrollrunning = false;\r\n\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.timerscroll = false;\r\n self.setScrollTop(py); // fire event onscroll \r\n if (self.railh) self.setScrollLeft(px); // fire event onscroll left\r\n\r\n self.cursorupdate.stop();\r\n self.noticeCursor(false, py, px);\r\n\r\n self.cursorfreezed = false;\r\n\r\n };\r\n\r\n } else {\r\n\r\n this.doScrollLeft = function (x, spd) { //no-trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //no-trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //no-trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection\r\n\r\n var clipped = false;\r\n\r\n if (!self.bouncescroll || !self.rail.visibility) {\r\n if (y < 0) {\r\n y = 0;\r\n clipped = true;\r\n } else if (y > self.page.maxh) {\r\n y = self.page.maxh;\r\n clipped = true;\r\n }\r\n }\r\n if (!self.bouncescroll || !self.railh.visibility) {\r\n if (x < 0) {\r\n x = 0;\r\n clipped = true;\r\n } else if (x > self.page.maxw) {\r\n x = self.page.maxw;\r\n clipped = true;\r\n }\r\n }\r\n\r\n if (self.scrollrunning && (self.newscrolly === y) && (self.newscrollx === x)) return true;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n self.dst = {};\r\n self.dst.x = x - px;\r\n self.dst.y = y - py;\r\n self.dst.px = px;\r\n self.dst.py = py;\r\n\r\n var dd = Math.sqrt((self.dst.x * self.dst.x) + (self.dst.y * self.dst.y)) | 0;\r\n var ms = self.getTransitionSpeed(dd);\r\n\r\n self.bzscroll = {};\r\n\r\n var p3 = (clipped) ? 1 : 0.58;\r\n self.bzscroll.x = new BezierClass(px, self.newscrollx, ms, 0, 0, p3, 1);\r\n self.bzscroll.y = new BezierClass(py, self.newscrolly, ms, 0, 0, p3, 1);\r\n\r\n var loopid = now();\r\n\r\n var loop = function () {\r\n\r\n if (!self.scrollrunning) return;\r\n var x = self.bzscroll.y.getPos();\r\n\r\n self.setScrollLeft(self.bzscroll.x.getNow());\r\n self.setScrollTop(self.bzscroll.y.getNow());\r\n\r\n if (x <= 1) {\r\n self.timer = setAnimationFrame(loop);\r\n } else {\r\n self.scrollrunning = false;\r\n self.timer = 0;\r\n self.triggerScrollEnd();\r\n }\r\n\r\n };\r\n\r\n if (!self.scrollrunning) {\r\n self.triggerScrollStart(px, py, x, y, ms);\r\n self.scrollrunning = true;\r\n self.timer = setAnimationFrame(loop);\r\n }\r\n\r\n };\r\n\r\n this.cancelScroll = function () {\r\n if (self.timer) clearAnimationFrame(self.timer);\r\n self.timer = 0;\r\n self.bzscroll = false;\r\n self.scrollrunning = false;\r\n return self;\r\n };\r\n\r\n }\r\n\r\n this.doScrollBy = function (stp, relative) {\r\n doScrollRelative(0, stp);\r\n };\r\n\r\n this.doScrollLeftBy = function (stp, relative) {\r\n doScrollRelative(stp, 0);\r\n };\r\n\r\n this.doScrollTo = function (pos, relative) {\r\n var ny = (relative) ? Math.round(pos * self.scrollratio.y) : pos;\r\n if (ny < 0) ny = 0;\r\n else if (ny > self.page.maxh) ny = self.page.maxh;\r\n self.cursorfreezed = false;\r\n self.doScrollTop(pos);\r\n };\r\n\r\n this.checkContentSize = function () {\r\n var pg = self.getContentSize();\r\n if ((pg.h != self.page.h) || (pg.w != self.page.w)) self.resize(false, pg);\r\n };\r\n\r\n self.onscroll = function (e) {\r\n if (self.rail.drag) return;\r\n if (!self.cursorfreezed) {\r\n self.synched('scroll', function () {\r\n self.scroll.y = Math.round(self.getScrollTop() / self.scrollratio.y);\r\n if (self.railh) self.scroll.x = Math.round(self.getScrollLeft() / self.scrollratio.x);\r\n self.noticeCursor();\r\n });\r\n }\r\n };\r\n self.bind(self.docscroll, \"scroll\", self.onscroll);\r\n\r\n this.doZoomIn = function (e) {\r\n if (self.zoomactive) return;\r\n self.zoomactive = true;\r\n\r\n self.zoomrestore = {\r\n style: {}\r\n };\r\n var lst = ['position', 'top', 'left', 'zIndex', 'backgroundColor', 'marginTop', 'marginBottom', 'marginLeft', 'marginRight'];\r\n var win = self.win[0].style;\r\n for (var a in lst) {\r\n var pp = lst[a];\r\n self.zoomrestore.style[pp] = (win[pp] !== undefined) ? win[pp] : '';\r\n }\r\n\r\n self.zoomrestore.style.width = self.win.css('width');\r\n self.zoomrestore.style.height = self.win.css('height');\r\n\r\n self.zoomrestore.padding = {\r\n w: self.win.outerWidth() - self.win.width(),\r\n h: self.win.outerHeight() - self.win.height()\r\n };\r\n\r\n if (cap.isios4) {\r\n self.zoomrestore.scrollTop = $window.scrollTop();\r\n $window.scrollTop(0);\r\n }\r\n\r\n self.win.css({\r\n position: (cap.isios4) ? \"absolute\" : \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: globalmaxzindex + 100,\r\n margin: 0\r\n });\r\n var bkg = self.win.css(\"backgroundColor\");\r\n if (\"\" === bkg || /transparent|rgba\\(0, 0, 0, 0\\)|rgba\\(0,0,0,0\\)/.test(bkg)) self.win.css(\"backgroundColor\", \"#fff\");\r\n self.rail.css({\r\n zIndex: globalmaxzindex + 101\r\n });\r\n self.zoom.css({\r\n zIndex: globalmaxzindex + 102\r\n });\r\n self.zoom.css('backgroundPosition', '0 -18px');\r\n self.resizeZoom();\r\n\r\n if (self.onzoomin) self.onzoomin.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoomOut = function (e) {\r\n if (!self.zoomactive) return;\r\n self.zoomactive = false;\r\n\r\n self.win.css(\"margin\", \"\");\r\n self.win.css(self.zoomrestore.style);\r\n\r\n if (cap.isios4) {\r\n $window.scrollTop(self.zoomrestore.scrollTop);\r\n }\r\n\r\n self.rail.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoom.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoomrestore = false;\r\n self.zoom.css('backgroundPosition', '0 0');\r\n self.onResize();\r\n\r\n if (self.onzoomout) self.onzoomout.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoom = function (e) {\r\n return (self.zoomactive) ? self.doZoomOut(e) : self.doZoomIn(e);\r\n };\r\n\r\n this.resizeZoom = function () {\r\n if (!self.zoomactive) return;\r\n\r\n var py = self.getScrollTop(); //preserve scrolling position\r\n self.win.css({\r\n width: $window.width() - self.zoomrestore.padding.w + \"px\",\r\n height: $window.height() - self.zoomrestore.padding.h + \"px\"\r\n });\r\n self.onResize();\r\n\r\n self.setScrollTop(Math.min(self.page.maxh, py));\r\n };\r\n\r\n this.init();\r\n\r\n $.nicescroll.push(this);\r\n\r\n };\r\n\r\n // Inspired by the work of Kin Blas\r\n // http://webpro.host.adobe.com/people/jblas/momentum/includes/jquery.momentum.0.7.js \r\n var ScrollMomentumClass2D = function (nc) {\r\n var self = this;\r\n this.nc = nc;\r\n\r\n this.lastx = 0;\r\n this.lasty = 0;\r\n this.speedx = 0;\r\n this.speedy = 0;\r\n this.lasttime = 0;\r\n this.steptime = 0;\r\n this.snapx = false;\r\n this.snapy = false;\r\n this.demulx = 0;\r\n this.demuly = 0;\r\n\r\n this.lastscrollx = -1;\r\n this.lastscrolly = -1;\r\n\r\n this.chkx = 0;\r\n this.chky = 0;\r\n\r\n this.timer = 0;\r\n\r\n this.reset = function (px, py) {\r\n self.stop();\r\n self.steptime = 0;\r\n self.lasttime = now();\r\n self.speedx = 0;\r\n self.speedy = 0;\r\n self.lastx = px;\r\n self.lasty = py;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.update = function (px, py) {\r\n var tm = now();\r\n self.steptime = tm - self.lasttime;\r\n self.lasttime = tm;\r\n var dy = py - self.lasty;\r\n var dx = px - self.lastx;\r\n var sy = self.nc.getScrollTop();\r\n var sx = self.nc.getScrollLeft();\r\n var newy = sy + dy;\r\n var newx = sx + dx;\r\n self.snapx = (newx < 0) || (newx > self.nc.page.maxw);\r\n self.snapy = (newy < 0) || (newy > self.nc.page.maxh);\r\n self.speedx = dx;\r\n self.speedy = dy;\r\n self.lastx = px;\r\n self.lasty = py;\r\n };\r\n\r\n this.stop = function () {\r\n self.nc.unsynched(\"domomentum2d\");\r\n if (self.timer) clearTimeout(self.timer);\r\n self.timer = 0;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.doSnapy = function (nx, ny) {\r\n var snap = false;\r\n\r\n if (ny < 0) {\r\n ny = 0;\r\n snap = true;\r\n } else if (ny > self.nc.page.maxh) {\r\n ny = self.nc.page.maxh;\r\n snap = true;\r\n }\r\n\r\n if (nx < 0) {\r\n nx = 0;\r\n snap = true;\r\n } else if (nx > self.nc.page.maxw) {\r\n nx = self.nc.page.maxw;\r\n snap = true;\r\n }\r\n\r\n (snap) ? self.nc.doScrollPos(nx, ny, self.nc.opt.snapbackspeed) : self.nc.triggerScrollEnd();\r\n };\r\n\r\n this.doMomentum = function (gp) {\r\n var t = now();\r\n var l = (gp) ? t + gp : self.lasttime;\r\n\r\n var sl = self.nc.getScrollLeft();\r\n var st = self.nc.getScrollTop();\r\n\r\n var pageh = self.nc.page.maxh;\r\n var pagew = self.nc.page.maxw;\r\n\r\n self.speedx = (pagew > 0) ? Math.min(60, self.speedx) : 0;\r\n self.speedy = (pageh > 0) ? Math.min(60, self.speedy) : 0;\r\n\r\n var chk = l && (t - l) <= 60;\r\n\r\n if ((st < 0) || (st > pageh) || (sl < 0) || (sl > pagew)) chk = false;\r\n\r\n var sy = (self.speedy && chk) ? self.speedy : false;\r\n var sx = (self.speedx && chk) ? self.speedx : false;\r\n\r\n if (sy || sx) {\r\n var tm = Math.max(16, self.steptime); //timeout granularity\r\n\r\n if (tm > 50) { // do smooth\r\n var xm = tm / 50;\r\n self.speedx *= xm;\r\n self.speedy *= xm;\r\n tm = 50;\r\n }\r\n\r\n self.demulxy = 0;\r\n\r\n self.lastscrollx = self.nc.getScrollLeft();\r\n self.chkx = self.lastscrollx;\r\n self.lastscrolly = self.nc.getScrollTop();\r\n self.chky = self.lastscrolly;\r\n\r\n var nx = self.lastscrollx;\r\n var ny = self.lastscrolly;\r\n\r\n var onscroll = function () {\r\n var df = ((now() - t) > 600) ? 0.04 : 0.02;\r\n\r\n if (self.speedx) {\r\n nx = Math.floor(self.lastscrollx - (self.speedx * (1 - self.demulxy)));\r\n self.lastscrollx = nx;\r\n if ((nx < 0) || (nx > pagew)) df = 0.10;\r\n }\r\n\r\n if (self.speedy) {\r\n ny = Math.floor(self.lastscrolly - (self.speedy * (1 - self.demulxy)));\r\n self.lastscrolly = ny;\r\n if ((ny < 0) || (ny > pageh)) df = 0.10;\r\n }\r\n\r\n self.demulxy = Math.min(1, self.demulxy + df);\r\n\r\n self.nc.synched(\"domomentum2d\", function () {\r\n\r\n if (self.speedx) {\r\n var scx = self.nc.getScrollLeft();\r\n // if (scx != self.chkx) self.stop();\r\n self.chkx = nx;\r\n self.nc.setScrollLeft(nx);\r\n }\r\n\r\n if (self.speedy) {\r\n var scy = self.nc.getScrollTop();\r\n // if (scy != self.chky) self.stop();\r\n self.chky = ny;\r\n self.nc.setScrollTop(ny);\r\n }\r\n\r\n if (!self.timer) {\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n\r\n });\r\n\r\n if (self.demulxy < 1) {\r\n self.timer = setTimeout(onscroll, tm);\r\n } else {\r\n self.stop();\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n };\r\n\r\n onscroll();\r\n\r\n } else {\r\n self.doSnapy(self.nc.getScrollLeft(), self.nc.getScrollTop());\r\n }\r\n\r\n };\r\n\r\n };\r\n\r\n\r\n // override jQuery scrollTop\r\n var _scrollTop = jQuery.fn.scrollTop; // preserve original function\r\n\r\n jQuery.cssHooks.pageYOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollTop = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n // override jQuery scrollLeft\r\n var _scrollLeft = jQuery.fn.scrollLeft; // preserve original function\r\n\r\n $.cssHooks.pageXOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollLeft = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n var NiceScrollArray = function (doms) {\r\n var self = this;\r\n this.length = 0;\r\n this.name = \"nicescrollarray\";\r\n\r\n this.each = function (fn) {\r\n $.each(self, fn);\r\n return self;\r\n };\r\n\r\n this.push = function (nice) {\r\n self[self.length] = nice;\r\n self.length++;\r\n };\r\n\r\n this.eq = function (idx) {\r\n return self[idx];\r\n };\r\n\r\n if (doms) {\r\n for (var a = 0; a < doms.length; a++) {\r\n var nice = $.data(doms[a], '__nicescroll') || false;\r\n if (nice) {\r\n this[this.length] = nice;\r\n this.length++;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n function mplex(el, lst, fn) {\r\n for (var a = 0, l = lst.length; a < l; a++) fn(el, lst[a]);\r\n }\r\n mplex(\r\n NiceScrollArray.prototype, ['show', 'hide', 'toggle', 'onResize', 'resize', 'remove', 'stop', 'doScrollPos'],\r\n function (e, n) {\r\n e[n] = function () {\r\n var args = arguments;\r\n return this.each(function () {\r\n this[n].apply(this, args);\r\n });\r\n };\r\n }\r\n );\r\n\r\n jQuery.fn.getNiceScroll = function (index) {\r\n if (index === undefined) {\r\n return new NiceScrollArray(this);\r\n } else {\r\n return this[index] && $.data(this[index], '__nicescroll') || false;\r\n }\r\n };\r\n\r\n var pseudos = jQuery.expr.pseudos || jQuery.expr[':']; // jQuery 3 migration\r\n pseudos.nicescroll = function (a) {\r\n return $.data(a, '__nicescroll') !== undefined;\r\n };\r\n\r\n $.fn.niceScroll = function (wrapper, _opt) {\r\n if (_opt === undefined && typeof wrapper == \"object\" && !(\"jquery\" in wrapper)) {\r\n _opt = wrapper;\r\n wrapper = false;\r\n }\r\n\r\n var ret = new NiceScrollArray();\r\n\r\n this.each(function () {\r\n var $this = $(this);\r\n\r\n var opt = $.extend({}, _opt); // cloning\r\n\r\n if (wrapper || false) {\r\n var wrp = $(wrapper);\r\n opt.doc = (wrp.length > 1) ? $(wrapper, $this) : wrp;\r\n opt.win = $this;\r\n }\r\n var docundef = !(\"doc\" in opt);\r\n if (!docundef && !(\"win\" in opt)) opt.win = $this;\r\n\r\n var nice = $this.data('__nicescroll') || false;\r\n if (!nice) {\r\n opt.doc = opt.doc || $this;\r\n nice = new NiceScrollClass(opt, $this);\r\n $this.data('__nicescroll', nice);\r\n }\r\n ret.push(nice);\r\n });\r\n\r\n return (ret.length === 1) ? ret[0] : ret;\r\n };\r\n\r\n _win.NiceScroll = {\r\n getjQuery: function () {\r\n return jQuery;\r\n }\r\n };\r\n\r\n if (!$.nicescroll) {\r\n $.nicescroll = new NiceScrollArray();\r\n $.nicescroll.options = _globaloptions;\r\n }\r\n\r\n}));","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var keyCounter = 0\n var allWaypoints = {}\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor')\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor')\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor')\n }\n\n this.key = 'waypoint-' + keyCounter\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)\n this.element = this.options.element\n this.adapter = new Waypoint.Adapter(this.element)\n this.callback = options.handler\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.enabled = this.options.enabled\n this.triggerPoint = null\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n })\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context)\n\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset]\n }\n this.group.add(this)\n this.context.add(this)\n allWaypoints[this.key] = this\n keyCounter += 1\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function(direction) {\n this.group.queueTrigger(this, direction)\n }\n\n /* Private */\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return\n }\n if (this.callback) {\n this.callback.apply(this, args)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function() {\n this.context.remove(this)\n this.group.remove(this)\n delete allWaypoints[this.key]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function() {\n this.enabled = false\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function() {\n this.context.refresh()\n this.enabled = true\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function() {\n return this.group.next(this)\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function() {\n return this.group.previous(this)\n }\n\n /* Private */\n Waypoint.invokeAll = function(method) {\n var allWaypointsArray = []\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey])\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function() {\n Waypoint.invokeAll('destroy')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function() {\n Waypoint.invokeAll('disable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function() {\n Waypoint.Context.refreshAll()\n for (var waypointKey in allWaypoints) {\n allWaypoints[waypointKey].enabled = true\n }\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function() {\n return window.innerHeight || document.documentElement.clientHeight\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function() {\n return document.documentElement.clientWidth\n }\n\n Waypoint.adapters = []\n\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n }\n\n Waypoint.offsetAliases = {\n 'bottom-in-view': function() {\n return this.context.innerHeight() - this.adapter.outerHeight()\n },\n 'right-in-view': function() {\n return this.context.innerWidth() - this.adapter.outerWidth()\n }\n }\n\n window.Waypoint = Waypoint\n}())\n;(function() {\n 'use strict'\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n var keyCounter = 0\n var contexts = {}\n var Waypoint = window.Waypoint\n var oldWindowLoad = window.onload\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element\n this.Adapter = Waypoint.Adapter\n this.adapter = new this.Adapter(element)\n this.key = 'waypoint-context-' + keyCounter\n this.didScroll = false\n this.didResize = false\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n }\n this.waypoints = {\n vertical: {},\n horizontal: {}\n }\n\n element.waypointContextKey = this.key\n contexts[element.waypointContextKey] = this\n keyCounter += 1\n if (!Waypoint.windowContext) {\n Waypoint.windowContext = true\n Waypoint.windowContext = new Context(window)\n }\n\n this.createThrottledScrollHandler()\n this.createThrottledResizeHandler()\n }\n\n /* Private */\n Context.prototype.add = function(waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints[axis][waypoint.key] = waypoint\n this.refresh()\n }\n\n /* Private */\n Context.prototype.checkEmpty = function() {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)\n var isWindow = this.element == this.element.window\n if (horizontalEmpty && verticalEmpty && !isWindow) {\n this.adapter.off('.waypoints')\n delete contexts[this.key]\n }\n }\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function() {\n var self = this\n\n function resizeHandler() {\n self.handleResize()\n self.didResize = false\n }\n\n this.adapter.on('resize.waypoints', function() {\n if (!self.didResize) {\n self.didResize = true\n Waypoint.requestAnimationFrame(resizeHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function() {\n var self = this\n function scrollHandler() {\n self.handleScroll()\n self.didScroll = false\n }\n\n this.adapter.on('scroll.waypoints', function() {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true\n Waypoint.requestAnimationFrame(scrollHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.handleResize = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Private */\n Context.prototype.handleScroll = function() {\n var triggeredGroups = {}\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n var isForward = axis.newScroll > axis.oldScroll\n var direction = isForward ? axis.forward : axis.backward\n\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n if (waypoint.triggerPoint === null) {\n continue\n }\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n }\n }\n\n /* Private */\n Context.prototype.innerHeight = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight()\n }\n\n /* Private */\n Context.prototype.remove = function(waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key]\n this.checkEmpty()\n }\n\n /* Private */\n Context.prototype.innerWidth = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function() {\n var allWaypoints = []\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey])\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function() {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset()\n var triggeredGroups = {}\n var axes\n\n this.handleScroll()\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var adjustment = waypoint.options.offset\n var oldTriggerPoint = waypoint.triggerPoint\n var elementOffset = 0\n var freshWaypoint = oldTriggerPoint == null\n var contextModifier, wasBeforeScroll, nowAfterScroll\n var triggeredBackward, triggeredForward\n\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\n }\n\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint)\n }\n else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment)\n if (waypoint.options.offset.indexOf('%') > - 1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\n }\n }\n\n contextModifier = axis.contextScroll - axis.contextOffset\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\n triggeredBackward = wasBeforeScroll && nowAfterScroll\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\n\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n Waypoint.requestAnimationFrame(function() {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n })\n\n return this\n }\n\n /* Private */\n Context.findOrCreateByElement = function(element) {\n return Context.findByElement(element) || new Context(element)\n }\n\n /* Private */\n Context.refreshAll = function() {\n for (var contextId in contexts) {\n contexts[contextId].refresh()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function(element) {\n return contexts[element.waypointContextKey]\n }\n\n window.onload = function() {\n if (oldWindowLoad) {\n oldWindowLoad()\n }\n Context.refreshAll()\n }\n\n\n Waypoint.requestAnimationFrame = function(callback) {\n var requestFn = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n requestAnimationFrameShim\n requestFn.call(window, callback)\n }\n Waypoint.Context = Context\n}())\n;(function() {\n 'use strict'\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint\n }\n\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint\n }\n\n var groups = {\n vertical: {},\n horizontal: {}\n }\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name\n this.axis = options.axis\n this.id = this.name + '-' + this.axis\n this.waypoints = []\n this.clearTriggerQueues()\n groups[this.axis][this.name] = this\n }\n\n /* Private */\n Group.prototype.add = function(waypoint) {\n this.waypoints.push(waypoint)\n }\n\n /* Private */\n Group.prototype.clearTriggerQueues = function() {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n }\n }\n\n /* Private */\n Group.prototype.flushTriggers = function() {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction]\n var reverse = direction === 'up' || direction === 'left'\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i]\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction])\n }\n }\n }\n this.clearTriggerQueues()\n }\n\n /* Private */\n Group.prototype.next = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n var isLast = index === this.waypoints.length - 1\n return isLast ? null : this.waypoints[index + 1]\n }\n\n /* Private */\n Group.prototype.previous = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n return index ? this.waypoints[index - 1] : null\n }\n\n /* Private */\n Group.prototype.queueTrigger = function(waypoint, direction) {\n this.triggerQueues[direction].push(waypoint)\n }\n\n /* Private */\n Group.prototype.remove = function(waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n if (index > -1) {\n this.waypoints.splice(index, 1)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function() {\n return this.waypoints[0]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function() {\n return this.waypoints[this.waypoints.length - 1]\n }\n\n /* Private */\n Group.findOrCreate = function(options) {\n return groups[options.axis][options.name] || new Group(options)\n }\n\n Waypoint.Group = Group\n}())\n;(function() {\n 'use strict'\n\n var $ = window.jQuery\n var Waypoint = window.Waypoint\n\n function JQueryAdapter(element) {\n this.$element = $(element)\n }\n\n $.each([\n 'innerHeight',\n 'innerWidth',\n 'off',\n 'offset',\n 'on',\n 'outerHeight',\n 'outerWidth',\n 'scrollLeft',\n 'scrollTop'\n ], function(i, method) {\n JQueryAdapter.prototype[method] = function() {\n var args = Array.prototype.slice.call(arguments)\n return this.$element[method].apply(this.$element, args)\n }\n })\n\n $.each([\n 'extend',\n 'inArray',\n 'isEmptyObject'\n ], function(i, method) {\n JQueryAdapter[method] = $[method]\n })\n\n Waypoint.adapters.push({\n name: 'jquery',\n Adapter: JQueryAdapter\n })\n Waypoint.Adapter = JQueryAdapter\n}())\n;(function() {\n 'use strict'\n\n var Waypoint = window.Waypoint\n\n function createExtension(framework) {\n return function() {\n var waypoints = []\n var overrides = arguments[0]\n\n if (framework.isFunction(arguments[0])) {\n overrides = framework.extend({}, arguments[1])\n overrides.handler = arguments[0]\n }\n\n this.each(function() {\n var options = framework.extend({}, overrides, {\n element: this\n })\n if (typeof options.context === 'string') {\n options.context = framework(this).closest(options.context)[0]\n }\n waypoints.push(new Waypoint(options))\n })\n\n return waypoints\n }\n }\n\n if (window.jQuery) {\n window.jQuery.fn.waypoint = createExtension(window.jQuery)\n }\n if (window.Zepto) {\n window.Zepto.fn.waypoint = createExtension(window.Zepto)\n }\n}())\n;","/*!\nWaypoints Inview Shortcut - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n function noop() {}\n\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/shortcuts/inview */\n function Inview(options) {\n this.options = Waypoint.Adapter.extend({}, Inview.defaults, options)\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints = []\n this.element = this.options.element\n this.createWaypoints()\n }\n\n /* Private */\n Inview.prototype.createWaypoints = function() {\n var configs = {\n vertical: [{\n down: 'enter',\n up: 'exited',\n offset: '100%'\n }, {\n down: 'entered',\n up: 'exit',\n offset: 'bottom-in-view'\n }, {\n down: 'exit',\n up: 'entered',\n offset: 0\n }, {\n down: 'exited',\n up: 'enter',\n offset: function() {\n return -this.adapter.outerHeight()\n }\n }],\n horizontal: [{\n right: 'enter',\n left: 'exited',\n offset: '100%'\n }, {\n right: 'entered',\n left: 'exit',\n offset: 'right-in-view'\n }, {\n right: 'exit',\n left: 'entered',\n offset: 0\n }, {\n right: 'exited',\n left: 'enter',\n offset: function() {\n return -this.adapter.outerWidth()\n }\n }]\n }\n\n for (var i = 0, end = configs[this.axis].length; i < end; i++) {\n var config = configs[this.axis][i]\n this.createWaypoint(config)\n }\n }\n\n /* Private */\n Inview.prototype.createWaypoint = function(config) {\n var self = this\n this.waypoints.push(new Waypoint({\n context: this.options.context,\n element: this.options.element,\n enabled: this.options.enabled,\n handler: (function(config) {\n return function(direction) {\n self.options[config[direction]].call(self, direction)\n }\n }(config)),\n offset: config.offset,\n horizontal: this.options.horizontal\n }))\n }\n\n /* Public */\n Inview.prototype.destroy = function() {\n for (var i = 0, end = this.waypoints.length; i < end; i++) {\n this.waypoints[i].destroy()\n }\n this.waypoints = []\n }\n\n Inview.prototype.disable = function() {\n for (var i = 0, end = this.waypoints.length; i < end; i++) {\n this.waypoints[i].disable()\n }\n }\n\n Inview.prototype.enable = function() {\n for (var i = 0, end = this.waypoints.length; i < end; i++) {\n this.waypoints[i].enable()\n }\n }\n\n Inview.defaults = {\n context: window,\n enabled: true,\n enter: noop,\n entered: noop,\n exit: noop,\n exited: noop\n }\n\n Waypoint.Inview = Inview\n}())\n;","/*!\nWaypoints Sticky Element Shortcut - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var $ = window.jQuery\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/shortcuts/sticky-elements */\n function Sticky(options) {\n this.options = $.extend({}, Waypoint.defaults, Sticky.defaults, options)\n this.element = this.options.element\n this.$element = $(this.element)\n this.createWrapper()\n this.createWaypoint()\n }\n\n /* Private */\n Sticky.prototype.createWaypoint = function() {\n var originalHandler = this.options.handler\n\n this.waypoint = new Waypoint($.extend({}, this.options, {\n element: this.wrapper,\n handler: $.proxy(function(direction) {\n var shouldBeStuck = this.options.direction.indexOf(direction) > -1\n var wrapperHeight = shouldBeStuck ? this.$element.outerHeight(true) : ''\n\n this.$wrapper.height(wrapperHeight)\n this.$element.toggleClass(this.options.stuckClass, shouldBeStuck)\n\n if (originalHandler) {\n originalHandler.call(this, direction)\n }\n }, this)\n }))\n }\n\n /* Private */\n Sticky.prototype.createWrapper = function() {\n if (this.options.wrapper) {\n this.$element.wrap(this.options.wrapper)\n }\n this.$wrapper = this.$element.parent()\n this.wrapper = this.$wrapper[0]\n }\n\n /* Public */\n Sticky.prototype.destroy = function() {\n if (this.$element.parent()[0] === this.wrapper) {\n this.waypoint.destroy()\n this.$element.removeClass(this.options.stuckClass)\n if (this.options.wrapper) {\n this.$element.unwrap()\n }\n }\n }\n\n Sticky.defaults = {\n wrapper: '
',\n stuckClass: 'stuck',\n direction: 'down right'\n }\n\n Waypoint.Sticky = Sticky\n}())\n;","var map = {\n\t\"./quotations.svg\": \"./src/images/quotations.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/images sync recursive \\\\.(gif|png|jpe?g|svg)$\";","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODM5cHgiIGhlaWdodD0iNjI0cHgiIHZpZXdCb3g9IjAgMCA4MzkgNjI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPuKAnDwvdGl0bGU+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVGVzdGltb25pYWxzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgLTMyLjAwMDAwMCkiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzkzLDMzIEwyODUuNjksMjkxLjQzNjYyIEMzNDAuNDQsMzI4LjY2OTAxNCAzNjYuNzIsMzg3LjgwMjgxNyAzNjYuNzIsNDQ5LjEyNjc2MSBDMzY2LjcyLDU2OS41ODQ1MDcgMjc5LjEyLDY1NSAxNTguNjcsNjU1IEM1MS4zNiw2NTUgLTQ1LDU4Mi43MjUzNTIgLTQ1LDQ1MS4zMTY5MDEgQy00NSwzODkuOTkyOTU4IC0yMy4xLDMzNy40Mjk1NzcgOS43NSwyODkuMjQ2NDc5IEwxODcuMTQsMzMgTDM5MywzMyBaIE04MzgsMzMgTDczMC42OSwyOTEuNDM2NjIgQzc4NS40NCwzMjguNjY5MDE0IDgxMS43MiwzODcuODAyODE3IDgxMS43Miw0NDkuMTI2NzYxIEM4MTEuNzIsNTY5LjU4NDUwNyA3MjQuMTIsNjU1IDYwMy42Nyw2NTUgQzQ5Ni4zNiw2NTUgNDAwLDU4Mi43MjUzNTIgNDAwLDQ1MS4zMTY5MDEgQzQwMCwzODkuOTkyOTU4IDQyMS45LDMzNy40Mjk1NzcgNDU0Ljc1LDI4OS4yNDY0NzkgTDYzMi4xNCwzMyBMODM4LDMzIFoiIGlkPSLigJwiIHN0cm9rZT0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/**\n * description\n * @type {Array}\n */\nexport const COLORS_WHITE_TO_BLACK = [{\n\tpct: 0.0,\n\tcolor: {\n\t\tr: 0xf5,\n\t\tg: 0xf8,\n\t\tb: 0xfa\n\t}\n}, {\n\tpct: 0.5,\n\tcolor: {\n\t\tr: 0x89,\n\t\tg: 0x8b,\n\t\tb: 0x8c\n\t}\n}, {\n\tpct: 1.0,\n\tcolor: {\n\t\tr: 0x14,\n\t\tg: 0x17,\n\t\tb: 0x1a\n\t}\n}];\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/**\n * [getColorForPercentage description]\n * @param {[type]} pct [description]\n * @param {[type]} colors [description]\n * @return {[type]} [description]\n */\nexport function getColorForPercentage(pct, colors) {\n\tlet i;\n\n\tfor (i = 1; i < colors.length - 1; i++) {\n\t\tif (pct < colors[i].pct) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst LOWER = colors[i - 1];\n\tconst UPPER = colors[i];\n\tconst RANGE_PCT = (pct - LOWER.pct) / (UPPER.pct - LOWER.pct);\n\tconst PCT_LOWER = 1 - RANGE_PCT;\n\tconst PCT_UPPER = RANGE_PCT;\n\tconst COLOR = {\n\t\t\tr: Math.floor(LOWER.color.r * PCT_LOWER + UPPER.color.r * PCT_UPPER),\n\t\t\tg: Math.floor(LOWER.color.g * PCT_LOWER + UPPER.color.g * PCT_UPPER),\n\t\t\tb: Math.floor(LOWER.color.b * PCT_LOWER + UPPER.color.b * PCT_UPPER)\n\t\t};\n\n\treturn `rgb(${ [COLOR.r, COLOR.g, COLOR.b].join(',') })`;\n}\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n(function($, window, document, undefined) {\n\t$(window).setBreakpoints({\n\t\t// array of widths in pixels where breakpoints should be triggered\n\t\tbreakpoints: [\n\t\t\t320,\n\t\t\t480,\n\t\t\t720,\n\t\t\t1024,\n\t\t\t1280\n\t\t]\n\t});\n})(jQuery, window, document);\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nDrupal.behaviors.tweakForm = {\n\tattach: function(context, settings) {\n\t\tconst $ = jQuery;\n\t\tconst $FORM = $(context).find('[data-js-hook=\"form\"]');\n\n\t\tif ($FORM) {\n\t\t\t$FORM.each(function(key, value) {\n\t\t\t\tconst $FORM_ELEMENT = $(this).find('[data-js-hook=\"formElement\"]');\n\n\t\t\t\t$FORM_ELEMENT.floatingFormLabels({\n\t\t\t\t\tlabel: '.form-element__label',\n\t\t\t\t\tfloatedClass: 'form-element--floated'\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n};\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n(function($, window, document, undefined) {\n\t$(document).ready(function() {\n\t\tconst $MAIN_CONTENT = $('[data-js-hook=\"mainContent\"]');\n\n\t\tif (!$MAIN_CONTENT.data('offscreen')) {\n\t\t\tconst SITE_HEADER_HEIGHT = $('[data-js-hook=\"header\"]').outerHeight();\n\t\t\tconst SITE_FOOTER_HEIGHT = $('[data-js-hook=\"footer\"]').outerHeight();\n\n\t\t\t$MAIN_CONTENT.css({\n\t\t\t\t'min-height': `calc(100vh - (${ SITE_HEADER_HEIGHT + SITE_FOOTER_HEIGHT }px))`\n\t\t\t});\n\t\t}\n\t});\n})(jQuery, window, document);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nimport { getColorForPercentage } from \"./_utilities/get-color-for-percentage.js\";\nimport { COLORS_WHITE_TO_BLACK } from \"./_constants.js\";\n\n(function ($, window, document, undefined) {\n $(document).ready(function () {\n const $WINDOW = $(window);\n const $BODY = $('[data-js-hook=\"body\"]');\n const $MAIN_CONTENT = $('[data-js-hook=\"mainContent\"]');\n const $BRAND_LOGO = $('[data-js-hook=\"brandLogo\"]');\n const $NAV_BAR = $('[data-js-hook=\"navBar\"]');\n const $NAV_TOGGLE = $('[data-js-hook=\"navToggle\"]');\n const $HEADER = $('[data-js-hook=\"header\"]');\n const $MEDIA = $(\"img, video\");\n\n // Only run when the main contet is off screen.\n if ($MAIN_CONTENT.data(\"offscreen\")) {\n // Even if the main content is off screen, check to see if the body does not\n // have a black background.\n if (!$BODY.data(\"black-background\")) {\n const LOGO_HEIGHT = $BRAND_LOGO.height();\n\n // The nav bar's offset from the bottom of the page\n const NAV_BAR_OFFSET =\n $WINDOW.height() - ($NAV_BAR.offset().top + LOGO_HEIGHT);\n\n // for (let i = 0; i <= SEGMENTS; i++) {\n var logoWaypoint = new Waypoint({\n element: $MAIN_CONTENT,\n handler: function (direction) {\n if (direction == \"down\") {\n $BRAND_LOGO.addClass(\"js--color-brand\");\n $NAV_TOGGLE.addClass(\"js--color-brand\");\n } else {\n $BRAND_LOGO.removeClass(\"js--color-brand\");\n $NAV_TOGGLE.removeClass(\"js--color-brand\");\n }\n },\n offset: function () {\n return $(window).outerHeight(true) - NAV_BAR_OFFSET;\n },\n });\n }\n var bannerWaypoint = new Waypoint({\n element: $MAIN_CONTENT,\n handler: function (direction) {\n if (direction == \"down\") {\n $HEADER.addClass(\"js--banner-hide\");\n } else {\n $HEADER.removeClass(\"js--banner-hide\");\n }\n },\n offset: \"50%\",\n });\n }\n\n $(window).bind(\"scroll\", function () {\n // remove hiding class if waypoint fails\n if (window.scrollY < 100) {\n $HEADER.removeClass(\"js--banner-hide\");\n }\n });\n // add small image fade for images as they are coming onscreen\n $MEDIA.each(function () {\n var el = $(this);\n var imageFadeWaypoint = new Waypoint.Inview({\n element: el,\n enter: function (direction) {\n el.addClass(\"js--media-in\");\n },\n exited: function (direction) {\n if (direction == \"up\") {\n el.removeClass(\"js--media-in\");\n }\n },\n });\n el.on(\"load\", function () {\n Waypoint.refreshAll();\n });\n });\n\n $(window).bind(\"enterBreakpoint320 enterBreakpoint480\", function () {\n const NAV_BAR_OFFSET = $WINDOW.height() - $NAV_BAR.offset().top;\n\n var navBarWaypoint = new Waypoint({\n element: $MAIN_CONTENT,\n handler: function (direction) {\n if ($HEADER.data(\"has-image\")) {\n $NAV_BAR.toggleClass(\"nav-bar--transparent\");\n }\n },\n offset: function () {\n return (\n $(window).outerHeight(true) - (NAV_BAR_OFFSET - $NAV_BAR.height())\n );\n },\n });\n });\n });\n})(jQuery, window, document);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n(function ($, window, document, undefined) {\n $(document).ready(function () {\n const $BODY = $('[data-js-hook=\"body\"]');\n const $NAV = $('[data-js-hook=\"nav\"]');\n const $NAV_TOGGLE = $('[data-js-hook=\"navToggle\"]');\n const $NAV_BAR = $('[data-js-hook=\"navBar\"]');\n const $BRAND_LOGO = $('[data-js-hook=\"brandLogo\"]');\n\n const $HEADER = $('[data-js-hook=\"header\"]');\n const $MAIN_CONTENT = $('[data-js-hook=\"mainContent\"]');\n const $FOOTER = $('[data-js-hook=\"footer\"]');\n const $NAV_COLORS = Array(\n 'gold',\n 'blue',\n 'punch',\n 'green',\n 'orange'\n );\n\n let logoStyle = '';\n\n $NAV\n .css({ 'visibility': 'hidden' })\n .niceScroll({\n cursorcolor: 'transparent',\n cursorborder: 'transparent',\n autohidemode: 'hidden',\n emulatetouch: true,\n grabcursorenabled: false\n });\n /**\n * Watch for click events on the navigation toggle. This will show or hide\n * the navigation overlay as well as update aria-* attributes for accessibility.\n */\n $NAV_TOGGLE.on('click keypress', function (e) {\n $NAV.toggleClass('nav--opened');\n $NAV.attr('data-color-background', $NAV_COLORS[Math.floor(Math.random() * $NAV_COLORS.length)]);\n // Since the navigation is an overlay, the following areas need to be\n // \"hidden\" so any screen readers or assistive technologies ignoere them.\n $HEADER.attr('aria-hidden', $HEADER.attr('aria-hidden') === 'true' ? false : true);\n $MAIN_CONTENT.attr('aria-hidden', $MAIN_CONTENT.attr('aria-hidden') === 'true' ? false : true);\n $FOOTER.attr('aria-hidden', $FOOTER.attr('aria-hidden') === 'true' ? false : true);\n\n // Navigation is open, close it.\n if ($NAV.data('open')) {\n $NAV.attr('aria-hidden', true);\n\n $NAV_TOGGLE.attr('aria-expanded', false);\n\n $BODY\n .clearQueue()\n .delay(250)\n .queue(function () {\n $(this)\n .removeClass('page--nav-opened')\n .css({ 'overflow-y': 'auto' });\n\n // After the nav is closed, reapply the logoStyle to the logo\n $BRAND_LOGO.attr('style', logoStyle);\n\n $NAV_BAR.css({ 'zIndex': '' });\n\n $NAV.css({ 'visibility': 'hidden' });\n })\n .unbind('keyup');\n }\n\n // Navigation is closed, open it.\n else {\n // Copy the logo styles and remove them.\n logoStyle = $BRAND_LOGO.attr('style');\n $BRAND_LOGO.attr('style', '');\n\n $NAV\n .attr('aria-hidden', false)\n .css({ 'visibility': '' });\n $NAV_TOGGLE.attr('aria-expanded', true);\n $NAV_BAR.css({ 'zIndex': ($NAV.css('zIndex') / 1) + 1 });\n\n $BODY\n .addClass('page--nav-opened')\n .clearQueue()\n .delay(200)\n .queue(function () {\n $(this).css({ 'overflow-y': 'hidden' });\n\n if (e.type == 'keypress' && e.which == 13) {\n // Make the first a tag focusable to the user.\n $NAV.find('a').first().focus();\n }\n })\n .bind('keyup', function (e) {\n if (e.keyCode == 27) {\n $NAV_TOGGLE.trigger('click');\n }\n });\n }\n\n // Swap the data-open attribute true = false / false = true.\n $NAV.data('open', !$NAV.data('open'));\n\n return false;\n });\n });\n})(jQuery, window, document);\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Set a variable to get the actual screen height\n(function ($, window, document, undefined) {\n var mobileSizing = function () {\n // First we get the viewport height and we multiple it by 1% to get a value for a vh unit\n let vh = window.innerHeight * 0.01;\n // Then we set the value in the --vh custom property to the root of the document\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n };\n $(document).ready(function () {\n mobileSizing();\n });\n $(window).on(\"resize orientationchange\", function () {\n mobileSizing();\n });\n})(jQuery, window, document);\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// This is required in order to process your main style file.\n// DO NOT REMOVE OR MODIFIY THIS!\nrequire(\"src:styles/square360.main.scss\");\n\n// The is a required alias to all the static images inside the \"src\" folder.\n// These images are in stylesheets and/or a tags.\n// The second argument decides if sub directories should also be searched.\n// DO NOT REMOVE OR MODIFIY THIS!\nrequire.context(\"src:images\", true, /\\.(gif|png|jpe?g|svg)$/);\n\n/**\n * NODE PACKAGES\n * **************************************************\n */\n/*SLIDER*/\nrequire(\"waypoints/lib/jquery.waypoints.js\");\nrequire(\"waypoints/lib/shortcuts/sticky.js\");\nrequire(\"waypoints/lib/shortcuts/inview.js\");\nrequire(\"jquery.nicescroll\");\nrequire(\"floating-form-labels\");\n\n/**\n * VENDOR PACKAGES\n * **************************************************\n * This is an example of how to include a vendor file. Replace \"[path_to_file]\"\n * with the *.js filename and webpack will consume that file.\n * require('src:vendors/[path_to_file]');\n */\nrequire(\"src:vendors/breakpoints.js/breakpoints.js\");\n\n/**\n * PARTIALS\n * **************************************************\n */\nrequire(\"partials/breakpoints.js\");\nrequire(\"partials/nav.js\");\nrequire(\"partials/forms.js\");\nrequire(\"partials/main-content-waypoints.js\");\nrequire(\"partials/main-content-min-height.js\");\nrequire(\"partials/screen-height.js\");\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n\tBreakpoints.js\n\tversion 1.0\n\t\n\tCreates handy events for your responsive design breakpoints\n\t\n\tCopyright 2011 XOXCO, Inc\n\thttp://xoxco.com/\n\n\tDocumentation for this plugin lives here:\n\thttp://xoxco.com/projects/code/breakpoints\n\t\n\tLicensed under the MIT license:\n\thttp://www.opensource.org/licenses/mit-license.php\n\n*/\n(function($) {\n\n\tvar lastSize = 0;\n\tvar interval = null;\n\n\t$.fn.resetBreakpoints = function() {\n\t\t$(window).unbind('resize');\n\t\tif (interval) {\n\t\t\tclearInterval(interval);\n\t\t}\n\t\tlastSize = 0;\n\t};\n\t\n\t$.fn.setBreakpoints = function(settings) {\n\t\tvar options = jQuery.extend({\n\t\t\t\t\t\t\tdistinct: true,\n\t\t\t\t\t\t\tbreakpoints: new Array(320,480,768,1024)\n\t\t\t\t \t},settings);\n\n\n\t\tinterval = setInterval(function() {\n\t\n\t\t\tvar w = $(window).width();\n\t\t\tvar done = false;\n\t\t\t\n\t\t\tfor (var bp in options.breakpoints.sort(function(a,b) { return (b-a) })) {\n\t\t\t\n\t\t\t\t// fire onEnter when a browser expands into a new breakpoint\n\t\t\t\t// if in distinct mode, remove all other breakpoints first.\n\t\t\t\tif (!done && w >= options.breakpoints[bp] && lastSize < options.breakpoints[bp]) {\n\t\t\t\t\tif (options.distinct) {\n\t\t\t\t\t\tfor (var x in options.breakpoints.sort(function(a,b) { return (b-a) })) {\n\t\t\t\t\t\t\tif ($('body').hasClass('breakpoint-' + options.breakpoints[x])) {\n\t\t\t\t\t\t\t\t$('body').removeClass('breakpoint-' + options.breakpoints[x]);\n\t\t\t\t\t\t\t\t$(window).trigger('exitBreakpoint' + options.breakpoints[x]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t}\n\t\t\t\t\t$('body').addClass('breakpoint-' + options.breakpoints[bp]);\n\t\t\t\t\t$(window).trigger('enterBreakpoint' + options.breakpoints[bp]);\n\n\t\t\t\t}\t\t\t\t\n\n\t\t\t\t// fire onExit when browser contracts out of a larger breakpoint\n\t\t\t\tif (w < options.breakpoints[bp] && lastSize >= options.breakpoints[bp]) {\n\t\t\t\t\t$('body').removeClass('breakpoint-' + options.breakpoints[bp]);\n\t\t\t\t\t$(window).trigger('exitBreakpoint' + options.breakpoints[bp]);\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// if in distinct mode, fire onEnter when browser contracts into a smaller breakpoint\n\t\t\t\tif (\n\t\t\t\t\toptions.distinct && // only one breakpoint at a time\n\t\t\t\t\tw >= options.breakpoints[bp] && // and we are in this one\n\t\t\t\t\tw < options.breakpoints[bp-1] && // and smaller than the bigger one\n\t\t\t\t\tlastSize > w && // and we contracted\n\t\t\t\t\tlastSize >0 && // and this is not the first time\n\t\t\t\t\t!$('body').hasClass('breakpoint-' + options.breakpoints[bp]) // and we aren't already in this breakpoint\n\t\t\t\t\t) {\t\t\t\t\t\n\t\t\t\t\t$('body').addClass('breakpoint-' + options.breakpoints[bp]);\n\t\t\t\t\t$(window).trigger('enterBreakpoint' + options.breakpoints[bp]);\n\n\t\t\t\t}\t\t\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t// set up for next call\n\t\t\tif (lastSize != w) {\n\t\t\t\tlastSize = w;\n\t\t\t}\n\t\t},250);\n\t};\n\t\n})(jQuery);\n\n","module.exports = jQuery;"],"sourceRoot":""}