!function(t){var e=t.fn.remove;t.fn.remove=function(){return t("*",this).add(this).each(function(){t(this).triggerHandler("remove")}),e.apply(this,arguments)},t.widget=function(e,i,n){var s,a=e.split(".")[0];e=e.split(".")[1],s=a+"-"+e,n||(n=i,i=t.Widget),t.expr[":"][s]=function(i){return!!t.data(i,e)},t[a]=t[a]||{},t[a][e]=function(t,e){arguments.length&&this._createWidget(t,e)};var r=new i;r.options=t.extend({},r.options),t[a][e].prototype=t.extend(!0,r,{namespace:a,widgetName:e,widgetEventPrefix:t[a][e].prototype.widgetEventPrefix||e,widgetBaseClass:s},n),t.widget.bridge(e,t[a][e])},t.widget.bridge=function(e,i){t.fn[e]=function(n){var s="string"==typeof n,a=Array.prototype.slice.call(arguments,1),r=this;return n=!s&&a.length?t.extend.apply(null,[!0,n].concat(a)):n,s&&"_"==n.substring(0,1)?r:(this.each(s?function(){var i=t.data(this,e),s=i&&t.isFunction(i[n])?i[n].apply(i,a):i;return s!==i&&void 0!==s?(r=s,!1):void 0}:function(){t.data(this,e)||t.data(this,e,new i(n,this))}),r)}},t.Widget=function(t,e){arguments.length&&this._createWidget(t,e)},t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(e,i){this.element=t(i).data(this.widgetName,this),this.options=t.extend(!0,{},this.options,t[this.namespace][this.widgetName].defaults,t.metadata&&t.metadata.get(i)[this.widgetName],e);var n=this;this.element.bind("remove."+this.widgetName,function(){n.destroy()}),this._create&&this._create(e,i),this._init&&this._init()},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled")},widget:function(){return this.element},option:function(e,i){var n=e,s=this;if(0===arguments.length)return t.extend({},s.options);if("string"==typeof e){if(void 0===i)return this.options[e];n={},n[e]=i}return t.each(n,function(t,e){s._setOption(t,e)}),s},_setOption:function(t,e){return this.options[t]=e,"disabled"==t&&this.widget()[e?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",e),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(e,i,n){var s=this.options[e];if(i=t.Event(i),i.type=(e==this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),n=n||{},i.originalEvent)for(var a,r=t.event.props.length;r;)a=t.event.props[--r],i[a]=i.originalEvent[a];return this.element.trigger(i,n),!(t.isFunction(s)&&s.call(this.element[0],i,n)===!1||i.isDefaultPrevented())}},t.widget.prototype=t.Widget.prototype}(jQuery);