(function($){var h=$.fn.remove;$.fn.remove=function(a,b){return this.each(function(){if(!b){if(!a||$.filter(a,[this]).length){$("*",this).add(this).each(function(){$(this).triggerHandler("remove")})}}return h.call($(this),a,b)})};$.widget=function(c,d,e){var f=c.split(".")[0],fullName;c=c.split(".")[1];fullName=f+"-"+c;if(!e){e=d;d=$.Widget}$.expr[":"][fullName]=function(a){return!!$.data(a,c)};$[f]=$[f]||{};$[f][c]=function(a,b){if(arguments.length){this._createWidget(a,b)}};var g=new d();g.options=$.extend({},g.options);$[f][c].prototype=$.extend(true,g,{namespace:f,widgetName:c,widgetEventPrefix:$[f][c].prototype.widgetEventPrefix||c,widgetBaseClass:fullName},e);$.widget.bridge(c,$[f][c])};$.widget.bridge=function(d,e){$.fn[d]=function(b){var c=typeof b==="string",args=Array.prototype.slice.call(arguments,1),returnValue=this;b=!c&&args.length?$.extend.apply(null,[true,b].concat(args)):b;if(c&&b.substring(0,1)==="_"){return returnValue}if(c){this.each(function(){var a=$.data(this,d),methodValue=a&&$.isFunction(a[b])?a[b].apply(a,args):a;if(methodValue!==a&&methodValue!==undefined){returnValue=methodValue;return false}})}else{this.each(function(){var a=$.data(this,d);if(a){if(b){a.option(b)}a._init()}else{$.data(this,d,new e(b,this))}})}return returnValue}};$.Widget=function(a,b){if(arguments.length){this._createWidget(a,b)}};$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,b){this.element=$(b).data(this.widgetName,this);this.options=$.extend(true,{},this.options,$.metadata&&$.metadata.get(b)[this.widgetName],a);var c=this;this.element.bind("remove."+this.widgetName,function(){c.destroy()});this._create();this._init()},_create:function(){},_init:function(){},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(c,d){var e=c,self=this;if(arguments.length===0){return $.extend({},self.options)}if(typeof c==="string"){if(d===undefined){return this.options[c]}e={};e[c]=d}$.each(e,function(a,b){self._setOption(a,b)});return self},_setOption:function(a,b){this.options[a]=b;if(a==="disabled"){this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+this.namespace+"-state-disabled").attr("aria-disabled",b)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,b,c){var d=this.options[a];b=$.Event(b);b.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();c=c||{};if(b.originalEvent){for(var i=$.event.props.length,prop;i;){prop=$.event.props[--i];b[prop]=b.originalEvent[prop]}}this.element.trigger(b,c);return!($.isFunction(d)&&d.call(this.element[0],b,c)===false||b.isDefaultPrevented())}}})(jQuery);
