From 64cb528f62cc2cf7573c5a9fc0a285212183e205 Mon Sep 17 00:00:00 2001
From: Kevin Brown
Date: Thu, 8 Jan 2015 11:41:28 -0500
Subject: [PATCH] Set up a public event relay
Now Select2 can fire jQuery events that will match the corresponding
internal events. The `open` and `close` events are now publicly
accessible.
The selection adapter was chosen because it is the least likely to
be moved, but handles the most common events. This `EventRelay`
decorator should theoretically be able to decorate any of the
adapters, as they all have the `bind` method that it needs.
---
dist/js/select2.amd.full.js | 33 +++++++++++++-
dist/js/select2.amd.js | 33 +++++++++++++-
dist/js/select2.full.js | 33 +++++++++++++-
dist/js/select2.full.min.js | 4 +-
dist/js/select2.js | 33 +++++++++++++-
dist/js/select2.min.js | 4 +-
docs/examples.html | 63 ++++++++++++++++++++++++++
docs/index.html | 4 +-
docs/options.html | 39 ++++++++++++++++
src/js/select2/defaults.js | 8 +++-
src/js/select2/selection/eventRelay.js | 24 ++++++++++
11 files changed, 267 insertions(+), 11 deletions(-)
create mode 100644 src/js/select2/selection/eventRelay.js
diff --git a/dist/js/select2.amd.full.js b/dist/js/select2.amd.full.js
index 06463a59..8bd8e4b4 100644
--- a/dist/js/select2.amd.full.js
+++ b/dist/js/select2.amd.full.js
@@ -1226,6 +1226,31 @@ define('select2/selection/search',[
return Search;
});
+define('select2/selection/eventRelay',[
+ 'jquery'
+], function ($) {
+ function EventRelay () { }
+
+ EventRelay.prototype.bind = function (decorated, container, $container) {
+ var self = this;
+ var relayEvents = ['open', 'close'];
+
+ decorated.call(this, container, $container);
+
+ container.on('*', function (name, params) {
+ if (relayEvents.indexOf(name) === -1) {
+ return;
+ }
+
+ var evt = $.Event('select2:' + name, params);
+
+ self.$element.trigger(evt);
+ });
+ };
+
+ return EventRelay;
+});
+
define('select2/translation',[
], function () {
@@ -3299,6 +3324,7 @@ define('select2/defaults',[
'./selection/placeholder',
'./selection/allowClear',
'./selection/search',
+ './selection/eventRelay',
'./utils',
'./translation',
@@ -3323,7 +3349,7 @@ define('select2/defaults',[
], function ($, ResultsList,
SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch,
+ SelectionSearch, EventRelay,
Utils, Translation, DIACRITICS,
@@ -3444,6 +3470,11 @@ define('select2/defaults',[
SelectionSearch
);
}
+
+ options.selectionAdapter = Utils.Decorate(
+ options.selectionAdapter,
+ EventRelay
+ );
}
if (typeof options.language === 'string') {
diff --git a/dist/js/select2.amd.js b/dist/js/select2.amd.js
index dadb1680..4365f28d 100644
--- a/dist/js/select2.amd.js
+++ b/dist/js/select2.amd.js
@@ -1226,6 +1226,31 @@ define('select2/selection/search',[
return Search;
});
+define('select2/selection/eventRelay',[
+ 'jquery'
+], function ($) {
+ function EventRelay () { }
+
+ EventRelay.prototype.bind = function (decorated, container, $container) {
+ var self = this;
+ var relayEvents = ['open', 'close'];
+
+ decorated.call(this, container, $container);
+
+ container.on('*', function (name, params) {
+ if (relayEvents.indexOf(name) === -1) {
+ return;
+ }
+
+ var evt = $.Event('select2:' + name, params);
+
+ self.$element.trigger(evt);
+ });
+ };
+
+ return EventRelay;
+});
+
define('select2/translation',[
], function () {
@@ -3299,6 +3324,7 @@ define('select2/defaults',[
'./selection/placeholder',
'./selection/allowClear',
'./selection/search',
+ './selection/eventRelay',
'./utils',
'./translation',
@@ -3323,7 +3349,7 @@ define('select2/defaults',[
], function ($, ResultsList,
SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch,
+ SelectionSearch, EventRelay,
Utils, Translation, DIACRITICS,
@@ -3444,6 +3470,11 @@ define('select2/defaults',[
SelectionSearch
);
}
+
+ options.selectionAdapter = Utils.Decorate(
+ options.selectionAdapter,
+ EventRelay
+ );
}
if (typeof options.language === 'string') {
diff --git a/dist/js/select2.full.js b/dist/js/select2.full.js
index d7da7f05..204baad7 100644
--- a/dist/js/select2.full.js
+++ b/dist/js/select2.full.js
@@ -10761,6 +10761,31 @@ define('select2/selection/search',[
return Search;
});
+define('select2/selection/eventRelay',[
+ 'jquery'
+], function ($) {
+ function EventRelay () { }
+
+ EventRelay.prototype.bind = function (decorated, container, $container) {
+ var self = this;
+ var relayEvents = ['open', 'close'];
+
+ decorated.call(this, container, $container);
+
+ container.on('*', function (name, params) {
+ if (relayEvents.indexOf(name) === -1) {
+ return;
+ }
+
+ var evt = $.Event('select2:' + name, params);
+
+ self.$element.trigger(evt);
+ });
+ };
+
+ return EventRelay;
+});
+
define('select2/translation',[
], function () {
@@ -12834,6 +12859,7 @@ define('select2/defaults',[
'./selection/placeholder',
'./selection/allowClear',
'./selection/search',
+ './selection/eventRelay',
'./utils',
'./translation',
@@ -12858,7 +12884,7 @@ define('select2/defaults',[
], function ($, ResultsList,
SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch,
+ SelectionSearch, EventRelay,
Utils, Translation, DIACRITICS,
@@ -12979,6 +13005,11 @@ define('select2/defaults',[
SelectionSearch
);
}
+
+ options.selectionAdapter = Utils.Decorate(
+ options.selectionAdapter,
+ EventRelay
+ );
}
if (typeof options.language === 'string') {
diff --git a/dist/js/select2.full.min.js b/dist/js/select2.full.min.js
index 79bb543d..c1d0bb96 100644
--- a/dist/js/select2.full.min.js
+++ b/dist/js/select2.full.min.js
@@ -1,5 +1,5 @@
window.$=window.$||{},function(){$&&$.fn&&$.fn.select2&&$.fn.select2.amd&&(c=$.fn.select2.amd.define,b=$.fn.select2.amd.require);var a,b,c;!function(d){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,b){return function(){return n.apply(d,v.call(arguments,0).concat([a,b]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var b=r[a];delete r[a],t[a]=!0,m.apply(d,b)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,b,c,f){var h,k,l,m,n,s,u=[],v=typeof c;if(f=f||a,"undefined"===v||"function"===v){for(b=!b.length&&c.length?["require","exports","module"]:b,n=0;n0&&b-1 in a}function e(a,b,c){if(bb.isFunction(b))return bb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return bb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ib.test(b))return bb.filter(b,a,c);b=bb.filter(b,a)}return bb.grep(a,function(a){return V.call(b,a)>=0!==c})}function f(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function g(a){var b=pb[a]={};return bb.each(a.match(ob)||[],function(a,c){b[c]=!0}),b}function h(){_.removeEventListener("DOMContentLoaded",h,!1),a.removeEventListener("load",h,!1),bb.ready()}function i(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=bb.expando+Math.random()}function j(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(vb,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ub.test(c)?bb.parseJSON(c):c}catch(e){}tb.set(a,b,c)}else c=void 0;return c}function k(){return!0}function l(){return!1}function m(){try{return _.activeElement}catch(a){}}function n(a,b){return bb.nodeName(a,"table")&&bb.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function o(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function p(a){var b=Lb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function q(a,b){for(var c=0,d=a.length;d>c;c++)sb.set(a[c],"globalEval",!b||sb.get(b[c],"globalEval"))}function r(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(sb.hasData(a)&&(f=sb.access(a),g=sb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)bb.event.add(b,e,j[e][c])}tb.hasData(a)&&(h=tb.access(a),i=bb.extend({},h),tb.set(b,i))}}function s(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&bb.nodeName(a,b)?bb.merge([a],c):c}function t(a,b){var c=b.nodeName.toLowerCase();"input"===c&&zb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function u(b,c){var d=bb(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:bb.css(d[0],"display");return d.detach(),e}function v(a){var b=_,c=Pb[a];return c||(c=u(a,b),"none"!==c&&c||(Ob=(Ob||bb("")).appendTo(b.documentElement),b=Ob[0].contentDocument,b.write(),b.close(),c=u(a,b),Ob.detach()),Pb[a]=c),c}function w(a,b,c){var d,e,f,g,h=a.style;return c=c||Sb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||bb.contains(a.ownerDocument,a)||(g=bb.style(a,b)),Rb.test(g)&&Qb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function x(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function y(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Yb.length;e--;)if(b=Yb[e]+c,b in a)return b;return d}function z(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function A(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=bb.css(a,c+xb[f],!0,e)),d?("content"===c&&(g-=bb.css(a,"padding"+xb[f],!0,e)),"margin"!==c&&(g-=bb.css(a,"border"+xb[f]+"Width",!0,e))):(g+=bb.css(a,"padding"+xb[f],!0,e),"padding"!==c&&(g+=bb.css(a,"border"+xb[f]+"Width",!0,e)));return g}function B(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Sb(a),g="border-box"===bb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=w(a,b,f),(0>e||null==e)&&(e=a.style[b]),Rb.test(e))return e;d=g&&($.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+A(a,b,c||(g?"border":"content"),d,f)+"px"}function C(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=sb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&yb(d)&&(f[g]=sb.access(d,"olddisplay",v(d.nodeName)))):f[g]||(e=yb(d),(c&&"none"!==c||!e)&&sb.set(d,"olddisplay",e?c:bb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function D(a,b,c,d,e){return new D.prototype.init(a,b,c,d,e)}function E(){return setTimeout(function(){Zb=void 0}),Zb=bb.now()}function F(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=xb[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function G(a,b,c){for(var d,e=(dc[b]||[]).concat(dc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function H(a,b,c){var d,e,f,g,h,i,j,k=this,l={},m=a.style,n=a.nodeType&&yb(a),o=sb.get(a,"fxshow");c.queue||(h=bb._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,k.always(function(){k.always(function(){h.unqueued--,bb.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],j=bb.css(a,"display"),"none"===j&&(j=v(a.nodeName)),"inline"===j&&"none"===bb.css(a,"float")&&(m.display="inline-block")),c.overflow&&(m.overflow="hidden",k.always(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],_b.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(n?"hide":"show")){if("show"!==e||!o||void 0===o[d])continue;n=!0}l[d]=o&&o[d]||bb.style(a,d)}if(!bb.isEmptyObject(l)){o?"hidden"in o&&(n=o.hidden):o=sb.access(a,"fxshow",{}),f&&(o.hidden=!n),n?bb(a).show():k.done(function(){bb(a).hide()}),k.done(function(){var b;sb.remove(a,"fxshow");for(b in l)bb.style(a,b,l[b])});for(d in l)g=G(n?o[d]:0,d,k),d in o||(o[d]=g.start,n&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function I(a,b){var c,d,e,f,g;for(c in a)if(d=bb.camelCase(c),e=b[d],f=a[c],bb.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=bb.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function J(a,b,c){var d,e,f=0,g=cc.length,h=bb.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Zb||E(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:bb.extend({},b),opts:bb.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Zb||E(),duration:c.duration,tweens:[],createTween:function(b,c){var d=bb.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(I(k,j.opts.specialEasing);g>f;f++)if(d=cc[f].call(j,a,k,j.opts))return d;return bb.map(k,G,j),bb.isFunction(j.opts.start)&&j.opts.start.call(a,j),bb.fx.timer(bb.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function K(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(ob)||[];if(bb.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function L(a,b,c,d){function e(h){var i;return f[h]=!0,bb.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===wc;return e(b.dataTypes[0])||!f["*"]&&e("*")}function M(a,b){var c,d,e=bb.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&bb.extend(!0,a,d),a}function N(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function O(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function P(a,b,c,d){var e;if(bb.isArray(b))bb.each(b,function(b,e){c||Ac.test(a)?d(a,e):P(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==bb.type(b))d(a,b);else for(e in b)P(a+"["+e+"]",b[e],c,d)}function Q(a){return bb.isWindow(a)?a:9===a.nodeType&&a.defaultView}var R=[],S=R.slice,T=R.concat,U=R.push,V=R.indexOf,W={},X=W.toString,Y=W.hasOwnProperty,Z="".trim,$={},_=a.document,ab="2.1.0",bb=function(a,b){return new bb.fn.init(a,b)},cb=/^-ms-/,db=/-([\da-z])/gi,eb=function(a,b){return b.toUpperCase()};bb.fn=bb.prototype={jquery:ab,constructor:bb,selector:"",length:0,toArray:function(){return S.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:S.call(this)},pushStack:function(a){var b=bb.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return bb.each(this,a,b)},map:function(a){return this.pushStack(bb.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(S.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:R.sort,splice:R.splice},bb.extend=bb.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||bb.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(bb.isPlainObject(d)||(e=bb.isArray(d)))?(e?(e=!1,f=c&&bb.isArray(c)?c:[]):f=c&&bb.isPlainObject(c)?c:{},g[b]=bb.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},bb.extend({expando:"jQuery"+(ab+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===bb.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isPlainObject:function(a){if("object"!==bb.type(a)||a.nodeType||bb.isWindow(a))return!1;try{if(a.constructor&&!Y.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?W[X.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=bb.trim(a),a&&(1===a.indexOf("use strict")?(b=_.createElement("script"),b.text=a,_.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(cb,"ms-").replace(db,eb)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var e,f=0,g=a.length,h=d(a);if(c){if(h)for(;g>f&&(e=b.apply(a[f],c),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],c),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":Z.call(a)},makeArray:function(a,b){var c=b||[];return null!=a&&(d(Object(a))?bb.merge(c,"string"==typeof a?[a]:a):U.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:V.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var e,f=0,g=a.length,h=d(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,c),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&i.push(e);return T.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),bb.isFunction(a)?(d=S.call(arguments,2),e=function(){return a.apply(b||this,d.concat(S.call(arguments)))},e.guid=a.guid=a.guid||bb.guid++,e):void 0},now:Date.now,support:$}),bb.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){W["[object "+b+"]"]=b.toLowerCase()});var fb=function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,o,p,q;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],!a||"string"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(I&&!d){if(e=sb.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return _.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&x.getElementsByClassName&&b.getElementsByClassName)return _.apply(c,b.getElementsByClassName(g)),c}if(x.qsa&&(!J||!J.test(a))){if(o=l=N,p=b,q=9===h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=m(a),(l=b.getAttribute("id"))?o=l.replace(ub,"\\$&"):b.setAttribute("id",o),o="[id='"+o+"'] ",i=j.length;i--;)j[i]=o+n(j[i]);p=tb.test(a)&&k(b.parentNode)||b,q=j.join(",")}if(q)try{return _.apply(c,p.querySelectorAll(q)),c}catch(r){}finally{l||b.removeAttribute("id")}}}return v(a.replace(ib,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>y.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)y.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||W)-(~a.sourceIndex||W);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&typeof a.getElementsByTagName!==V&&a}function l(){}function m(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=y.preFilter;h;){(!d||(e=jb.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=kb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ib," ")}),h=h.slice(d.length));for(g in y.filter)!(e=ob[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)}function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=d||u(b||"*",h.nodeType?[h]:h,[]),r=!a||!d&&b?p:q(p,m,a,h,i),s=c?f||(d?a:o||e)?[]:g:r;if(c&&c(r,s,h,i),e)for(j=q(s,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(s[n[k]]=!(r[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=s.length;k--;)(l=s[k])&&j.push(r[k]=l);f(null,s=[],j,i)}for(k=s.length;k--;)(l=s[k])&&(j=f?bb.call(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else s=q(s===g?s.splice(o,s.length):s),f?f(null,g,s,i):_.apply(g,s)})}function s(a){for(var b,c,d,e=a.length,f=y.relative[a[0].type],g=f||y.relative[" "],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return bb.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)if(c=y.relative[a[h].type])k=[o(p(k),c)];else{if(c=y.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!y.relative[a[d].type];d++);return r(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ib,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&y.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Z.call(i));r=q(r)}_.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}function u(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function v(a,b,c,d){var e,f,g,h,i,j=m(a);if(!d&&1===j.length){if(f=j[0]=j[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&x.getById&&9===b.nodeType&&I&&y.relative[f[1].type]){if(b=(y.find.ID(g.matches[0].replace(vb,wb),b)||[])[0],!b)return c;a=a.slice(f.shift().value.length)}for(e=ob.needsContext.test(a)?0:f.length;e--&&(g=f[e],!y.relative[h=g.type]);)if((i=y.find[h])&&(d=i(g.matches[0].replace(vb,wb),tb.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return _.apply(c,d),c;break}}return B(a,j)(d,b,!I,c,tb.test(a)&&k(b.parentNode)||b),c}var w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+-new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V="undefined",W=1<<31,X={}.hasOwnProperty,Y=[],Z=Y.pop,$=Y.push,_=Y.push,ab=Y.slice,bb=Y.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},cb="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",db="[\\x20\\t\\r\\n\\f]",eb="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",fb=eb.replace("w","w#"),gb="\\["+db+"*("+eb+")"+db+"*(?:([*^$|!~]?=)"+db+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+fb+")|)|)"+db+"*\\]",hb=":("+eb+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+gb.replace(3,8)+")*)|.*)\\)|)",ib=new RegExp("^"+db+"+|((?:^|[^\\\\])(?:\\\\.)*)"+db+"+$","g"),jb=new RegExp("^"+db+"*,"+db+"*"),kb=new RegExp("^"+db+"*([>+~]|"+db+")"+db+"*"),lb=new RegExp("="+db+"*([^\\]'\"]*?)"+db+"*\\]","g"),mb=new RegExp(hb),nb=new RegExp("^"+fb+"$"),ob={ID:new RegExp("^#("+eb+")"),CLASS:new RegExp("^\\.("+eb+")"),TAG:new RegExp("^("+eb.replace("w","w*")+")"),ATTR:new RegExp("^"+gb),PSEUDO:new RegExp("^"+hb),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+db+"*(even|odd|(([+-]|)(\\d*)n|)"+db+"*(?:([+-]|)"+db+"*(\\d+)|))"+db+"*\\)|)","i"),bool:new RegExp("^(?:"+cb+")$","i"),needsContext:new RegExp("^"+db+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+db+"*((?:-\\d)?\\d*)"+db+"*\\)|)(?=[^-]|$)","i")},pb=/^(?:input|select|textarea|button)$/i,qb=/^h\d$/i,rb=/^[^{]+\{\s*\[native \w/,sb=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tb=/[+~]/,ub=/'|\\/g,vb=new RegExp("\\\\([\\da-f]{1,6}"+db+"?|("+db+")|.)","ig"),wb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{_.apply(Y=ab.call(O.childNodes),O.childNodes),Y[O.childNodes.length].nodeType}catch(xb){_={apply:Y.length?function(a,b){$.apply(a,ab.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}x=b.support={},A=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c=a?a.ownerDocument||a:O,d=c.defaultView;return c!==G&&9===c.nodeType&&c.documentElement?(G=c,H=c.documentElement,I=!A(c),d&&d!==d.top&&(d.addEventListener?d.addEventListener("unload",function(){F()},!1):d.attachEvent&&d.attachEvent("onunload",function(){F()})),x.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),x.getElementsByTagName=e(function(a){return a.appendChild(c.createComment("")),!a.getElementsByTagName("*").length}),x.getElementsByClassName=rb.test(c.getElementsByClassName)&&e(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),x.getById=e(function(a){return H.appendChild(a).id=N,!c.getElementsByName||!c.getElementsByName(N).length}),x.getById?(y.find.ID=function(a,b){if(typeof b.getElementById!==V&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},y.filter.ID=function(a){var b=a.replace(vb,wb);return function(a){return a.getAttribute("id")===b}}):(delete y.find.ID,y.filter.ID=function(a){var b=a.replace(vb,wb);return function(a){var c=typeof a.getAttributeNode!==V&&a.getAttributeNode("id");return c&&c.value===b}}),y.find.TAG=x.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==V?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},y.find.CLASS=x.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==V&&I?b.getElementsByClassName(a):void 0},K=[],J=[],(x.qsa=rb.test(c.querySelectorAll))&&(e(function(a){a.innerHTML=" ",a.querySelectorAll("[t^='']").length&&J.push("[*^$]="+db+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+db+"*(?:value|"+cb+")"),a.querySelectorAll(":checked").length||J.push(":checked")}),e(function(a){var b=c.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+db+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(x.matchesSelector=rb.test(L=H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){x.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",hb)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=rb.test(H.compareDocumentPosition),M=b||rb.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!x.sortDetached&&b.compareDocumentPosition(a)===d?a===c||a.ownerDocument===O&&M(O,a)?-1:b===c||b.ownerDocument===O&&M(O,b)?1:D?bb.call(D,a)-bb.call(D,b):0:4&d?-1:1)}:function(a,b){if(a===b)return E=!0,0;var d,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===c?-1:b===c?1:f?-1:h?1:D?bb.call(D,a)-bb.call(D,b):0;if(f===h)return g(a,b);for(d=a;d=d.parentNode;)i.unshift(d);for(d=b;d=d.parentNode;)j.unshift(d);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},c):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(lb,"='$1']"),!(!x.matchesSelector||!I||K&&K.test(c)||J&&J.test(c)))try{var d=L.call(a,c);if(d||x.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=y.attrHandle[b.toLowerCase()],d=c&&X.call(y.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:x.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!x.detectDuplicates,D=!x.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},z=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=z(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=z(b);return c},y=b.selectors={cacheLength:50,createPseudo:d,match:ob,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(vb,wb),a[3]=(a[4]||a[5]||"").replace(vb,wb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return ob.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&mb.test(c)&&(b=m(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(vb,wb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+db+")"+a+"("+db+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==V&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=y.pseudos[a]||y.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],y.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=bb.call(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=B(a.replace(ib,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return function(b){return(b.textContent||b.innerText||z(b)).indexOf(a)>-1}}),lang:d(function(a){return nb.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(vb,wb).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected
},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!y.pseudos.empty(a)},header:function(a){return qb.test(a.nodeName)},input:function(a){return pb.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d(?:<\/\1>|)$/,ib=/^.[^:#\[\.,]*$/;bb.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?bb.find.matchesSelector(d,a)?[d]:[]:bb.find.matches(a,bb.grep(b,function(a){return 1===a.nodeType}))},bb.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(bb(a).filter(function(){for(b=0;c>b;b++)if(bb.contains(e[b],this))return!0}));for(b=0;c>b;b++)bb.find(a,e[b],d);return d=this.pushStack(c>1?bb.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(e(this,a||[],!1))},not:function(a){return this.pushStack(e(this,a||[],!0))},is:function(a){return!!e(this,"string"==typeof a&&gb.test(a)?bb(a):a||[],!1).length}});var jb,kb=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,lb=bb.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:kb.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||jb).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof bb?b[0]:b,bb.merge(this,bb.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:_,!0)),hb.test(c[1])&&bb.isPlainObject(b))for(c in b)bb.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=_.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=_,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):bb.isFunction(a)?"undefined"!=typeof jb.ready?jb.ready(a):a(bb):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),bb.makeArray(a,this))};lb.prototype=bb.fn,jb=bb(_);var mb=/^(?:parents|prev(?:Until|All))/,nb={children:!0,contents:!0,next:!0,prev:!0};bb.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&bb(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),bb.fn.extend({has:function(a){var b=bb(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(bb.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=gb.test(a)||"string"!=typeof a?bb(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&bb.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?bb.unique(f):f)},index:function(a){return a?"string"==typeof a?V.call(bb(a),this[0]):V.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(bb.unique(bb.merge(this.get(),bb(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),bb.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return bb.dir(a,"parentNode")},parentsUntil:function(a,b,c){return bb.dir(a,"parentNode",c)},next:function(a){return f(a,"nextSibling")},prev:function(a){return f(a,"previousSibling")},nextAll:function(a){return bb.dir(a,"nextSibling")},prevAll:function(a){return bb.dir(a,"previousSibling")},nextUntil:function(a,b,c){return bb.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return bb.dir(a,"previousSibling",c)},siblings:function(a){return bb.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return bb.sibling(a.firstChild)},contents:function(a){return a.contentDocument||bb.merge([],a.childNodes)}},function(a,b){bb.fn[a]=function(c,d){var e=bb.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=bb.filter(d,e)),this.length>1&&(nb[a]||bb.unique(e),mb.test(a)&&e.reverse()),this.pushStack(e)}});var ob=/\S+/g,pb={};bb.Callbacks=function(a){a="string"==typeof a?pb[a]||g(a):bb.extend({},a);var b,c,d,e,f,h,i=[],j=!a.once&&[],k=function(g){for(b=a.memory&&g,c=!0,h=e||0,e=0,f=i.length,d=!0;i&&f>h;h++)if(i[h].apply(g[0],g[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function g(b){bb.each(b,function(b,c){var d=bb.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&bb.each(arguments,function(a,b){for(var c;(c=bb.inArray(b,i,c))>-1;)i.splice(c,1),d&&(f>=c&&f--,h>=c&&h--)}),this},has:function(a){return a?bb.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],f=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},bb.extend({Deferred:function(a){var b=[["resolve","done",bb.Callbacks("once memory"),"resolved"],["reject","fail",bb.Callbacks("once memory"),"rejected"],["notify","progress",bb.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return bb.Deferred(function(c){bb.each(b,function(b,f){var g=bb.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&bb.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?bb.extend(a,d):d}},e={};return d.pipe=d.then,bb.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=S.call(arguments),g=f.length,h=1!==g||a&&bb.isFunction(a.promise)?g:0,i=1===h?a:bb.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?S.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&bb.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var qb;bb.fn.ready=function(a){return bb.ready.promise().done(a),this},bb.extend({isReady:!1,readyWait:1,holdReady:function(a){a?bb.readyWait++:bb.ready(!0)},ready:function(a){(a===!0?--bb.readyWait:bb.isReady)||(bb.isReady=!0,a!==!0&&--bb.readyWait>0||(qb.resolveWith(_,[bb]),bb.fn.trigger&&bb(_).trigger("ready").off("ready")))}}),bb.ready.promise=function(b){return qb||(qb=bb.Deferred(),"complete"===_.readyState?setTimeout(bb.ready):(_.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1))),qb.promise(b)},bb.ready.promise();var rb=bb.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===bb.type(c)){e=!0;for(h in c)bb.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,bb.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(bb(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};bb.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},i.uid=1,i.accepts=bb.acceptData,i.prototype={key:function(a){if(!i.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=i.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,bb.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(bb.isEmptyObject(f))bb.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,bb.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{bb.isArray(b)?d=b.concat(b.map(bb.camelCase)):(e=bb.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(ob)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!bb.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var sb=new i,tb=new i,ub=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,vb=/([A-Z])/g;bb.extend({hasData:function(a){return tb.hasData(a)||sb.hasData(a)},data:function(a,b,c){return tb.access(a,b,c)},removeData:function(a,b){tb.remove(a,b)},_data:function(a,b,c){return sb.access(a,b,c)},_removeData:function(a,b){sb.remove(a,b)}}),bb.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=tb.get(f),1===f.nodeType&&!sb.get(f,"hasDataAttrs"))){for(c=g.length;c--;)d=g[c].name,0===d.indexOf("data-")&&(d=bb.camelCase(d.slice(5)),j(f,d,e[d]));sb.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){tb.set(this,a)}):rb(this,function(b){var c,d=bb.camelCase(a);if(f&&void 0===b){if(c=tb.get(f,a),void 0!==c)return c;if(c=tb.get(f,d),void 0!==c)return c;if(c=j(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=tb.get(this,d);tb.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&tb.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){tb.remove(this,a)})}}),bb.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=sb.get(a,b),c&&(!d||bb.isArray(c)?d=sb.access(a,b,bb.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=bb.queue(a,b),d=c.length,e=c.shift(),f=bb._queueHooks(a,b),g=function(){bb.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return sb.get(a,c)||sb.access(a,c,{empty:bb.Callbacks("once memory").add(function(){sb.remove(a,[b+"queue",c])})})}}),bb.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length ",$.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",$.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var Ab="undefined";$.focusinBubbles="onfocusin"in a;var Bb=/^key/,Cb=/^(?:mouse|contextmenu)|click/,Db=/^(?:focusinfocus|focusoutblur)$/,Eb=/^([^.]*)(?:\.(.+)|)$/;bb.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=sb.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=bb.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof bb!==Ab&&bb.event.triggered!==b.type?bb.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(ob)||[""],j=b.length;j--;)h=Eb.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=bb.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=bb.event.special[n]||{},k=bb.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&bb.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),bb.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=sb.hasData(a)&&sb.get(a);if(q&&(i=q.events)){for(b=(b||"").match(ob)||[""],j=b.length;j--;)if(h=Eb.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=bb.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||bb.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)bb.event.remove(a,n+b[j],c,d,!0);bb.isEmptyObject(i)&&(delete q.handle,sb.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||_],n=Y.call(b,"type")?b.type:b,o=Y.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||_,3!==d.nodeType&&8!==d.nodeType&&!Db.test(n+bb.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[bb.expando]?b:new bb.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:bb.makeArray(c,[b]),l=bb.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!bb.isWindow(d)){for(i=l.delegateType||n,Db.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||_)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(sb.get(g,"events")||{})[b.type]&&sb.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&bb.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!bb.acceptData(d)||j&&bb.isFunction(d[n])&&!bb.isWindow(d)&&(h=d[j],h&&(d[j]=null),bb.event.triggered=n,d[n](),bb.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=bb.event.fix(a);var b,c,d,e,f,g=[],h=S.call(arguments),i=(sb.get(this,"events")||{})[a.type]||[],j=bb.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=bb.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((bb.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?bb(e,this).index(i)>=0:bb.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,Gb=/<([\w:]+)/,Hb=/<|?\w+;/,Ib=/<(?:script|style|link)/i,Jb=/checked\s*(?:[^=]|=\s*.checked.)/i,Kb=/^$|\/(?:java|ecma)script/i,Lb=/^true\/(.*)/,Mb=/^\s*\s*$/g,Nb={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};Nb.optgroup=Nb.option,Nb.tbody=Nb.tfoot=Nb.colgroup=Nb.caption=Nb.thead,Nb.th=Nb.td,bb.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=bb.contains(a.ownerDocument,a);if(!($.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||bb.isXMLDoc(a)))for(g=s(h),f=s(a),d=0,e=f.length;e>d;d++)t(f[d],g[d]);if(b)if(c)for(f=f||s(a),g=g||s(h),d=0,e=f.length;e>d;d++)r(f[d],g[d]);else r(a,h);return g=s(h,"script"),g.length>0&&q(g,!i&&s(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===bb.type(e))bb.merge(l,e.nodeType?[e]:e);else if(Hb.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Gb.exec(e)||["",""])[1].toLowerCase(),h=Nb[g]||Nb._default,f.innerHTML=h[1]+e.replace(Fb,"<$1>$2>")+h[2],j=h[0];j--;)f=f.lastChild;bb.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===bb.inArray(e,d))&&(i=bb.contains(e.ownerDocument,e),f=s(k.appendChild(e),"script"),i&&q(f),c))for(j=0;e=f[j++];)Kb.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f,g,h=bb.event.special,i=0;void 0!==(c=a[i]);i++){if(bb.acceptData(c)&&(f=c[sb.expando],f&&(b=sb.cache[f]))){if(d=Object.keys(b.events||{}),d.length)for(g=0;void 0!==(e=d[g]);g++)h[e]?bb.event.remove(c,e):bb.removeEvent(c,e,b.handle);sb.cache[f]&&delete sb.cache[f]}delete tb.cache[c[tb.expando]]}}}),bb.fn.extend({text:function(a){return rb(this,function(a){return void 0===a?bb.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=n(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=n(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?bb.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||bb.cleanData(s(c)),c.parentNode&&(b&&bb.contains(c.ownerDocument,c)&&q(s(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(bb.cleanData(s(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return bb.clone(this,a,b)})},html:function(a){return rb(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ib.test(a)&&!Nb[(Gb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Fb,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(bb.cleanData(s(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,bb.cleanData(s(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=T.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],n=bb.isFunction(m);if(n||j>1&&"string"==typeof m&&!$.checkClone&&Jb.test(m))return this.each(function(c){var d=k.eq(c);n&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=bb.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=bb.map(s(c,"script"),o),f=e.length;j>i;i++)g=c,i!==l&&(g=bb.clone(g,!0,!0),f&&bb.merge(e,s(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,bb.map(e,p),i=0;f>i;i++)g=e[i],Kb.test(g.type||"")&&!sb.access(g,"globalEval")&&bb.contains(h,g)&&(g.src?bb._evalUrl&&bb._evalUrl(g.src):bb.globalEval(g.textContent.replace(Mb,"")))}return this}}),bb.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){bb.fn[a]=function(a){for(var c,d=[],e=bb(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),bb(e[g])[b](c),U.apply(d,c.get());return this.pushStack(d)}});var Ob,Pb={},Qb=/^margin/,Rb=new RegExp("^("+wb+")(?!px)[a-z%]+$","i"),Sb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};!function(){function b(){h.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",f.appendChild(g);var b=a.getComputedStyle(h,null);c="1%"!==b.top,d="4px"===b.width,f.removeChild(g)}var c,d,e="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",f=_.documentElement,g=_.createElement("div"),h=_.createElement("div");h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",$.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",g.appendChild(h),a.getComputedStyle&&bb.extend($,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=h.appendChild(_.createElement("div"));return c.style.cssText=h.style.cssText=e,c.style.marginRight=c.style.width="0",h.style.width="1px",f.appendChild(g),b=!parseFloat(a.getComputedStyle(c,null).marginRight),f.removeChild(g),h.innerHTML="",b}})}(),bb.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Tb=/^(none|table(?!-c[ea]).+)/,Ub=new RegExp("^("+wb+")(.*)$","i"),Vb=new RegExp("^([+-])=("+wb+")","i"),Wb={position:"absolute",visibility:"hidden",display:"block"},Xb={letterSpacing:0,fontWeight:400},Yb=["Webkit","O","Moz","ms"];bb.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=w(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=bb.camelCase(b),i=a.style;return b=bb.cssProps[h]||(bb.cssProps[h]=y(i,h)),g=bb.cssHooks[b]||bb.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Vb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(bb.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||bb.cssNumber[h]||(c+="px"),$.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]="",i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=bb.camelCase(b);return b=bb.cssProps[h]||(bb.cssProps[h]=y(a.style,h)),g=bb.cssHooks[b]||bb.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=w(a,b,d)),"normal"===e&&b in Xb&&(e=Xb[b]),""===c||c?(f=parseFloat(e),c===!0||bb.isNumeric(f)?f||0:e):e}}),bb.each(["height","width"],function(a,b){bb.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Tb.test(bb.css(a,"display"))?bb.swap(a,Wb,function(){return B(a,b,d)}):B(a,b,d):void 0},set:function(a,c,d){var e=d&&Sb(a);return z(a,c,d?A(a,b,d,"border-box"===bb.css(a,"boxSizing",!1,e),e):0)}}}),bb.cssHooks.marginRight=x($.reliableMarginRight,function(a,b){return b?bb.swap(a,{display:"inline-block"},w,[a,"marginRight"]):void 0}),bb.each({margin:"",padding:"",border:"Width"},function(a,b){bb.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+xb[d]+b]=f[d]||f[d-2]||f[0];return e}},Qb.test(a)||(bb.cssHooks[a+b].set=z)}),bb.fn.extend({css:function(a,b){return rb(this,function(a,b,c){var d,e,f={},g=0;if(bb.isArray(b)){for(d=Sb(a),e=b.length;e>g;g++)f[b[g]]=bb.css(a,b[g],!1,d);return f}return void 0!==c?bb.style(a,b,c):bb.css(a,b)},a,b,arguments.length>1)},show:function(){return C(this,!0)},hide:function(){return C(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){yb(this)?bb(this).show():bb(this).hide()})}}),bb.Tween=D,D.prototype={constructor:D,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(bb.cssNumber[c]?"":"px")},cur:function(){var a=D.propHooks[this.prop];return a&&a.get?a.get(this):D.propHooks._default.get(this)},run:function(a){var b,c=D.propHooks[this.prop];return this.pos=b=this.options.duration?bb.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):D.propHooks._default.set(this),this}},D.prototype.init.prototype=D.prototype,D.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=bb.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){bb.fx.step[a.prop]?bb.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[bb.cssProps[a.prop]]||bb.cssHooks[a.prop])?bb.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now
}}},D.propHooks.scrollTop=D.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},bb.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},bb.fx=D.prototype.init,bb.fx.step={};var Zb,$b,_b=/^(?:toggle|show|hide)$/,ac=new RegExp("^(?:([+-])=|)("+wb+")([a-z%]*)$","i"),bc=/queueHooks$/,cc=[H],dc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=ac.exec(b),f=e&&e[3]||(bb.cssNumber[a]?"":"px"),g=(bb.cssNumber[a]||"px"!==f&&+d)&&ac.exec(bb.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,bb.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};bb.Animation=bb.extend(J,{tweener:function(a,b){bb.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],dc[c]=dc[c]||[],dc[c].unshift(b)},prefilter:function(a,b){b?cc.unshift(a):cc.push(a)}}),bb.speed=function(a,b,c){var d=a&&"object"==typeof a?bb.extend({},a):{complete:c||!c&&b||bb.isFunction(a)&&a,duration:a,easing:c&&b||b&&!bb.isFunction(b)&&b};return d.duration=bb.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in bb.fx.speeds?bb.fx.speeds[d.duration]:bb.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){bb.isFunction(d.old)&&d.old.call(this),d.queue&&bb.dequeue(this,d.queue)},d},bb.fn.extend({fadeTo:function(a,b,c,d){return this.filter(yb).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=bb.isEmptyObject(a),f=bb.speed(b,c,d),g=function(){var b=J(this,bb.extend({},a),f);(e||sb.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=bb.timers,g=sb.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&bc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&bb.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=sb.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=bb.timers,g=d?d.length:0;for(c.finish=!0,bb.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),bb.each(["toggle","show","hide"],function(a,b){var c=bb.fn[b];bb.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(F(b,!0),a,d,e)}}),bb.each({slideDown:F("show"),slideUp:F("hide"),slideToggle:F("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){bb.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),bb.timers=[],bb.fx.tick=function(){var a,b=0,c=bb.timers;for(Zb=bb.now();b1)},removeAttr:function(a){return this.each(function(){bb.removeAttr(this,a)})}}),bb.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===Ab?bb.prop(a,b,c):(1===f&&bb.isXMLDoc(a)||(b=b.toLowerCase(),d=bb.attrHooks[b]||(bb.expr.match.bool.test(b)?fc:ec)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=bb.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void bb.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(ob);if(f&&1===a.nodeType)for(;c=f[e++];)d=bb.propFix[c]||c,bb.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!$.radioValue&&"radio"===b&&bb.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),fc={set:function(a,b,c){return b===!1?bb.removeAttr(a,c):a.setAttribute(c,c),c}},bb.each(bb.expr.match.bool.source.match(/\w+/g),function(a,b){var c=gc[b]||bb.find.attr;gc[b]=function(a,b,d){var e,f;return d||(f=gc[b],gc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,gc[b]=f),e}});var hc=/^(?:input|select|textarea|button)$/i;bb.fn.extend({prop:function(a,b){return rb(this,bb.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[bb.propFix[a]||a]})}}),bb.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!bb.isXMLDoc(a),f&&(b=bb.propFix[b]||b,e=bb.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||hc.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),$.optSelected||(bb.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),bb.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){bb.propFix[this.toLowerCase()]=this});var ic=/[\t\r\n\f]/g;bb.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(bb.isFunction(a))return this.each(function(b){bb(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(ob)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ic," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=bb.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(bb.isFunction(a))return this.each(function(b){bb(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(ob)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ic," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?bb.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(bb.isFunction(a)?function(c){bb(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c)for(var b,d=0,e=bb(this),f=a.match(ob)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===Ab||"boolean"===c)&&(this.className&&sb.set(this,"__className__",this.className),this.className=this.className||a===!1?"":sb.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ic," ").indexOf(b)>=0)return!0;return!1}});var jc=/\r/g;bb.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=bb.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,bb(this).val()):a,null==e?e="":"number"==typeof e?e+="":bb.isArray(e)&&(e=bb.map(e,function(a){return null==a?"":a+""})),b=bb.valHooks[this.type]||bb.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=bb.valHooks[e.type]||bb.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(jc,""):null==c?"":c)}}}),bb.extend({valHooks:{select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||($.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&bb.nodeName(c.parentNode,"optgroup"))){if(b=bb(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=bb.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=bb.inArray(bb(d).val(),f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),bb.each(["radio","checkbox"],function(){bb.valHooks[this]={set:function(a,b){return bb.isArray(b)?a.checked=bb.inArray(bb(a).val(),b)>=0:void 0}},$.checkOn||(bb.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),bb.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){bb.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),bb.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var kc=bb.now(),lc=/\?/;bb.parseJSON=function(a){return JSON.parse(a+"")},bb.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&bb.error("Invalid XML: "+a),b};var mc,nc,oc=/#.*$/,pc=/([?&])_=[^&]*/,qc=/^(.*?):[ \t]*([^\r\n]*)$/gm,rc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,sc=/^(?:GET|HEAD)$/,tc=/^\/\//,uc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,vc={},wc={},xc="*/".concat("*");try{nc=location.href}catch(yc){nc=_.createElement("a"),nc.href="",nc=nc.href}mc=uc.exec(nc.toLowerCase())||[],bb.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:nc,type:"GET",isLocal:rc.test(mc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":xc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":bb.parseJSON,"text xml":bb.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?M(M(a,bb.ajaxSettings),b):M(bb.ajaxSettings,a)},ajaxPrefilter:K(vc),ajaxTransport:K(wc),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=N(l,v,c)),s=O(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(bb.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(bb.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--bb.active||bb.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=bb.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?bb(m):bb.event,o=bb.Deferred(),p=bb.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=qc.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||nc)+"").replace(oc,"").replace(tc,mc[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=bb.trim(l.dataType||"*").toLowerCase().match(ob)||[""],null==l.crossDomain&&(i=uc.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===mc[1]&&i[2]===mc[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(mc[3]||("http:"===mc[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=bb.param(l.data,l.traditional)),L(vc,l,b,v),2===t)return v;j=l.global,j&&0===bb.active++&&bb.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!sc.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(lc.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=pc.test(e)?e.replace(pc,"$1_="+kc++):e+(lc.test(e)?"&":"?")+"_="+kc++)),l.ifModified&&(bb.lastModified[e]&&v.setRequestHeader("If-Modified-Since",bb.lastModified[e]),bb.etag[e]&&v.setRequestHeader("If-None-Match",bb.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+xc+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=L(wc,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return bb.get(a,b,c,"json")},getScript:function(a,b){return bb.get(a,void 0,b,"script")}}),bb.each(["get","post"],function(a,b){bb[b]=function(a,c,d,e){return bb.isFunction(c)&&(e=e||d,d=c,c=void 0),bb.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),bb.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){bb.fn[b]=function(a){return this.on(b,a)}}),bb._evalUrl=function(a){return bb.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},bb.fn.extend({wrapAll:function(a){var b;return bb.isFunction(a)?this.each(function(b){bb(this).wrapAll(a.call(this,b))}):(this[0]&&(b=bb(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(bb.isFunction(a)?function(b){bb(this).wrapInner(a.call(this,b))}:function(){var b=bb(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=bb.isFunction(a);return this.each(function(c){bb(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){bb.nodeName(this,"body")||bb(this).replaceWith(this.childNodes)}).end()}}),bb.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},bb.expr.filters.visible=function(a){return!bb.expr.filters.hidden(a)};var zc=/%20/g,Ac=/\[\]$/,Bc=/\r?\n/g,Cc=/^(?:submit|button|image|reset|file)$/i,Dc=/^(?:input|select|textarea|keygen)/i;bb.param=function(a,b){var c,d=[],e=function(a,b){b=bb.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=bb.ajaxSettings&&bb.ajaxSettings.traditional),bb.isArray(a)||a.jquery&&!bb.isPlainObject(a))bb.each(a,function(){e(this.name,this.value)});else for(c in a)P(c,a[c],b,e);return d.join("&").replace(zc,"+")},bb.fn.extend({serialize:function(){return bb.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=bb.prop(this,"elements");return a?bb.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!bb(this).is(":disabled")&&Dc.test(this.nodeName)&&!Cc.test(a)&&(this.checked||!zb.test(a))}).map(function(a,b){var c=bb(this).val();return null==c?null:bb.isArray(c)?bb.map(c,function(a){return{name:b.name,value:a.replace(Bc,"\r\n")}}):{name:b.name,value:c.replace(Bc,"\r\n")}}).get()}}),bb.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Ec=0,Fc={},Gc={0:200,1223:204},Hc=bb.ajaxSettings.xhr();a.ActiveXObject&&bb(a).on("unload",function(){for(var a in Fc)Fc[a]()}),$.cors=!!Hc&&"withCredentials"in Hc,$.ajax=Hc=!!Hc,bb.ajaxTransport(function(a){var b;return $.cors||Hc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Ec;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Fc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Gc[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Fc[g]=b("abort"),f.send(a.hasContent&&a.data||null)},abort:function(){b&&b()}}:void 0}),bb.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return bb.globalEval(a),a}}}),bb.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),bb.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=bb("
+
+
+
+
+
+ Adapter
+
+ SelectionAdapter
+
+
+ Decorator
+
+ EventRelay
+
+
+
+
+ Public events
+
+
+
+ All public events are relayed using the jQuery event system, and they are
+ triggered on the <select>
element that Select2 is
+ attached to. You can attach to them using the
+ .on
method provided
+ by jQuery.
+
+
+
+ Internal events
+
+
+
+ Select2 triggers internal events using its own internal event system,
+ which allows adapters to communicate with each other. These events are not
+ accessible through the jQuery event system.
+
+
+
+ You can find more information on the public events triggered by individual
+ adapters in the individual adapter documentation .
+
diff --git a/src/js/select2/defaults.js b/src/js/select2/defaults.js
index 893cad0f..e8ceb217 100644
--- a/src/js/select2/defaults.js
+++ b/src/js/select2/defaults.js
@@ -7,6 +7,7 @@ define([
'./selection/placeholder',
'./selection/allowClear',
'./selection/search',
+ './selection/eventRelay',
'./utils',
'./translation',
@@ -31,7 +32,7 @@ define([
], function ($, ResultsList,
SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch,
+ SelectionSearch, EventRelay,
Utils, Translation, DIACRITICS,
@@ -152,6 +153,11 @@ define([
SelectionSearch
);
}
+
+ options.selectionAdapter = Utils.Decorate(
+ options.selectionAdapter,
+ EventRelay
+ );
}
if (typeof options.language === 'string') {
diff --git a/src/js/select2/selection/eventRelay.js b/src/js/select2/selection/eventRelay.js
new file mode 100644
index 00000000..d3400ba0
--- /dev/null
+++ b/src/js/select2/selection/eventRelay.js
@@ -0,0 +1,24 @@
+define([
+ 'jquery'
+], function ($) {
+ function EventRelay () { }
+
+ EventRelay.prototype.bind = function (decorated, container, $container) {
+ var self = this;
+ var relayEvents = ['open', 'close'];
+
+ decorated.call(this, container, $container);
+
+ container.on('*', function (name, params) {
+ if (relayEvents.indexOf(name) === -1) {
+ return;
+ }
+
+ var evt = $.Event('select2:' + name, params);
+
+ self.$element.trigger(evt);
+ });
+ };
+
+ return EventRelay;
+});