;(function($){var
undefined,_plugins={static:[],instance:[]},_options={};$.extend($.plugin={},_init(false));$.fn.extend($.fn.plugin={},_init(true));$.config=function(plugin,opts){if(typeof opts==='undefined')
return _options[plugin]||undefined;_options[plugin]=$.extend(_options[plugin],opts);return $;};$.fn.config=function(plugin,opts){var $this=$(this);if(typeof opts==='undefined')
return $this.data(plugin+'.config');return $this.each(function(){var
$this=$(this),curOpts=$this.data(plugin+'.config')||{};$this.data(plugin+'.config',$.extend(curOpts,opts));});};function _init(fn){return{add:function(name,func){return _add(fn,name,func);},remove:function(name){return _remove(fn,name);},has:function(name){return _has(fn,name);},list:function(){return _list(fn);}};};function _add(fn,name,func){var config={};var applyTo=_applyTo(fn);var staticOrInstance=_staticOrInstance(fn);var func=$.isFunction(func)?func:function(){};function _constructor(jq,args){if(fn){this.length=0;this.selector=jq.selector;this.context=jq.context;Array.prototype.push.apply(this,$.makeArray(jq));}
func.apply(this,args);return this;};applyTo[name]=function(){return new _constructor(this,arguments);};for(var i in func){applyTo[name][i]=_constructor[i]=func[i];}
applyTo[name].fn=applyTo[name].prototype=_constructor.prototype=func.prototype;applyTo[name].fn.$=applyTo[name].fn.jQuery=function(){return $(this);};applyTo[name].config=function(k,v){if(typeof k==='undefined'){return config;}
if(typeof k==='object'){for(var i in k){applyTo[name].config(i,k[i]);}}
if(typeof k==='string'){if(typeof v==='undefined'){return config[k];}
config[k]=v;}
return applyTo[name];}
applyTo[name].fn.config=function(k,v){var obj=$(this);var dataKey=name+'.config';var data=obj.data(dataKey);if(typeof k==='undefined'){return data;}
if(typeof k==='object'){for(var i in k){this.config(i,k[i]);}}
if(typeof k==='string'){if(typeof v==='undefined'){return data[k];}
if(typeof data==='undefined'){data={};}
data[k]=v;obj.data(dataKey,data);}
return this;}
_plugins[staticOrInstance][_plugins[staticOrInstance].length]=name;delete func;return applyTo;};function _remove(fn,name){var
applyTo=_applyTo(fn),staticOrInstance=_staticOrInstance(fn),index=$.inArray(name,_plugins[staticOrInstance]);if(index>-1){_plugins[staticOrInstance].splice(index,1);applyTo[name]=undefined;}
return applyTo;};function _has(fn,name){return $.inArray(name,_plugins[_staticOrInstance(fn)])>-1;};function _list(fn){return _plugins[_staticOrInstance(fn)];};function _applyTo(fn){return fn?$.fn:$;};function _staticOrInstance(fn){return fn?'instance':'static';};})(jQuery);