{"version":3,"file":"jquery-ui.min.js","sources":["Feature/Legacy/website/Contents/jQuery/jquery-ui.js"],"sourcesContent":["/*! jQuery UI - v1.11.2 - 2014-10-16\r\n* http://jqueryui.com\r\n* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js\r\n* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */\r\n\r\n(function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine([ \"jquery\" ], factory );\r\n\t} else {\r\n\r\n\t\t// Browser globals\r\n\t\tfactory( jQuery );\r\n\t}\r\n}(function( $ ) {\r\n/*!\r\n * jQuery UI Core 1.11.2\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\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.2\",\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 ( !$( \"\" ).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 ( $( \"\" ).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//
\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.2\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: \"
\",\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\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.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._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 + \" \" ) +\r\n\t\t\tthis.eventNamespace;\r\n\t\telement.unbind( eventName ).undelegate( eventName );\r\n\r\n\t\t// Clear the stack to avoid memory leaks (#10056)\r\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\r\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\r\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\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\r\n/*!\r\n * jQuery UI Mouse 1.11.2\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/mouse/\r\n */\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.2\",\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\tthis._mouseMoved = false;\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// Only check for mouseups outside the document if you've moved inside the document\r\n\t\t// at least once. This prevents the firing of mouseup in the case of IE<9, which will\r\n\t\t// fire a mousemove event if content is placed under the cursor. See #7778\r\n\t\t// Support: IE <9\r\n\t\tif ( this._mouseMoved ) {\r\n\t\t\t// IE mouseup check - mouseup happened when mouse was out of window\r\n\t\t\tif ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {\r\n\t\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\t} else if ( !event.which ) {\r\n\t\t\t\treturn this._mouseUp( event );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( event.which || event.button ) {\r\n\t\t\tthis._mouseMoved = true;\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.2\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 = $( \"
\" ),\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 Accordion 1.11.2\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/accordion/\r\n */\r\n\r\n\r\nvar accordion = $.widget( \"ui.accordion\", {\r\n\tversion: \"1.11.2\",\r\n\toptions: {\r\n\t\tactive: 0,\r\n\t\tanimate: {},\r\n\t\tcollapsible: false,\r\n\t\tevent: \"click\",\r\n\t\theader: \"> li > :first-child,> :not(li):even\",\r\n\t\theightStyle: \"auto\",\r\n\t\ticons: {\r\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\r\n\t\t\theader: \"ui-icon-triangle-1-e\"\r\n\t\t},\r\n\r\n\t\t// callbacks\r\n\t\tactivate: null,\r\n\t\tbeforeActivate: null\r\n\t},\r\n\r\n\thideProps: {\r\n\t\tborderTopWidth: \"hide\",\r\n\t\tborderBottomWidth: \"hide\",\r\n\t\tpaddingTop: \"hide\",\r\n\t\tpaddingBottom: \"hide\",\r\n\t\theight: \"hide\"\r\n\t},\r\n\r\n\tshowProps: {\r\n\t\tborderTopWidth: \"show\",\r\n\t\tborderBottomWidth: \"show\",\r\n\t\tpaddingTop: \"show\",\r\n\t\tpaddingBottom: \"show\",\r\n\t\theight: \"show\"\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tvar options = this.options;\r\n\t\tthis.prevShow = this.prevHide = $();\r\n\t\tthis.element.addClass( \"ui-accordion ui-widget ui-helper-reset\" )\r\n\t\t\t// ARIA\r\n\t\t\t.attr( \"role\", \"tablist\" );\r\n\r\n\t\t// don't allow collapsible: false and active: false / null\r\n\t\tif ( !options.collapsible && (options.active === false || options.active == null) ) {\r\n\t\t\toptions.active = 0;\r\n\t\t}\r\n\r\n\t\tthis._processPanels();\r\n\t\t// handle negative values\r\n\t\tif ( options.active < 0 ) {\r\n\t\t\toptions.active += this.headers.length;\r\n\t\t}\r\n\t\tthis._refresh();\r\n\t},\r\n\r\n\t_getCreateEventData: function() {\r\n\t\treturn {\r\n\t\t\theader: this.active,\r\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\r\n\t\t};\r\n\t},\r\n\r\n\t_createIcons: function() {\r\n\t\tvar icons = this.options.icons;\r\n\t\tif ( icons ) {\r\n\t\t\t$( \"\" )\r\n\t\t\t\t.addClass( \"ui-accordion-header-icon ui-icon \" + icons.header )\r\n\t\t\t\t.prependTo( this.headers );\r\n\t\t\tthis.active.children( \".ui-accordion-header-icon\" )\r\n\t\t\t\t.removeClass( icons.header )\r\n\t\t\t\t.addClass( icons.activeHeader );\r\n\t\t\tthis.headers.addClass( \"ui-accordion-icons\" );\r\n\t\t}\r\n\t},\r\n\r\n\t_destroyIcons: function() {\r\n\t\tthis.headers\r\n\t\t\t.removeClass( \"ui-accordion-icons\" )\r\n\t\t\t.children( \".ui-accordion-header-icon\" )\r\n\t\t\t\t.remove();\r\n\t},\r\n\r\n\t_destroy: function() {\r\n\t\tvar contents;\r\n\r\n\t\t// clean up main element\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-accordion ui-widget ui-helper-reset\" )\r\n\t\t\t.removeAttr( \"role\" );\r\n\r\n\t\t// clean up headers\r\n\t\tthis.headers\r\n\t\t\t.removeClass( \"ui-accordion-header ui-accordion-header-active ui-state-default \" +\r\n\t\t\t\t\"ui-corner-all ui-state-active ui-state-disabled ui-corner-top\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-expanded\" )\r\n\t\t\t.removeAttr( \"aria-selected\" )\r\n\t\t\t.removeAttr( \"aria-controls\" )\r\n\t\t\t.removeAttr( \"tabIndex\" )\r\n\t\t\t.removeUniqueId();\r\n\r\n\t\tthis._destroyIcons();\r\n\r\n\t\t// clean up content panels\r\n\t\tcontents = this.headers.next()\r\n\t\t\t.removeClass( \"ui-helper-reset ui-widget-content ui-corner-bottom \" +\r\n\t\t\t\t\"ui-accordion-content ui-accordion-content-active ui-state-disabled\" )\r\n\t\t\t.css( \"display\", \"\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-hidden\" )\r\n\t\t\t.removeAttr( \"aria-labelledby\" )\r\n\t\t\t.removeUniqueId();\r\n\r\n\t\tif ( this.options.heightStyle !== \"content\" ) {\r\n\t\t\tcontents.css( \"height\", \"\" );\r\n\t\t}\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tif ( key === \"active\" ) {\r\n\t\t\t// _activate() will handle invalid values and update this.options\r\n\t\t\tthis._activate( value );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( key === \"event\" ) {\r\n\t\t\tif ( this.options.event ) {\r\n\t\t\t\tthis._off( this.headers, this.options.event );\r\n\t\t\t}\r\n\t\t\tthis._setupEvents( value );\r\n\t\t}\r\n\r\n\t\tthis._super( key, value );\r\n\r\n\t\t// setting collapsible: false while collapsed; open first panel\r\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\r\n\t\t\tthis._activate( 0 );\r\n\t\t}\r\n\r\n\t\tif ( key === \"icons\" ) {\r\n\t\t\tthis._destroyIcons();\r\n\t\t\tif ( value ) {\r\n\t\t\t\tthis._createIcons();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// #5332 - opacity doesn't cascade to positioned elements in IE\r\n\t\t// so we need to add the disabled class to the headers and panels\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\tthis.headers.add( this.headers.next() )\r\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value );\r\n\t\t}\r\n\t},\r\n\r\n\t_keydown: function( event ) {\r\n\t\tif ( event.altKey || event.ctrlKey ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar keyCode = $.ui.keyCode,\r\n\t\t\tlength = this.headers.length,\r\n\t\t\tcurrentIndex = this.headers.index( event.target ),\r\n\t\t\ttoFocus = false;\r\n\r\n\t\tswitch ( event.keyCode ) {\r\n\t\t\tcase keyCode.RIGHT:\r\n\t\t\tcase keyCode.DOWN:\r\n\t\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.LEFT:\r\n\t\t\tcase keyCode.UP:\r\n\t\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.SPACE:\r\n\t\t\tcase keyCode.ENTER:\r\n\t\t\t\tthis._eventHandler( event );\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.HOME:\r\n\t\t\t\ttoFocus = this.headers[ 0 ];\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.END:\r\n\t\t\t\ttoFocus = this.headers[ length - 1 ];\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif ( toFocus ) {\r\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\r\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\r\n\t\t\ttoFocus.focus();\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t},\r\n\r\n\t_panelKeyDown: function( event ) {\r\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\r\n\t\t\t$( event.currentTarget ).prev().focus();\r\n\t\t}\r\n\t},\r\n\r\n\trefresh: function() {\r\n\t\tvar options = this.options;\r\n\t\tthis._processPanels();\r\n\r\n\t\t// was collapsed or no panel\r\n\t\tif ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {\r\n\t\t\toptions.active = false;\r\n\t\t\tthis.active = $();\r\n\t\t// active false only when collapsible is true\r\n\t\t} else if ( options.active === false ) {\r\n\t\t\tthis._activate( 0 );\r\n\t\t// was active, but active panel is gone\r\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\r\n\t\t\t// all remaining panel are disabled\r\n\t\t\tif ( this.headers.length === this.headers.find(\".ui-state-disabled\").length ) {\r\n\t\t\t\toptions.active = false;\r\n\t\t\t\tthis.active = $();\r\n\t\t\t// activate previous panel\r\n\t\t\t} else {\r\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\r\n\t\t\t}\r\n\t\t// was active, active panel still exists\r\n\t\t} else {\r\n\t\t\t// make sure active index is correct\r\n\t\t\toptions.active = this.headers.index( this.active );\r\n\t\t}\r\n\r\n\t\tthis._destroyIcons();\r\n\r\n\t\tthis._refresh();\r\n\t},\r\n\r\n\t_processPanels: function() {\r\n\t\tvar prevHeaders = this.headers,\r\n\t\t\tprevPanels = this.panels;\r\n\r\n\t\tthis.headers = this.element.find( this.options.header )\r\n\t\t\t.addClass( \"ui-accordion-header ui-state-default ui-corner-all\" );\r\n\r\n\t\tthis.panels = this.headers.next()\r\n\t\t\t.addClass( \"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\" )\r\n\t\t\t.filter( \":not(.ui-accordion-content-active)\" )\r\n\t\t\t.hide();\r\n\r\n\t\t// Avoid memory leaks (#10056)\r\n\t\tif ( prevPanels ) {\r\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\r\n\t\t\tthis._off( prevPanels.not( this.panels ) );\r\n\t\t}\r\n\t},\r\n\r\n\t_refresh: function() {\r\n\t\tvar maxHeight,\r\n\t\t\toptions = this.options,\r\n\t\t\theightStyle = options.heightStyle,\r\n\t\t\tparent = this.element.parent();\r\n\r\n\t\tthis.active = this._findActive( options.active )\r\n\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" )\r\n\t\t\t.removeClass( \"ui-corner-all\" );\r\n\t\tthis.active.next()\r\n\t\t\t.addClass( \"ui-accordion-content-active\" )\r\n\t\t\t.show();\r\n\r\n\t\tthis.headers\r\n\t\t\t.attr( \"role\", \"tab\" )\r\n\t\t\t.each(function() {\r\n\t\t\t\tvar header = $( this ),\r\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\r\n\t\t\t\t\tpanel = header.next(),\r\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\r\n\t\t\t\theader.attr( \"aria-controls\", panelId );\r\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\r\n\t\t\t})\r\n\t\t\t.next()\r\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\r\n\r\n\t\tthis.headers\r\n\t\t\t.not( this.active )\r\n\t\t\t.attr({\r\n\t\t\t\t\"aria-selected\": \"false\",\r\n\t\t\t\t\"aria-expanded\": \"false\",\r\n\t\t\t\ttabIndex: -1\r\n\t\t\t})\r\n\t\t\t.next()\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t\"aria-hidden\": \"true\"\r\n\t\t\t\t})\r\n\t\t\t\t.hide();\r\n\r\n\t\t// make sure at least one header is in the tab order\r\n\t\tif ( !this.active.length ) {\r\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\r\n\t\t} else {\r\n\t\t\tthis.active.attr({\r\n\t\t\t\t\"aria-selected\": \"true\",\r\n\t\t\t\t\"aria-expanded\": \"true\",\r\n\t\t\t\ttabIndex: 0\r\n\t\t\t})\r\n\t\t\t.next()\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t\"aria-hidden\": \"false\"\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._createIcons();\r\n\r\n\t\tthis._setupEvents( options.event );\r\n\r\n\t\tif ( heightStyle === \"fill\" ) {\r\n\t\t\tmaxHeight = parent.height();\r\n\t\t\tthis.element.siblings( \":visible\" ).each(function() {\r\n\t\t\t\tvar elem = $( this ),\r\n\t\t\t\t\tposition = elem.css( \"position\" );\r\n\r\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\r\n\t\t\t});\r\n\r\n\t\t\tthis.headers.each(function() {\r\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\r\n\t\t\t});\r\n\r\n\t\t\tthis.headers.next()\r\n\t\t\t\t.each(function() {\r\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\r\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\r\n\t\t\t\t})\r\n\t\t\t\t.css( \"overflow\", \"auto\" );\r\n\t\t} else if ( heightStyle === \"auto\" ) {\r\n\t\t\tmaxHeight = 0;\r\n\t\t\tthis.headers.next()\r\n\t\t\t\t.each(function() {\r\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\r\n\t\t\t\t})\r\n\t\t\t\t.height( maxHeight );\r\n\t\t}\r\n\t},\r\n\r\n\t_activate: function( index ) {\r\n\t\tvar active = this._findActive( index )[ 0 ];\r\n\r\n\t\t// trying to activate the already active panel\r\n\t\tif ( active === this.active[ 0 ] ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// trying to collapse, simulate a click on the currently active header\r\n\t\tactive = active || this.active[ 0 ];\r\n\r\n\t\tthis._eventHandler({\r\n\t\t\ttarget: active,\r\n\t\t\tcurrentTarget: active,\r\n\t\t\tpreventDefault: $.noop\r\n\t\t});\r\n\t},\r\n\r\n\t_findActive: function( selector ) {\r\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\r\n\t},\r\n\r\n\t_setupEvents: function( event ) {\r\n\t\tvar events = {\r\n\t\t\tkeydown: \"_keydown\"\r\n\t\t};\r\n\t\tif ( event ) {\r\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\r\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._off( this.headers.add( this.headers.next() ) );\r\n\t\tthis._on( this.headers, events );\r\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" });\r\n\t\tthis._hoverable( this.headers );\r\n\t\tthis._focusable( this.headers );\r\n\t},\r\n\r\n\t_eventHandler: function( event ) {\r\n\t\tvar options = this.options,\r\n\t\t\tactive = this.active,\r\n\t\t\tclicked = $( event.currentTarget ),\r\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\r\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\r\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\r\n\t\t\ttoHide = active.next(),\r\n\t\t\teventData = {\r\n\t\t\t\toldHeader: active,\r\n\t\t\t\toldPanel: toHide,\r\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\r\n\t\t\t\tnewPanel: toShow\r\n\t\t\t};\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif (\r\n\t\t\t\t// click on active header, but not collapsible\r\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\r\n\t\t\t\t// allow canceling activation\r\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\r\n\r\n\t\t// when the call to ._toggle() comes after the class changes\r\n\t\t// it causes a very odd bug in IE 8 (see #6720)\r\n\t\tthis.active = clickedIsActive ? $() : clicked;\r\n\t\tthis._toggle( eventData );\r\n\r\n\t\t// switch classes\r\n\t\t// corner classes on the previously active header stay after the animation\r\n\t\tactive.removeClass( \"ui-accordion-header-active ui-state-active\" );\r\n\t\tif ( options.icons ) {\r\n\t\t\tactive.children( \".ui-accordion-header-icon\" )\r\n\t\t\t\t.removeClass( options.icons.activeHeader )\r\n\t\t\t\t.addClass( options.icons.header );\r\n\t\t}\r\n\r\n\t\tif ( !clickedIsActive ) {\r\n\t\t\tclicked\r\n\t\t\t\t.removeClass( \"ui-corner-all\" )\r\n\t\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" );\r\n\t\t\tif ( options.icons ) {\r\n\t\t\t\tclicked.children( \".ui-accordion-header-icon\" )\r\n\t\t\t\t\t.removeClass( options.icons.header )\r\n\t\t\t\t\t.addClass( options.icons.activeHeader );\r\n\t\t\t}\r\n\r\n\t\t\tclicked\r\n\t\t\t\t.next()\r\n\t\t\t\t.addClass( \"ui-accordion-content-active\" );\r\n\t\t}\r\n\t},\r\n\r\n\t_toggle: function( data ) {\r\n\t\tvar toShow = data.newPanel,\r\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\r\n\r\n\t\t// handle activating a panel during the animation for another activation\r\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\r\n\t\tthis.prevShow = toShow;\r\n\t\tthis.prevHide = toHide;\r\n\r\n\t\tif ( this.options.animate ) {\r\n\t\t\tthis._animate( toShow, toHide, data );\r\n\t\t} else {\r\n\t\t\ttoHide.hide();\r\n\t\t\ttoShow.show();\r\n\t\t\tthis._toggleComplete( data );\r\n\t\t}\r\n\r\n\t\ttoHide.attr({\r\n\t\t\t\"aria-hidden\": \"true\"\r\n\t\t});\r\n\t\ttoHide.prev().attr( \"aria-selected\", \"false\" );\r\n\t\t// if we're switching panels, remove the old header from the tab order\r\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\r\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\r\n\t\tif ( toShow.length && toHide.length ) {\r\n\t\t\ttoHide.prev().attr({\r\n\t\t\t\t\"tabIndex\": -1,\r\n\t\t\t\t\"aria-expanded\": \"false\"\r\n\t\t\t});\r\n\t\t} else if ( toShow.length ) {\r\n\t\t\tthis.headers.filter(function() {\r\n\t\t\t\treturn $( this ).attr( \"tabIndex\" ) === 0;\r\n\t\t\t})\r\n\t\t\t.attr( \"tabIndex\", -1 );\r\n\t\t}\r\n\r\n\t\ttoShow\r\n\t\t\t.attr( \"aria-hidden\", \"false\" )\r\n\t\t\t.prev()\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t\"aria-selected\": \"true\",\r\n\t\t\t\t\ttabIndex: 0,\r\n\t\t\t\t\t\"aria-expanded\": \"true\"\r\n\t\t\t\t});\r\n\t},\r\n\r\n\t_animate: function( toShow, toHide, data ) {\r\n\t\tvar total, easing, duration,\r\n\t\t\tthat = this,\r\n\t\t\tadjust = 0,\r\n\t\t\tdown = toShow.length &&\r\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\r\n\t\t\tanimate = this.options.animate || {},\r\n\t\t\toptions = down && animate.down || animate,\r\n\t\t\tcomplete = function() {\r\n\t\t\t\tthat._toggleComplete( data );\r\n\t\t\t};\r\n\r\n\t\tif ( typeof options === \"number\" ) {\r\n\t\t\tduration = options;\r\n\t\t}\r\n\t\tif ( typeof options === \"string\" ) {\r\n\t\t\teasing = options;\r\n\t\t}\r\n\t\t// fall back from options to animation in case of partial down settings\r\n\t\teasing = easing || options.easing || animate.easing;\r\n\t\tduration = duration || options.duration || animate.duration;\r\n\r\n\t\tif ( !toHide.length ) {\r\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\r\n\t\t}\r\n\t\tif ( !toShow.length ) {\r\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\r\n\t\t}\r\n\r\n\t\ttotal = toShow.show().outerHeight();\r\n\t\ttoHide.animate( this.hideProps, {\r\n\t\t\tduration: duration,\r\n\t\t\teasing: easing,\r\n\t\t\tstep: function( now, fx ) {\r\n\t\t\t\tfx.now = Math.round( now );\r\n\t\t\t}\r\n\t\t});\r\n\t\ttoShow\r\n\t\t\t.hide()\r\n\t\t\t.animate( this.showProps, {\r\n\t\t\t\tduration: duration,\r\n\t\t\t\teasing: easing,\r\n\t\t\t\tcomplete: complete,\r\n\t\t\t\tstep: function( now, fx ) {\r\n\t\t\t\t\tfx.now = Math.round( now );\r\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\r\n\t\t\t\t\t\tadjust += fx.now;\r\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\r\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\r\n\t\t\t\t\t\tadjust = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t},\r\n\r\n\t_toggleComplete: function( data ) {\r\n\t\tvar toHide = data.oldPanel;\r\n\r\n\t\ttoHide\r\n\t\t\t.removeClass( \"ui-accordion-content-active\" )\r\n\t\t\t.prev()\r\n\t\t\t\t.removeClass( \"ui-corner-top\" )\r\n\t\t\t\t.addClass( \"ui-corner-all\" );\r\n\r\n\t\t// Work around for rendering bug in IE (#5421)\r\n\t\tif ( toHide.length ) {\r\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\r\n\t\t}\r\n\t\tthis._trigger( \"activate\", null, data );\r\n\t}\r\n});\r\n\r\n\r\n/*!\r\n * jQuery UI Menu 1.11.2\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.2\",\r\n\tdefaultElement: \"