/*! jQuery UI - v1.10.4 - 2014-01-17jQuery * http://jqueryui.comjQuery * Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.slider.js, jquery.ui.sortable.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.jsjQuery * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */jQuery jQuery (function( $, undefined ) {jQuery jQuery var uuid = 0,jQuery runiqueId = /^ui-id-\d+$/;jQuery jQuery // $.ui might exist from components with no dependencies, e.g., $.ui.positionjQuery $.ui = $.ui || {};jQuery jQuery $.extend( $.ui, {jQuery version: "1.10.4",jQuery jQuery keyCode: {jQuery BACKSPACE: 8,jQuery COMMA: 188,jQuery DELETE: 46,jQuery DOWN: 40,jQuery END: 35,jQuery ENTER: 13,jQuery ESCAPE: 27,jQuery HOME: 36,jQuery LEFT: 37,jQuery NUMPAD_ADD: 107,jQuery NUMPAD_DECIMAL: 110,jQuery NUMPAD_DIVIDE: 111,jQuery NUMPAD_ENTER: 108,jQuery NUMPAD_MULTIPLY: 106,jQuery NUMPAD_SUBTRACT: 109,jQuery PAGE_DOWN: 34,jQuery PAGE_UP: 33,jQuery PERIOD: 190,jQuery RIGHT: 39,jQuery SPACE: 32,jQuery TAB: 9,jQuery UP: 38jQuery }jQuery });jQuery jQuery // pluginsjQuery $.fn.extend({jQuery focus: (function( orig ) {jQuery return function( delay, fn ) {jQuery return typeof delay === "number" ?jQuery this.each(function() {jQuery var elem = this;jQuery setTimeout(function() {jQuery $( elem ).focus();jQuery if ( fn ) {jQuery fn.call( elem );jQuery }jQuery }, delay );jQuery }) :jQuery orig.apply( this, arguments );jQuery };jQuery })( $.fn.focus ),jQuery jQuery scrollParent: function() {jQuery var scrollParent;jQuery if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {jQuery scrollParent = this.parents().filter(function() {jQuery return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));jQuery }).eq(0);jQuery } else {jQuery scrollParent = this.parents().filter(function() {jQuery return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));jQuery }).eq(0);jQuery }jQuery jQuery return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;jQuery },jQuery jQuery zIndex: function( zIndex ) {jQuery if ( zIndex !== undefined ) {jQuery return this.css( "zIndex", zIndex );jQuery }jQuery jQuery if ( this.length ) {jQuery var elem = $( this[ 0 ] ), position, value;jQuery while ( elem.length && elem[ 0 ] !== document ) {jQuery // Ignore z-index if position is set to a value where z-index is ignored by the browserjQuery // This makes behavior of this function consistent across browsersjQuery // WebKit always returns auto if the element is positionedjQuery position = elem.css( "position" );jQuery if ( position === "absolute" || position === "relative" || position === "fixed" ) {jQuery // IE returns 0 when zIndex is not specifiedjQuery // other browsers return a stringjQuery // we ignore the case of nested elements with an explicit value of 0jQuery //
jQuery value = parseInt( elem.css( "zIndex" ), 10 );jQuery if ( !isNaN( value ) && value !== 0 ) {jQuery return value;jQuery }jQuery }jQuery elem = elem.parent();jQuery }jQuery }jQuery jQuery return 0;jQuery },jQuery jQuery uniqueId: function() {jQuery return this.each(function() {jQuery if ( !this.id ) {jQuery this.id = "ui-id-" + (++uuid);jQuery }jQuery });jQuery },jQuery jQuery removeUniqueId: function() {jQuery return this.each(function() {jQuery if ( runiqueId.test( this.id ) ) {jQuery $( this ).removeAttr( "id" );jQuery }jQuery });jQuery }jQuery });jQuery jQuery // selectorsjQuery function focusable( element, isTabIndexNotNaN ) {jQuery var map, mapName, img,jQuery nodeName = element.nodeName.toLowerCase();jQuery if ( "area" === nodeName ) {jQuery map = element.parentNode;jQuery mapName = map.name;jQuery if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {jQuery return false;jQuery }jQuery img = $( "img[usemap=#" + mapName + "]" )[0];jQuery return !!img && visible( img );jQuery }jQuery return ( /input|select|textarea|button|object/.test( nodeName ) ?jQuery !element.disabled :jQuery "a" === nodeName ?jQuery element.href || isTabIndexNotNaN :jQuery isTabIndexNotNaN) &&jQuery // the element and all of its ancestors must be visiblejQuery visible( element );jQuery }jQuery jQuery function visible( element ) {jQuery return $.expr.filters.visible( element ) &&jQuery !$( element ).parents().addBack().filter(function() {jQuery return $.css( this, "visibility" ) === "hidden";jQuery }).length;jQuery }jQuery jQuery $.extend( $.expr[ ":" ], {jQuery data: $.expr.createPseudo ?jQuery $.expr.createPseudo(function( dataName ) {jQuery return function( elem ) {jQuery return !!$.data( elem, dataName );jQuery };jQuery }) :jQuery // support: jQuery <1.8jQuery function( elem, i, match ) {jQuery return !!$.data( elem, match[ 3 ] );jQuery },jQuery jQuery focusable: function( element ) {jQuery return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );jQuery },jQuery jQuery tabbable: function( element ) {jQuery var tabIndex = $.attr( element, "tabindex" ),jQuery isTabIndexNaN = isNaN( tabIndex );jQuery return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );jQuery }jQuery });jQuery jQuery // support: jQuery <1.8jQuery if ( !$( "" ).outerWidth( 1 ).jquery ) {jQuery $.each( [ "Width", "Height" ], function( i, name ) {jQuery var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],jQuery type = name.toLowerCase(),jQuery orig = {jQuery innerWidth: $.fn.innerWidth,jQuery innerHeight: $.fn.innerHeight,jQuery outerWidth: $.fn.outerWidth,jQuery outerHeight: $.fn.outerHeightjQuery };jQuery jQuery function reduce( elem, size, border, margin ) {jQuery $.each( side, function() {jQuery size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;jQuery if ( border ) {jQuery size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;jQuery }jQuery if ( margin ) {jQuery size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;jQuery }jQuery });jQuery return size;jQuery }jQuery jQuery $.fn[ "inner" + name ] = function( size ) {jQuery if ( size === undefined ) {jQuery return orig[ "inner" + name ].call( this );jQuery }jQuery jQuery return this.each(function() {jQuery $( this ).css( type, reduce( this, size ) + "px" );jQuery });jQuery };jQuery jQuery $.fn[ "outer" + name] = function( size, margin ) {jQuery if ( typeof size !== "number" ) {jQuery return orig[ "outer" + name ].call( this, size );jQuery }jQuery jQuery return this.each(function() {jQuery $( this).css( type, reduce( this, size, true, margin ) + "px" );jQuery });jQuery };jQuery });jQuery }jQuery jQuery // support: jQuery <1.8jQuery if ( !$.fn.addBack ) {jQuery $.fn.addBack = function( selector ) {jQuery return this.add( selector == null ?jQuery this.prevObject : this.prevObject.filter( selector )jQuery );jQuery };jQuery }jQuery jQuery // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)jQuery if ( $( "" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {jQuery $.fn.removeData = (function( removeData ) {jQuery return function( key ) {jQuery if ( arguments.length ) {jQuery return removeData.call( this, $.camelCase( key ) );jQuery } else {jQuery return removeData.call( this );jQuery }jQuery };jQuery })( $.fn.removeData );jQuery }jQuery jQuery jQuery jQuery jQuery jQuery // deprecatedjQuery $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );jQuery jQuery $.support.selectstart = "onselectstart" in document.createElement( "div" );jQuery $.fn.extend({jQuery disableSelection: function() {jQuery return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +jQuery ".ui-disableSelection", function( event ) {jQuery event.preventDefault();jQuery });jQuery },jQuery jQuery enableSelection: function() {jQuery return this.unbind( ".ui-disableSelection" );jQuery }jQuery });jQuery jQuery $.extend( $.ui, {jQuery // $.ui.plugin is deprecated. Use $.widget() extensions instead.jQuery plugin: {jQuery add: function( module, option, set ) {jQuery var i,jQuery proto = $.ui[ module ].prototype;jQuery for ( i in set ) {jQuery proto.plugins[ i ] = proto.plugins[ i ] || [];jQuery proto.plugins[ i ].push( [ option, set[ i ] ] );jQuery }jQuery },jQuery call: function( instance, name, args ) {jQuery var i,jQuery set = instance.plugins[ name ];jQuery if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {jQuery return;jQuery }jQuery jQuery for ( i = 0; i < set.length; i++ ) {jQuery if ( instance.options[ set[ i ][ 0 ] ] ) {jQuery set[ i ][ 1 ].apply( instance.element, args );jQuery }jQuery }jQuery }jQuery },jQuery jQuery // only used by resizablejQuery hasScroll: function( el, a ) {jQuery jQuery //If overflow is hidden, the element might have extra content, but the user wants to hide itjQuery if ( $( el ).css( "overflow" ) === "hidden") {jQuery return false;jQuery }jQuery jQuery var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",jQuery has = false;jQuery jQuery if ( el[ scroll ] > 0 ) {jQuery return true;jQuery }jQuery jQuery // TODO: determine which cases actually cause this to happenjQuery // if the element doesn't have the scroll set, see if it's possible tojQuery // set the scrolljQuery el[ scroll ] = 1;jQuery has = ( el[ scroll ] > 0 );jQuery el[ scroll ] = 0;jQuery return has;jQuery }jQuery });jQuery jQuery })( jQuery );jQuery (function( $, undefined ) {jQuery jQuery var uuid = 0,jQuery slice = Array.prototype.slice,jQuery _cleanData = $.cleanData;jQuery $.cleanData = function( elems ) {jQuery for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {jQuery try {jQuery $( elem ).triggerHandler( "remove" );jQuery // http://bugs.jquery.com/ticket/8235jQuery } catch( e ) {}jQuery }jQuery _cleanData( elems );jQuery };jQuery jQuery $.widget = function( name, base, prototype ) {jQuery var fullName, existingConstructor, constructor, basePrototype,jQuery // proxiedPrototype allows the provided prototype to remain unmodifiedjQuery // so that it can be used as a mixin for multiple widgets (#8876)jQuery proxiedPrototype = {},jQuery namespace = name.split( "." )[ 0 ];jQuery jQuery name = name.split( "." )[ 1 ];jQuery fullName = namespace + "-" + name;jQuery jQuery if ( !prototype ) {jQuery prototype = base;jQuery base = $.Widget;jQuery }jQuery jQuery // create selector for pluginjQuery $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {jQuery return !!$.data( elem, fullName );jQuery };jQuery jQuery $[ namespace ] = $[ namespace ] || {};jQuery existingConstructor = $[ namespace ][ name ];jQuery constructor = $[ namespace ][ name ] = function( options, element ) {jQuery // allow instantiation without "new" keywordjQuery if ( !this._createWidget ) {jQuery return new constructor( options, element );jQuery }jQuery jQuery // allow instantiation without initializing for simple inheritancejQuery // must use "new" keyword (the code above always passes args)jQuery if ( arguments.length ) {jQuery this._createWidget( options, element );jQuery }jQuery };jQuery // extend with the existing constructor to carry over any static propertiesjQuery $.extend( constructor, existingConstructor, {jQuery version: prototype.version,jQuery // copy the object used to create the prototype in case we need tojQuery // redefine the widget laterjQuery _proto: $.extend( {}, prototype ),jQuery // track widgets that inherit from this widget in case this widget isjQuery // redefined after a widget inherits from itjQuery _childConstructors: []jQuery });jQuery jQuery basePrototype = new base();jQuery // we need to make the options hash a property directly on the new instancejQuery // otherwise we'll modify the options hash on the prototype that we'rejQuery // inheriting fromjQuery basePrototype.options = $.widget.extend( {}, basePrototype.options );jQuery $.each( prototype, function( prop, value ) {jQuery if ( !$.isFunction( value ) ) {jQuery proxiedPrototype[ prop ] = value;jQuery return;jQuery }jQuery proxiedPrototype[ prop ] = (function() {jQuery var _super = function() {jQuery return base.prototype[ prop ].apply( this, arguments );jQuery },jQuery _superApply = function( args ) {jQuery return base.prototype[ prop ].apply( this, args );jQuery };jQuery return function() {jQuery var __super = this._super,jQuery __superApply = this._superApply,jQuery returnValue;jQuery jQuery this._super = _super;jQuery this._superApply = _superApply;jQuery jQuery returnValue = value.apply( this, arguments );jQuery jQuery this._super = __super;jQuery this._superApply = __superApply;jQuery jQuery return returnValue;jQuery };jQuery })();jQuery });jQuery constructor.prototype = $.widget.extend( basePrototype, {jQuery // TODO: remove support for widgetEventPrefixjQuery // always use the name + a colon as the prefix, e.g., draggable:startjQuery // don't prefix for widgets that aren't DOM-basedjQuery widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : namejQuery }, proxiedPrototype, {jQuery constructor: constructor,jQuery namespace: namespace,jQuery widgetName: name,jQuery widgetFullName: fullNamejQuery });jQuery jQuery // If this widget is being redefined then we need to find all widgets thatjQuery // are inheriting from it and redefine all of them so that they inherit fromjQuery // the new version of this widget. We're essentially trying to replace onejQuery // level in the prototype chain.jQuery if ( existingConstructor ) {jQuery $.each( existingConstructor._childConstructors, function( i, child ) {jQuery var childPrototype = child.prototype;jQuery jQuery // redefine the child widget using the same prototype that wasjQuery // originally used, but inherit from the new version of the basejQuery $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );jQuery });jQuery // remove the list of existing child constructors from the old constructorjQuery // so the old child constructors can be garbage collectedjQuery delete existingConstructor._childConstructors;jQuery } else {jQuery base._childConstructors.push( constructor );jQuery }jQuery jQuery $.widget.bridge( name, constructor );jQuery };jQuery jQuery $.widget.extend = function( target ) {jQuery var input = slice.call( arguments, 1 ),jQuery inputIndex = 0,jQuery inputLength = input.length,jQuery key,jQuery value;jQuery for ( ; inputIndex < inputLength; inputIndex++ ) {jQuery for ( key in input[ inputIndex ] ) {jQuery value = input[ inputIndex ][ key ];jQuery if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {jQuery // Clone objectsjQuery if ( $.isPlainObject( value ) ) {jQuery target[ key ] = $.isPlainObject( target[ key ] ) ?jQuery $.widget.extend( {}, target[ key ], value ) :jQuery // Don't extend strings, arrays, etc. with objectsjQuery $.widget.extend( {}, value );jQuery // Copy everything else by referencejQuery } else {jQuery target[ key ] = value;jQuery }jQuery }jQuery }jQuery }jQuery return target;jQuery };jQuery jQuery $.widget.bridge = function( name, object ) {jQuery var fullName = object.prototype.widgetFullName || name;jQuery $.fn[ name ] = function( options ) {jQuery var isMethodCall = typeof options === "string",jQuery args = slice.call( arguments, 1 ),jQuery returnValue = this;jQuery jQuery // allow multiple hashes to be passed on initjQuery options = !isMethodCall && args.length ?jQuery $.widget.extend.apply( null, [ options ].concat(args) ) :jQuery options;jQuery jQuery if ( isMethodCall ) {jQuery this.each(function() {jQuery var methodValue,jQuery instance = $.data( this, fullName );jQuery if ( !instance ) {jQuery return $.error( "cannot call methods on " + name + " prior to initialization; " +jQuery "attempted to call method '" + options + "'" );jQuery }jQuery if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {jQuery return $.error( "no such method '" + options + "' for " + name + " widget instance" );jQuery }jQuery methodValue = instance[ options ].apply( instance, args );jQuery if ( methodValue !== instance && methodValue !== undefined ) {jQuery returnValue = methodValue && methodValue.jquery ?jQuery returnValue.pushStack( methodValue.get() ) :jQuery methodValue;jQuery return false;jQuery }jQuery });jQuery } else {jQuery this.each(function() {jQuery var instance = $.data( this, fullName );jQuery if ( instance ) {jQuery instance.option( options || {} )._init();jQuery } else {jQuery $.data( this, fullName, new object( options, this ) );jQuery }jQuery });jQuery }jQuery jQuery return returnValue;jQuery };jQuery };jQuery jQuery $.Widget = function( /* options, element */ ) {};jQuery $.Widget._childConstructors = [];jQuery jQuery $.Widget.prototype = {jQuery widgetName: "widget",jQuery widgetEventPrefix: "",jQuery defaultElement: "
",jQuery options: {jQuery disabled: false,jQuery jQuery // callbacksjQuery create: nulljQuery },jQuery _createWidget: function( options, element ) {jQuery element = $( element || this.defaultElement || this )[ 0 ];jQuery this.element = $( element );jQuery this.uuid = uuid++;jQuery this.eventNamespace = "." + this.widgetName + this.uuid;jQuery this.options = $.widget.extend( {},jQuery this.options,jQuery this._getCreateOptions(),jQuery options );jQuery jQuery this.bindings = $();jQuery this.hoverable = $();jQuery this.focusable = $();jQuery jQuery if ( element !== this ) {jQuery $.data( element, this.widgetFullName, this );jQuery this._on( true, this.element, {jQuery remove: function( event ) {jQuery if ( event.target === element ) {jQuery this.destroy();jQuery }jQuery }jQuery });jQuery this.document = $( element.style ?jQuery // element within the documentjQuery element.ownerDocument :jQuery // element is window or documentjQuery element.document || element );jQuery this.window = $( this.document[0].defaultView || this.document[0].parentWindow );jQuery }jQuery jQuery this._create();jQuery this._trigger( "create", null, this._getCreateEventData() );jQuery this._init();jQuery },jQuery _getCreateOptions: $.noop,jQuery _getCreateEventData: $.noop,jQuery _create: $.noop,jQuery _init: $.noop,jQuery jQuery destroy: function() {jQuery this._destroy();jQuery // we can probably remove the unbind calls in 2.0jQuery // all event bindings should go through this._on()jQuery this.elementjQuery .unbind( this.eventNamespace )jQuery // 1.9 BC for #7810jQuery // TODO remove dual storagejQuery .removeData( this.widgetName )jQuery .removeData( this.widgetFullName )jQuery // support: jquery <1.6.3jQuery // http://bugs.jquery.com/ticket/9413jQuery .removeData( $.camelCase( this.widgetFullName ) );jQuery this.widget()jQuery .unbind( this.eventNamespace )jQuery .removeAttr( "aria-disabled" )jQuery .removeClass(jQuery this.widgetFullName + "-disabled " +jQuery "ui-state-disabled" );jQuery jQuery // clean up events and statesjQuery this.bindings.unbind( this.eventNamespace );jQuery this.hoverable.removeClass( "ui-state-hover" );jQuery this.focusable.removeClass( "ui-state-focus" );jQuery },jQuery _destroy: $.noop,jQuery jQuery widget: function() {jQuery return this.element;jQuery },jQuery jQuery option: function( key, value ) {jQuery var options = key,jQuery parts,jQuery curOption,jQuery i;jQuery jQuery if ( arguments.length === 0 ) {jQuery // don't return a reference to the internal hashjQuery return $.widget.extend( {}, this.options );jQuery }jQuery jQuery if ( typeof key === "string" ) {jQuery // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }jQuery options = {};jQuery parts = key.split( "." );jQuery key = parts.shift();jQuery if ( parts.length ) {jQuery curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );jQuery for ( i = 0; i < parts.length - 1; i++ ) {jQuery curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};jQuery curOption = curOption[ parts[ i ] ];jQuery }jQuery key = parts.pop();jQuery if ( arguments.length === 1 ) {jQuery return curOption[ key ] === undefined ? null : curOption[ key ];jQuery }jQuery curOption[ key ] = value;jQuery } else {jQuery if ( arguments.length === 1 ) {jQuery return this.options[ key ] === undefined ? null : this.options[ key ];jQuery }jQuery options[ key ] = value;jQuery }jQuery }jQuery jQuery this._setOptions( options );jQuery jQuery return this;jQuery },jQuery _setOptions: function( options ) {jQuery var key;jQuery jQuery for ( key in options ) {jQuery this._setOption( key, options[ key ] );jQuery }jQuery jQuery return this;jQuery },jQuery _setOption: function( key, value ) {jQuery this.options[ key ] = value;jQuery jQuery if ( key === "disabled" ) {jQuery this.widget()jQuery .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )jQuery .attr( "aria-disabled", value );jQuery this.hoverable.removeClass( "ui-state-hover" );jQuery this.focusable.removeClass( "ui-state-focus" );jQuery }jQuery jQuery return this;jQuery },jQuery jQuery enable: function() {jQuery return this._setOption( "disabled", false );jQuery },jQuery disable: function() {jQuery return this._setOption( "disabled", true );jQuery },jQuery jQuery _on: function( suppressDisabledCheck, element, handlers ) {jQuery var delegateElement,jQuery instance = this;jQuery jQuery // no suppressDisabledCheck flag, shuffle argumentsjQuery if ( typeof suppressDisabledCheck !== "boolean" ) {jQuery handlers = element;jQuery element = suppressDisabledCheck;jQuery suppressDisabledCheck = false;jQuery }jQuery jQuery // no element argument, shuffle and use this.elementjQuery if ( !handlers ) {jQuery handlers = element;jQuery element = this.element;jQuery delegateElement = this.widget();jQuery } else {jQuery // accept selectors, DOM elementsjQuery element = delegateElement = $( element );jQuery this.bindings = this.bindings.add( element );jQuery }jQuery jQuery $.each( handlers, function( event, handler ) {jQuery function handlerProxy() {jQuery // allow widgets to customize the disabled handlingjQuery // - disabled as an array instead of booleanjQuery // - disabled class as method for disabling individual partsjQuery if ( !suppressDisabledCheck &&jQuery ( instance.options.disabled === true ||jQuery $( this ).hasClass( "ui-state-disabled" ) ) ) {jQuery return;jQuery }jQuery return ( typeof handler === "string" ? instance[ handler ] : handler )jQuery .apply( instance, arguments );jQuery }jQuery jQuery // copy the guid so direct unbinding worksjQuery if ( typeof handler !== "string" ) {jQuery handlerProxy.guid = handler.guid =jQuery handler.guid || handlerProxy.guid || $.guid++;jQuery }jQuery jQuery var match = event.match( /^(\w+)\s*(.*)$/ ),jQuery eventName = match[1] + instance.eventNamespace,jQuery selector = match[2];jQuery if ( selector ) {jQuery delegateElement.delegate( selector, eventName, handlerProxy );jQuery } else {jQuery element.bind( eventName, handlerProxy );jQuery }jQuery });jQuery },jQuery jQuery _off: function( element, eventName ) {jQuery eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;jQuery element.unbind( eventName ).undelegate( eventName );jQuery },jQuery jQuery _delay: function( handler, delay ) {jQuery function handlerProxy() {jQuery return ( typeof handler === "string" ? instance[ handler ] : handler )jQuery .apply( instance, arguments );jQuery }jQuery var instance = this;jQuery return setTimeout( handlerProxy, delay || 0 );jQuery },jQuery jQuery _hoverable: function( element ) {jQuery this.hoverable = this.hoverable.add( element );jQuery this._on( element, {jQuery mouseenter: function( event ) {jQuery $( event.currentTarget ).addClass( "ui-state-hover" );jQuery },jQuery mouseleave: function( event ) {jQuery $( event.currentTarget ).removeClass( "ui-state-hover" );jQuery }jQuery });jQuery },jQuery jQuery _focusable: function( element ) {jQuery this.focusable = this.focusable.add( element );jQuery this._on( element, {jQuery focusin: function( event ) {jQuery $( event.currentTarget ).addClass( "ui-state-focus" );jQuery },jQuery focusout: function( event ) {jQuery $( event.currentTarget ).removeClass( "ui-state-focus" );jQuery }jQuery });jQuery },jQuery jQuery _trigger: function( type, event, data ) {jQuery var prop, orig,jQuery callback = this.options[ type ];jQuery jQuery data = data || {};jQuery event = $.Event( event );jQuery event.type = ( type === this.widgetEventPrefix ?jQuery type :jQuery this.widgetEventPrefix + type ).toLowerCase();jQuery // the original event may come from any elementjQuery // so we need to reset the target on the new eventjQuery event.target = this.element[ 0 ];jQuery jQuery // copy original event properties over to the new eventjQuery orig = event.originalEvent;jQuery if ( orig ) {jQuery for ( prop in orig ) {jQuery if ( !( prop in event ) ) {jQuery event[ prop ] = orig[ prop ];jQuery }jQuery }jQuery }jQuery jQuery this.element.trigger( event, data );jQuery return !( $.isFunction( callback ) &&jQuery callback.apply( this.element[0], [ event ].concat( data ) ) === false ||jQuery event.isDefaultPrevented() );jQuery }jQuery };jQuery jQuery $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {jQuery $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {jQuery if ( typeof options === "string" ) {jQuery options = { effect: options };jQuery }jQuery var hasOptions,jQuery effectName = !options ?jQuery method :jQuery options === true || typeof options === "number" ?jQuery defaultEffect :jQuery options.effect || defaultEffect;jQuery options = options || {};jQuery if ( typeof options === "number" ) {jQuery options = { duration: options };jQuery }jQuery hasOptions = !$.isEmptyObject( options );jQuery options.complete = callback;jQuery if ( options.delay ) {jQuery element.delay( options.delay );jQuery }jQuery if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {jQuery element[ method ]( options );jQuery } else if ( effectName !== method && element[ effectName ] ) {jQuery element[ effectName ]( options.duration, options.easing, callback );jQuery } else {jQuery element.queue(function( next ) {jQuery $( this )[ method ]();jQuery if ( callback ) {jQuery callback.call( element[ 0 ] );jQuery }jQuery next();jQuery });jQuery }jQuery };jQuery });jQuery jQuery })( jQuery );jQuery (function( $, undefined ) {jQuery jQuery var mouseHandled = false;jQuery $( document ).mouseup( function() {jQuery mouseHandled = false;jQuery });jQuery jQuery $.widget("ui.mouse", {jQuery version: "1.10.4",jQuery options: {jQuery cancel: "input,textarea,button,select,option",jQuery distance: 1,jQuery delay: 0jQuery },jQuery _mouseInit: function() {jQuery var that = this;jQuery jQuery this.elementjQuery .bind("mousedown."+this.widgetName, function(event) {jQuery return that._mouseDown(event);jQuery })jQuery .bind("click."+this.widgetName, function(event) {jQuery if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {jQuery $.removeData(event.target, that.widgetName + ".preventClickEvent");jQuery event.stopImmediatePropagation();jQuery return false;jQuery }jQuery });jQuery jQuery this.started = false;jQuery },jQuery jQuery // TODO: make sure destroying one instance of mouse doesn't mess withjQuery // other instances of mousejQuery _mouseDestroy: function() {jQuery this.element.unbind("."+this.widgetName);jQuery if ( this._mouseMoveDelegate ) {jQuery $(document)jQuery .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)jQuery .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);jQuery }jQuery },jQuery jQuery _mouseDown: function(event) {jQuery // don't let more than one widget handle mouseStartjQuery if( mouseHandled ) { return; }jQuery jQuery // we may have missed mouseup (out of window)jQuery (this._mouseStarted && this._mouseUp(event));jQuery jQuery this._mouseDownEvent = event;jQuery jQuery var that = this,jQuery btnIsLeft = (event.which === 1),jQuery // event.target.nodeName works around a bug in IE 8 withjQuery // disabled inputs (#7620)jQuery elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);jQuery if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {jQuery return true;jQuery }jQuery jQuery this.mouseDelayMet = !this.options.delay;jQuery if (!this.mouseDelayMet) {jQuery this._mouseDelayTimer = setTimeout(function() {jQuery that.mouseDelayMet = true;jQuery }, this.options.delay);jQuery }jQuery jQuery if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {jQuery this._mouseStarted = (this._mouseStart(event) !== false);jQuery if (!this._mouseStarted) {jQuery event.preventDefault();jQuery return true;jQuery }jQuery }jQuery jQuery // Click event may never have fired (Gecko & Opera)jQuery if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {jQuery $.removeData(event.target, this.widgetName + ".preventClickEvent");jQuery }jQuery jQuery // these delegates are required to keep contextjQuery this._mouseMoveDelegate = function(event) {jQuery return that._mouseMove(event);jQuery };jQuery this._mouseUpDelegate = function(event) {jQuery return that._mouseUp(event);jQuery };jQuery $(document)jQuery .bind("mousemove."+this.widgetName, this._mouseMoveDelegate)jQuery .bind("mouseup."+this.widgetName, this._mouseUpDelegate);jQuery jQuery event.preventDefault();jQuery jQuery mouseHandled = true;jQuery return true;jQuery },jQuery jQuery _mouseMove: function(event) {jQuery // IE mouseup check - mouseup happened when mouse was out of windowjQuery if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {jQuery return this._mouseUp(event);jQuery }jQuery jQuery if (this._mouseStarted) {jQuery this._mouseDrag(event);jQuery return event.preventDefault();jQuery }jQuery jQuery if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {jQuery this._mouseStarted =jQuery (this._mouseStart(this._mouseDownEvent, event) !== false);jQuery (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));jQuery }jQuery jQuery return !this._mouseStarted;jQuery },jQuery jQuery _mouseUp: function(event) {jQuery $(document)jQuery .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)jQuery .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);jQuery jQuery if (this._mouseStarted) {jQuery this._mouseStarted = false;jQuery jQuery if (event.target === this._mouseDownEvent.target) {jQuery $.data(event.target, this.widgetName + ".preventClickEvent", true);jQuery }jQuery jQuery this._mouseStop(event);jQuery }jQuery jQuery return false;jQuery },jQuery jQuery _mouseDistanceMet: function(event) {jQuery return (Math.max(jQuery Math.abs(this._mouseDownEvent.pageX - event.pageX),jQuery Math.abs(this._mouseDownEvent.pageY - event.pageY)jQuery ) >= this.options.distancejQuery );jQuery },jQuery jQuery _mouseDelayMet: function(/* event */) {jQuery return this.mouseDelayMet;jQuery },jQuery jQuery // These are placeholder methods, to be overriden by extending pluginjQuery _mouseStart: function(/* event */) {},jQuery _mouseDrag: function(/* event */) {},jQuery _mouseStop: function(/* event */) {},jQuery _mouseCapture: function(/* event */) { return true; }jQuery });jQuery jQuery })(jQuery);jQuery (function( $, undefined ) {jQuery jQuery $.ui = $.ui || {};jQuery jQuery var cachedScrollbarWidth,jQuery max = Math.max,jQuery abs = Math.abs,jQuery round = Math.round,jQuery rhorizontal = /left|center|right/,jQuery rvertical = /top|center|bottom/,jQuery roffset = /[\+\-]\d+(\.[\d]+)?%?/,jQuery rposition = /^\w+/,jQuery rpercent = /%$/,jQuery _position = $.fn.position;jQuery jQuery function getOffsets( offsets, width, height ) {jQuery return [jQuery parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),jQuery parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )jQuery ];jQuery }jQuery jQuery function parseCss( element, property ) {jQuery return parseInt( $.css( element, property ), 10 ) || 0;jQuery }jQuery jQuery function getDimensions( elem ) {jQuery var raw = elem[0];jQuery if ( raw.nodeType === 9 ) {jQuery return {jQuery width: elem.width(),jQuery height: elem.height(),jQuery offset: { top: 0, left: 0 }jQuery };jQuery }jQuery if ( $.isWindow( raw ) ) {jQuery return {jQuery width: elem.width(),jQuery height: elem.height(),jQuery offset: { top: elem.scrollTop(), left: elem.scrollLeft() }jQuery };jQuery }jQuery if ( raw.preventDefault ) {jQuery return {jQuery width: 0,jQuery height: 0,jQuery offset: { top: raw.pageY, left: raw.pageX }jQuery };jQuery }jQuery return {jQuery width: elem.outerWidth(),jQuery height: elem.outerHeight(),jQuery offset: elem.offset()jQuery };jQuery }jQuery jQuery $.position = {jQuery scrollbarWidth: function() {jQuery if ( cachedScrollbarWidth !== undefined ) {jQuery return cachedScrollbarWidth;jQuery }jQuery var w1, w2,jQuery div = $( "
" ),jQuery innerDiv = div.children()[0];jQuery jQuery $( "body" ).append( div );jQuery w1 = innerDiv.offsetWidth;jQuery div.css( "overflow", "scroll" );jQuery jQuery w2 = innerDiv.offsetWidth;jQuery jQuery if ( w1 === w2 ) {jQuery w2 = div[0].clientWidth;jQuery }jQuery jQuery div.remove();jQuery jQuery return (cachedScrollbarWidth = w1 - w2);jQuery },jQuery getScrollInfo: function( within ) {jQuery var overflowX = within.isWindow || within.isDocument ? "" :jQuery within.element.css( "overflow-x" ),jQuery overflowY = within.isWindow || within.isDocument ? "" :jQuery within.element.css( "overflow-y" ),jQuery hasOverflowX = overflowX === "scroll" ||jQuery ( overflowX === "auto" && within.width < within.element[0].scrollWidth ),jQuery hasOverflowY = overflowY === "scroll" ||jQuery ( overflowY === "auto" && within.height < within.element[0].scrollHeight );jQuery return {jQuery width: hasOverflowY ? $.position.scrollbarWidth() : 0,jQuery height: hasOverflowX ? $.position.scrollbarWidth() : 0jQuery };jQuery },jQuery getWithinInfo: function( element ) {jQuery var withinElement = $( element || window ),jQuery isWindow = $.isWindow( withinElement[0] ),jQuery isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;jQuery return {jQuery element: withinElement,jQuery isWindow: isWindow,jQuery isDocument: isDocument,jQuery offset: withinElement.offset() || { left: 0, top: 0 },jQuery scrollLeft: withinElement.scrollLeft(),jQuery scrollTop: withinElement.scrollTop(),jQuery width: isWindow ? withinElement.width() : withinElement.outerWidth(),jQuery height: isWindow ? withinElement.height() : withinElement.outerHeight()jQuery };jQuery }jQuery };jQuery jQuery $.fn.position = function( options ) {jQuery if ( !options || !options.of ) {jQuery return _position.apply( this, arguments );jQuery }jQuery jQuery // make a copy, we don't want to modify argumentsjQuery options = $.extend( {}, options );jQuery jQuery var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,jQuery target = $( options.of ),jQuery within = $.position.getWithinInfo( options.within ),jQuery scrollInfo = $.position.getScrollInfo( within ),jQuery collision = ( options.collision || "flip" ).split( " " ),jQuery offsets = {};jQuery jQuery dimensions = getDimensions( target );jQuery if ( target[0].preventDefault ) {jQuery // force left top to allow flippingjQuery options.at = "left top";jQuery }jQuery targetWidth = dimensions.width;jQuery targetHeight = dimensions.height;jQuery targetOffset = dimensions.offset;jQuery // clone to reuse original targetOffset laterjQuery basePosition = $.extend( {}, targetOffset );jQuery jQuery // force my and at to have valid horizontal and vertical positionsjQuery // if a value is missing or invalid, it will be converted to centerjQuery $.each( [ "my", "at" ], function() {jQuery var pos = ( options[ this ] || "" ).split( " " ),jQuery horizontalOffset,jQuery verticalOffset;jQuery jQuery if ( pos.length === 1) {jQuery pos = rhorizontal.test( pos[ 0 ] ) ?jQuery pos.concat( [ "center" ] ) :jQuery rvertical.test( pos[ 0 ] ) ?jQuery [ "center" ].concat( pos ) :jQuery [ "center", "center" ];jQuery }jQuery pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";jQuery pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";jQuery jQuery // calculate offsetsjQuery horizontalOffset = roffset.exec( pos[ 0 ] );jQuery verticalOffset = roffset.exec( pos[ 1 ] );jQuery offsets[ this ] = [jQuery horizontalOffset ? horizontalOffset[ 0 ] : 0,jQuery verticalOffset ? verticalOffset[ 0 ] : 0jQuery ];jQuery jQuery // reduce to just the positions without the offsetsjQuery options[ this ] = [jQuery rposition.exec( pos[ 0 ] )[ 0 ],jQuery rposition.exec( pos[ 1 ] )[ 0 ]jQuery ];jQuery });jQuery jQuery // normalize collision optionjQuery if ( collision.length === 1 ) {jQuery collision[ 1 ] = collision[ 0 ];jQuery }jQuery jQuery if ( options.at[ 0 ] === "right" ) {jQuery basePosition.left += targetWidth;jQuery } else if ( options.at[ 0 ] === "center" ) {jQuery basePosition.left += targetWidth / 2;jQuery }jQuery jQuery if ( options.at[ 1 ] === "bottom" ) {jQuery basePosition.top += targetHeight;jQuery } else if ( options.at[ 1 ] === "center" ) {jQuery basePosition.top += targetHeight / 2;jQuery }jQuery jQuery atOffset = getOffsets( offsets.at, targetWidth, targetHeight );jQuery basePosition.left += atOffset[ 0 ];jQuery basePosition.top += atOffset[ 1 ];jQuery jQuery return this.each(function() {jQuery var collisionPosition, using,jQuery elem = $( this ),jQuery elemWidth = elem.outerWidth(),jQuery elemHeight = elem.outerHeight(),jQuery marginLeft = parseCss( this, "marginLeft" ),jQuery marginTop = parseCss( this, "marginTop" ),jQuery collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,jQuery collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,jQuery position = $.extend( {}, basePosition ),jQuery myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );jQuery jQuery if ( options.my[ 0 ] === "right" ) {jQuery position.left -= elemWidth;jQuery } else if ( options.my[ 0 ] === "center" ) {jQuery position.left -= elemWidth / 2;jQuery }jQuery jQuery if ( options.my[ 1 ] === "bottom" ) {jQuery position.top -= elemHeight;jQuery } else if ( options.my[ 1 ] === "center" ) {jQuery position.top -= elemHeight / 2;jQuery }jQuery jQuery position.left += myOffset[ 0 ];jQuery position.top += myOffset[ 1 ];jQuery jQuery // if the browser doesn't support fractions, then round for consistent resultsjQuery if ( !$.support.offsetFractions ) {jQuery position.left = round( position.left );jQuery position.top = round( position.top );jQuery }jQuery jQuery collisionPosition = {jQuery marginLeft: marginLeft,jQuery marginTop: marginTopjQuery };jQuery jQuery $.each( [ "left", "top" ], function( i, dir ) {jQuery if ( $.ui.position[ collision[ i ] ] ) {jQuery $.ui.position[ collision[ i ] ][ dir ]( position, {jQuery targetWidth: targetWidth,jQuery targetHeight: targetHeight,jQuery elemWidth: elemWidth,jQuery elemHeight: elemHeight,jQuery collisionPosition: collisionPosition,jQuery collisionWidth: collisionWidth,jQuery collisionHeight: collisionHeight,jQuery offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],jQuery my: options.my,jQuery at: options.at,jQuery within: within,jQuery elem : elemjQuery });jQuery }jQuery });jQuery jQuery if ( options.using ) {jQuery // adds feedback as second argument to using callback, if presentjQuery using = function( props ) {jQuery var left = targetOffset.left - position.left,jQuery right = left + targetWidth - elemWidth,jQuery top = targetOffset.top - position.top,jQuery bottom = top + targetHeight - elemHeight,jQuery feedback = {jQuery target: {jQuery element: target,jQuery left: targetOffset.left,jQuery top: targetOffset.top,jQuery width: targetWidth,jQuery height: targetHeightjQuery },jQuery element: {jQuery element: elem,jQuery left: position.left,jQuery top: position.top,jQuery width: elemWidth,jQuery height: elemHeightjQuery },jQuery horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",jQuery vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"jQuery };jQuery if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {jQuery feedback.horizontal = "center";jQuery }jQuery if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {jQuery feedback.vertical = "middle";jQuery }jQuery if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {jQuery feedback.important = "horizontal";jQuery } else {jQuery feedback.important = "vertical";jQuery }jQuery options.using.call( this, props, feedback );jQuery };jQuery }jQuery jQuery elem.offset( $.extend( position, { using: using } ) );jQuery });jQuery };jQuery jQuery $.ui.position = {jQuery fit: {jQuery left: function( position, data ) {jQuery var within = data.within,jQuery withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,jQuery outerWidth = within.width,jQuery collisionPosLeft = position.left - data.collisionPosition.marginLeft,jQuery overLeft = withinOffset - collisionPosLeft,jQuery overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,jQuery newOverRight;jQuery jQuery // element is wider than withinjQuery if ( data.collisionWidth > outerWidth ) {jQuery // element is initially over the left side of withinjQuery if ( overLeft > 0 && overRight <= 0 ) {jQuery newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;jQuery position.left += overLeft - newOverRight;jQuery // element is initially over right side of withinjQuery } else if ( overRight > 0 && overLeft <= 0 ) {jQuery position.left = withinOffset;jQuery // element is initially over both left and right sides of withinjQuery } else {jQuery if ( overLeft > overRight ) {jQuery position.left = withinOffset + outerWidth - data.collisionWidth;jQuery } else {jQuery position.left = withinOffset;jQuery }jQuery }jQuery // too far left -> align with left edgejQuery } else if ( overLeft > 0 ) {jQuery position.left += overLeft;jQuery // too far right -> align with right edgejQuery } else if ( overRight > 0 ) {jQuery position.left -= overRight;jQuery // adjust based on position and marginjQuery } else {jQuery position.left = max( position.left - collisionPosLeft, position.left );jQuery }jQuery },jQuery top: function( position, data ) {jQuery var within = data.within,jQuery withinOffset = within.isWindow ? within.scrollTop : within.offset.top,jQuery outerHeight = data.within.height,jQuery collisionPosTop = position.top - data.collisionPosition.marginTop,jQuery overTop = withinOffset - collisionPosTop,jQuery overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,jQuery newOverBottom;jQuery jQuery // element is taller than withinjQuery if ( data.collisionHeight > outerHeight ) {jQuery // element is initially over the top of withinjQuery if ( overTop > 0 && overBottom <= 0 ) {jQuery newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;jQuery position.top += overTop - newOverBottom;jQuery // element is initially over bottom of withinjQuery } else if ( overBottom > 0 && overTop <= 0 ) {jQuery position.top = withinOffset;jQuery // element is initially over both top and bottom of withinjQuery } else {jQuery if ( overTop > overBottom ) {jQuery position.top = withinOffset + outerHeight - data.collisionHeight;jQuery } else {jQuery position.top = withinOffset;jQuery }jQuery }jQuery // too far up -> align with topjQuery } else if ( overTop > 0 ) {jQuery position.top += overTop;jQuery // too far down -> align with bottom edgejQuery } else if ( overBottom > 0 ) {jQuery position.top -= overBottom;jQuery // adjust based on position and marginjQuery } else {jQuery position.top = max( position.top - collisionPosTop, position.top );jQuery }jQuery }jQuery },jQuery flip: {jQuery left: function( position, data ) {jQuery var within = data.within,jQuery withinOffset = within.offset.left + within.scrollLeft,jQuery outerWidth = within.width,jQuery offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,jQuery collisionPosLeft = position.left - data.collisionPosition.marginLeft,jQuery overLeft = collisionPosLeft - offsetLeft,jQuery overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,jQuery myOffset = data.my[ 0 ] === "left" ?jQuery -data.elemWidth :jQuery data.my[ 0 ] === "right" ?jQuery data.elemWidth :jQuery 0,jQuery atOffset = data.at[ 0 ] === "left" ?jQuery data.targetWidth :jQuery data.at[ 0 ] === "right" ?jQuery -data.targetWidth :jQuery 0,jQuery offset = -2 * data.offset[ 0 ],jQuery newOverRight,jQuery newOverLeft;jQuery jQuery if ( overLeft < 0 ) {jQuery newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;jQuery if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {jQuery position.left += myOffset + atOffset + offset;jQuery }jQuery }jQuery else if ( overRight > 0 ) {jQuery newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;jQuery if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {jQuery position.left += myOffset + atOffset + offset;jQuery }jQuery }jQuery },jQuery top: function( position, data ) {jQuery var within = data.within,jQuery withinOffset = within.offset.top + within.scrollTop,jQuery outerHeight = within.height,jQuery offsetTop = within.isWindow ? within.scrollTop : within.offset.top,jQuery collisionPosTop = position.top - data.collisionPosition.marginTop,jQuery overTop = collisionPosTop - offsetTop,jQuery overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,jQuery top = data.my[ 1 ] === "top",jQuery myOffset = top ?jQuery -data.elemHeight :jQuery data.my[ 1 ] === "bottom" ?jQuery data.elemHeight :jQuery 0,jQuery atOffset = data.at[ 1 ] === "top" ?jQuery data.targetHeight :jQuery data.at[ 1 ] === "bottom" ?jQuery -data.targetHeight :jQuery 0,jQuery offset = -2 * data.offset[ 1 ],jQuery newOverTop,jQuery newOverBottom;jQuery if ( overTop < 0 ) {jQuery newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;jQuery if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) {jQuery position.top += myOffset + atOffset + offset;jQuery }jQuery }jQuery else if ( overBottom > 0 ) {jQuery newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;jQuery if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) {jQuery position.top += myOffset + atOffset + offset;jQuery }jQuery }jQuery }jQuery },jQuery flipfit: {jQuery left: function() {jQuery $.ui.position.flip.left.apply( this, arguments );jQuery $.ui.position.fit.left.apply( this, arguments );jQuery },jQuery top: function() {jQuery $.ui.position.flip.top.apply( this, arguments );jQuery $.ui.position.fit.top.apply( this, arguments );jQuery }jQuery }jQuery };jQuery jQuery // fraction support testjQuery (function () {jQuery var testElement, testElementParent, testElementStyle, offsetLeft, i,jQuery body = document.getElementsByTagName( "body" )[ 0 ],jQuery div = document.createElement( "div" );jQuery jQuery //Create a "fake body" for testing based on method used in jQuery.supportjQuery testElement = document.createElement( body ? "div" : "body" );jQuery testElementStyle = {jQuery visibility: "hidden",jQuery width: 0,jQuery height: 0,jQuery border: 0,jQuery margin: 0,jQuery background: "none"jQuery };jQuery if ( body ) {jQuery $.extend( testElementStyle, {jQuery position: "absolute",jQuery left: "-1000px",jQuery top: "-1000px"jQuery });jQuery }jQuery for ( i in testElementStyle ) {jQuery testElement.style[ i ] = testElementStyle[ i ];jQuery }jQuery testElement.appendChild( div );jQuery testElementParent = body || document.documentElement;jQuery testElementParent.insertBefore( testElement, testElementParent.firstChild );jQuery jQuery div.style.cssText = "position: absolute; left: 10.7432222px;";jQuery jQuery offsetLeft = $( div ).offset().left;jQuery $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;jQuery jQuery testElement.innerHTML = "";jQuery testElementParent.removeChild( testElement );jQuery })();jQuery jQuery }( jQuery ) );jQuery (function( $, undefined ) {jQuery jQuery var uid = 0,jQuery hideProps = {},jQuery showProps = {};jQuery jQuery hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =jQuery hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";jQuery showProps.height = showProps.paddingTop = showProps.paddingBottom =jQuery showProps.borderTopWidth = showProps.borderBottomWidth = "show";jQuery jQuery $.widget( "ui.accordion", {jQuery version: "1.10.4",jQuery options: {jQuery active: 0,jQuery animate: {},jQuery collapsible: false,jQuery event: "click",jQuery header: "> li > :first-child,> :not(li):even",jQuery heightStyle: "auto",jQuery icons: {jQuery activeHeader: "ui-icon-triangle-1-s",jQuery header: "ui-icon-triangle-1-e"jQuery },jQuery jQuery // callbacksjQuery activate: null,jQuery beforeActivate: nulljQuery },jQuery jQuery _create: function() {jQuery var options = this.options;jQuery this.prevShow = this.prevHide = $();jQuery this.element.addClass( "ui-accordion ui-widget ui-helper-reset" )jQuery // ARIAjQuery .attr( "role", "tablist" );jQuery jQuery // don't allow collapsible: false and active: false / nulljQuery if ( !options.collapsible && (options.active === false || options.active == null) ) {jQuery options.active = 0;jQuery }jQuery jQuery this._processPanels();jQuery // handle negative valuesjQuery if ( options.active < 0 ) {jQuery options.active += this.headers.length;jQuery }jQuery this._refresh();jQuery },jQuery jQuery _getCreateEventData: function() {jQuery return {jQuery header: this.active,jQuery panel: !this.active.length ? $() : this.active.next(),jQuery content: !this.active.length ? $() : this.active.next()jQuery };jQuery },jQuery jQuery _createIcons: function() {jQuery var icons = this.options.icons;jQuery if ( icons ) {jQuery $( "" )jQuery .addClass( "ui-accordion-header-icon ui-icon " + icons.header )jQuery .prependTo( this.headers );jQuery this.active.children( ".ui-accordion-header-icon" )jQuery .removeClass( icons.header )jQuery .addClass( icons.activeHeader );jQuery this.headers.addClass( "ui-accordion-icons" );jQuery }jQuery },jQuery jQuery _destroyIcons: function() {jQuery this.headersjQuery .removeClass( "ui-accordion-icons" )jQuery .children( ".ui-accordion-header-icon" )jQuery .remove();jQuery },jQuery jQuery _destroy: function() {jQuery var contents;jQuery jQuery // clean up main elementjQuery this.elementjQuery .removeClass( "ui-accordion ui-widget ui-helper-reset" )jQuery .removeAttr( "role" );jQuery jQuery // clean up headersjQuery this.headersjQuery .removeClass( "ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )jQuery .removeAttr( "role" )jQuery .removeAttr( "aria-expanded" )jQuery .removeAttr( "aria-selected" )jQuery .removeAttr( "aria-controls" )jQuery .removeAttr( "tabIndex" )jQuery .each(function() {jQuery if ( /^ui-accordion/.test( this.id ) ) {jQuery this.removeAttribute( "id" );jQuery }jQuery });jQuery this._destroyIcons();jQuery jQuery // clean up content panelsjQuery contents = this.headers.next()jQuery .css( "display", "" )jQuery .removeAttr( "role" )jQuery .removeAttr( "aria-hidden" )jQuery .removeAttr( "aria-labelledby" )jQuery .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled" )jQuery .each(function() {jQuery if ( /^ui-accordion/.test( this.id ) ) {jQuery this.removeAttribute( "id" );jQuery }jQuery });jQuery if ( this.options.heightStyle !== "content" ) {jQuery contents.css( "height", "" );jQuery }jQuery },jQuery jQuery _setOption: function( key, value ) {jQuery if ( key === "active" ) {jQuery // _activate() will handle invalid values and update this.optionsjQuery this._activate( value );jQuery return;jQuery }jQuery jQuery if ( key === "event" ) {jQuery if ( this.options.event ) {jQuery this._off( this.headers, this.options.event );jQuery }jQuery this._setupEvents( value );jQuery }jQuery jQuery this._super( key, value );jQuery jQuery // setting collapsible: false while collapsed; open first paneljQuery if ( key === "collapsible" && !value && this.options.active === false ) {jQuery this._activate( 0 );jQuery }jQuery jQuery if ( key === "icons" ) {jQuery this._destroyIcons();jQuery if ( value ) {jQuery this._createIcons();jQuery }jQuery }jQuery jQuery // #5332 - opacity doesn't cascade to positioned elements in IEjQuery // so we need to add the disabled class to the headers and panelsjQuery if ( key === "disabled" ) {jQuery this.headers.add( this.headers.next() )jQuery .toggleClass( "ui-state-disabled", !!value );jQuery }jQuery },jQuery jQuery _keydown: function( event ) {jQuery if ( event.altKey || event.ctrlKey ) {jQuery return;jQuery }jQuery jQuery var keyCode = $.ui.keyCode,jQuery length = this.headers.length,jQuery currentIndex = this.headers.index( event.target ),jQuery toFocus = false;jQuery jQuery switch ( event.keyCode ) {jQuery case keyCode.RIGHT:jQuery case keyCode.DOWN:jQuery toFocus = this.headers[ ( currentIndex + 1 ) % length ];jQuery break;jQuery case keyCode.LEFT:jQuery case keyCode.UP:jQuery toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];jQuery break;jQuery case keyCode.SPACE:jQuery case keyCode.ENTER:jQuery this._eventHandler( event );jQuery break;jQuery case keyCode.HOME:jQuery toFocus = this.headers[ 0 ];jQuery break;jQuery case keyCode.END:jQuery toFocus = this.headers[ length - 1 ];jQuery break;jQuery }jQuery jQuery if ( toFocus ) {jQuery $( event.target ).attr( "tabIndex", -1 );jQuery $( toFocus ).attr( "tabIndex", 0 );jQuery toFocus.focus();jQuery event.preventDefault();jQuery }jQuery },jQuery jQuery _panelKeyDown : function( event ) {jQuery if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {jQuery $( event.currentTarget ).prev().focus();jQuery }jQuery },jQuery jQuery refresh: function() {jQuery var options = this.options;jQuery this._processPanels();jQuery jQuery // was collapsed or no paneljQuery if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {jQuery options.active = false;jQuery this.active = $();jQuery // active false only when collapsible is truejQuery } else if ( options.active === false ) {jQuery this._activate( 0 );jQuery // was active, but active panel is gonejQuery } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {jQuery // all remaining panel are disabledjQuery if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) {jQuery options.active = false;jQuery this.active = $();jQuery // activate previous paneljQuery } else {jQuery this._activate( Math.max( 0, options.active - 1 ) );jQuery }jQuery // was active, active panel still existsjQuery } else {jQuery // make sure active index is correctjQuery options.active = this.headers.index( this.active );jQuery }jQuery jQuery this._destroyIcons();jQuery jQuery this._refresh();jQuery },jQuery jQuery _processPanels: function() {jQuery this.headers = this.element.find( this.options.header )jQuery .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" );jQuery jQuery this.headers.next()jQuery .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )jQuery .filter(":not(.ui-accordion-content-active)")jQuery .hide();jQuery },jQuery jQuery _refresh: function() {jQuery var maxHeight,jQuery options = this.options,jQuery heightStyle = options.heightStyle,jQuery parent = this.element.parent(),jQuery accordionId = this.accordionId = "ui-accordion-" +jQuery (this.element.attr( "id" ) || ++uid);jQuery jQuery this.active = this._findActive( options.active )jQuery .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" )jQuery .removeClass( "ui-corner-all" );jQuery this.active.next()jQuery .addClass( "ui-accordion-content-active" )jQuery .show();jQuery jQuery this.headersjQuery .attr( "role", "tab" )jQuery .each(function( i ) {jQuery var header = $( this ),jQuery headerId = header.attr( "id" ),jQuery panel = header.next(),jQuery panelId = panel.attr( "id" );jQuery if ( !headerId ) {jQuery headerId = accordionId + "-header-" + i;jQuery header.attr( "id", headerId );jQuery }jQuery if ( !panelId ) {jQuery panelId = accordionId + "-panel-" + i;jQuery panel.attr( "id", panelId );jQuery }jQuery header.attr( "aria-controls", panelId );jQuery panel.attr( "aria-labelledby", headerId );jQuery })jQuery .next()jQuery .attr( "role", "tabpanel" );jQuery jQuery this.headersjQuery .not( this.active )jQuery .attr({jQuery "aria-selected": "false",jQuery "aria-expanded": "false",jQuery tabIndex: -1jQuery })jQuery .next()jQuery .attr({jQuery "aria-hidden": "true"jQuery })jQuery .hide();jQuery jQuery // make sure at least one header is in the tab orderjQuery if ( !this.active.length ) {jQuery this.headers.eq( 0 ).attr( "tabIndex", 0 );jQuery } else {jQuery this.active.attr({jQuery "aria-selected": "true",jQuery "aria-expanded": "true",jQuery tabIndex: 0jQuery })jQuery .next()jQuery .attr({jQuery "aria-hidden": "false"jQuery });jQuery }jQuery jQuery this._createIcons();jQuery jQuery this._setupEvents( options.event );jQuery jQuery if ( heightStyle === "fill" ) {jQuery maxHeight = parent.height();jQuery this.element.siblings( ":visible" ).each(function() {jQuery var elem = $( this ),jQuery position = elem.css( "position" );jQuery jQuery if ( position === "absolute" || position === "fixed" ) {jQuery return;jQuery }jQuery maxHeight -= elem.outerHeight( true );jQuery });jQuery jQuery this.headers.each(function() {jQuery maxHeight -= $( this ).outerHeight( true );jQuery });jQuery jQuery this.headers.next()jQuery .each(function() {jQuery $( this ).height( Math.max( 0, maxHeight -jQuery $( this ).innerHeight() + $( this ).height() ) );jQuery })jQuery .css( "overflow", "auto" );jQuery } else if ( heightStyle === "auto" ) {jQuery maxHeight = 0;jQuery this.headers.next()jQuery .each(function() {jQuery maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );jQuery })jQuery .height( maxHeight );jQuery }jQuery },jQuery jQuery _activate: function( index ) {jQuery var active = this._findActive( index )[ 0 ];jQuery jQuery // trying to activate the already active paneljQuery if ( active === this.active[ 0 ] ) {jQuery return;jQuery }jQuery jQuery // trying to collapse, simulate a click on the currently active headerjQuery active = active || this.active[ 0 ];jQuery jQuery this._eventHandler({jQuery target: active,jQuery currentTarget: active,jQuery preventDefault: $.noopjQuery });jQuery },jQuery jQuery _findActive: function( selector ) {jQuery return typeof selector === "number" ? this.headers.eq( selector ) : $();jQuery },jQuery jQuery _setupEvents: function( event ) {jQuery var events = {jQuery keydown: "_keydown"jQuery };jQuery if ( event ) {jQuery $.each( event.split(" "), function( index, eventName ) {jQuery events[ eventName ] = "_eventHandler";jQuery });jQuery }jQuery jQuery this._off( this.headers.add( this.headers.next() ) );jQuery this._on( this.headers, events );jQuery this._on( this.headers.next(), { keydown: "_panelKeyDown" });jQuery this._hoverable( this.headers );jQuery this._focusable( this.headers );jQuery },jQuery jQuery _eventHandler: function( event ) {jQuery var options = this.options,jQuery active = this.active,jQuery clicked = $( event.currentTarget ),jQuery clickedIsActive = clicked[ 0 ] === active[ 0 ],jQuery collapsing = clickedIsActive && options.collapsible,jQuery toShow = collapsing ? $() : clicked.next(),jQuery toHide = active.next(),jQuery eventData = {jQuery oldHeader: active,jQuery oldPanel: toHide,jQuery newHeader: collapsing ? $() : clicked,jQuery newPanel: toShowjQuery };jQuery jQuery event.preventDefault();jQuery jQuery if (jQuery // click on active header, but not collapsiblejQuery ( clickedIsActive && !options.collapsible ) ||jQuery // allow canceling activationjQuery ( this._trigger( "beforeActivate", event, eventData ) === false ) ) {jQuery return;jQuery }jQuery jQuery options.active = collapsing ? false : this.headers.index( clicked );jQuery jQuery // when the call to ._toggle() comes after the class changesjQuery // it causes a very odd bug in IE 8 (see #6720)jQuery this.active = clickedIsActive ? $() : clicked;jQuery this._toggle( eventData );jQuery jQuery // switch classesjQuery // corner classes on the previously active header stay after the animationjQuery active.removeClass( "ui-accordion-header-active ui-state-active" );jQuery if ( options.icons ) {jQuery active.children( ".ui-accordion-header-icon" )jQuery .removeClass( options.icons.activeHeader )jQuery .addClass( options.icons.header );jQuery }jQuery jQuery if ( !clickedIsActive ) {jQuery clickedjQuery .removeClass( "ui-corner-all" )jQuery .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" );jQuery if ( options.icons ) {jQuery clicked.children( ".ui-accordion-header-icon" )jQuery .removeClass( options.icons.header )jQuery .addClass( options.icons.activeHeader );jQuery }jQuery jQuery clickedjQuery .next()jQuery .addClass( "ui-accordion-content-active" );jQuery }jQuery },jQuery jQuery _toggle: function( data ) {jQuery var toShow = data.newPanel,jQuery toHide = this.prevShow.length ? this.prevShow : data.oldPanel;jQuery jQuery // handle activating a panel during the animation for another activationjQuery this.prevShow.add( this.prevHide ).stop( true, true );jQuery this.prevShow = toShow;jQuery this.prevHide = toHide;jQuery jQuery if ( this.options.animate ) {jQuery this._animate( toShow, toHide, data );jQuery } else {jQuery toHide.hide();jQuery toShow.show();jQuery this._toggleComplete( data );jQuery }jQuery jQuery toHide.attr({jQuery "aria-hidden": "true"jQuery });jQuery toHide.prev().attr( "aria-selected", "false" );jQuery // if we're switching panels, remove the old header from the tab orderjQuery // if we're opening from collapsed state, remove the previous header from the tab orderjQuery // if we're collapsing, then keep the collapsing header in the tab orderjQuery if ( toShow.length && toHide.length ) {jQuery toHide.prev().attr({jQuery "tabIndex": -1,jQuery "aria-expanded": "false"jQuery });jQuery } else if ( toShow.length ) {jQuery this.headers.filter(function() {jQuery return $( this ).attr( "tabIndex" ) === 0;jQuery })jQuery .attr( "tabIndex", -1 );jQuery }jQuery jQuery toShowjQuery .attr( "aria-hidden", "false" )jQuery .prev()jQuery .attr({jQuery "aria-selected": "true",jQuery tabIndex: 0,jQuery "aria-expanded": "true"jQuery });jQuery },jQuery jQuery _animate: function( toShow, toHide, data ) {jQuery var total, easing, duration,jQuery that = this,jQuery adjust = 0,jQuery down = toShow.length &&jQuery ( !toHide.length || ( toShow.index() < toHide.index() ) ),jQuery animate = this.options.animate || {},jQuery options = down && animate.down || animate,jQuery complete = function() {jQuery that._toggleComplete( data );jQuery };jQuery jQuery if ( typeof options === "number" ) {jQuery duration = options;jQuery }jQuery if ( typeof options === "string" ) {jQuery easing = options;jQuery }jQuery // fall back from options to animation in case of partial down settingsjQuery easing = easing || options.easing || animate.easing;jQuery duration = duration || options.duration || animate.duration;jQuery jQuery if ( !toHide.length ) {jQuery return toShow.animate( showProps, duration, easing, complete );jQuery }jQuery if ( !toShow.length ) {jQuery return toHide.animate( hideProps, duration, easing, complete );jQuery }jQuery jQuery total = toShow.show().outerHeight();jQuery toHide.animate( hideProps, {jQuery duration: duration,jQuery easing: easing,jQuery step: function( now, fx ) {jQuery fx.now = Math.round( now );jQuery }jQuery });jQuery toShowjQuery .hide()jQuery .animate( showProps, {jQuery duration: duration,jQuery easing: easing,jQuery complete: complete,jQuery step: function( now, fx ) {jQuery fx.now = Math.round( now );jQuery if ( fx.prop !== "height" ) {jQuery adjust += fx.now;jQuery } else if ( that.options.heightStyle !== "content" ) {jQuery fx.now = Math.round( total - toHide.outerHeight() - adjust );jQuery adjust = 0;jQuery }jQuery }jQuery });jQuery },jQuery jQuery _toggleComplete: function( data ) {jQuery var toHide = data.oldPanel;jQuery jQuery toHidejQuery .removeClass( "ui-accordion-content-active" )jQuery .prev()jQuery .removeClass( "ui-corner-top" )jQuery .addClass( "ui-corner-all" );jQuery jQuery // Work around for rendering bug in IE (#5421)jQuery if ( toHide.length ) {jQuery toHide.parent()[0].className = toHide.parent()[0].className;jQuery }jQuery this._trigger( "activate", null, data );jQuery }jQuery });jQuery jQuery })( jQuery );jQuery (function( $, undefined ) {jQuery jQuery $.widget( "ui.autocomplete", {jQuery version: "1.10.4",jQuery defaultElement: "",jQuery options: {jQuery appendTo: null,jQuery autoFocus: false,jQuery delay: 300,jQuery minLength: 1,jQuery position: {jQuery my: "left top",jQuery at: "left bottom",jQuery collision: "none"jQuery },jQuery source: null,jQuery jQuery // callbacksjQuery change: null,jQuery close: null,jQuery focus: null,jQuery open: null,jQuery response: null,jQuery search: null,jQuery select: nulljQuery },jQuery jQuery requestIndex: 0,jQuery pending: 0,jQuery jQuery _create: function() {jQuery // Some browsers only repeat keydown events, not keypress events,jQuery // so we use the suppressKeyPress flag to determine if we've alreadyjQuery // handled the keydown event. #7269jQuery // Unfortunately the code for & in keypress is the same as the up arrow,jQuery // so we use the suppressKeyPressRepeat flag to avoid handling keypressjQuery // events when we know the keydown event was used to modify thejQuery // search term. #7799jQuery var suppressKeyPress, suppressKeyPressRepeat, suppressInput,jQuery nodeName = this.element[0].nodeName.toLowerCase(),jQuery isTextarea = nodeName === "textarea",jQuery isInput = nodeName === "input";jQuery jQuery this.isMultiLine =jQuery // Textareas are always multi-linejQuery isTextarea ? true :jQuery // Inputs are always single-line, even if inside a contentEditable elementjQuery // IE also treats inputs as contentEditablejQuery isInput ? false :jQuery // All other element types are determined by whether or not they're contentEditablejQuery this.element.prop( "isContentEditable" );jQuery jQuery this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];jQuery this.isNewMenu = true;jQuery jQuery this.elementjQuery .addClass( "ui-autocomplete-input" )jQuery .attr( "autocomplete", "off" );jQuery jQuery this._on( this.element, {jQuery keydown: function( event ) {jQuery if ( this.element.prop( "readOnly" ) ) {jQuery suppressKeyPress = true;jQuery suppressInput = true;jQuery suppressKeyPressRepeat = true;jQuery return;jQuery }jQuery jQuery suppressKeyPress = false;jQuery suppressInput = false;jQuery suppressKeyPressRepeat = false;jQuery var keyCode = $.ui.keyCode;jQuery switch( event.keyCode ) {jQuery case keyCode.PAGE_UP:jQuery suppressKeyPress = true;jQuery this._move( "previousPage", event );jQuery break;jQuery case keyCode.PAGE_DOWN:jQuery suppressKeyPress = true;jQuery this._move( "nextPage", event );jQuery break;jQuery case keyCode.UP:jQuery suppressKeyPress = true;jQuery this._keyEvent( "previous", event );jQuery break;jQuery case keyCode.DOWN:jQuery suppressKeyPress = true;jQuery this._keyEvent( "next", event );jQuery break;jQuery case keyCode.ENTER:jQuery case keyCode.NUMPAD_ENTER:jQuery // when menu is open and has focusjQuery if ( this.menu.active ) {jQuery // #6055 - Opera still allows the keypress to occurjQuery // which causes forms to submitjQuery suppressKeyPress = true;jQuery event.preventDefault();jQuery this.menu.select( event );jQuery }jQuery break;jQuery case keyCode.TAB:jQuery if ( this.menu.active ) {jQuery this.menu.select( event );jQuery }jQuery break;jQuery case keyCode.ESCAPE:jQuery if ( this.menu.element.is( ":visible" ) ) {jQuery this._value( this.term );jQuery this.close( event );jQuery // Different browsers have different default behavior for escapejQuery // Single press can mean undo or clearjQuery // Double press in IE means clear the whole formjQuery event.preventDefault();jQuery }jQuery break;jQuery default:jQuery suppressKeyPressRepeat = true;jQuery // search timeout should be triggered before the input value is changedjQuery this._searchTimeout( event );jQuery break;jQuery }jQuery },jQuery keypress: function( event ) {jQuery if ( suppressKeyPress ) {jQuery suppressKeyPress = false;jQuery if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {jQuery event.preventDefault();jQuery }jQuery return;jQuery }jQuery if ( suppressKeyPressRepeat ) {jQuery return;jQuery }jQuery jQuery // replicate some key handlers to allow them to repeat in Firefox and OperajQuery var keyCode = $.ui.keyCode;jQuery switch( event.keyCode ) {jQuery case keyCode.PAGE_UP:jQuery this._move( "previousPage", event );jQuery break;jQuery case keyCode.PAGE_DOWN:jQuery this._move( "nextPage", event );jQuery break;jQuery case keyCode.UP:jQuery this._keyEvent( "previous", event );jQuery break;jQuery case keyCode.DOWN:jQuery this._keyEvent( "next", event );jQuery break;jQuery }jQuery },jQuery input: function( event ) {jQuery if ( suppressInput ) {jQuery suppressInput = false;jQuery event.preventDefault();jQuery return;jQuery }jQuery this._searchTimeout( event );jQuery },jQuery focus: function() {jQuery this.selectedItem = null;jQuery this.previous = this._value();jQuery },jQuery blur: function( event ) {jQuery if ( this.cancelBlur ) {jQuery delete this.cancelBlur;jQuery return;jQuery }jQuery jQuery clearTimeout( this.searching );jQuery this.close( event );jQuery this._change( event );jQuery }jQuery });jQuery jQuery this._initSource();jQuery this.menu = $( "