{"version":3,"file":"js/4169-39e88431591147672a41.js","mappings":"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","sources":["webpack:///./node_modules/nouislider/distribute/nouislider.js","webpack:///./node_modules/wnumb/wNumb.js"],"sourcesContent":["/*! nouislider - 8.5.1 - 2016-04-24 16:00:29 */\r\n\r\n(function (factory) {\r\n\r\n if ( typeof define === 'function' && define.amd ) {\r\n\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n\r\n } else if ( typeof exports === 'object' ) {\r\n\r\n // Node/CommonJS\r\n module.exports = factory();\r\n\r\n } else {\r\n\r\n // Browser globals\r\n window.noUiSlider = factory();\r\n }\r\n\r\n}(function( ){\r\n\r\n\t'use strict';\r\n\r\n\r\n\t// Removes duplicates from an array.\r\n\tfunction unique(array) {\r\n\t\treturn array.filter(function(a){\r\n\t\t\treturn !this[a] ? this[a] = true : false;\r\n\t\t}, {});\r\n\t}\r\n\r\n\t// Round a value to the closest 'to'.\r\n\tfunction closest ( value, to ) {\r\n\t\treturn Math.round(value / to) * to;\r\n\t}\r\n\r\n\t// Current position of an element relative to the document.\r\n\tfunction offset ( elem ) {\r\n\r\n\tvar rect = elem.getBoundingClientRect(),\r\n\t\tdoc = elem.ownerDocument,\r\n\t\tdocElem = doc.documentElement,\r\n\t\tpageOffset = getPageOffset();\r\n\r\n\t\t// getBoundingClientRect contains left scroll in Chrome on Android.\r\n\t\t// I haven't found a feature detection that proves this. Worst case\r\n\t\t// scenario on mis-match: the 'tap' feature on horizontal sliders breaks.\r\n\t\tif ( /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) ) {\r\n\t\t\tpageOffset.x = 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: rect.top + pageOffset.y - docElem.clientTop,\r\n\t\t\tleft: rect.left + pageOffset.x - docElem.clientLeft\r\n\t\t};\r\n\t}\r\n\r\n\t// Checks whether a value is numerical.\r\n\tfunction isNumeric ( a ) {\r\n\t\treturn typeof a === 'number' && !isNaN( a ) && isFinite( a );\r\n\t}\r\n\r\n\t// Sets a class and removes it after [duration] ms.\r\n\tfunction addClassFor ( element, className, duration ) {\r\n\t\taddClass(element, className);\r\n\t\tsetTimeout(function(){\r\n\t\t\tremoveClass(element, className);\r\n\t\t}, duration);\r\n\t}\r\n\r\n\t// Limits a value to 0 - 100\r\n\tfunction limit ( a ) {\r\n\t\treturn Math.max(Math.min(a, 100), 0);\r\n\t}\r\n\r\n\t// Wraps a variable as an array, if it isn't one yet.\r\n\tfunction asArray ( a ) {\r\n\t\treturn Array.isArray(a) ? a : [a];\r\n\t}\r\n\r\n\t// Counts decimals\r\n\tfunction countDecimals ( numStr ) {\r\n\t\tvar pieces = numStr.split(\".\");\r\n\t\treturn pieces.length > 1 ? pieces[1].length : 0;\r\n\t}\r\n\r\n\t// http://youmightnotneedjquery.com/#add_class\r\n\tfunction addClass ( el, className ) {\r\n\t\tif ( el.classList ) {\r\n\t\t\tel.classList.add(className);\r\n\t\t} else {\r\n\t\t\tel.className += ' ' + className;\r\n\t\t}\r\n\t}\r\n\r\n\t// http://youmightnotneedjquery.com/#remove_class\r\n\tfunction removeClass ( el, className ) {\r\n\t\tif ( el.classList ) {\r\n\t\t\tel.classList.remove(className);\r\n\t\t} else {\r\n\t\t\tel.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n\t\t}\r\n\t}\r\n\r\n\t// https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/\r\n\tfunction hasClass ( el, className ) {\r\n\t\treturn el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\r\n\t}\r\n\r\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes\r\n\tfunction getPageOffset ( ) {\r\n\r\n\t\tvar supportPageOffset = window.pageXOffset !== undefined,\r\n\t\t\tisCSS1Compat = ((document.compatMode || \"\") === \"CSS1Compat\"),\r\n\t\t\tx = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft,\r\n\t\t\ty = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\r\n\r\n\t\treturn {\r\n\t\t\tx: x,\r\n\t\t\ty: y\r\n\t\t};\r\n\t}\r\n\r\n\t// we provide a function to compute constants instead\r\n\t// of accessing window.* as soon as the module needs it\r\n\t// so that we do not compute anything if not needed\r\n\tfunction getActions ( ) {\r\n\r\n\t\t// Determine the events to bind. IE11 implements pointerEvents without\r\n\t\t// a prefix, which breaks compatibility with the IE10 implementation.\r\n\t\treturn window.navigator.pointerEnabled ? {\r\n\t\t\tstart: 'pointerdown',\r\n\t\t\tmove: 'pointermove',\r\n\t\t\tend: 'pointerup'\r\n\t\t} : window.navigator.msPointerEnabled ? {\r\n\t\t\tstart: 'MSPointerDown',\r\n\t\t\tmove: 'MSPointerMove',\r\n\t\t\tend: 'MSPointerUp'\r\n\t\t} : {\r\n\t\t\tstart: 'mousedown touchstart',\r\n\t\t\tmove: 'mousemove touchmove',\r\n\t\t\tend: 'mouseup touchend'\r\n\t\t};\r\n\t}\r\n\r\n\r\n// Value calculation\r\n\r\n\t// Determine the size of a sub-range in relation to a full range.\r\n\tfunction subRangeRatio ( pa, pb ) {\r\n\t\treturn (100 / (pb - pa));\r\n\t}\r\n\r\n\t// (percentage) How many percent is this value of this range?\r\n\tfunction fromPercentage ( range, value ) {\r\n\t\treturn (value * 100) / ( range[1] - range[0] );\r\n\t}\r\n\r\n\t// (percentage) Where is this value on this range?\r\n\tfunction toPercentage ( range, value ) {\r\n\t\treturn fromPercentage( range, range[0] < 0 ?\r\n\t\t\tvalue + Math.abs(range[0]) :\r\n\t\t\t\tvalue - range[0] );\r\n\t}\r\n\r\n\t// (value) How much is this percentage on this range?\r\n\tfunction isPercentage ( range, value ) {\r\n\t\treturn ((value * ( range[1] - range[0] )) / 100) + range[0];\r\n\t}\r\n\r\n\r\n// Range conversion\r\n\r\n\tfunction getJ ( value, arr ) {\r\n\r\n\t\tvar j = 1;\r\n\r\n\t\twhile ( value >= arr[j] ){\r\n\t\t\tj += 1;\r\n\t\t}\r\n\r\n\t\treturn j;\r\n\t}\r\n\r\n\t// (percentage) Input a value, find where, on a scale of 0-100, it applies.\r\n\tfunction toStepping ( xVal, xPct, value ) {\r\n\r\n\t\tif ( value >= xVal.slice(-1)[0] ){\r\n\t\t\treturn 100;\r\n\t\t}\r\n\r\n\t\tvar j = getJ( value, xVal ), va, vb, pa, pb;\r\n\r\n\t\tva = xVal[j-1];\r\n\t\tvb = xVal[j];\r\n\t\tpa = xPct[j-1];\r\n\t\tpb = xPct[j];\r\n\r\n\t\treturn pa + (toPercentage([va, vb], value) / subRangeRatio (pa, pb));\r\n\t}\r\n\r\n\t// (value) Input a percentage, find where it is on the specified range.\r\n\tfunction fromStepping ( xVal, xPct, value ) {\r\n\r\n\t\t// There is no range group that fits 100\r\n\t\tif ( value >= 100 ){\r\n\t\t\treturn xVal.slice(-1)[0];\r\n\t\t}\r\n\r\n\t\tvar j = getJ( value, xPct ), va, vb, pa, pb;\r\n\r\n\t\tva = xVal[j-1];\r\n\t\tvb = xVal[j];\r\n\t\tpa = xPct[j-1];\r\n\t\tpb = xPct[j];\r\n\r\n\t\treturn isPercentage([va, vb], (value - pa) * subRangeRatio (pa, pb));\r\n\t}\r\n\r\n\t// (percentage) Get the step that applies at a certain value.\r\n\tfunction getStep ( xPct, xSteps, snap, value ) {\r\n\r\n\t\tif ( value === 100 ) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tvar j = getJ( value, xPct ), a, b;\r\n\r\n\t\t// If 'snap' is set, steps are used as fixed points on the slider.\r\n\t\tif ( snap ) {\r\n\r\n\t\t\ta = xPct[j-1];\r\n\t\t\tb = xPct[j];\r\n\r\n\t\t\t// Find the closest position, a or b.\r\n\t\t\tif ((value - a) > ((b-a)/2)){\r\n\t\t\t\treturn b;\r\n\t\t\t}\r\n\r\n\t\t\treturn a;\r\n\t\t}\r\n\r\n\t\tif ( !xSteps[j-1] ){\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\treturn xPct[j-1] + closest(\r\n\t\t\tvalue - xPct[j-1],\r\n\t\t\txSteps[j-1]\r\n\t\t);\r\n\t}\r\n\r\n\r\n// Entry parsing\r\n\r\n\tfunction handleEntryPoint ( index, value, that ) {\r\n\r\n\t\tvar percentage;\r\n\r\n\t\t// Wrap numerical input in an array.\r\n\t\tif ( typeof value === \"number\" ) {\r\n\t\t\tvalue = [value];\r\n\t\t}\r\n\r\n\t\t// Reject any invalid input, by testing whether value is an array.\r\n\t\tif ( Object.prototype.toString.call( value ) !== '[object Array]' ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'range' contains invalid value.\");\r\n\t\t}\r\n\r\n\t\t// Covert min/max syntax to 0 and 100.\r\n\t\tif ( index === 'min' ) {\r\n\t\t\tpercentage = 0;\r\n\t\t} else if ( index === 'max' ) {\r\n\t\t\tpercentage = 100;\r\n\t\t} else {\r\n\t\t\tpercentage = parseFloat( index );\r\n\t\t}\r\n\r\n\t\t// Check for correct input.\r\n\t\tif ( !isNumeric( percentage ) || !isNumeric( value[0] ) ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'range' value isn't numeric.\");\r\n\t\t}\r\n\r\n\t\t// Store values.\r\n\t\tthat.xPct.push( percentage );\r\n\t\tthat.xVal.push( value[0] );\r\n\r\n\t\t// NaN will evaluate to false too, but to keep\r\n\t\t// logging clear, set step explicitly. Make sure\r\n\t\t// not to override the 'step' setting with false.\r\n\t\tif ( !percentage ) {\r\n\t\t\tif ( !isNaN( value[1] ) ) {\r\n\t\t\t\tthat.xSteps[0] = value[1];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthat.xSteps.push( isNaN(value[1]) ? false : value[1] );\r\n\t\t}\r\n\t}\r\n\r\n\tfunction handleStepPoint ( i, n, that ) {\r\n\r\n\t\t// Ignore 'false' stepping.\r\n\t\tif ( !n ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Factor to range ratio\r\n\t\tthat.xSteps[i] = fromPercentage([\r\n\t\t\t that.xVal[i]\r\n\t\t\t,that.xVal[i+1]\r\n\t\t], n) / subRangeRatio (\r\n\t\t\tthat.xPct[i],\r\n\t\t\tthat.xPct[i+1] );\r\n\t}\r\n\r\n\r\n// Interface\r\n\r\n\t// The interface to Spectrum handles all direction-based\r\n\t// conversions, so the above values are unaware.\r\n\r\n\tfunction Spectrum ( entry, snap, direction, singleStep ) {\r\n\r\n\t\tthis.xPct = [];\r\n\t\tthis.xVal = [];\r\n\t\tthis.xSteps = [ singleStep || false ];\r\n\t\tthis.xNumSteps = [ false ];\r\n\r\n\t\tthis.snap = snap;\r\n\t\tthis.direction = direction;\r\n\r\n\t\tvar index, ordered = [ /* [0, 'min'], [1, '50%'], [2, 'max'] */ ];\r\n\r\n\t\t// Map the object keys to an array.\r\n\t\tfor ( index in entry ) {\r\n\t\t\tif ( entry.hasOwnProperty(index) ) {\r\n\t\t\t\tordered.push([entry[index], index]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Sort all entries by value (numeric sort).\r\n\t\tif ( ordered.length && typeof ordered[0][0] === \"object\" ) {\r\n\t\t\tordered.sort(function(a, b) { return a[0][0] - b[0][0]; });\r\n\t\t} else {\r\n\t\t\tordered.sort(function(a, b) { return a[0] - b[0]; });\r\n\t\t}\r\n\r\n\r\n\t\t// Convert all entries to subranges.\r\n\t\tfor ( index = 0; index < ordered.length; index++ ) {\r\n\t\t\thandleEntryPoint(ordered[index][1], ordered[index][0], this);\r\n\t\t}\r\n\r\n\t\t// Store the actual step values.\r\n\t\t// xSteps is sorted in the same order as xPct and xVal.\r\n\t\tthis.xNumSteps = this.xSteps.slice(0);\r\n\r\n\t\t// Convert all numeric steps to the percentage of the subrange they represent.\r\n\t\tfor ( index = 0; index < this.xNumSteps.length; index++ ) {\r\n\t\t\thandleStepPoint(index, this.xNumSteps[index], this);\r\n\t\t}\r\n\t}\r\n\r\n\tSpectrum.prototype.getMargin = function ( value ) {\r\n\t\treturn this.xPct.length === 2 ? fromPercentage(this.xVal, value) : false;\r\n\t};\r\n\r\n\tSpectrum.prototype.toStepping = function ( value ) {\r\n\r\n\t\tvalue = toStepping( this.xVal, this.xPct, value );\r\n\r\n\t\t// Invert the value if this is a right-to-left slider.\r\n\t\tif ( this.direction ) {\r\n\t\t\tvalue = 100 - value;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t};\r\n\r\n\tSpectrum.prototype.fromStepping = function ( value ) {\r\n\r\n\t\t// Invert the value if this is a right-to-left slider.\r\n\t\tif ( this.direction ) {\r\n\t\t\tvalue = 100 - value;\r\n\t\t}\r\n\r\n\t\treturn fromStepping( this.xVal, this.xPct, value );\r\n\t};\r\n\r\n\tSpectrum.prototype.getStep = function ( value ) {\r\n\r\n\t\t// Find the proper step for rtl sliders by search in inverse direction.\r\n\t\t// Fixes issue #262.\r\n\t\tif ( this.direction ) {\r\n\t\t\tvalue = 100 - value;\r\n\t\t}\r\n\r\n\t\tvalue = getStep(this.xPct, this.xSteps, this.snap, value );\r\n\r\n\t\tif ( this.direction ) {\r\n\t\t\tvalue = 100 - value;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t};\r\n\r\n\tSpectrum.prototype.getApplicableStep = function ( value ) {\r\n\r\n\t\t// If the value is 100%, return the negative step twice.\r\n\t\tvar j = getJ(value, this.xPct), offset = value === 100 ? 2 : 1;\r\n\t\treturn [this.xNumSteps[j-2], this.xVal[j-offset], this.xNumSteps[j-offset]];\r\n\t};\r\n\r\n\t// Outside testing\r\n\tSpectrum.prototype.convert = function ( value ) {\r\n\t\treturn this.getStep(this.toStepping(value));\r\n\t};\r\n\r\n/*\tEvery input option is tested and parsed. This'll prevent\r\n\tendless validation in internal methods. These tests are\r\n\tstructured with an item for every option available. An\r\n\toption can be marked as required by setting the 'r' flag.\r\n\tThe testing function is provided with three arguments:\r\n\t\t- The provided value for the option;\r\n\t\t- A reference to the options object;\r\n\t\t- The name for the option;\r\n\r\n\tThe testing function returns false when an error is detected,\r\n\tor true when everything is OK. It can also modify the option\r\n\tobject, to make sure all values can be correctly looped elsewhere. */\r\n\r\n\tvar defaultFormatter = { 'to': function( value ){\r\n\t\treturn value !== undefined && value.toFixed(2);\r\n\t}, 'from': Number };\r\n\r\n\tfunction testStep ( parsed, entry ) {\r\n\r\n\t\tif ( !isNumeric( entry ) ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'step' is not numeric.\");\r\n\t\t}\r\n\r\n\t\t// The step option can still be used to set stepping\r\n\t\t// for linear sliders. Overwritten if set in 'range'.\r\n\t\tparsed.singleStep = entry;\r\n\t}\r\n\r\n\tfunction testRange ( parsed, entry ) {\r\n\r\n\t\t// Filter incorrect input.\r\n\t\tif ( typeof entry !== 'object' || Array.isArray(entry) ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'range' is not an object.\");\r\n\t\t}\r\n\r\n\t\t// Catch missing start or end.\r\n\t\tif ( entry.min === undefined || entry.max === undefined ) {\r\n\t\t\tthrow new Error(\"noUiSlider: Missing 'min' or 'max' in 'range'.\");\r\n\t\t}\r\n\r\n\t\t// Catch equal start or end.\r\n\t\tif ( entry.min === entry.max ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'range' 'min' and 'max' cannot be equal.\");\r\n\t\t}\r\n\r\n\t\tparsed.spectrum = new Spectrum(entry, parsed.snap, parsed.dir, parsed.singleStep);\r\n\t}\r\n\r\n\tfunction testStart ( parsed, entry ) {\r\n\r\n\t\tentry = asArray(entry);\r\n\r\n\t\t// Validate input. Values aren't tested, as the public .val method\r\n\t\t// will always provide a valid location.\r\n\t\tif ( !Array.isArray( entry ) || !entry.length || entry.length > 2 ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'start' option is incorrect.\");\r\n\t\t}\r\n\r\n\t\t// Store the number of handles.\r\n\t\tparsed.handles = entry.length;\r\n\r\n\t\t// When the slider is initialized, the .val method will\r\n\t\t// be called with the start options.\r\n\t\tparsed.start = entry;\r\n\t}\r\n\r\n\tfunction testSnap ( parsed, entry ) {\r\n\r\n\t\t// Enforce 100% stepping within subranges.\r\n\t\tparsed.snap = entry;\r\n\r\n\t\tif ( typeof entry !== 'boolean' ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'snap' option must be a boolean.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testAnimate ( parsed, entry ) {\r\n\r\n\t\t// Enforce 100% stepping within subranges.\r\n\t\tparsed.animate = entry;\r\n\r\n\t\tif ( typeof entry !== 'boolean' ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'animate' option must be a boolean.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testAnimationDuration ( parsed, entry ) {\r\n\r\n\t\tparsed.animationDuration = entry;\r\n\r\n\t\tif ( typeof entry !== 'number' ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'animationDuration' option must be a number.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testConnect ( parsed, entry ) {\r\n\r\n\t\tif ( entry === 'lower' && parsed.handles === 1 ) {\r\n\t\t\tparsed.connect = 1;\r\n\t\t} else if ( entry === 'upper' && parsed.handles === 1 ) {\r\n\t\t\tparsed.connect = 2;\r\n\t\t} else if ( entry === true && parsed.handles === 2 ) {\r\n\t\t\tparsed.connect = 3;\r\n\t\t} else if ( entry === false ) {\r\n\t\t\tparsed.connect = 0;\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"noUiSlider: 'connect' option doesn't match handle count.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testOrientation ( parsed, entry ) {\r\n\r\n\t\t// Set orientation to an a numerical value for easy\r\n\t\t// array selection.\r\n\t\tswitch ( entry ){\r\n\t\t case 'horizontal':\r\n\t\t\tparsed.ort = 0;\r\n\t\t\tbreak;\r\n\t\t case 'vertical':\r\n\t\t\tparsed.ort = 1;\r\n\t\t\tbreak;\r\n\t\t default:\r\n\t\t\tthrow new Error(\"noUiSlider: 'orientation' option is invalid.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testMargin ( parsed, entry ) {\r\n\r\n\t\tif ( !isNumeric(entry) ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'margin' option must be numeric.\");\r\n\t\t}\r\n\r\n\t\t// Issue #582\r\n\t\tif ( entry === 0 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tparsed.margin = parsed.spectrum.getMargin(entry);\r\n\r\n\t\tif ( !parsed.margin ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'margin' option is only supported on linear sliders.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testLimit ( parsed, entry ) {\r\n\r\n\t\tif ( !isNumeric(entry) ){\r\n\t\t\tthrow new Error(\"noUiSlider: 'limit' option must be numeric.\");\r\n\t\t}\r\n\r\n\t\tparsed.limit = parsed.spectrum.getMargin(entry);\r\n\r\n\t\tif ( !parsed.limit ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'limit' option is only supported on linear sliders.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testDirection ( parsed, entry ) {\r\n\r\n\t\t// Set direction as a numerical value for easy parsing.\r\n\t\t// Invert connection for RTL sliders, so that the proper\r\n\t\t// handles get the connect/background classes.\r\n\t\tswitch ( entry ) {\r\n\t\t case 'ltr':\r\n\t\t\tparsed.dir = 0;\r\n\t\t\tbreak;\r\n\t\t case 'rtl':\r\n\t\t\tparsed.dir = 1;\r\n\t\t\tparsed.connect = [0,2,1,3][parsed.connect];\r\n\t\t\tbreak;\r\n\t\t default:\r\n\t\t\tthrow new Error(\"noUiSlider: 'direction' option was not recognized.\");\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testBehaviour ( parsed, entry ) {\r\n\r\n\t\t// Make sure the input is a string.\r\n\t\tif ( typeof entry !== 'string' ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'behaviour' must be a string containing options.\");\r\n\t\t}\r\n\r\n\t\t// Check if the string contains any keywords.\r\n\t\t// None are required.\r\n\t\tvar tap = entry.indexOf('tap') >= 0,\r\n\t\t\tdrag = entry.indexOf('drag') >= 0,\r\n\t\t\tfixed = entry.indexOf('fixed') >= 0,\r\n\t\t\tsnap = entry.indexOf('snap') >= 0,\r\n\t\t\thover = entry.indexOf('hover') >= 0;\r\n\r\n\t\t// Fix #472\r\n\t\tif ( drag && !parsed.connect ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'drag' behaviour must be used with 'connect': true.\");\r\n\t\t}\r\n\r\n\t\tparsed.events = {\r\n\t\t\ttap: tap || snap,\r\n\t\t\tdrag: drag,\r\n\t\t\tfixed: fixed,\r\n\t\t\tsnap: snap,\r\n\t\t\thover: hover\r\n\t\t};\r\n\t}\r\n\r\n\tfunction testTooltips ( parsed, entry ) {\r\n\r\n\t\tvar i;\r\n\r\n\t\tif ( entry === false ) {\r\n\t\t\treturn;\r\n\t\t} else if ( entry === true ) {\r\n\r\n\t\t\tparsed.tooltips = [];\r\n\r\n\t\t\tfor ( i = 0; i < parsed.handles; i++ ) {\r\n\t\t\t\tparsed.tooltips.push(true);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\tparsed.tooltips = asArray(entry);\r\n\r\n\t\t\tif ( parsed.tooltips.length !== parsed.handles ) {\r\n\t\t\t\tthrow new Error(\"noUiSlider: must pass a formatter for all handles.\");\r\n\t\t\t}\r\n\r\n\t\t\tparsed.tooltips.forEach(function(formatter){\r\n\t\t\t\tif ( typeof formatter !== 'boolean' && (typeof formatter !== 'object' || typeof formatter.to !== 'function') ) {\r\n\t\t\t\t\tthrow new Error(\"noUiSlider: 'tooltips' must be passed a formatter or 'false'.\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction testFormat ( parsed, entry ) {\r\n\r\n\t\tparsed.format = entry;\r\n\r\n\t\t// Any object with a to and from method is supported.\r\n\t\tif ( typeof entry.to === 'function' && typeof entry.from === 'function' ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"noUiSlider: 'format' requires 'to' and 'from' methods.\");\r\n\t}\r\n\r\n\tfunction testCssPrefix ( parsed, entry ) {\r\n\r\n\t\tif ( entry !== undefined && typeof entry !== 'string' && entry !== false ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'cssPrefix' must be a string or `false`.\");\r\n\t\t}\r\n\r\n\t\tparsed.cssPrefix = entry;\r\n\t}\r\n\r\n\tfunction testCssClasses ( parsed, entry ) {\r\n\r\n\t\tif ( entry !== undefined && typeof entry !== 'object' ) {\r\n\t\t\tthrow new Error(\"noUiSlider: 'cssClasses' must be an object.\");\r\n\t\t}\r\n\r\n\t\tif ( typeof parsed.cssPrefix === 'string' ) {\r\n\t\t\tparsed.cssClasses = {};\r\n\r\n\t\t\tfor ( var key in entry ) {\r\n\t\t\t\tif ( !entry.hasOwnProperty(key) ) { continue; }\r\n\r\n\t\t\t\tparsed.cssClasses[key] = parsed.cssPrefix + entry[key];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparsed.cssClasses = entry;\r\n\t\t}\r\n\t}\r\n\r\n\t// Test all developer settings and parse to assumption-safe values.\r\n\tfunction testOptions ( options ) {\r\n\r\n\t\t// To prove a fix for #537, freeze options here.\r\n\t\t// If the object is modified, an error will be thrown.\r\n\t\t// Object.freeze(options);\r\n\r\n\t\tvar parsed = {\r\n\t\t\tmargin: 0,\r\n\t\t\tlimit: 0,\r\n\t\t\tanimate: true,\r\n\t\t\tanimationDuration: 300,\r\n\t\t\tformat: defaultFormatter\r\n\t\t}, tests;\r\n\r\n\t\t// Tests are executed in the order they are presented here.\r\n\t\ttests = {\r\n\t\t\t'step': { r: false, t: testStep },\r\n\t\t\t'start': { r: true, t: testStart },\r\n\t\t\t'connect': { r: true, t: testConnect },\r\n\t\t\t'direction': { r: true, t: testDirection },\r\n\t\t\t'snap': { r: false, t: testSnap },\r\n\t\t\t'animate': { r: false, t: testAnimate },\r\n\t\t\t'animationDuration': { r: false, t: testAnimationDuration },\r\n\t\t\t'range': { r: true, t: testRange },\r\n\t\t\t'orientation': { r: false, t: testOrientation },\r\n\t\t\t'margin': { r: false, t: testMargin },\r\n\t\t\t'limit': { r: false, t: testLimit },\r\n\t\t\t'behaviour': { r: true, t: testBehaviour },\r\n\t\t\t'format': { r: false, t: testFormat },\r\n\t\t\t'tooltips': { r: false, t: testTooltips },\r\n\t\t\t'cssPrefix': { r: false, t: testCssPrefix },\r\n\t\t\t'cssClasses': { r: false, t: testCssClasses }\r\n\t\t};\r\n\r\n\t\tvar defaults = {\r\n\t\t\t'connect': false,\r\n\t\t\t'direction': 'ltr',\r\n\t\t\t'behaviour': 'tap',\r\n\t\t\t'orientation': 'horizontal',\r\n\t\t\t'cssPrefix' : 'noUi-',\r\n\t\t\t'cssClasses': {\r\n\t\t\t\ttarget: 'target',\r\n\t\t\t\tbase: 'base',\r\n\t\t\t\torigin: 'origin',\r\n\t\t\t\thandle: 'handle',\r\n\t\t\t\thandleLower: 'handle-lower',\r\n\t\t\t\thandleUpper: 'handle-upper',\r\n\t\t\t\thorizontal: 'horizontal',\r\n\t\t\t\tvertical: 'vertical',\r\n\t\t\t\tbackground: 'background',\r\n\t\t\t\tconnect: 'connect',\r\n\t\t\t\tltr: 'ltr',\r\n\t\t\t\trtl: 'rtl',\r\n\t\t\t\tdraggable: 'draggable',\r\n\t\t\t\tdrag: 'state-drag',\r\n\t\t\t\ttap: 'state-tap',\r\n\t\t\t\tactive: 'active',\r\n\t\t\t\tstacking: 'stacking',\r\n\t\t\t\ttooltip: 'tooltip',\r\n\t\t\t\tpips: 'pips',\r\n\t\t\t\tpipsHorizontal: 'pips-horizontal',\r\n\t\t\t\tpipsVertical: 'pips-vertical',\r\n\t\t\t\tmarker: 'marker',\r\n\t\t\t\tmarkerHorizontal: 'marker-horizontal',\r\n\t\t\t\tmarkerVertical: 'marker-vertical',\r\n\t\t\t\tmarkerNormal: 'marker-normal',\r\n\t\t\t\tmarkerLarge: 'marker-large',\r\n\t\t\t\tmarkerSub: 'marker-sub',\r\n\t\t\t\tvalue: 'value',\r\n\t\t\t\tvalueHorizontal: 'value-horizontal',\r\n\t\t\t\tvalueVertical: 'value-vertical',\r\n\t\t\t\tvalueNormal: 'value-normal',\r\n\t\t\t\tvalueLarge: 'value-large',\r\n\t\t\t\tvalueSub: 'value-sub'\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Run all options through a testing mechanism to ensure correct\r\n\t\t// input. It should be noted that options might get modified to\r\n\t\t// be handled properly. E.g. wrapping integers in arrays.\r\n\t\tObject.keys(tests).forEach(function( name ){\r\n\r\n\t\t\t// If the option isn't set, but it is required, throw an error.\r\n\t\t\tif ( options[name] === undefined && defaults[name] === undefined ) {\r\n\r\n\t\t\t\tif ( tests[name].r ) {\r\n\t\t\t\t\tthrow new Error(\"noUiSlider: '\" + name + \"' is required.\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\ttests[name].t( parsed, options[name] === undefined ? defaults[name] : options[name] );\r\n\t\t});\r\n\r\n\t\t// Forward pips options\r\n\t\tparsed.pips = options.pips;\r\n\r\n\t\t// Pre-define the styles.\r\n\t\tparsed.style = parsed.ort ? 'top' : 'left';\r\n\r\n\t\treturn parsed;\r\n\t}\r\n\r\n\r\nfunction closure ( target, options, originalOptions ){\r\n\tvar\r\n\t\tactions = getActions( ),\r\n\t\t// All variables local to 'closure' are prefixed with 'scope_'\r\n\t\tscope_Target = target,\r\n\t\tscope_Locations = [-1, -1],\r\n\t\tscope_Base,\r\n\t\tscope_Handles,\r\n\t\tscope_Spectrum = options.spectrum,\r\n\t\tscope_Values = [],\r\n\t\tscope_Events = {},\r\n\t\tscope_Self;\r\n\r\n\r\n\t// Delimit proposed values for handle positions.\r\n\tfunction getPositions ( a, b, delimit ) {\r\n\r\n\t\t// Add movement to current position.\r\n\t\tvar c = a + b[0], d = a + b[1];\r\n\r\n\t\t// Only alter the other position on drag,\r\n\t\t// not on standard sliding.\r\n\t\tif ( delimit ) {\r\n\t\t\tif ( c < 0 ) {\r\n\t\t\t\td += Math.abs(c);\r\n\t\t\t}\r\n\t\t\tif ( d > 100 ) {\r\n\t\t\t\tc -= ( d - 100 );\r\n\t\t\t}\r\n\r\n\t\t\t// Limit values to 0 and 100.\r\n\t\t\treturn [limit(c), limit(d)];\r\n\t\t}\r\n\r\n\t\treturn [c,d];\r\n\t}\r\n\r\n\t// Provide a clean event with standardized offset values.\r\n\tfunction fixEvent ( e, pageOffset ) {\r\n\r\n\t\t// Prevent scrolling and panning on touch events, while\r\n\t\t// attempting to slide. The tap event also depends on this.\r\n\t\te.preventDefault();\r\n\r\n\t\t// Filter the event to register the type, which can be\r\n\t\t// touch, mouse or pointer. Offset changes need to be\r\n\t\t// made on an event specific basis.\r\n\t\tvar touch = e.type.indexOf('touch') === 0,\r\n\t\t\tmouse = e.type.indexOf('mouse') === 0,\r\n\t\t\tpointer = e.type.indexOf('pointer') === 0,\r\n\t\t\tx,y, event = e;\r\n\r\n\t\t// IE10 implemented pointer events with a prefix;\r\n\t\tif ( e.type.indexOf('MSPointer') === 0 ) {\r\n\t\t\tpointer = true;\r\n\t\t}\r\n\r\n\t\tif ( touch ) {\r\n\t\t\t// noUiSlider supports one movement at a time,\r\n\t\t\t// so we can select the first 'changedTouch'.\r\n\t\t\tx = e.changedTouches[0].pageX;\r\n\t\t\ty = e.changedTouches[0].pageY;\r\n\t\t}\r\n\r\n\t\tpageOffset = pageOffset || getPageOffset();\r\n\r\n\t\tif ( mouse || pointer ) {\r\n\t\t\tx = e.clientX + pageOffset.x;\r\n\t\t\ty = e.clientY + pageOffset.y;\r\n\t\t}\r\n\r\n\t\tevent.pageOffset = pageOffset;\r\n\t\tevent.points = [x, y];\r\n\t\tevent.cursor = mouse || pointer; // Fix #435\r\n\r\n\t\treturn event;\r\n\t}\r\n\r\n\t// Append a handle to the base.\r\n\tfunction addHandle ( direction, index ) {\r\n\r\n\t\tvar origin = document.createElement('div'),\r\n\t\t\thandle = document.createElement('div'),\r\n\t\t\tclassModifier = [options.cssClasses.handleLower, options.cssClasses.handleUpper];\r\n\r\n\t\tif ( direction ) {\r\n\t\t\tclassModifier.reverse();\r\n\t\t}\r\n\r\n\t\taddClass(handle, options.cssClasses.handle);\r\n\t\taddClass(handle, classModifier[index]);\r\n\r\n\t\taddClass(origin, options.cssClasses.origin);\r\n\t\torigin.appendChild(handle);\r\n\r\n\t\treturn origin;\r\n\t}\r\n\r\n\t// Add the proper connection classes.\r\n\tfunction addConnection ( connect, target, handles ) {\r\n\r\n\t\t// Apply the required connection classes to the elements\r\n\t\t// that need them. Some classes are made up for several\r\n\t\t// segments listed in the class list, to allow easy\r\n\t\t// renaming and provide a minor compression benefit.\r\n\t\tswitch ( connect ) {\r\n\t\t\tcase 1:\taddClass(target, options.cssClasses.connect);\r\n\t\t\t\t\taddClass(handles[0], options.cssClasses.background);\r\n\t\t\t\t\tbreak;\r\n\t\t\tcase 3: addClass(handles[1], options.cssClasses.background);\r\n\t\t\t\t\t/* falls through */\r\n\t\t\tcase 2: addClass(handles[0], options.cssClasses.connect);\r\n\t\t\t\t\t/* falls through */\r\n\t\t\tcase 0: addClass(target, options.cssClasses.background);\r\n\t\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t// Add handles to the slider base.\r\n\tfunction addHandles ( nrHandles, direction, base ) {\r\n\r\n\t\tvar index, handles = [];\r\n\r\n\t\t// Append handles.\r\n\t\tfor ( index = 0; index < nrHandles; index += 1 ) {\r\n\r\n\t\t\t// Keep a list of all added handles.\r\n\t\t\thandles.push( base.appendChild(addHandle( direction, index )) );\r\n\t\t}\r\n\r\n\t\treturn handles;\r\n\t}\r\n\r\n\t// Initialize a single slider.\r\n\tfunction addSlider ( direction, orientation, target ) {\r\n\r\n\t\t// Apply classes and data to the target.\r\n\t\taddClass(target, options.cssClasses.target);\r\n\r\n\t\tif ( direction === 0 ) {\r\n\t\t\taddClass(target, options.cssClasses.ltr);\r\n\t\t} else {\r\n\t\t\taddClass(target, options.cssClasses.rtl);\r\n\t\t}\r\n\r\n\t\tif ( orientation === 0 ) {\r\n\t\t\taddClass(target, options.cssClasses.horizontal);\r\n\t\t} else {\r\n\t\t\taddClass(target, options.cssClasses.vertical);\r\n\t\t}\r\n\r\n\t\tvar div = document.createElement('div');\r\n\t\taddClass(div, options.cssClasses.base);\r\n\t\ttarget.appendChild(div);\r\n\t\treturn div;\r\n\t}\r\n\r\n\r\n\tfunction addTooltip ( handle, index ) {\r\n\r\n\t\tif ( !options.tooltips[index] ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar element = document.createElement('div');\r\n\t\telement.className = options.cssClasses.tooltip;\r\n\t\treturn handle.firstChild.appendChild(element);\r\n\t}\r\n\r\n\t// The tooltips option is a shorthand for using the 'update' event.\r\n\tfunction tooltips ( ) {\r\n\r\n\t\tif ( options.dir ) {\r\n\t\t\toptions.tooltips.reverse();\r\n\t\t}\r\n\r\n\t\t// Tooltips are added with options.tooltips in original order.\r\n\t\tvar tips = scope_Handles.map(addTooltip);\r\n\r\n\t\tif ( options.dir ) {\r\n\t\t\ttips.reverse();\r\n\t\t\toptions.tooltips.reverse();\r\n\t\t}\r\n\r\n\t\tbindEvent('update', function(f, o, r) {\r\n\t\t\tif ( tips[o] ) {\r\n\t\t\t\ttips[o].innerHTML = options.tooltips[o] === true ? f[o] : options.tooltips[o].to(r[o]);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tfunction getGroup ( mode, values, stepped ) {\r\n\r\n\t\t// Use the range.\r\n\t\tif ( mode === 'range' || mode === 'steps' ) {\r\n\t\t\treturn scope_Spectrum.xVal;\r\n\t\t}\r\n\r\n\t\tif ( mode === 'count' ) {\r\n\r\n\t\t\t// Divide 0 - 100 in 'count' parts.\r\n\t\t\tvar spread = ( 100 / (values-1) ), v, i = 0;\r\n\t\t\tvalues = [];\r\n\r\n\t\t\t// List these parts and have them handled as 'positions'.\r\n\t\t\twhile ((v=i++*spread) <= 100 ) {\r\n\t\t\t\tvalues.push(v);\r\n\t\t\t}\r\n\r\n\t\t\tmode = 'positions';\r\n\t\t}\r\n\r\n\t\tif ( mode === 'positions' ) {\r\n\r\n\t\t\t// Map all percentages to on-range values.\r\n\t\t\treturn values.map(function( value ){\r\n\t\t\t\treturn scope_Spectrum.fromStepping( stepped ? scope_Spectrum.getStep( value ) : value );\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( mode === 'values' ) {\r\n\r\n\t\t\t// If the value must be stepped, it needs to be converted to a percentage first.\r\n\t\t\tif ( stepped ) {\r\n\r\n\t\t\t\treturn values.map(function( value ){\r\n\r\n\t\t\t\t\t// Convert to percentage, apply step, return to value.\r\n\t\t\t\t\treturn scope_Spectrum.fromStepping( scope_Spectrum.getStep( scope_Spectrum.toStepping( value ) ) );\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Otherwise, we can simply use the values.\r\n\t\t\treturn values;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction generateSpread ( density, mode, group ) {\r\n\r\n\t\tfunction safeIncrement(value, increment) {\r\n\t\t\t// Avoid floating point variance by dropping the smallest decimal places.\r\n\t\t\treturn (value + increment).toFixed(7) / 1;\r\n\t\t}\r\n\r\n\t\tvar originalSpectrumDirection = scope_Spectrum.direction,\r\n\t\t\tindexes = {},\r\n\t\t\tfirstInRange = scope_Spectrum.xVal[0],\r\n\t\t\tlastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length-1],\r\n\t\t\tignoreFirst = false,\r\n\t\t\tignoreLast = false,\r\n\t\t\tprevPct = 0;\r\n\r\n\t\t// This function loops the spectrum in an ltr linear fashion,\r\n\t\t// while the toStepping method is direction aware. Trick it into\r\n\t\t// believing it is ltr.\r\n\t\tscope_Spectrum.direction = 0;\r\n\r\n\t\t// Create a copy of the group, sort it and filter away all duplicates.\r\n\t\tgroup = unique(group.slice().sort(function(a, b){ return a - b; }));\r\n\r\n\t\t// Make sure the range starts with the first element.\r\n\t\tif ( group[0] !== firstInRange ) {\r\n\t\t\tgroup.unshift(firstInRange);\r\n\t\t\tignoreFirst = true;\r\n\t\t}\r\n\r\n\t\t// Likewise for the last one.\r\n\t\tif ( group[group.length - 1] !== lastInRange ) {\r\n\t\t\tgroup.push(lastInRange);\r\n\t\t\tignoreLast = true;\r\n\t\t}\r\n\r\n\t\tgroup.forEach(function ( current, index ) {\r\n\r\n\t\t\t// Get the current step and the lower + upper positions.\r\n\t\t\tvar step, i, q,\r\n\t\t\t\tlow = current,\r\n\t\t\t\thigh = group[index+1],\r\n\t\t\t\tnewPct, pctDifference, pctPos, type,\r\n\t\t\t\tsteps, realSteps, stepsize;\r\n\r\n\t\t\t// When using 'steps' mode, use the provided steps.\r\n\t\t\t// Otherwise, we'll step on to the next subrange.\r\n\t\t\tif ( mode === 'steps' ) {\r\n\t\t\t\tstep = scope_Spectrum.xNumSteps[ index ];\r\n\t\t\t}\r\n\r\n\t\t\t// Default to a 'full' step.\r\n\t\t\tif ( !step ) {\r\n\t\t\t\tstep = high-low;\r\n\t\t\t}\r\n\r\n\t\t\t// Low can be 0, so test for false. If high is undefined,\r\n\t\t\t// we are at the last subrange. Index 0 is already handled.\r\n\t\t\tif ( low === false || high === undefined ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Find all steps in the subrange.\r\n\t\t\tfor ( i = low; i <= high; i = safeIncrement(i, step) ) {\r\n\r\n\t\t\t\t// Get the percentage value for the current step,\r\n\t\t\t\t// calculate the size for the subrange.\r\n\t\t\t\tnewPct = scope_Spectrum.toStepping( i );\r\n\t\t\t\tpctDifference = newPct - prevPct;\r\n\r\n\t\t\t\tsteps = pctDifference / density;\r\n\t\t\t\trealSteps = Math.round(steps);\r\n\r\n\t\t\t\t// This ratio represents the ammount of percentage-space a point indicates.\r\n\t\t\t\t// For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-devided.\r\n\t\t\t\t// Round the percentage offset to an even number, then divide by two\r\n\t\t\t\t// to spread the offset on both sides of the range.\r\n\t\t\t\tstepsize = pctDifference/realSteps;\r\n\r\n\t\t\t\t// Divide all points evenly, adding the correct number to this subrange.\r\n\t\t\t\t// Run up to <= so that 100% gets a point, event if ignoreLast is set.\r\n\t\t\t\tfor ( q = 1; q <= realSteps; q += 1 ) {\r\n\r\n\t\t\t\t\t// The ratio between the rounded value and the actual size might be ~1% off.\r\n\t\t\t\t\t// Correct the percentage offset by the number of points\r\n\t\t\t\t\t// per subrange. density = 1 will result in 100 points on the\r\n\t\t\t\t\t// full range, 2 for 50, 4 for 25, etc.\r\n\t\t\t\t\tpctPos = prevPct + ( q * stepsize );\r\n\t\t\t\t\tindexes[pctPos.toFixed(5)] = ['x', 0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Determine the point type.\r\n\t\t\t\ttype = (group.indexOf(i) > -1) ? 1 : ( mode === 'steps' ? 2 : 0 );\r\n\r\n\t\t\t\t// Enforce the 'ignoreFirst' option by overwriting the type for 0.\r\n\t\t\t\tif ( !index && ignoreFirst ) {\r\n\t\t\t\t\ttype = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( !(i === high && ignoreLast)) {\r\n\t\t\t\t\t// Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value.\r\n\t\t\t\t\tindexes[newPct.toFixed(5)] = [i, type];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update the percentage count.\r\n\t\t\t\tprevPct = newPct;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Reset the spectrum.\r\n\t\tscope_Spectrum.direction = originalSpectrumDirection;\r\n\r\n\t\treturn indexes;\r\n\t}\r\n\r\n\tfunction addMarking ( spread, filterFunc, formatter ) {\r\n\r\n\t\tvar element = document.createElement('div'),\r\n\t\t\tout = '',\r\n\t\t\tvalueSizeClasses = [\r\n\t\t\t\toptions.cssClasses.valueNormal,\r\n\t\t\t\toptions.cssClasses.valueLarge,\r\n\t\t\t\toptions.cssClasses.valueSub\r\n\t\t\t],\r\n\t\t\tmarkerSizeClasses = [\r\n\t\t\t\toptions.cssClasses.markerNormal,\r\n\t\t\t\toptions.cssClasses.markerLarge,\r\n\t\t\t\toptions.cssClasses.markerSub\r\n\t\t\t],\r\n\t\t\tvalueOrientationClasses = [\r\n\t\t\t\toptions.cssClasses.valueHorizontal,\r\n\t\t\t\toptions.cssClasses.valueVertical\r\n\t\t\t],\r\n\t\t\tmarkerOrientationClasses = [\r\n\t\t\t\toptions.cssClasses.markerHorizontal,\r\n\t\t\t\toptions.cssClasses.markerVertical\r\n\t\t\t];\r\n\r\n\t\taddClass(element, options.cssClasses.pips);\r\n\t\taddClass(element, options.ort === 0 ? options.cssClasses.pipsHorizontal : options.cssClasses.pipsVertical);\r\n\r\n\t\tfunction getClasses( type, source ){\r\n\t\t\tvar a = source === options.cssClasses.value,\r\n\t\t\t\torientationClasses = a ? valueOrientationClasses : markerOrientationClasses,\r\n\t\t\t\tsizeClasses = a ? valueSizeClasses : markerSizeClasses;\r\n\r\n\t\t\treturn source + ' ' + orientationClasses[options.ort] + ' ' + sizeClasses[type];\r\n\t\t}\r\n\r\n\t\tfunction getTags( offset, source, values ) {\r\n\t\t\treturn 'class=\"' + getClasses(values[1], source) + '\" style=\"' + options.style + ': ' + offset + '%\"';\r\n\t\t}\r\n\r\n\t\tfunction addSpread ( offset, values ){\r\n\r\n\t\t\tif ( scope_Spectrum.direction ) {\r\n\t\t\t\toffset = 100 - offset;\r\n\t\t\t}\r\n\r\n\t\t\t// Apply the filter function, if it is set.\r\n\t\t\tvalues[1] = (values[1] && filterFunc) ? filterFunc(values[0], values[1]) : values[1];\r\n\r\n\t\t\t// Add a marker for every point\r\n\t\t\tout += '
';\r\n\r\n\t\t\t// Values are only appended for points marked '1' or '2'.\r\n\t\t\tif ( values[1] ) {\r\n\t\t\t\tout += '