{"version":3,"sources":["Content/jqueryuiSlider/jquery-ui.slider.js"],"names":["factory","moduleName","ccs_define","moduleExport","window","ccsJq","$","uuid","removeData","eventType","orig","focusable","element","isTabIndexNotNaN","map","mapName","img","nodeName","toLowerCase","parentNode","name","href","visible","test","disabled","expr","filters","parents","addBack","filter","css","this","length","ui","extend","version","keyCode","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","fn","scrollParent","includeHidden","position","excludeStaticParent","overflowRegex","parent","eq","ownerDocument","document","uniqueId","each","id","removeUniqueId","removeAttr","data","createPseudo","dataName","elem","i","match","isNaN","attr","tabbable","tabIndex","isTabIndexNaN","outerWidth","jquery","side","type","innerWidth","innerHeight","outerHeight","reduce","size","border","margin","parseFloat","undefined","call","selector","add","prevObject","key","arguments","camelCase","ie","exec","navigator","userAgent","focus","delay","setTimeout","apply","disableSelection","createElement","bind","event","preventDefault","enableSelection","unbind","zIndex","value","parseInt","plugin","module","option","set","proto","prototype","plugins","push","instance","args","allowDisconnected","nodeType","options","widget_uuid","widget_slice","Array","slice","cleanData","elems","events","_data","remove","triggerHandler","e","widget","base","fullName","existingConstructor","constructor","basePrototype","proxiedPrototype","namespace","split","Widget","_createWidget","_proto","_childConstructors","prop","_super","_superApply","isFunction","returnValue","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","child","childPrototype","bridge","target","input","inputIndex","inputLength","hasOwnProperty","isPlainObject","object","isMethodCall","concat","methodValue","charAt","pushStack","get","error","_init","defaultElement","create","eventNamespace","_getCreateOptions","bindings","hoverable","_on","destroy","style","defaultView","parentWindow","_create","_trigger","_getCreateEventData","noop","_destroy","removeClass","parts","curOption","shift","pop","_setOptions","_setOption","toggleClass","enable","disable","suppressDisabledCheck","handlers","delegateElement","handler","handlerProxy","hasClass","guid","eventName","delegate","_off","join","undelegate","_delay","_hoverable","mouseenter","currentTarget","addClass","mouseleave","_focusable","focusin","focusout","callback","Event","originalEvent","trigger","isDefaultPrevented","show","hide","method","defaultEffect","effect","hasOptions","effectName","duration","isEmptyObject","complete","effects","easing","queue","next","mouseHandled","mouseup","cancel","distance","_mouseInit","that","_mouseDown","stopImmediatePropagation","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","which","elIsCancel","closest","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","button","_mouseDrag","_mouseStop","Math","max","abs","pageX","pageY","cachedScrollbarWidth","supportsOffsetFractions","round","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","offsets","width","height","parseCss","property","scrollbarWidth","w1","w2","div","innerDiv","children","append","offsetWidth","clientWidth","getScrollInfo","within","overflowX","isWindow","isDocument","overflowY","hasOverflowX","scrollWidth","scrollHeight","getWithinInfo","withinElement","offset","left","top","scrollLeft","scrollTop","of","atOffset","targetWidth","targetHeight","targetOffset","basePosition","dimensions","scrollInfo","collision","raw","getDimensions","at","horizontalOffset","verticalOffset","pos","collisionPosition","using","elemWidth","elemHeight","marginLeft","marginTop","collisionWidth","collisionHeight","myOffset","my","dir","props","right","bottom","feedback","horizontal","vertical","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","flip","newOverLeft","offsetLeft","newOverTop","offsetTop","flipfit","testElement","testElementParent","testElementStyle","body","getElementsByTagName","visibility","background","appendChild","documentElement","insertBefore","firstChild","cssText","innerHTML","removeChild","icons","submenu","items","menus","role","blur","select","activeMenu","find","mousedown .ui-menu-item","click .ui-menu-item","not","isPropagationStopped","has","expand","is","activeElement","active","clearTimeout","timer","mouseenter .ui-menu-item","siblings","mouseleave .ui-menu","keepActiveItem","item","contains","collapseAll","keydown","refresh","click","_closeOnDocumentClick","_keydown","prev","character","skip","regex","escape","replace","previousPage","nextPage","_move","previous","collapse","_activate","previousFilter","String","fromCharCode","filterTimer","RegExp","text","index","nextAll","icon","submenus","aria-hidden","aria-expanded","menu","submenuCarat","prepend","_isDivider","_itemRole","listbox","nested","focused","_scrollIntoView","first","_close","_startOpening","borderTop","paddingTop","scroll","elementHeight","itemHeight","_hasScroll","fromFocus","_open","all","currentMenu","startMenu","end","newItem","isFirstItem","prevAll","isLastItem","direction","mouse","animate","min","orientation","range","step","values","change","slide","start","stop","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_refresh","_createRange","_createHandles","_setupEvents","_refreshValue","handleCount","existingHandles","handles","appendTo","handle","classes","isArray","_valueMin","_handleEvents","normValue","closestHandle","mouseOverHandle","o","elementSize","elementOffset","x","y","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_start","_clickOffset","_slide","_stop","_change","pixelTotal","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","newVal","otherVal","newValues","allowed","newValue","_value","vals","_values","valsLength","val","valModStep","alignValue","toFixed","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","keyup"],"mappings":"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","file":"jquery-ui.slider.min.js","sourcesContent":["/* jQuery UI - v1.11.1 - 2014-08-24\r\n* http://jqueryui.com\r\n* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js\r\n* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT\r\n*\r\n* jQuery UI Core 1.11.1\r\n* http://jqueryui.com\r\n*\r\n* Copyright 2014 jQuery Foundation and other contributors\r\n* Released under the MIT license.\r\n* http://jquery.org/license\r\n*\r\n* http://api.jqueryui.com/category/ui-core/\r\n*/\r\n(function (factory) {\r\n\tvar moduleName = \"jqSlider\";\r\n\r\n\tif (typeof ccs_define === \"function\") {\r\n\t\tccs_define(moduleName, [\"jquery\"], factory);\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar moduleExport = factory(window.ccsJq);\r\n\tif (typeof moduleExport !== \"undefined\") {\r\n\t\twindow[moduleName] = moduleExport;\r\n\t}\r\n}\r\n(function( $ ) {\r\n\r\n// $.ui might exist from components with no dependencies, e.g., $.ui.position\r\n$.ui = $.ui || {};\r\n\r\n$.extend( $.ui, {\r\n\tversion: \"1.11.1\",\r\n\r\n\tkeyCode: {\r\n\t\tBACKSPACE: 8,\r\n\t\tCOMMA: 188,\r\n\t\tDELETE: 46,\r\n\t\tDOWN: 40,\r\n\t\tEND: 35,\r\n\t\tENTER: 13,\r\n\t\tESCAPE: 27,\r\n\t\tHOME: 36,\r\n\t\tLEFT: 37,\r\n\t\tPAGE_DOWN: 34,\r\n\t\tPAGE_UP: 33,\r\n\t\tPERIOD: 190,\r\n\t\tRIGHT: 39,\r\n\t\tSPACE: 32,\r\n\t\tTAB: 9,\r\n\t\tUP: 38\r\n\t}\r\n});\r\n\r\n// plugins\r\n$.fn.extend({\r\n\tscrollParent: function( includeHidden ) {\r\n\t\tvar position = this.css( \"position\" ),\r\n\t\t\texcludeStaticParent = position === \"absolute\",\r\n\t\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\r\n\t\t\tscrollParent = this.parents().filter( function() {\r\n\t\t\t\tvar parent = $( this );\r\n\t\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) + parent.css( \"overflow-x\" ) );\r\n\t\t\t}).eq( 0 );\r\n\r\n\t\treturn position === \"fixed\" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;\r\n\t},\r\n\r\n\tuniqueId: (function() {\r\n\t\tvar uuid = 0;\r\n\r\n\t\treturn function() {\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\tif ( !this.id ) {\r\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t})(),\r\n\r\n\tremoveUniqueId: function() {\r\n\t\treturn this.each(function() {\r\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\r\n\t\t\t\t$( this ).removeAttr( \"id\" );\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});\r\n\r\n// selectors\r\nfunction focusable( element, isTabIndexNotNaN ) {\r\n\tvar map, mapName, img,\r\n\t\tnodeName = element.nodeName.toLowerCase();\r\n\tif ( \"area\" === nodeName ) {\r\n\t\tmap = element.parentNode;\r\n\t\tmapName = map.name;\r\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" )[ 0 ];\r\n\t\treturn !!img && visible( img );\r\n\t}\r\n\treturn ( /input|select|textarea|button|object/.test( nodeName ) ?\r\n\t\t!element.disabled :\r\n\t\t\"a\" === nodeName ?\r\n\t\t\telement.href || isTabIndexNotNaN :\r\n\t\t\tisTabIndexNotNaN) &&\r\n\t\t// the element and all of its ancestors must be visible\r\n\t\tvisible( element );\r\n}\r\n\r\nfunction visible( element ) {\r\n\treturn $.expr.filters.visible( element ) &&\r\n\t\t!$( element ).parents().addBack().filter(function() {\r\n\t\t\treturn $.css( this, \"visibility\" ) === \"hidden\";\r\n\t\t}).length;\r\n}\r\n\r\n$.extend( $.expr[ \":\" ], {\r\n\tdata: $.expr.createPseudo ?\r\n\t\t$.expr.createPseudo(function( dataName ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn !!$.data( elem, dataName );\r\n\t\t\t};\r\n\t\t}) :\r\n\t\t// support: jQuery <1.8\r\n\t\tfunction( elem, i, match ) {\r\n\t\t\treturn !!$.data( elem, match[ 3 ] );\r\n\t\t},\r\n\r\n\tfocusable: function( element ) {\r\n\t\treturn focusable( element, !isNaN( $.attr( element, \"tabindex\" ) ) );\r\n\t},\r\n\r\n\ttabbable: function( element ) {\r\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\r\n\t\t\tisTabIndexNaN = isNaN( tabIndex );\r\n\t\treturn ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );\r\n\t}\r\n});\r\n\r\n// support: jQuery <1.8\r\nif ( !$( \"<a>\" ).outerWidth( 1 ).jquery ) {\r\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\r\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\r\n\t\t\ttype = name.toLowerCase(),\r\n\t\t\torig = {\r\n\t\t\t\tinnerWidth: $.fn.innerWidth,\r\n\t\t\t\tinnerHeight: $.fn.innerHeight,\r\n\t\t\t\touterWidth: $.fn.outerWidth,\r\n\t\t\t\touterHeight: $.fn.outerHeight\r\n\t\t\t};\r\n\r\n\t\tfunction reduce( elem, size, border, margin ) {\r\n\t\t\t$.each( side, function() {\r\n\t\t\t\tsize -= parseFloat( $.css( elem, \"padding\" + this ) ) || 0;\r\n\t\t\t\tif ( border ) {\r\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"border\" + this + \"Width\" ) ) || 0;\r\n\t\t\t\t}\r\n\t\t\t\tif ( margin ) {\r\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"margin\" + this ) ) || 0;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn size;\r\n\t\t}\r\n\r\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\r\n\t\t\tif ( size === undefined ) {\r\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\r\n\t\t\t}\r\n\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t$.fn[ \"outer\" + name] = function( size, margin ) {\r\n\t\t\tif ( typeof size !== \"number\" ) {\r\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\r\n\t\t\t}\r\n\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$( this).css( type, reduce( this, size, true, margin ) + \"px\" );\r\n\t\t\t});\r\n\t\t};\r\n\t});\r\n}\r\n\r\n// support: jQuery <1.8\r\nif ( !$.fn.addBack ) {\r\n\t$.fn.addBack = function( selector ) {\r\n\t\treturn this.add( selector == null ?\r\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\r\n\t\t);\r\n\t};\r\n}\r\n\r\n// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)\r\nif ( $( \"<a>\" ).data( \"a-b\", \"a\" ).removeData( \"a-b\" ).data( \"a-b\" ) ) {\r\n\t$.fn.removeData = (function( removeData ) {\r\n\t\treturn function( key ) {\r\n\t\t\tif ( arguments.length ) {\r\n\t\t\t\treturn removeData.call( this, $.camelCase( key ) );\r\n\t\t\t} else {\r\n\t\t\t\treturn removeData.call( this );\r\n\t\t\t}\r\n\t\t};\r\n\t})( $.fn.removeData );\r\n}\r\n\r\n// deprecated\r\n$.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\r\n\r\n$.fn.extend({\r\n\tfocus: (function( orig ) {\r\n\t\treturn function( delay, fn ) {\r\n\t\t\treturn typeof delay === \"number\" ?\r\n\t\t\t\tthis.each(function() {\r\n\t\t\t\t\tvar elem = this;\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$( elem ).focus();\r\n\t\t\t\t\t\tif ( fn ) {\r\n\t\t\t\t\t\t\tfn.call( elem );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, delay );\r\n\t\t\t\t}) :\r\n\t\t\t\torig.apply( this, arguments );\r\n\t\t};\r\n\t})( $.fn.focus ),\r\n\r\n\tdisableSelection: (function() {\r\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\r\n\t\t\t\"selectstart\" :\r\n\t\t\t\"mousedown\";\r\n\r\n\t\treturn function() {\r\n\t\t\treturn this.bind( eventType + \".ui-disableSelection\", function( event ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t});\r\n\t\t};\r\n\t})(),\r\n\r\n\tenableSelection: function() {\r\n\t\treturn this.unbind( \".ui-disableSelection\" );\r\n\t},\r\n\r\n\tzIndex: function( zIndex ) {\r\n\t\tif ( zIndex !== undefined ) {\r\n\t\t\treturn this.css( \"zIndex\", zIndex );\r\n\t\t}\r\n\r\n\t\tif ( this.length ) {\r\n\t\t\tvar elem = $( this[ 0 ] ), position, value;\r\n\t\t\twhile ( elem.length && elem[ 0 ] !== document ) {\r\n\t\t\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n\t\t\t\t// This makes behavior of this function consistent across browsers\r\n\t\t\t\t// WebKit always returns auto if the element is positioned\r\n\t\t\t\tposition = elem.css( \"position\" );\r\n\t\t\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\r\n\t\t\t\t\t// IE returns 0 when zIndex is not specified\r\n\t\t\t\t\t// other browsers return a string\r\n\t\t\t\t\t// we ignore the case of nested elements with an explicit value of 0\r\n\t\t\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\r\n\t\t\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\r\n\t\t\t\t\tif ( !isNaN( value ) && value !== 0 ) {\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telem = elem.parent();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n});\r\n\r\n// $.ui.plugin is deprecated. Use $.widget() extensions instead.\r\n$.ui.plugin = {\r\n\tadd: function( module, option, set ) {\r\n\t\tvar i,\r\n\t\t\tproto = $.ui[ module ].prototype;\r\n\t\tfor ( i in set ) {\r\n\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\r\n\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\r\n\t\t}\r\n\t},\r\n\tcall: function( instance, name, args, allowDisconnected ) {\r\n\t\tvar i,\r\n\t\t\tset = instance.plugins[ name ];\r\n\r\n\t\tif ( !set ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfor ( i = 0; i < set.length; i++ ) {\r\n\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\r\n\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n\r\n/*!\r\n * jQuery UI Widget 1.11.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright 2014 jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n *\r\n * http://api.jqueryui.com/jQuery.widget/\r\n */\r\n\r\n\r\nvar widget_uuid = 0,\r\n\twidget_slice = Array.prototype.slice;\r\n\r\n$.cleanData = (function( orig ) {\r\n\treturn function( elems ) {\r\n\t\tvar events, elem, i;\r\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\r\n\t\t\ttry {\r\n\r\n\t\t\t\t// Only trigger remove when necessary to save time\r\n\t\t\t\tevents = $._data( elem, \"events\" );\r\n\t\t\t\tif ( events && events.remove ) {\r\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t\t} catch( e ) {}\r\n\t\t}\r\n\t\torig( elems );\r\n\t};\r\n})( $.cleanData );\r\n\r\n$.widget = function( name, base, prototype ) {\r\n\tvar fullName, existingConstructor, constructor, basePrototype,\r\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\r\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\r\n\t\tproxiedPrototype = {},\r\n\t\tnamespace = name.split( \".\" )[ 0 ];\r\n\r\n\tname = name.split( \".\" )[ 1 ];\r\n\tfullName = namespace + \"-\" + name;\r\n\r\n\tif ( !prototype ) {\r\n\t\tprototype = base;\r\n\t\tbase = $.Widget;\r\n\t}\r\n\r\n\t// create selector for plugin\r\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\r\n\t\treturn !!$.data( elem, fullName );\r\n\t};\r\n\r\n\t$[ namespace ] = $[ namespace ] || {};\r\n\texistingConstructor = $[ namespace ][ name ];\r\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\r\n\t\t// allow instantiation without \"new\" keyword\r\n\t\tif ( !this._createWidget ) {\r\n\t\t\treturn new constructor( options, element );\r\n\t\t}\r\n\r\n\t\t// allow instantiation without initializing for simple inheritance\r\n\t\t// must use \"new\" keyword (the code above always passes args)\r\n\t\tif ( arguments.length ) {\r\n\t\t\tthis._createWidget( options, element );\r\n\t\t}\r\n\t};\r\n\t// extend with the existing constructor to carry over any static properties\r\n\t$.extend( constructor, existingConstructor, {\r\n\t\tversion: prototype.version,\r\n\t\t// copy the object used to create the prototype in case we need to\r\n\t\t// redefine the widget later\r\n\t\t_proto: $.extend( {}, prototype ),\r\n\t\t// track widgets that inherit from this widget in case this widget is\r\n\t\t// redefined after a widget inherits from it\r\n\t\t_childConstructors: []\r\n\t});\r\n\r\n\tbasePrototype = new base();\r\n\t// we need to make the options hash a property directly on the new instance\r\n\t// otherwise we'll modify the options hash on the prototype that we're\r\n\t// inheriting from\r\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\r\n\t$.each( prototype, function( prop, value ) {\r\n\t\tif ( !$.isFunction( value ) ) {\r\n\t\t\tproxiedPrototype[ prop ] = value;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tproxiedPrototype[ prop ] = (function() {\r\n\t\t\tvar _super = function() {\r\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\r\n\t\t\t\t},\r\n\t\t\t\t_superApply = function( args ) {\r\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\r\n\t\t\t\t};\r\n\t\t\treturn function() {\r\n\t\t\t\tvar __super = this._super,\r\n\t\t\t\t\t__superApply = this._superApply,\r\n\t\t\t\t\treturnValue;\r\n\r\n\t\t\t\tthis._super = _super;\r\n\t\t\t\tthis._superApply = _superApply;\r\n\r\n\t\t\t\treturnValue = value.apply( this, arguments );\r\n\r\n\t\t\t\tthis._super = __super;\r\n\t\t\t\tthis._superApply = __superApply;\r\n\r\n\t\t\t\treturn returnValue;\r\n\t\t\t};\r\n\t\t})();\r\n\t});\r\n\tconstructor.prototype = $.widget.extend( basePrototype, {\r\n\t\t// TODO: remove support for widgetEventPrefix\r\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\r\n\t\t// don't prefix for widgets that aren't DOM-based\r\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\r\n\t}, proxiedPrototype, {\r\n\t\tconstructor: constructor,\r\n\t\tnamespace: namespace,\r\n\t\twidgetName: name,\r\n\t\twidgetFullName: fullName\r\n\t});\r\n\r\n\t// If this widget is being redefined then we need to find all widgets that\r\n\t// are inheriting from it and redefine all of them so that they inherit from\r\n\t// the new version of this widget. We're essentially trying to replace one\r\n\t// level in the prototype chain.\r\n\tif ( existingConstructor ) {\r\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\r\n\t\t\tvar childPrototype = child.prototype;\r\n\r\n\t\t\t// redefine the child widget using the same prototype that was\r\n\t\t\t// originally used, but inherit from the new version of the base\r\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\r\n\t\t});\r\n\t\t// remove the list of existing child constructors from the old constructor\r\n\t\t// so the old child constructors can be garbage collected\r\n\t\tdelete existingConstructor._childConstructors;\r\n\t} else {\r\n\t\tbase._childConstructors.push( constructor );\r\n\t}\r\n\r\n\t$.widget.bridge( name, constructor );\r\n\r\n\treturn constructor;\r\n};\r\n\r\n$.widget.extend = function( target ) {\r\n\tvar input = widget_slice.call( arguments, 1 ),\r\n\t\tinputIndex = 0,\r\n\t\tinputLength = input.length,\r\n\t\tkey,\r\n\t\tvalue;\r\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\r\n\t\tfor ( key in input[ inputIndex ] ) {\r\n\t\t\tvalue = input[ inputIndex ][ key ];\r\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\r\n\t\t\t\t// Clone objects\r\n\t\t\t\tif ( $.isPlainObject( value ) ) {\r\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\r\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\r\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\r\n\t\t\t\t\t\t$.widget.extend( {}, value );\r\n\t\t\t\t// Copy everything else by reference\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget[ key ] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn target;\r\n};\r\n\r\n$.widget.bridge = function( name, object ) {\r\n\tvar fullName = object.prototype.widgetFullName || name;\r\n\t$.fn[ name ] = function( options ) {\r\n\t\tvar isMethodCall = typeof options === \"string\",\r\n\t\t\targs = widget_slice.call( arguments, 1 ),\r\n\t\t\treturnValue = this;\r\n\r\n\t\t// allow multiple hashes to be passed on init\r\n\t\toptions = !isMethodCall && args.length ?\r\n\t\t\t$.widget.extend.apply( null, [ options ].concat(args) ) :\r\n\t\t\toptions;\r\n\r\n\t\tif ( isMethodCall ) {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar methodValue,\r\n\t\t\t\t\tinstance = $.data( this, fullName );\r\n\t\t\t\tif ( options === \"instance\" ) {\r\n\t\t\t\t\treturnValue = instance;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif ( !instance ) {\r\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\r\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\r\n\t\t\t\t}\r\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\r\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\r\n\t\t\t\t}\r\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\r\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\r\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\r\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\r\n\t\t\t\t\t\tmethodValue;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar instance = $.data( this, fullName );\r\n\t\t\t\tif ( instance ) {\r\n\t\t\t\t\tinstance.option( options || {} );\r\n\t\t\t\t\tif ( instance._init ) {\r\n\t\t\t\t\t\tinstance._init();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn returnValue;\r\n\t};\r\n};\r\n\r\n$.Widget = function( /* options, element */ ) {};\r\n$.Widget._childConstructors = [];\r\n\r\n$.Widget.prototype = {\r\n\twidgetName: \"widget\",\r\n\twidgetEventPrefix: \"\",\r\n\tdefaultElement: \"<div>\",\r\n\toptions: {\r\n\t\tdisabled: false,\r\n\r\n\t\t// callbacks\r\n\t\tcreate: null\r\n\t},\r\n\t_createWidget: function( options, element ) {\r\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\r\n\t\tthis.element = $( element );\r\n\t\tthis.uuid = widget_uuid++;\r\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\r\n\t\tthis.options = $.widget.extend( {},\r\n\t\t\tthis.options,\r\n\t\t\tthis._getCreateOptions(),\r\n\t\t\toptions );\r\n\r\n\t\tthis.bindings = $();\r\n\t\tthis.hoverable = $();\r\n\t\tthis.focusable = $();\r\n\r\n\t\tif ( element !== this ) {\r\n\t\t\t$.data( element, this.widgetFullName, this );\r\n\t\t\tthis._on( true, this.element, {\r\n\t\t\t\tremove: function( event ) {\r\n\t\t\t\t\tif ( event.target === element ) {\r\n\t\t\t\t\t\tthis.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.document = $( element.style ?\r\n\t\t\t\t// element within the document\r\n\t\t\t\telement.ownerDocument :\r\n\t\t\t\t// element is window or document\r\n\t\t\t\telement.document || element );\r\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\r\n\t\t}\r\n\r\n\t\tthis._create();\r\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\r\n\t\tthis._init();\r\n\t},\r\n\t_getCreateOptions: $.noop,\r\n\t_getCreateEventData: $.noop,\r\n\t_create: $.noop,\r\n\t_init: $.noop,\r\n\r\n\tdestroy: function() {\r\n\t\tthis._destroy();\r\n\t\t// we can probably remove the unbind calls in 2.0\r\n\t\t// all event bindings should go through this._on()\r\n\t\tthis.element\r\n\t\t\t.unbind( this.eventNamespace )\r\n\t\t\t.removeData( this.widgetFullName )\r\n\t\t\t// support: jquery <1.6.3\r\n\t\t\t// http://bugs.jquery.com/ticket/9413\r\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\r\n\t\tthis.widget()\r\n\t\t\t.unbind( this.eventNamespace )\r\n\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t.removeClass(\r\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\r\n\t\t\t\t\"ui-state-disabled\" );\r\n\r\n\t\t// clean up events and states\r\n\t\tthis.bindings.unbind( this.eventNamespace );\r\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\r\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\r\n\t},\r\n\t_destroy: $.noop,\r\n\r\n\twidget: function() {\r\n\t\treturn this.element;\r\n\t},\r\n\r\n\toption: function( key, value ) {\r\n\t\tvar options = key,\r\n\t\t\tparts,\r\n\t\t\tcurOption,\r\n\t\t\ti;\r\n\r\n\t\tif ( arguments.length === 0 ) {\r\n\t\t\t// don't return a reference to the internal hash\r\n\t\t\treturn $.widget.extend( {}, this.options );\r\n\t\t}\r\n\r\n\t\tif ( typeof key === \"string\" ) {\r\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\r\n\t\t\toptions = {};\r\n\t\t\tparts = key.split( \".\" );\r\n\t\t\tkey = parts.shift();\r\n\t\t\tif ( parts.length ) {\r\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\r\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\r\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\r\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\r\n\t\t\t\t}\r\n\t\t\t\tkey = parts.pop();\r\n\t\t\t\tif ( arguments.length === 1 ) {\r\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\r\n\t\t\t\t}\r\n\t\t\t\tcurOption[ key ] = value;\r\n\t\t\t} else {\r\n\t\t\t\tif ( arguments.length === 1 ) {\r\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\r\n\t\t\t\t}\r\n\t\t\t\toptions[ key ] = value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._setOptions( options );\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOptions: function( options ) {\r\n\t\tvar key;\r\n\r\n\t\tfor ( key in options ) {\r\n\t\t\tthis._setOption( key, options[ key ] );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOption: function( key, value ) {\r\n\t\tthis.options[ key ] = value;\r\n\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.widget()\r\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\r\n\r\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\r\n\t\t\tif ( value ) {\r\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\r\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function() {\r\n\t\treturn this._setOptions({ disabled: false });\r\n\t},\r\n\tdisable: function() {\r\n\t\treturn this._setOptions({ disabled: true });\r\n\t},\r\n\r\n\t_on: function( suppressDisabledCheck, element, handlers ) {\r\n\t\tvar delegateElement,\r\n\t\t\tinstance = this;\r\n\r\n\t\t// no suppressDisabledCheck flag, shuffle arguments\r\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\r\n\t\t\thandlers = element;\r\n\t\t\telement = suppressDisabledCheck;\r\n\t\t\tsuppressDisabledCheck = false;\r\n\t\t}\r\n\r\n\t\t// no element argument, shuffle and use this.element\r\n\t\tif ( !handlers ) {\r\n\t\t\thandlers = element;\r\n\t\t\telement = this.element;\r\n\t\t\tdelegateElement = this.widget();\r\n\t\t} else {\r\n\t\t\telement = delegateElement = $( element );\r\n\t\t\tthis.bindings = this.bindings.add( element );\r\n\t\t}\r\n\r\n\t\t$.each( handlers, function( event, handler ) {\r\n\t\t\tfunction handlerProxy() {\r\n\t\t\t\t// allow widgets to customize the disabled handling\r\n\t\t\t\t// - disabled as an array instead of boolean\r\n\t\t\t\t// - disabled class as method for disabling individual parts\r\n\t\t\t\tif ( !suppressDisabledCheck &&\r\n\t\t\t\t\t\t( instance.options.disabled === true ||\r\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\r\n\t\t\t\t\t.apply( instance, arguments );\r\n\t\t\t}\r\n\r\n\t\t\t// copy the guid so direct unbinding works\r\n\t\t\tif ( typeof handler !== \"string\" ) {\r\n\t\t\t\thandlerProxy.guid = handler.guid =\r\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\r\n\t\t\t}\r\n\r\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\r\n\t\t\t\teventName = match[1] + instance.eventNamespace,\r\n\t\t\t\tselector = match[2];\r\n\t\t\tif ( selector ) {\r\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\r\n\t\t\t} else {\r\n\t\t\t\telement.bind( eventName, handlerProxy );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_off: function( element, eventName ) {\r\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) + this.eventNamespace;\r\n\t\telement.unbind( eventName ).undelegate( eventName );\r\n\t},\r\n\r\n\t_delay: function( handler, delay ) {\r\n\t\tfunction handlerProxy() {\r\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\r\n\t\t\t\t.apply( instance, arguments );\r\n\t\t}\r\n\t\tvar instance = this;\r\n\t\treturn setTimeout( handlerProxy, delay || 0 );\r\n\t},\r\n\r\n\t_hoverable: function( element ) {\r\n\t\tthis.hoverable = this.hoverable.add( element );\r\n\t\tthis._on( element, {\r\n\t\t\tmouseenter: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\r\n\t\t\t},\r\n\t\t\tmouseleave: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_focusable: function( element ) {\r\n\t\tthis.focusable = this.focusable.add( element );\r\n\t\tthis._on( element, {\r\n\t\t\tfocusin: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\r\n\t\t\t},\r\n\t\t\tfocusout: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_trigger: function( type, event, data ) {\r\n\t\tvar prop, orig,\r\n\t\t\tcallback = this.options[ type ];\r\n\r\n\t\tdata = data || {};\r\n\t\tevent = $.Event( event );\r\n\t\tevent.type = ( type === this.widgetEventPrefix ?\r\n\t\t\ttype :\r\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\r\n\t\t// the original event may come from any element\r\n\t\t// so we need to reset the target on the new event\r\n\t\tevent.target = this.element[ 0 ];\r\n\r\n\t\t// copy original event properties over to the new event\r\n\t\torig = event.originalEvent;\r\n\t\tif ( orig ) {\r\n\t\t\tfor ( prop in orig ) {\r\n\t\t\t\tif ( !( prop in event ) ) {\r\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.element.trigger( event, data );\r\n\t\treturn !( $.isFunction( callback ) &&\r\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\r\n\t\t\tevent.isDefaultPrevented() );\r\n\t}\r\n};\r\n\r\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\r\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\r\n\t\tif ( typeof options === \"string\" ) {\r\n\t\t\toptions = { effect: options };\r\n\t\t}\r\n\t\tvar hasOptions,\r\n\t\t\teffectName = !options ?\r\n\t\t\t\tmethod :\r\n\t\t\t\toptions === true || typeof options === \"number\" ?\r\n\t\t\t\t\tdefaultEffect :\r\n\t\t\t\t\toptions.effect || defaultEffect;\r\n\t\toptions = options || {};\r\n\t\tif ( typeof options === \"number\" ) {\r\n\t\t\toptions = { duration: options };\r\n\t\t}\r\n\t\thasOptions = !$.isEmptyObject( options );\r\n\t\toptions.complete = callback;\r\n\t\tif ( options.delay ) {\r\n\t\t\telement.delay( options.delay );\r\n\t\t}\r\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\r\n\t\t\telement[ method ]( options );\r\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\r\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\r\n\t\t} else {\r\n\t\t\telement.queue(function( next ) {\r\n\t\t\t\t$( this )[ method ]();\r\n\t\t\t\tif ( callback ) {\r\n\t\t\t\t\tcallback.call( element[ 0 ] );\r\n\t\t\t\t}\r\n\t\t\t\tnext();\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n});\r\n\r\nvar widget = $.widget;\r\n\r\n\t/*!\r\n\t * jQuery UI Mouse 1.11.1\r\n\t * http://jqueryui.com\r\n\t *\r\n\t * Copyright 2014 jQuery Foundation and other contributors\r\n\t * Released under the MIT license.\r\n\t * http://jquery.org/license\r\n\t *\r\n\t * http://api.jqueryui.com/mouse/\r\n\t */\r\n\r\n\r\nvar mouseHandled = false;\r\n$(document).mouseup(function () {\r\n\tmouseHandled = false;\r\n});\r\n\r\nvar mouse = $.widget(\"ui.mouse\", {\r\n\tversion: \"1.11.1\",\r\n\toptions: {\r\n\t\tcancel: \"input,textarea,button,select,option\",\r\n\t\tdistance: 1,\r\n\t\tdelay: 0\r\n\t},\r\n\t_mouseInit: function () {\r\n\t\tvar that = this;\r\n\r\n\t\tthis.element\r\n\t\t\t.bind(\"mousedown.\" + this.widgetName, function (event) {\r\n\t\t\t\treturn that._mouseDown(event);\r\n\t\t\t})\r\n\t\t\t.bind(\"click.\" + this.widgetName, function (event) {\r\n\t\t\t\tif (true === $.data(event.target, that.widgetName + \".preventClickEvent\")) {\r\n\t\t\t\t\t$.removeData(event.target, that.widgetName + \".preventClickEvent\");\r\n\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.started = false;\r\n\t},\r\n\r\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\r\n\t// other instances of mouse\r\n\t_mouseDestroy: function () {\r\n\t\tthis.element.unbind(\".\" + this.widgetName);\r\n\t\tif (this._mouseMoveDelegate) {\r\n\t\t\tthis.document\r\n\t\t\t\t.unbind(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t\t.unbind(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\r\n\t\t}\r\n\t},\r\n\r\n\t_mouseDown: function (event) {\r\n\t\t// don't let more than one widget handle mouseStart\r\n\t\tif (mouseHandled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// we may have missed mouseup (out of window)\r\n\t\t(this._mouseStarted && this._mouseUp(event));\r\n\r\n\t\tthis._mouseDownEvent = event;\r\n\r\n\t\tvar that = this,\r\n\t\t\tbtnIsLeft = (event.which === 1),\r\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\r\n\t\t\t// disabled inputs (#7620)\r\n\t\t\telIsCancel = (typeof this.options.cancel === \"string\" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);\r\n\t\tif (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthis.mouseDelayMet = !this.options.delay;\r\n\t\tif (!this.mouseDelayMet) {\r\n\t\t\tthis._mouseDelayTimer = setTimeout(function () {\r\n\t\t\t\tthat.mouseDelayMet = true;\r\n\t\t\t}, this.options.delay);\r\n\t\t}\r\n\r\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\r\n\t\t\tthis._mouseStarted = (this._mouseStart(event) !== false);\r\n\t\t\tif (!this._mouseStarted) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Click event may never have fired (Gecko & Opera)\r\n\t\tif (true === $.data(event.target, this.widgetName + \".preventClickEvent\")) {\r\n\t\t\t$.removeData(event.target, this.widgetName + \".preventClickEvent\");\r\n\t\t}\r\n\r\n\t\t// these delegates are required to keep context\r\n\t\tthis._mouseMoveDelegate = function (event) {\r\n\t\t\treturn that._mouseMove(event);\r\n\t\t};\r\n\t\tthis._mouseUpDelegate = function (event) {\r\n\t\t\treturn that._mouseUp(event);\r\n\t\t};\r\n\r\n\t\tthis.document\r\n\t\t\t.bind(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t.bind(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tmouseHandled = true;\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseMove: function (event) {\r\n\t\t// IE mouseup check - mouseup happened when mouse was out of window\r\n\t\tif ($.ui.ie && (!document.documentMode || document.documentMode < 9) && !event.button) {\r\n\t\t\treturn this._mouseUp(event);\r\n\r\n\t\t\t// Iframe mouseup check - mouseup occurred in another document\r\n\t\t} else if (!event.which) {\r\n\t\t\treturn this._mouseUp(event);\r\n\t\t}\r\n\r\n\t\tif (this._mouseStarted) {\r\n\t\t\tthis._mouseDrag(event);\r\n\t\t\treturn event.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\r\n\t\t\tthis._mouseStarted =\r\n\t\t\t\t(this._mouseStart(this._mouseDownEvent, event) !== false);\r\n\t\t\t(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));\r\n\t\t}\r\n\r\n\t\treturn !this._mouseStarted;\r\n\t},\r\n\r\n\t_mouseUp: function (event) {\r\n\t\tthis.document\r\n\t\t\t.unbind(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t.unbind(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\r\n\r\n\t\tif (this._mouseStarted) {\r\n\t\t\tthis._mouseStarted = false;\r\n\r\n\t\t\tif (event.target === this._mouseDownEvent.target) {\r\n\t\t\t\t$.data(event.target, this.widgetName + \".preventClickEvent\", true);\r\n\t\t\t}\r\n\r\n\t\t\tthis._mouseStop(event);\r\n\t\t}\r\n\r\n\t\tmouseHandled = false;\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseDistanceMet: function (event) {\r\n\t\treturn (Math.max(\r\n\t\t\t\tMath.abs(this._mouseDownEvent.pageX - event.pageX),\r\n\t\t\t\tMath.abs(this._mouseDownEvent.pageY - event.pageY)\r\n\t\t\t) >= this.options.distance\r\n\t\t);\r\n\t},\r\n\r\n\t_mouseDelayMet: function (/* event */) {\r\n\t\treturn this.mouseDelayMet;\r\n\t},\r\n\r\n\t// These are placeholder methods, to be overriden by extending plugin\r\n\t_mouseStart: function (/* event */) { },\r\n\t_mouseDrag: function (/* event */) { },\r\n\t_mouseStop: function (/* event */) { },\r\n\t_mouseCapture: function (/* event */) { return true; }\r\n});\r\n\r\n\r\n/*!\r\n * jQuery UI Position 1.11.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright 2014 jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n *\r\n * http://api.jqueryui.com/position/\r\n */\r\n\r\n(function() {\r\n\r\n$.ui = $.ui || {};\r\n\r\nvar cachedScrollbarWidth, supportsOffsetFractions,\r\n\tmax = Math.max,\r\n\tabs = Math.abs,\r\n\tround = Math.round,\r\n\trhorizontal = /left|center|right/,\r\n\trvertical = /top|center|bottom/,\r\n\troffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\r\n\trposition = /^\\w+/,\r\n\trpercent = /%$/,\r\n\t_position = $.fn.position;\r\n\r\nfunction getOffsets( offsets, width, height ) {\r\n\treturn [\r\n\t\tparseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),\r\n\t\tparseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )\r\n\t];\r\n}\r\n\r\nfunction parseCss( element, property ) {\r\n\treturn parseInt( $.css( element, property ), 10 ) || 0;\r\n}\r\n\r\nfunction getDimensions( elem ) {\r\n\tvar raw = elem[0];\r\n\tif ( raw.nodeType === 9 ) {\r\n\t\treturn {\r\n\t\t\twidth: elem.width(),\r\n\t\t\theight: elem.height(),\r\n\t\t\toffset: { top: 0, left: 0 }\r\n\t\t};\r\n\t}\r\n\tif ( $.isWindow( raw ) ) {\r\n\t\treturn {\r\n\t\t\twidth: elem.width(),\r\n\t\t\theight: elem.height(),\r\n\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\r\n\t\t};\r\n\t}\r\n\tif ( raw.preventDefault ) {\r\n\t\treturn {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0,\r\n\t\t\toffset: { top: raw.pageY, left: raw.pageX }\r\n\t\t};\r\n\t}\r\n\treturn {\r\n\t\twidth: elem.outerWidth(),\r\n\t\theight: elem.outerHeight(),\r\n\t\toffset: elem.offset()\r\n\t};\r\n}\r\n\r\n$.position = {\r\n\tscrollbarWidth: function() {\r\n\t\tif ( cachedScrollbarWidth !== undefined ) {\r\n\t\t\treturn cachedScrollbarWidth;\r\n\t\t}\r\n\t\tvar w1, w2,\r\n\t\t\tdiv = $( \"<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>\" ),\r\n\t\t\tinnerDiv = div.children()[0];\r\n\r\n\t\t$( \"body\" ).append( div );\r\n\t\tw1 = innerDiv.offsetWidth;\r\n\t\tdiv.css( \"overflow\", \"scroll\" );\r\n\r\n\t\tw2 = innerDiv.offsetWidth;\r\n\r\n\t\tif ( w1 === w2 ) {\r\n\t\t\tw2 = div[0].clientWidth;\r\n\t\t}\r\n\r\n\t\tdiv.remove();\r\n\r\n\t\treturn (cachedScrollbarWidth = w1 - w2);\r\n\t},\r\n\tgetScrollInfo: function( within ) {\r\n\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" :\r\n\t\t\t\twithin.element.css( \"overflow-x\" ),\r\n\t\t\toverflowY = within.isWindow || within.isDocument ? \"\" :\r\n\t\t\t\twithin.element.css( \"overflow-y\" ),\r\n\t\t\thasOverflowX = overflowX === \"scroll\" ||\r\n\t\t\t\t( overflowX === \"auto\" && within.width < within.element[0].scrollWidth ),\r\n\t\t\thasOverflowY = overflowY === \"scroll\" ||\r\n\t\t\t\t( overflowY === \"auto\" && within.height < within.element[0].scrollHeight );\r\n\t\treturn {\r\n\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\r\n\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\r\n\t\t};\r\n\t},\r\n\tgetWithinInfo: function( element ) {\r\n\t\tvar withinElement = $( element || window ),\r\n\t\t\tisWindow = $.isWindow( withinElement[0] ),\r\n\t\t\tisDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;\r\n\t\treturn {\r\n\t\t\telement: withinElement,\r\n\t\t\tisWindow: isWindow,\r\n\t\t\tisDocument: isDocument,\r\n\t\t\toffset: withinElement.offset() || { left: 0, top: 0 },\r\n\t\t\tscrollLeft: withinElement.scrollLeft(),\r\n\t\t\tscrollTop: withinElement.scrollTop(),\r\n\r\n\t\t\t// support: jQuery 1.6.x\r\n\t\t\t// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows\r\n\t\t\twidth: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),\r\n\t\t\theight: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()\r\n\t\t};\r\n\t}\r\n};\r\n\r\n$.fn.position = function( options ) {\r\n\tif ( !options || !options.of ) {\r\n\t\treturn _position.apply( this, arguments );\r\n\t}\r\n\r\n\t// make a copy, we don't want to modify arguments\r\n\toptions = $.extend( {}, options );\r\n\r\n\tvar atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,\r\n\t\ttarget = $( options.of ),\r\n\t\twithin = $.position.getWithinInfo( options.within ),\r\n\t\tscrollInfo = $.position.getScrollInfo( within ),\r\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\r\n\t\toffsets = {};\r\n\r\n\tdimensions = getDimensions( target );\r\n\tif ( target[0].preventDefault ) {\r\n\t\t// force left top to allow flipping\r\n\t\toptions.at = \"left top\";\r\n\t}\r\n\ttargetWidth = dimensions.width;\r\n\ttargetHeight = dimensions.height;\r\n\ttargetOffset = dimensions.offset;\r\n\t// clone to reuse original targetOffset later\r\n\tbasePosition = $.extend( {}, targetOffset );\r\n\r\n\t// force my and at to have valid horizontal and vertical positions\r\n\t// if a value is missing or invalid, it will be converted to center\r\n\t$.each( [ \"my\", \"at\" ], function() {\r\n\t\tvar pos = ( options[ this ] || \"\" ).split( \" \" ),\r\n\t\t\thorizontalOffset,\r\n\t\t\tverticalOffset;\r\n\r\n\t\tif ( pos.length === 1) {\r\n\t\t\tpos = rhorizontal.test( pos[ 0 ] ) ?\r\n\t\t\t\tpos.concat( [ \"center\" ] ) :\r\n\t\t\t\trvertical.test( pos[ 0 ] ) ?\r\n\t\t\t\t\t[ \"center\" ].concat( pos ) :\r\n\t\t\t\t\t[ \"center\", \"center\" ];\r\n\t\t}\r\n\t\tpos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : \"center\";\r\n\t\tpos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : \"center\";\r\n\r\n\t\t// calculate offsets\r\n\t\thorizontalOffset = roffset.exec( pos[ 0 ] );\r\n\t\tverticalOffset = roffset.exec( pos[ 1 ] );\r\n\t\toffsets[ this ] = [\r\n\t\t\thorizontalOffset ? horizontalOffset[ 0 ] : 0,\r\n\t\t\tverticalOffset ? verticalOffset[ 0 ] : 0\r\n\t\t];\r\n\r\n\t\t// reduce to just the positions without the offsets\r\n\t\toptions[ this ] = [\r\n\t\t\trposition.exec( pos[ 0 ] )[ 0 ],\r\n\t\t\trposition.exec( pos[ 1 ] )[ 0 ]\r\n\t\t];\r\n\t});\r\n\r\n\t// normalize collision option\r\n\tif ( collision.length === 1 ) {\r\n\t\tcollision[ 1 ] = collision[ 0 ];\r\n\t}\r\n\r\n\tif ( options.at[ 0 ] === \"right\" ) {\r\n\t\tbasePosition.left += targetWidth;\r\n\t} else if ( options.at[ 0 ] === \"center\" ) {\r\n\t\tbasePosition.left += targetWidth / 2;\r\n\t}\r\n\r\n\tif ( options.at[ 1 ] === \"bottom\" ) {\r\n\t\tbasePosition.top += targetHeight;\r\n\t} else if ( options.at[ 1 ] === \"center\" ) {\r\n\t\tbasePosition.top += targetHeight / 2;\r\n\t}\r\n\r\n\tatOffset = getOffsets( offsets.at, targetWidth, targetHeight );\r\n\tbasePosition.left += atOffset[ 0 ];\r\n\tbasePosition.top += atOffset[ 1 ];\r\n\r\n\treturn this.each(function() {\r\n\t\tvar collisionPosition, using,\r\n\t\t\telem = $( this ),\r\n\t\t\telemWidth = elem.outerWidth(),\r\n\t\t\telemHeight = elem.outerHeight(),\r\n\t\t\tmarginLeft = parseCss( this, \"marginLeft\" ),\r\n\t\t\tmarginTop = parseCss( this, \"marginTop\" ),\r\n\t\t\tcollisionWidth = elemWidth + marginLeft + parseCss( this, \"marginRight\" ) + scrollInfo.width,\r\n\t\t\tcollisionHeight = elemHeight + marginTop + parseCss( this, \"marginBottom\" ) + scrollInfo.height,\r\n\t\t\tposition = $.extend( {}, basePosition ),\r\n\t\t\tmyOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );\r\n\r\n\t\tif ( options.my[ 0 ] === \"right\" ) {\r\n\t\t\tposition.left -= elemWidth;\r\n\t\t} else if ( options.my[ 0 ] === \"center\" ) {\r\n\t\t\tposition.left -= elemWidth / 2;\r\n\t\t}\r\n\r\n\t\tif ( options.my[ 1 ] === \"bottom\" ) {\r\n\t\t\tposition.top -= elemHeight;\r\n\t\t} else if ( options.my[ 1 ] === \"center\" ) {\r\n\t\t\tposition.top -= elemHeight / 2;\r\n\t\t}\r\n\r\n\t\tposition.left += myOffset[ 0 ];\r\n\t\tposition.top += myOffset[ 1 ];\r\n\r\n\t\t// if the browser doesn't support fractions, then round for consistent results\r\n\t\tif ( !supportsOffsetFractions ) {\r\n\t\t\tposition.left = round( position.left );\r\n\t\t\tposition.top = round( position.top );\r\n\t\t}\r\n\r\n\t\tcollisionPosition = {\r\n\t\t\tmarginLeft: marginLeft,\r\n\t\t\tmarginTop: marginTop\r\n\t\t};\r\n\r\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\r\n\t\t\tif ( $.ui.position[ collision[ i ] ] ) {\r\n\t\t\t\t$.ui.position[ collision[ i ] ][ dir ]( position, {\r\n\t\t\t\t\ttargetWidth: targetWidth,\r\n\t\t\t\t\ttargetHeight: targetHeight,\r\n\t\t\t\t\telemWidth: elemWidth,\r\n\t\t\t\t\telemHeight: elemHeight,\r\n\t\t\t\t\tcollisionPosition: collisionPosition,\r\n\t\t\t\t\tcollisionWidth: collisionWidth,\r\n\t\t\t\t\tcollisionHeight: collisionHeight,\r\n\t\t\t\t\toffset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],\r\n\t\t\t\t\tmy: options.my,\r\n\t\t\t\t\tat: options.at,\r\n\t\t\t\t\twithin: within,\r\n\t\t\t\t\telem: elem\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ( options.using ) {\r\n\t\t\t// adds feedback as second argument to using callback, if present\r\n\t\t\tusing = function( props ) {\r\n\t\t\t\tvar left = targetOffset.left - position.left,\r\n\t\t\t\t\tright = left + targetWidth - elemWidth,\r\n\t\t\t\t\ttop = targetOffset.top - position.top,\r\n\t\t\t\t\tbottom = top + targetHeight - elemHeight,\r\n\t\t\t\t\tfeedback = {\r\n\t\t\t\t\t\ttarget: {\r\n\t\t\t\t\t\t\telement: target,\r\n\t\t\t\t\t\t\tleft: targetOffset.left,\r\n\t\t\t\t\t\t\ttop: targetOffset.top,\r\n\t\t\t\t\t\t\twidth: targetWidth,\r\n\t\t\t\t\t\t\theight: targetHeight\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\telement: {\r\n\t\t\t\t\t\t\telement: elem,\r\n\t\t\t\t\t\t\tleft: position.left,\r\n\t\t\t\t\t\t\ttop: position.top,\r\n\t\t\t\t\t\t\twidth: elemWidth,\r\n\t\t\t\t\t\t\theight: elemHeight\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\r\n\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\r\n\t\t\t\t\t};\r\n\t\t\t\tif ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {\r\n\t\t\t\t\tfeedback.horizontal = \"center\";\r\n\t\t\t\t}\r\n\t\t\t\tif ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {\r\n\t\t\t\t\tfeedback.vertical = \"middle\";\r\n\t\t\t\t}\r\n\t\t\t\tif ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {\r\n\t\t\t\t\tfeedback.important = \"horizontal\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfeedback.important = \"vertical\";\r\n\t\t\t\t}\r\n\t\t\t\toptions.using.call( this, props, feedback );\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\telem.offset( $.extend( position, { using: using } ) );\r\n\t});\r\n};\r\n\r\n$.ui.position = {\r\n\tfit: {\r\n\t\tleft: function( position, data ) {\r\n\t\t\tvar within = data.within,\r\n\t\t\t\twithinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\r\n\t\t\t\touterWidth = within.width,\r\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\r\n\t\t\t\toverLeft = withinOffset - collisionPosLeft,\r\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\r\n\t\t\t\tnewOverRight;\r\n\r\n\t\t\t// element is wider than within\r\n\t\t\tif ( data.collisionWidth > outerWidth ) {\r\n\t\t\t\t// element is initially over the left side of within\r\n\t\t\t\tif ( overLeft > 0 && overRight <= 0 ) {\r\n\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;\r\n\t\t\t\t\tposition.left += overLeft - newOverRight;\r\n\t\t\t\t// element is initially over right side of within\r\n\t\t\t\t} else if ( overRight > 0 && overLeft <= 0 ) {\r\n\t\t\t\t\tposition.left = withinOffset;\r\n\t\t\t\t// element is initially over both left and right sides of within\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ( overLeft > overRight ) {\r\n\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tposition.left = withinOffset;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t// too far left -> align with left edge\r\n\t\t\t} else if ( overLeft > 0 ) {\r\n\t\t\t\tposition.left += overLeft;\r\n\t\t\t// too far right -> align with right edge\r\n\t\t\t} else if ( overRight > 0 ) {\r\n\t\t\t\tposition.left -= overRight;\r\n\t\t\t// adjust based on position and margin\r\n\t\t\t} else {\r\n\t\t\t\tposition.left = max( position.left - collisionPosLeft, position.left );\r\n\t\t\t}\r\n\t\t},\r\n\t\ttop: function( position, data ) {\r\n\t\t\tvar within = data.within,\r\n\t\t\t\twithinOffset = within.isWindow ? within.scrollTop : within.offset.top,\r\n\t\t\t\touterHeight = data.within.height,\r\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\r\n\t\t\t\toverTop = withinOffset - collisionPosTop,\r\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\r\n\t\t\t\tnewOverBottom;\r\n\r\n\t\t\t// element is taller than within\r\n\t\t\tif ( data.collisionHeight > outerHeight ) {\r\n\t\t\t\t// element is initially over the top of within\r\n\t\t\t\tif ( overTop > 0 && overBottom <= 0 ) {\r\n\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;\r\n\t\t\t\t\tposition.top += overTop - newOverBottom;\r\n\t\t\t\t// element is initially over bottom of within\r\n\t\t\t\t} else if ( overBottom > 0 && overTop <= 0 ) {\r\n\t\t\t\t\tposition.top = withinOffset;\r\n\t\t\t\t// element is initially over both top and bottom of within\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ( overTop > overBottom ) {\r\n\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tposition.top = withinOffset;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t// too far up -> align with top\r\n\t\t\t} else if ( overTop > 0 ) {\r\n\t\t\t\tposition.top += overTop;\r\n\t\t\t// too far down -> align with bottom edge\r\n\t\t\t} else if ( overBottom > 0 ) {\r\n\t\t\t\tposition.top -= overBottom;\r\n\t\t\t// adjust based on position and margin\r\n\t\t\t} else {\r\n\t\t\t\tposition.top = max( position.top - collisionPosTop, position.top );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tflip: {\r\n\t\tleft: function( position, data ) {\r\n\t\t\tvar within = data.within,\r\n\t\t\t\twithinOffset = within.offset.left + within.scrollLeft,\r\n\t\t\t\touterWidth = within.width,\r\n\t\t\t\toffsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\r\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\r\n\t\t\t\toverLeft = collisionPosLeft - offsetLeft,\r\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\r\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\r\n\t\t\t\t\t-data.elemWidth :\r\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\r\n\t\t\t\t\t\tdata.elemWidth :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\r\n\t\t\t\t\tdata.targetWidth :\r\n\t\t\t\t\tdata.at[ 0 ] === \"right\" ?\r\n\t\t\t\t\t\t-data.targetWidth :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\toffset = -2 * data.offset[ 0 ],\r\n\t\t\t\tnewOverRight,\r\n\t\t\t\tnewOverLeft;\r\n\r\n\t\t\tif ( overLeft < 0 ) {\r\n\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;\r\n\t\t\t\tif ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {\r\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\r\n\t\t\t\t}\r\n\t\t\t} else if ( overRight > 0 ) {\r\n\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;\r\n\t\t\t\tif ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {\r\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\ttop: function( position, data ) {\r\n\t\t\tvar within = data.within,\r\n\t\t\t\twithinOffset = within.offset.top + within.scrollTop,\r\n\t\t\t\touterHeight = within.height,\r\n\t\t\t\toffsetTop = within.isWindow ? within.scrollTop : within.offset.top,\r\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\r\n\t\t\t\toverTop = collisionPosTop - offsetTop,\r\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\r\n\t\t\t\ttop = data.my[ 1 ] === \"top\",\r\n\t\t\t\tmyOffset = top ?\r\n\t\t\t\t\t-data.elemHeight :\r\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\r\n\t\t\t\t\t\tdata.elemHeight :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\r\n\t\t\t\t\tdata.targetHeight :\r\n\t\t\t\t\tdata.at[ 1 ] === \"bottom\" ?\r\n\t\t\t\t\t\t-data.targetHeight :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\toffset = -2 * data.offset[ 1 ],\r\n\t\t\t\tnewOverTop,\r\n\t\t\t\tnewOverBottom;\r\n\t\t\tif ( overTop < 0 ) {\r\n\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;\r\n\t\t\t\tif ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) {\r\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\r\n\t\t\t\t}\r\n\t\t\t} else if ( overBottom > 0 ) {\r\n\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;\r\n\t\t\t\tif ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) {\r\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tflipfit: {\r\n\t\tleft: function() {\r\n\t\t\t$.ui.position.flip.left.apply( this, arguments );\r\n\t\t\t$.ui.position.fit.left.apply( this, arguments );\r\n\t\t},\r\n\t\ttop: function() {\r\n\t\t\t$.ui.position.flip.top.apply( this, arguments );\r\n\t\t\t$.ui.position.fit.top.apply( this, arguments );\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// fraction support test\r\n(function() {\r\n\tvar testElement, testElementParent, testElementStyle, offsetLeft, i,\r\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ],\r\n\t\tdiv = document.createElement( \"div\" );\r\n\r\n\t//Create a \"fake body\" for testing based on method used in jQuery.support\r\n\ttestElement = document.createElement( body ? \"div\" : \"body\" );\r\n\ttestElementStyle = {\r\n\t\tvisibility: \"hidden\",\r\n\t\twidth: 0,\r\n\t\theight: 0,\r\n\t\tborder: 0,\r\n\t\tmargin: 0,\r\n\t\tbackground: \"none\"\r\n\t};\r\n\tif ( body ) {\r\n\t\t$.extend( testElementStyle, {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\tleft: \"-1000px\",\r\n\t\t\ttop: \"-1000px\"\r\n\t\t});\r\n\t}\r\n\tfor ( i in testElementStyle ) {\r\n\t\ttestElement.style[ i ] = testElementStyle[ i ];\r\n\t}\r\n\ttestElement.appendChild( div );\r\n\ttestElementParent = body || document.documentElement;\r\n\ttestElementParent.insertBefore( testElement, testElementParent.firstChild );\r\n\r\n\tdiv.style.cssText = \"position: absolute; left: 10.7432222px;\";\r\n\r\n\toffsetLeft = $( div ).offset().left;\r\n\tsupportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;\r\n\r\n\ttestElement.innerHTML = \"\";\r\n\ttestElementParent.removeChild( testElement );\r\n})();\r\n\r\n})();\r\n\r\nvar position = $.ui.position;\r\n\r\n\r\n/*!\r\n * jQuery UI Menu 1.11.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright 2014 jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n *\r\n * http://api.jqueryui.com/menu/\r\n */\r\n\r\n\r\nvar menu = $.widget( \"ui.menu\", {\r\n\tversion: \"1.11.1\",\r\n\tdefaultElement: \"<ul>\",\r\n\tdelay: 300,\r\n\toptions: {\r\n\t\ticons: {\r\n\t\t\tsubmenu: \"ui-icon-carat-1-e\"\r\n\t\t},\r\n\t\titems: \"> *\",\r\n\t\tmenus: \"ul\",\r\n\t\tposition: {\r\n\t\t\tmy: \"left-1 top\",\r\n\t\t\tat: \"right top\"\r\n\t\t},\r\n\t\trole: \"menu\",\r\n\r\n\t\t// callbacks\r\n\t\tblur: null,\r\n\t\tfocus: null,\r\n\t\tselect: null\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tthis.activeMenu = this.element;\r\n\r\n\t\t// Flag used to prevent firing of the click handler\r\n\t\t// as the event bubbles up through nested menus\r\n\t\tthis.mouseHandled = false;\r\n\t\tthis.element\r\n\t\t\t.uniqueId()\r\n\t\t\t.addClass( \"ui-menu ui-widget ui-widget-content\" )\r\n\t\t\t.toggleClass( \"ui-menu-icons\", !!this.element.find( \".ui-icon\" ).length )\r\n\t\t\t.attr({\r\n\t\t\t\trole: this.options.role,\r\n\t\t\t\ttabIndex: 0\r\n\t\t\t});\r\n\r\n\t\tif ( this.options.disabled ) {\r\n\t\t\tthis.element\r\n\t\t\t\t.addClass( \"ui-state-disabled\" )\r\n\t\t\t\t.attr( \"aria-disabled\", \"true\" );\r\n\t\t}\r\n\r\n\t\tthis._on({\r\n\t\t\t// Prevent focus from sticking to links inside menu after clicking\r\n\t\t\t// them (focus should always stay on UL during navigation).\r\n\t\t\t\"mousedown .ui-menu-item\": function( event ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t},\r\n\t\t\t\"click .ui-menu-item\": function( event ) {\r\n\t\t\t\tvar target = $( event.target );\r\n\t\t\t\tif ( !this.mouseHandled && target.not( \".ui-state-disabled\" ).length ) {\r\n\t\t\t\t\tthis.select( event );\r\n\r\n\t\t\t\t\t// Only set the mouseHandled flag if the event will bubble, see #9469.\r\n\t\t\t\t\tif ( !event.isPropagationStopped() ) {\r\n\t\t\t\t\t\tthis.mouseHandled = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Open submenu on click\r\n\t\t\t\t\tif ( target.has( \".ui-menu\" ).length ) {\r\n\t\t\t\t\t\tthis.expand( event );\r\n\t\t\t\t\t} else if ( !this.element.is( \":focus\" ) && $( this.document[ 0 ].activeElement ).closest( \".ui-menu\" ).length ) {\r\n\r\n\t\t\t\t\t\t// Redirect focus to the menu\r\n\t\t\t\t\t\tthis.element.trigger( \"focus\", [ true ] );\r\n\r\n\t\t\t\t\t\t// If the active item is on the top level, let it stay active.\r\n\t\t\t\t\t\t// Otherwise, blur the active item since it is no longer visible.\r\n\t\t\t\t\t\tif ( this.active && this.active.parents( \".ui-menu\" ).length === 1 ) {\r\n\t\t\t\t\t\t\tclearTimeout( this.timer );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"mouseenter .ui-menu-item\": function( event ) {\r\n\t\t\t\tvar target = $( event.currentTarget );\r\n\t\t\t\t// Remove ui-state-active class from siblings of the newly focused menu item\r\n\t\t\t\t// to avoid a jump caused by adjacent elements both having a class with a border\r\n\t\t\t\ttarget.siblings( \".ui-state-active\" ).removeClass( \"ui-state-active\" );\r\n\t\t\t\tthis.focus( event, target );\r\n\t\t\t},\r\n\t\t\tmouseleave: \"collapseAll\",\r\n\t\t\t\"mouseleave .ui-menu\": \"collapseAll\",\r\n\t\t\tfocus: function( event, keepActiveItem ) {\r\n\t\t\t\t// If there's already an active item, keep it active\r\n\t\t\t\t// If not, activate the first item\r\n\t\t\t\tvar item = this.active || this.element.find( this.options.items ).eq( 0 );\r\n\r\n\t\t\t\tif ( !keepActiveItem ) {\r\n\t\t\t\t\tthis.focus( event, item );\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tblur: function( event ) {\r\n\t\t\t\tthis._delay(function() {\r\n\t\t\t\t\tif ( !$.contains( this.element[0], this.document[0].activeElement ) ) {\r\n\t\t\t\t\t\tthis.collapseAll( event );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tkeydown: \"_keydown\"\r\n\t\t});\r\n\r\n\t\tthis.refresh();\r\n\r\n\t\t// Clicks outside of a menu collapse any open menus\r\n\t\tthis._on( this.document, {\r\n\t\t\tclick: function( event ) {\r\n\t\t\t\tif ( this._closeOnDocumentClick( event ) ) {\r\n\t\t\t\t\tthis.collapseAll( event );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Reset the mouseHandled flag\r\n\t\t\t\tthis.mouseHandled = false;\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_destroy: function() {\r\n\t\t// Destroy (sub)menus\r\n\t\tthis.element\r\n\t\t\t.removeAttr( \"aria-activedescendant\" )\r\n\t\t\t.find( \".ui-menu\" ).addBack()\r\n\t\t\t\t.removeClass( \"ui-menu ui-widget ui-widget-content ui-menu-icons ui-front\" )\r\n\t\t\t\t.removeAttr( \"role\" )\r\n\t\t\t\t.removeAttr( \"tabIndex\" )\r\n\t\t\t\t.removeAttr( \"aria-labelledby\" )\r\n\t\t\t\t.removeAttr( \"aria-expanded\" )\r\n\t\t\t\t.removeAttr( \"aria-hidden\" )\r\n\t\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t\t.removeUniqueId()\r\n\t\t\t\t.show();\r\n\r\n\t\t// Destroy menu items\r\n\t\tthis.element.find( \".ui-menu-item\" )\r\n\t\t\t.removeClass( \"ui-menu-item\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t.removeUniqueId()\r\n\t\t\t.removeClass( \"ui-state-hover\" )\r\n\t\t\t.removeAttr( \"tabIndex\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-haspopup\" )\r\n\t\t\t.children().each( function() {\r\n\t\t\t\tvar elem = $( this );\r\n\t\t\t\tif ( elem.data( \"ui-menu-submenu-carat\" ) ) {\r\n\t\t\t\t\telem.remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t// Destroy menu dividers\r\n\t\tthis.element.find( \".ui-menu-divider\" ).removeClass( \"ui-menu-divider ui-widget-content\" );\r\n\t},\r\n\r\n\t_keydown: function( event ) {\r\n\t\tvar match, prev, character, skip, regex,\r\n\t\t\tpreventDefault = true;\r\n\r\n\t\tfunction escape( value ) {\r\n\t\t\treturn value.replace( /[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\" );\r\n\t\t}\r\n\r\n\t\tswitch ( event.keyCode ) {\r\n\t\tcase $.ui.keyCode.PAGE_UP:\r\n\t\t\tthis.previousPage( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.PAGE_DOWN:\r\n\t\t\tthis.nextPage( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.HOME:\r\n\t\t\tthis._move( \"first\", \"first\", event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.END:\r\n\t\t\tthis._move( \"last\", \"last\", event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.UP:\r\n\t\t\tthis.previous( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.DOWN:\r\n\t\t\tthis.next( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.LEFT:\r\n\t\t\tthis.collapse( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.RIGHT:\r\n\t\t\tif ( this.active && !this.active.is( \".ui-state-disabled\" ) ) {\r\n\t\t\t\tthis.expand( event );\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.ENTER:\r\n\t\tcase $.ui.keyCode.SPACE:\r\n\t\t\tthis._activate( event );\r\n\t\t\tbreak;\r\n\t\tcase $.ui.keyCode.ESCAPE:\r\n\t\t\tthis.collapse( event );\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tpreventDefault = false;\r\n\t\t\tprev = this.previousFilter || \"\";\r\n\t\t\tcharacter = String.fromCharCode( event.keyCode );\r\n\t\t\tskip = false;\r\n\r\n\t\t\tclearTimeout( this.filterTimer );\r\n\r\n\t\t\tif ( character === prev ) {\r\n\t\t\t\tskip = true;\r\n\t\t\t} else {\r\n\t\t\t\tcharacter = prev + character;\r\n\t\t\t}\r\n\r\n\t\t\tregex = new RegExp( \"^\" + escape( character ), \"i\" );\r\n\t\t\tmatch = this.activeMenu.find( this.options.items ).filter(function() {\r\n\t\t\t\treturn regex.test( $( this ).text() );\r\n\t\t\t});\r\n\t\t\tmatch = skip && match.index( this.active.next() ) !== -1 ?\r\n\t\t\t\tthis.active.nextAll( \".ui-menu-item\" ) :\r\n\t\t\t\tmatch;\r\n\r\n\t\t\t// If no matches on the current filter, reset to the last character pressed\r\n\t\t\t// to move down the menu to the first item that starts with that character\r\n\t\t\tif ( !match.length ) {\r\n\t\t\t\tcharacter = String.fromCharCode( event.keyCode );\r\n\t\t\t\tregex = new RegExp( \"^\" + escape( character ), \"i\" );\r\n\t\t\t\tmatch = this.activeMenu.find( this.options.items ).filter(function() {\r\n\t\t\t\t\treturn regex.test( $( this ).text() );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ( match.length ) {\r\n\t\t\t\tthis.focus( event, match );\r\n\t\t\t\tif ( match.length > 1 ) {\r\n\t\t\t\t\tthis.previousFilter = character;\r\n\t\t\t\t\tthis.filterTimer = this._delay(function() {\r\n\t\t\t\t\t\tdelete this.previousFilter;\r\n\t\t\t\t\t}, 1000 );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdelete this.previousFilter;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdelete this.previousFilter;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( preventDefault ) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t},\r\n\r\n\t_activate: function( event ) {\r\n\t\tif ( !this.active.is( \".ui-state-disabled\" ) ) {\r\n\t\t\tif ( this.active.is( \"[aria-haspopup='true']\" ) ) {\r\n\t\t\t\tthis.expand( event );\r\n\t\t\t} else {\r\n\t\t\t\tthis.select( event );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\trefresh: function() {\r\n\t\tvar menus, items,\r\n\t\t\tthat = this,\r\n\t\t\ticon = this.options.icons.submenu,\r\n\t\t\tsubmenus = this.element.find( this.options.menus );\r\n\r\n\t\tthis.element.toggleClass( \"ui-menu-icons\", !!this.element.find( \".ui-icon\" ).length );\r\n\r\n\t\t// Initialize nested menus\r\n\t\tsubmenus.filter( \":not(.ui-menu)\" )\r\n\t\t\t.addClass( \"ui-menu ui-widget ui-widget-content ui-front\" )\r\n\t\t\t.hide()\r\n\t\t\t.attr({\r\n\t\t\t\trole: this.options.role,\r\n\t\t\t\t\"aria-hidden\": \"true\",\r\n\t\t\t\t\"aria-expanded\": \"false\"\r\n\t\t\t})\r\n\t\t\t.each(function() {\r\n\t\t\t\tvar menu = $( this ),\r\n\t\t\t\t\titem = menu.parent(),\r\n\t\t\t\t\tsubmenuCarat = $( \"<span>\" )\r\n\t\t\t\t\t\t.addClass( \"ui-menu-icon ui-icon \" + icon )\r\n\t\t\t\t\t\t.data( \"ui-menu-submenu-carat\", true );\r\n\r\n\t\t\t\titem\r\n\t\t\t\t\t.attr( \"aria-haspopup\", \"true\" )\r\n\t\t\t\t\t.prepend( submenuCarat );\r\n\t\t\t\tmenu.attr( \"aria-labelledby\", item.attr( \"id\" ) );\r\n\t\t\t});\r\n\r\n\t\tmenus = submenus.add( this.element );\r\n\t\titems = menus.find( this.options.items );\r\n\r\n\t\t// Initialize menu-items containing spaces and/or dashes only as dividers\r\n\t\titems.not( \".ui-menu-item\" ).each(function() {\r\n\t\t\tvar item = $( this );\r\n\t\t\tif ( that._isDivider( item ) ) {\r\n\t\t\t\titem.addClass( \"ui-widget-content ui-menu-divider\" );\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Don't refresh list items that are already adapted\r\n\t\titems.not( \".ui-menu-item, .ui-menu-divider\" )\r\n\t\t\t.addClass( \"ui-menu-item\" )\r\n\t\t\t.uniqueId()\r\n\t\t\t.attr({\r\n\t\t\t\ttabIndex: -1,\r\n\t\t\t\trole: this._itemRole()\r\n\t\t\t});\r\n\r\n\t\t// Add aria-disabled attribute to any disabled menu item\r\n\t\titems.filter( \".ui-state-disabled\" ).attr( \"aria-disabled\", \"true\" );\r\n\r\n\t\t// If the active item has been removed, blur the menu\r\n\t\tif ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\r\n\t\t\tthis.blur();\r\n\t\t}\r\n\t},\r\n\r\n\t_itemRole: function() {\r\n\t\treturn {\r\n\t\t\tmenu: \"menuitem\",\r\n\t\t\tlistbox: \"option\"\r\n\t\t}[ this.options.role ];\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tif ( key === \"icons\" ) {\r\n\t\t\tthis.element.find( \".ui-menu-icon\" )\r\n\t\t\t\t.removeClass( this.options.icons.submenu )\r\n\t\t\t\t.addClass( value.submenu );\r\n\t\t}\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.element\r\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value )\r\n\t\t\t\t.attr( \"aria-disabled\", value );\r\n\t\t}\r\n\t\tthis._super( key, value );\r\n\t},\r\n\r\n\tfocus: function( event, item ) {\r\n\t\tvar nested, focused;\r\n\t\tthis.blur( event, event && event.type === \"focus\" );\r\n\r\n\t\tthis._scrollIntoView( item );\r\n\r\n\t\tthis.active = item.first();\r\n\t\tfocused = this.active.addClass( \"ui-state-focus\" ).removeClass( \"ui-state-active\" );\r\n\t\t// Only update aria-activedescendant if there's a role\r\n\t\t// otherwise we assume focus is managed elsewhere\r\n\t\tif ( this.options.role ) {\r\n\t\t\tthis.element.attr( \"aria-activedescendant\", focused.attr( \"id\" ) );\r\n\t\t}\r\n\r\n\t\t// Highlight active parent menu item, if any\r\n\t\tthis.active\r\n\t\t\t.parent()\r\n\t\t\t.closest( \".ui-menu-item\" )\r\n\t\t\t.addClass( \"ui-state-active\" );\r\n\r\n\t\tif ( event && event.type === \"keydown\" ) {\r\n\t\t\tthis._close();\r\n\t\t} else {\r\n\t\t\tthis.timer = this._delay(function() {\r\n\t\t\t\tthis._close();\r\n\t\t\t}, this.delay );\r\n\t\t}\r\n\r\n\t\tnested = item.children( \".ui-menu\" );\r\n\t\tif ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {\r\n\t\t\tthis._startOpening(nested);\r\n\t\t}\r\n\t\tthis.activeMenu = item.parent();\r\n\r\n\t\tthis._trigger( \"focus\", event, { item: item } );\r\n\t},\r\n\r\n\t_scrollIntoView: function( item ) {\r\n\t\tvar borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;\r\n\t\tif ( this._hasScroll() ) {\r\n\t\t\tborderTop = parseFloat( $.css( this.activeMenu[0], \"borderTopWidth\" ) ) || 0;\r\n\t\t\tpaddingTop = parseFloat( $.css( this.activeMenu[0], \"paddingTop\" ) ) || 0;\r\n\t\t\toffset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;\r\n\t\t\tscroll = this.activeMenu.scrollTop();\r\n\t\t\telementHeight = this.activeMenu.height();\r\n\t\t\titemHeight = item.outerHeight();\r\n\r\n\t\t\tif ( offset < 0 ) {\r\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset );\r\n\t\t\t} else if ( offset + itemHeight > elementHeight ) {\r\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tblur: function( event, fromFocus ) {\r\n\t\tif ( !fromFocus ) {\r\n\t\t\tclearTimeout( this.timer );\r\n\t\t}\r\n\r\n\t\tif ( !this.active ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.active.removeClass( \"ui-state-focus\" );\r\n\t\tthis.active = null;\r\n\r\n\t\tthis._trigger( \"blur\", event, { item: this.active } );\r\n\t},\r\n\r\n\t_startOpening: function( submenu ) {\r\n\t\tclearTimeout( this.timer );\r\n\r\n\t\t// Don't open if already open fixes a Firefox bug that caused a .5 pixel\r\n\t\t// shift in the submenu position when mousing over the carat icon\r\n\t\tif ( submenu.attr( \"aria-hidden\" ) !== \"true\" ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.timer = this._delay(function() {\r\n\t\t\tthis._close();\r\n\t\t\tthis._open( submenu );\r\n\t\t}, this.delay );\r\n\t},\r\n\r\n\t_open: function( submenu ) {\r\n\t\tvar position = $.extend({\r\n\t\t\tof: this.active\r\n\t\t}, this.options.position );\r\n\r\n\t\tclearTimeout( this.timer );\r\n\t\tthis.element.find( \".ui-menu\" ).not( submenu.parents( \".ui-menu\" ) )\r\n\t\t\t.hide()\r\n\t\t\t.attr( \"aria-hidden\", \"true\" );\r\n\r\n\t\tsubmenu\r\n\t\t\t.show()\r\n\t\t\t.removeAttr( \"aria-hidden\" )\r\n\t\t\t.attr( \"aria-expanded\", \"true\" )\r\n\t\t\t.position( position );\r\n\t},\r\n\r\n\tcollapseAll: function( event, all ) {\r\n\t\tclearTimeout( this.timer );\r\n\t\tthis.timer = this._delay(function() {\r\n\t\t\t// If we were passed an event, look for the submenu that contains the event\r\n\t\t\tvar currentMenu = all ? this.element :\r\n\t\t\t\t$( event && event.target ).closest( this.element.find( \".ui-menu\" ) );\r\n\r\n\t\t\t// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway\r\n\t\t\tif ( !currentMenu.length ) {\r\n\t\t\t\tcurrentMenu = this.element;\r\n\t\t\t}\r\n\r\n\t\t\tthis._close( currentMenu );\r\n\r\n\t\t\tthis.blur( event );\r\n\t\t\tthis.activeMenu = currentMenu;\r\n\t\t}, this.delay );\r\n\t},\r\n\r\n\t// With no arguments, closes the currently active menu - if nothing is active\r\n\t// it closes all menus. If passed an argument, it will search for menus BELOW\r\n\t_close: function( startMenu ) {\r\n\t\tif ( !startMenu ) {\r\n\t\t\tstartMenu = this.active ? this.active.parent() : this.element;\r\n\t\t}\r\n\r\n\t\tstartMenu\r\n\t\t\t.find( \".ui-menu\" )\r\n\t\t\t\t.hide()\r\n\t\t\t\t.attr( \"aria-hidden\", \"true\" )\r\n\t\t\t\t.attr( \"aria-expanded\", \"false\" )\r\n\t\t\t.end()\r\n\t\t\t.find( \".ui-state-active\" ).not( \".ui-state-focus\" )\r\n\t\t\t\t.removeClass( \"ui-state-active\" );\r\n\t},\r\n\r\n\t_closeOnDocumentClick: function( event ) {\r\n\t\treturn !$( event.target ).closest( \".ui-menu\" ).length;\r\n\t},\r\n\r\n\t_isDivider: function( item ) {\r\n\r\n\t\t// Match hyphen, em dash, en dash\r\n\t\treturn !/[^\\-\\u2014\\u2013\\s]/.test( item.text() );\r\n\t},\r\n\r\n\tcollapse: function( event ) {\r\n\t\tvar newItem = this.active &&\r\n\t\t\tthis.active.parent().closest( \".ui-menu-item\", this.element );\r\n\t\tif ( newItem && newItem.length ) {\r\n\t\t\tthis._close();\r\n\t\t\tthis.focus( event, newItem );\r\n\t\t}\r\n\t},\r\n\r\n\texpand: function( event ) {\r\n\t\tvar newItem = this.active &&\r\n\t\t\tthis.active\r\n\t\t\t\t.children( \".ui-menu \" )\r\n\t\t\t\t.find( this.options.items )\r\n\t\t\t\t.first();\r\n\r\n\t\tif ( newItem && newItem.length ) {\r\n\t\t\tthis._open( newItem.parent() );\r\n\r\n\t\t\t// Delay so Firefox will not hide activedescendant change in expanding submenu from AT\r\n\t\t\tthis._delay(function() {\r\n\t\t\t\tthis.focus( event, newItem );\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tnext: function( event ) {\r\n\t\tthis._move( \"next\", \"first\", event );\r\n\t},\r\n\r\n\tprevious: function( event ) {\r\n\t\tthis._move( \"prev\", \"last\", event );\r\n\t},\r\n\r\n\tisFirstItem: function() {\r\n\t\treturn this.active && !this.active.prevAll( \".ui-menu-item\" ).length;\r\n\t},\r\n\r\n\tisLastItem: function() {\r\n\t\treturn this.active && !this.active.nextAll( \".ui-menu-item\" ).length;\r\n\t},\r\n\r\n\t_move: function( direction, filter, event ) {\r\n\t\tvar next;\r\n\t\tif ( this.active ) {\r\n\t\t\tif ( direction === \"first\" || direction === \"last\" ) {\r\n\t\t\t\tnext = this.active\r\n\t\t\t\t\t[ direction === \"first\" ? \"prevAll\" : \"nextAll\" ]( \".ui-menu-item\" )\r\n\t\t\t\t\t.eq( -1 );\r\n\t\t\t} else {\r\n\t\t\t\tnext = this.active\r\n\t\t\t\t\t[ direction + \"All\" ]( \".ui-menu-item\" )\r\n\t\t\t\t\t.eq( 0 );\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ( !next || !next.length || !this.active ) {\r\n\t\t\tnext = this.activeMenu.find( this.options.items )[ filter ]();\r\n\t\t}\r\n\r\n\t\tthis.focus( event, next );\r\n\t},\r\n\r\n\tnextPage: function( event ) {\r\n\t\tvar item, base, height;\r\n\r\n\t\tif ( !this.active ) {\r\n\t\t\tthis.next( event );\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( this.isLastItem() ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( this._hasScroll() ) {\r\n\t\t\tbase = this.active.offset().top;\r\n\t\t\theight = this.element.height();\r\n\t\t\tthis.active.nextAll( \".ui-menu-item\" ).each(function() {\r\n\t\t\t\titem = $( this );\r\n\t\t\t\treturn item.offset().top - base - height < 0;\r\n\t\t\t});\r\n\r\n\t\t\tthis.focus( event, item );\r\n\t\t} else {\r\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items )\r\n\t\t\t\t[ !this.active ? \"first\" : \"last\" ]() );\r\n\t\t}\r\n\t},\r\n\r\n\tpreviousPage: function( event ) {\r\n\t\tvar item, base, height;\r\n\t\tif ( !this.active ) {\r\n\t\t\tthis.next( event );\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( this.isFirstItem() ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( this._hasScroll() ) {\r\n\t\t\tbase = this.active.offset().top;\r\n\t\t\theight = this.element.height();\r\n\t\t\tthis.active.prevAll( \".ui-menu-item\" ).each(function() {\r\n\t\t\t\titem = $( this );\r\n\t\t\t\treturn item.offset().top - base + height > 0;\r\n\t\t\t});\r\n\r\n\t\t\tthis.focus( event, item );\r\n\t\t} else {\r\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items ).first() );\r\n\t\t}\r\n\t},\r\n\r\n\t_hasScroll: function() {\r\n\t\treturn this.element.outerHeight() < this.element.prop( \"scrollHeight\" );\r\n\t},\r\n\r\n\tselect: function( event ) {\r\n\t\t// TODO: It should never be possible to not have an active item at this\r\n\t\t// point, but the tests don't trigger mouseenter before click.\r\n\t\tthis.active = this.active || $( event.target ).closest( \".ui-menu-item\" );\r\n\t\tvar ui = { item: this.active };\r\n\t\tif ( !this.active.has( \".ui-menu\" ).length ) {\r\n\t\t\tthis.collapseAll( event, true );\r\n\t\t}\r\n\t\tthis._trigger( \"select\", event, ui );\r\n\t}\r\n});\r\n\r\n\t/*!\r\n\t * jQuery UI Slider 1.11.1\r\n\t * http://jqueryui.com\r\n\t *\r\n\t * Copyright 2014 jQuery Foundation and other contributors\r\n\t * Released under the MIT license.\r\n\t * http://jquery.org/license\r\n\t *\r\n\t * http://api.jqueryui.com/slider/\r\n\t */\r\n\r\n\r\nvar slider = $.widget(\"ui.slider\", $.ui.mouse, {\r\n\tversion: \"1.11.1\",\r\n\twidgetEventPrefix: \"slide\",\r\n\r\n\toptions: {\r\n\t\tanimate: false,\r\n\t\tdistance: 0,\r\n\t\tmax: 100,\r\n\t\tmin: 0,\r\n\t\torientation: \"horizontal\",\r\n\t\trange: false,\r\n\t\tstep: 1,\r\n\t\tvalue: 0,\r\n\t\tvalues: null,\r\n\r\n\t\t// callbacks\r\n\t\tchange: null,\r\n\t\tslide: null,\r\n\t\tstart: null,\r\n\t\tstop: null\r\n\t},\r\n\r\n\t// number of pages in a slider\r\n\t// (how many times can you page up/down to go through the whole range)\r\n\tnumPages: 5,\r\n\r\n\t_create: function () {\r\n\t\tthis._keySliding = false;\r\n\t\tthis._mouseSliding = false;\r\n\t\tthis._animateOff = true;\r\n\t\tthis._handleIndex = null;\r\n\t\tthis._detectOrientation();\r\n\t\tthis._mouseInit();\r\n\r\n\t\tthis.element\r\n\t\t\t.addClass(\"ui-slider\" +\r\n\t\t\t\t\" ui-slider-\" + this.orientation +\r\n\t\t\t\t\" ui-widget\" +\r\n\t\t\t\t\" ui-widget-content\" +\r\n\t\t\t\t\" ui-corner-all\");\r\n\r\n\t\tthis._refresh();\r\n\t\tthis._setOption(\"disabled\", this.options.disabled);\r\n\r\n\t\tthis._animateOff = false;\r\n\t},\r\n\r\n\t_refresh: function () {\r\n\t\tthis._createRange();\r\n\t\tthis._createHandles();\r\n\t\tthis._setupEvents();\r\n\t\tthis._refreshValue();\r\n\t},\r\n\r\n\t_createHandles: function () {\r\n\t\tvar i, handleCount,\r\n\t\t\toptions = this.options,\r\n\t\t\texistingHandles = this.element.find(\".ui-slider-handle\").addClass(\"ui-state-default ui-corner-all\"),\r\n\t\t\thandle = \"<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>\",\r\n\t\t\thandles = [];\r\n\r\n\t\thandleCount = (options.values && options.values.length) || 1;\r\n\r\n\t\tif (existingHandles.length > handleCount) {\r\n\t\t\texistingHandles.slice(handleCount).remove();\r\n\t\t\texistingHandles = existingHandles.slice(0, handleCount);\r\n\t\t}\r\n\r\n\t\tfor (i = existingHandles.length; i < handleCount; i++) {\r\n\t\t\thandles.push(handle);\r\n\t\t}\r\n\r\n\t\tthis.handles = existingHandles.add($(handles.join(\"\")).appendTo(this.element));\r\n\r\n\t\tthis.handle = this.handles.eq(0);\r\n\r\n\t\tthis.handles.each(function (i) {\r\n\t\t\t$(this).data(\"ui-slider-handle-index\", i);\r\n\t\t});\r\n\t},\r\n\r\n\t_createRange: function () {\r\n\t\tvar options = this.options,\r\n\t\t\tclasses = \"\";\r\n\r\n\t\tif (options.range) {\r\n\t\t\tif (options.range === true) {\r\n\t\t\t\tif (!options.values) {\r\n\t\t\t\t\toptions.values = [this._valueMin(), this._valueMin()];\r\n\t\t\t\t} else if (options.values.length && options.values.length !== 2) {\r\n\t\t\t\t\toptions.values = [options.values[0], options.values[0]];\r\n\t\t\t\t} else if ($.isArray(options.values)) {\r\n\t\t\t\t\toptions.values = options.values.slice(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.range || !this.range.length) {\r\n\t\t\t\tthis.range = $(\"<div></div>\")\r\n\t\t\t\t\t.appendTo(this.element);\r\n\r\n\t\t\t\tclasses = \"ui-slider-range\" +\r\n\t\t\t\t// note: this isn't the most fittingly semantic framework class for this element,\r\n\t\t\t\t// but worked best visually with a variety of themes\r\n\t\t\t\t\" ui-widget-header ui-corner-all\";\r\n\t\t\t} else {\r\n\t\t\t\tthis.range.removeClass(\"ui-slider-range-min ui-slider-range-max\")\r\n\t\t\t\t\t// Handle range switching from true to min/max\r\n\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\"left\": \"\",\r\n\t\t\t\t\t\t\"bottom\": \"\"\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.range.addClass(classes +\r\n\t\t\t\t((options.range === \"min\" || options.range === \"max\") ? \" ui-slider-range-\" + options.range : \"\"));\r\n\t\t} else {\r\n\t\t\tif (this.range) {\r\n\t\t\t\tthis.range.remove();\r\n\t\t\t}\r\n\t\t\tthis.range = null;\r\n\t\t}\r\n\t},\r\n\r\n\t_setupEvents: function () {\r\n\t\tthis._off(this.handles);\r\n\t\tthis._on(this.handles, this._handleEvents);\r\n\t\tthis._hoverable(this.handles);\r\n\t\tthis._focusable(this.handles);\r\n\t},\r\n\r\n\t_destroy: function () {\r\n\t\tthis.handles.remove();\r\n\t\tif (this.range) {\r\n\t\t\tthis.range.remove();\r\n\t\t}\r\n\r\n\t\tthis.element\r\n\t\t\t.removeClass(\"ui-slider\" +\r\n\t\t\t\t\" ui-slider-horizontal\" +\r\n\t\t\t\t\" ui-slider-vertical\" +\r\n\t\t\t\t\" ui-widget\" +\r\n\t\t\t\t\" ui-widget-content\" +\r\n\t\t\t\t\" ui-corner-all\");\r\n\r\n\t\tthis._mouseDestroy();\r\n\t},\r\n\r\n\t_mouseCapture: function (event) {\r\n\t\tvar position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,\r\n\t\t\tthat = this,\r\n\t\t\to = this.options;\r\n\r\n\t\tif (o.disabled) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.elementSize = {\r\n\t\t\twidth: this.element.outerWidth(),\r\n\t\t\theight: this.element.outerHeight()\r\n\t\t};\r\n\t\tthis.elementOffset = this.element.offset();\r\n\r\n\t\tposition = { x: event.pageX, y: event.pageY };\r\n\t\tnormValue = this._normValueFromMouse(position);\r\n\t\tdistance = this._valueMax() - this._valueMin() + 1;\r\n\t\tthis.handles.each(function (i) {\r\n\t\t\tvar thisDistance = Math.abs(normValue - that.values(i));\r\n\t\t\tif ((distance > thisDistance) ||\r\n\t\t\t\t(distance === thisDistance &&\r\n\t\t\t\t\t(i === that._lastChangedValue || that.values(i) === o.min))) {\r\n\t\t\t\tdistance = thisDistance;\r\n\t\t\t\tclosestHandle = $(this);\r\n\t\t\t\tindex = i;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tallowed = this._start(event, index);\r\n\t\tif (allowed === false) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis._mouseSliding = true;\r\n\r\n\t\tthis._handleIndex = index;\r\n\r\n\t\tclosestHandle\r\n\t\t\t.addClass(\"ui-state-active\")\r\n\t\t\t.focus();\r\n\r\n\t\toffset = closestHandle.offset();\r\n\t\tmouseOverHandle = !$(event.target).parents().addBack().is(\".ui-slider-handle\");\r\n\t\tthis._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {\r\n\t\t\tleft: event.pageX - offset.left - (closestHandle.width() / 2),\r\n\t\t\ttop: event.pageY - offset.top -\r\n\t\t\t\t(closestHandle.height() / 2) -\r\n\t\t\t\t(parseInt(closestHandle.css(\"borderTopWidth\"), 10) || 0) -\r\n\t\t\t\t(parseInt(closestHandle.css(\"borderBottomWidth\"), 10) || 0) +\r\n\t\t\t\t(parseInt(closestHandle.css(\"marginTop\"), 10) || 0)\r\n\t\t};\r\n\r\n\t\tif (!this.handles.hasClass(\"ui-state-hover\")) {\r\n\t\t\tthis._slide(event, index, normValue);\r\n\t\t}\r\n\t\tthis._animateOff = true;\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseStart: function () {\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseDrag: function (event) {\r\n\t\tvar position = { x: event.pageX, y: event.pageY },\r\n\t\t\tnormValue = this._normValueFromMouse(position);\r\n\r\n\t\tthis._slide(event, this._handleIndex, normValue);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseStop: function (event) {\r\n\t\tthis.handles.removeClass(\"ui-state-active\");\r\n\t\tthis._mouseSliding = false;\r\n\r\n\t\tthis._stop(event, this._handleIndex);\r\n\t\tthis._change(event, this._handleIndex);\r\n\r\n\t\tthis._handleIndex = null;\r\n\t\tthis._clickOffset = null;\r\n\t\tthis._animateOff = false;\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_detectOrientation: function () {\r\n\t\tthis.orientation = (this.options.orientation === \"vertical\") ? \"vertical\" : \"horizontal\";\r\n\t},\r\n\r\n\t_normValueFromMouse: function (position) {\r\n\t\tvar pixelTotal,\r\n\t\t\tpixelMouse,\r\n\t\t\tpercentMouse,\r\n\t\t\tvalueTotal,\r\n\t\t\tvalueMouse;\r\n\r\n\t\tif (this.orientation === \"horizontal\") {\r\n\t\t\tpixelTotal = this.elementSize.width;\r\n\t\t\tpixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);\r\n\t\t} else {\r\n\t\t\tpixelTotal = this.elementSize.height;\r\n\t\t\tpixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);\r\n\t\t}\r\n\r\n\t\tpercentMouse = (pixelMouse / pixelTotal);\r\n\t\tif (percentMouse > 1) {\r\n\t\t\tpercentMouse = 1;\r\n\t\t}\r\n\t\tif (percentMouse < 0) {\r\n\t\t\tpercentMouse = 0;\r\n\t\t}\r\n\t\tif (this.orientation === \"vertical\") {\r\n\t\t\tpercentMouse = 1 - percentMouse;\r\n\t\t}\r\n\r\n\t\tvalueTotal = this._valueMax() - this._valueMin();\r\n\t\tvalueMouse = this._valueMin() + percentMouse * valueTotal;\r\n\r\n\t\treturn this._trimAlignValue(valueMouse);\r\n\t},\r\n\r\n\t_start: function (event, index) {\r\n\t\tvar uiHash = {\r\n\t\t\thandle: this.handles[index],\r\n\t\t\tvalue: this.value()\r\n\t\t};\r\n\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\tuiHash.value = this.values(index);\r\n\t\t\tuiHash.values = this.values();\r\n\t\t}\r\n\t\treturn this._trigger(\"start\", event, uiHash);\r\n\t},\r\n\r\n\t_slide: function (event, index, newVal) {\r\n\t\tvar otherVal,\r\n\t\t\tnewValues,\r\n\t\t\tallowed;\r\n\r\n\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\totherVal = this.values(index ? 0 : 1);\r\n\r\n\t\t\tif ((this.options.values.length === 2 && this.options.range === true) &&\r\n\t\t\t\t\t((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))\r\n\t\t\t\t) {\r\n\t\t\t\tnewVal = otherVal;\r\n\t\t\t}\r\n\r\n\t\t\tif (newVal !== this.values(index)) {\r\n\t\t\t\tnewValues = this.values();\r\n\t\t\t\tnewValues[index] = newVal;\r\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\r\n\t\t\t\tallowed = this._trigger(\"slide\", event, {\r\n\t\t\t\t\thandle: this.handles[index],\r\n\t\t\t\t\tvalue: newVal,\r\n\t\t\t\t\tvalues: newValues\r\n\t\t\t\t});\r\n\t\t\t\totherVal = this.values(index ? 0 : 1);\r\n\t\t\t\tif (allowed !== false) {\r\n\t\t\t\t\tthis.values(index, newVal);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (newVal !== this.value()) {\r\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\r\n\t\t\t\tallowed = this._trigger(\"slide\", event, {\r\n\t\t\t\t\thandle: this.handles[index],\r\n\t\t\t\t\tvalue: newVal\r\n\t\t\t\t});\r\n\t\t\t\tif (allowed !== false) {\r\n\t\t\t\t\tthis.value(newVal);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_stop: function (event, index) {\r\n\t\tvar uiHash = {\r\n\t\t\thandle: this.handles[index],\r\n\t\t\tvalue: this.value()\r\n\t\t};\r\n\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\tuiHash.value = this.values(index);\r\n\t\t\tuiHash.values = this.values();\r\n\t\t}\r\n\r\n\t\tthis._trigger(\"stop\", event, uiHash);\r\n\t},\r\n\r\n\t_change: function (event, index) {\r\n\t\tif (!this._keySliding && !this._mouseSliding) {\r\n\t\t\tvar uiHash = {\r\n\t\t\t\thandle: this.handles[index],\r\n\t\t\t\tvalue: this.value()\r\n\t\t\t};\r\n\t\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\t\tuiHash.value = this.values(index);\r\n\t\t\t\tuiHash.values = this.values();\r\n\t\t\t}\r\n\r\n\t\t\t//store the last changed value index for reference when handles overlap\r\n\t\t\tthis._lastChangedValue = index;\r\n\r\n\t\t\tthis._trigger(\"change\", event, uiHash);\r\n\t\t}\r\n\t},\r\n\r\n\tvalue: function (newValue) {\r\n\t\tif (arguments.length) {\r\n\t\t\tthis.options.value = this._trimAlignValue(newValue);\r\n\t\t\tthis._refreshValue();\r\n\t\t\tthis._change(null, 0);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this._value();\r\n\t},\r\n\r\n\tvalues: function (index, newValue) {\r\n\t\tvar vals,\r\n\t\t\tnewValues,\r\n\t\t\ti;\r\n\r\n\t\tif (arguments.length > 1) {\r\n\t\t\tthis.options.values[index] = this._trimAlignValue(newValue);\r\n\t\t\tthis._refreshValue();\r\n\t\t\tthis._change(null, index);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (arguments.length) {\r\n\t\t\tif ($.isArray(arguments[0])) {\r\n\t\t\t\tvals = this.options.values;\r\n\t\t\t\tnewValues = arguments[0];\r\n\t\t\t\tfor (i = 0; i < vals.length; i += 1) {\r\n\t\t\t\t\tvals[i] = this._trimAlignValue(newValues[i]);\r\n\t\t\t\t\tthis._change(null, i);\r\n\t\t\t\t}\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t} else {\r\n\t\t\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\t\t\treturn this._values(index);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.value();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn this._values();\r\n\t\t}\r\n\t},\r\n\r\n\t_setOption: function (key, value) {\r\n\t\tvar i,\r\n\t\t\tvalsLength = 0;\r\n\r\n\t\tif (key === \"range\" && this.options.range === true) {\r\n\t\t\tif (value === \"min\") {\r\n\t\t\t\tthis.options.value = this._values(0);\r\n\t\t\t\tthis.options.values = null;\r\n\t\t\t} else if (value === \"max\") {\r\n\t\t\t\tthis.options.value = this._values(this.options.values.length - 1);\r\n\t\t\t\tthis.options.values = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ($.isArray(this.options.values)) {\r\n\t\t\tvalsLength = this.options.values.length;\r\n\t\t}\r\n\r\n\t\tif (key === \"disabled\") {\r\n\t\t\tthis.element.toggleClass(\"ui-state-disabled\", !!value);\r\n\t\t}\r\n\r\n\t\tthis._super(key, value);\r\n\r\n\t\tswitch (key) {\r\n\t\t\tcase \"orientation\":\r\n\t\t\t\tthis._detectOrientation();\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.removeClass(\"ui-slider-horizontal ui-slider-vertical\")\r\n\t\t\t\t\t.addClass(\"ui-slider-\" + this.orientation);\r\n\t\t\t\tthis._refreshValue();\r\n\r\n\t\t\t\t// Reset positioning from previous orientation\r\n\t\t\t\tthis.handles.css(value === \"horizontal\" ? \"bottom\" : \"left\", \"\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"value\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tthis._change(null, 0);\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"values\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tfor (i = 0; i < valsLength; i += 1) {\r\n\t\t\t\t\tthis._change(null, i);\r\n\t\t\t\t}\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"min\":\r\n\t\t\tcase \"max\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"range\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refresh();\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\r\n\t//internal value getter\r\n\t// _value() returns value trimmed by min and max, aligned by step\r\n\t_value: function () {\r\n\t\tvar val = this.options.value;\r\n\t\tval = this._trimAlignValue(val);\r\n\r\n\t\treturn val;\r\n\t},\r\n\r\n\t//internal values getter\r\n\t// _values() returns array of values trimmed by min and max, aligned by step\r\n\t// _values( index ) returns single value trimmed by min and max, aligned by step\r\n\t_values: function (index) {\r\n\t\tvar val,\r\n\t\t\tvals,\r\n\t\t\ti;\r\n\r\n\t\tif (arguments.length) {\r\n\t\t\tval = this.options.values[index];\r\n\t\t\tval = this._trimAlignValue(val);\r\n\r\n\t\t\treturn val;\r\n\t\t} else if (this.options.values && this.options.values.length) {\r\n\t\t\t// .slice() creates a copy of the array\r\n\t\t\t// this copy gets trimmed by min and max and then returned\r\n\t\t\tvals = this.options.values.slice();\r\n\t\t\tfor (i = 0; i < vals.length; i += 1) {\r\n\t\t\t\tvals[i] = this._trimAlignValue(vals[i]);\r\n\t\t\t}\r\n\r\n\t\t\treturn vals;\r\n\t\t} else {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t},\r\n\r\n\t// returns the step-aligned value that val is closest to, between (inclusive) min and max\r\n\t_trimAlignValue: function (val) {\r\n\t\tif (val <= this._valueMin()) {\r\n\t\t\treturn this._valueMin();\r\n\t\t}\r\n\t\tif (val >= this._valueMax()) {\r\n\t\t\treturn this._valueMax();\r\n\t\t}\r\n\t\tvar step = (this.options.step > 0) ? this.options.step : 1,\r\n\t\t\tvalModStep = (val - this._valueMin()) % step,\r\n\t\t\talignValue = val - valModStep;\r\n\r\n\t\tif (Math.abs(valModStep) * 2 >= step) {\r\n\t\t\talignValue += (valModStep > 0) ? step : (-step);\r\n\t\t}\r\n\r\n\t\t// Since JavaScript has problems with large floats, round\r\n\t\t// the final value to 5 digits after the decimal point (see #4124)\r\n\t\treturn parseFloat(alignValue.toFixed(5));\r\n\t},\r\n\r\n\t_valueMin: function () {\r\n\t\treturn this.options.min;\r\n\t},\r\n\r\n\t_valueMax: function () {\r\n\t\treturn this.options.max;\r\n\t},\r\n\r\n\t_refreshValue: function () {\r\n\t\tvar lastValPercent, valPercent, value, valueMin, valueMax,\r\n\t\t\toRange = this.options.range,\r\n\t\t\to = this.options,\r\n\t\t\tthat = this,\r\n\t\t\tanimate = (!this._animateOff) ? o.animate : false,\r\n\t\t\t_set = {};\r\n\r\n\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\tthis.handles.each(function (i) {\r\n\t\t\t\tvalPercent = (that.values(i) - that._valueMin()) / (that._valueMax() - that._valueMin()) * 100;\r\n\t\t\t\t_set[that.orientation === \"horizontal\" ? \"left\" : \"bottom\"] = valPercent + \"%\";\r\n\t\t\t\t$(this).stop(1, 1)[animate ? \"animate\" : \"css\"](_set, o.animate);\r\n\t\t\t\tif (that.options.range === true) {\r\n\t\t\t\t\tif (that.orientation === \"horizontal\") {\r\n\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\tthat.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ left: valPercent + \"%\" }, o.animate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (i === 1) {\r\n\t\t\t\t\t\t\tthat.range[animate ? \"animate\" : \"css\"]({ width: (valPercent - lastValPercent) + \"%\" }, { queue: false, duration: o.animate });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\tthat.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ bottom: (valPercent) + \"%\" }, o.animate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (i === 1) {\r\n\t\t\t\t\t\t\tthat.range[animate ? \"animate\" : \"css\"]({ height: (valPercent - lastValPercent) + \"%\" }, { queue: false, duration: o.animate });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlastValPercent = valPercent;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvalue = this.value();\r\n\t\t\tvalueMin = this._valueMin();\r\n\t\t\tvalueMax = this._valueMax();\r\n\t\t\tvalPercent = (valueMax !== valueMin) ?\r\n\t\t\t\t\t(value - valueMin) / (valueMax - valueMin) * 100 :\r\n\t\t\t\t\t0;\r\n\t\t\t_set[this.orientation === \"horizontal\" ? \"left\" : \"bottom\"] = valPercent + \"%\";\r\n\t\t\tthis.handle.stop(1, 1)[animate ? \"animate\" : \"css\"](_set, o.animate);\r\n\r\n\t\t\tif (oRange === \"min\" && this.orientation === \"horizontal\") {\r\n\t\t\t\tthis.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ width: valPercent + \"%\" }, o.animate);\r\n\t\t\t}\r\n\t\t\tif (oRange === \"max\" && this.orientation === \"horizontal\") {\r\n\t\t\t\tthis.range[animate ? \"animate\" : \"css\"]({ width: (100 - valPercent) + \"%\" }, { queue: false, duration: o.animate });\r\n\t\t\t}\r\n\t\t\tif (oRange === \"min\" && this.orientation === \"vertical\") {\r\n\t\t\t\tthis.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ height: valPercent + \"%\" }, o.animate);\r\n\t\t\t}\r\n\t\t\tif (oRange === \"max\" && this.orientation === \"vertical\") {\r\n\t\t\t\tthis.range[animate ? \"animate\" : \"css\"]({ height: (100 - valPercent) + \"%\" }, { queue: false, duration: o.animate });\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_handleEvents: {\r\n\t\tkeydown: function (event) {\r\n\t\t\tvar allowed, curVal, newVal, step,\r\n\t\t\t\tindex = $(event.target).data(\"ui-slider-handle-index\");\r\n\r\n\t\t\tswitch (event.keyCode) {\r\n\t\t\t\tcase $.ui.keyCode.HOME:\r\n\t\t\t\tcase $.ui.keyCode.END:\r\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\r\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\r\n\t\t\t\tcase $.ui.keyCode.UP:\r\n\t\t\t\tcase $.ui.keyCode.RIGHT:\r\n\t\t\t\tcase $.ui.keyCode.DOWN:\r\n\t\t\t\tcase $.ui.keyCode.LEFT:\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tif (!this._keySliding) {\r\n\t\t\t\t\t\tthis._keySliding = true;\r\n\t\t\t\t\t\t$(event.target).addClass(\"ui-state-active\");\r\n\t\t\t\t\t\tallowed = this._start(event, index);\r\n\t\t\t\t\t\tif (allowed === false) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tstep = this.options.step;\r\n\t\t\tif (this.options.values && this.options.values.length) {\r\n\t\t\t\tcurVal = newVal = this.values(index);\r\n\t\t\t} else {\r\n\t\t\t\tcurVal = newVal = this.value();\r\n\t\t\t}\r\n\r\n\t\t\tswitch (event.keyCode) {\r\n\t\t\t\tcase $.ui.keyCode.HOME:\r\n\t\t\t\t\tnewVal = this._valueMin();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase $.ui.keyCode.END:\r\n\t\t\t\t\tnewVal = this._valueMax();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\r\n\t\t\t\t\tnewVal = this._trimAlignValue(\r\n\t\t\t\t\t\tcurVal + ((this._valueMax() - this._valueMin()) / this.numPages)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\r\n\t\t\t\t\tnewVal = this._trimAlignValue(\r\n\t\t\t\t\t\tcurVal - ((this._valueMax() - this._valueMin()) / this.numPages));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase $.ui.keyCode.UP:\r\n\t\t\t\tcase $.ui.keyCode.RIGHT:\r\n\t\t\t\t\tif (curVal === this._valueMax()) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewVal = this._trimAlignValue(curVal + step);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase $.ui.keyCode.DOWN:\r\n\t\t\t\tcase $.ui.keyCode.LEFT:\r\n\t\t\t\t\tif (curVal === this._valueMin()) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewVal = this._trimAlignValue(curVal - step);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tthis._slide(event, index, newVal);\r\n\t\t},\r\n\t\tkeyup: function (event) {\r\n\t\t\tvar index = $(event.target).data(\"ui-slider-handle-index\");\r\n\r\n\t\t\tif (this._keySliding) {\r\n\t\t\t\tthis._keySliding = false;\r\n\t\t\t\tthis._stop(event, index);\r\n\t\t\t\tthis._change(event, index);\r\n\t\t\t\t$(event.target).removeClass(\"ui-state-active\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\n}));"],"sourceRoot":"../.."}