/*
Copyright 2012 Igor Vaynberg
Version: 3.4.3 Timestamp: Tue Sep 17 06:47:14 PDT 2013
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
General Public License version 2 (the "GPL License"). You may choose either license to govern your
use of this software only upon the condition that you accept all of the terms of either the Apache
License or the GPL License.
You may obtain a copy of the Apache License and the GPL License at:
http://www.apache.org/licenses/LICENSE-2.0
http://www.gnu.org/licenses/gpl-2.0.html
Unless required by applicable law or agreed to in writing, software distributed under the Apache License
or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the Apache License and the GPL License for the specific language governing
permissions and limitations under the Apache License and the GPL License.
*/
!function (a) {
"undefined" == typeof a.fn.each2 && a.extend(a.fn, {each2: function (b) {
for (var c = a([0]), d = -1, e = this.length; ++d < e && (c.context = c[0] = this[d]) && b.call(c[0], d, c) !== !1;);
return this
}})
}(jQuery), function (a, b) {
"use strict";
function n(a) {
var b, c, d, e;
if (!a || a.length < 1)return a;
for (b = "", c = 0, d = a.length; d > c; c++)e = a.charAt(c), b += m[e] || e;
return b
}
function o(a, b) {
for (var c = 0, d = b.length; d > c; c += 1)if (q(a, b[c]))return c;
return-1
}
function p() {
var b = a(l);
b.appendTo("body");
var c = {width: b.width() - b[0].clientWidth, height: b.height() - b[0].clientHeight};
return b.remove(), c
}
function q(a, c) {
return a === c ? !0 : a === b || c === b ? !1 : null === a || null === c ? !1 : a.constructor === String ? a + "" == c + "" : c.constructor === String ? c + "" == a + "" : !1
}
function r(b, c) {
var d, e, f;
if (null === b || b.length < 1)return[];
for (d = b.split(c), e = 0, f = d.length; f > e; e += 1)d[e] = a.trim(d[e]);
return d
}
function s(a) {
return a.outerWidth(!1) - a.width()
}
function t(c) {
var d = "keyup-change-value";
c.on("keydown", function () {
a.data(c, d) === b && a.data(c, d, c.val())
}), c.on("keyup", function () {
var e = a.data(c, d);
e !== b && c.val() !== e && (a.removeData(c, d), c.trigger("keyup-change"))
})
}
function u(c) {
c.on("mousemove", function (c) {
var d = i;
(d === b || d.x !== c.pageX || d.y !== c.pageY) && a(c.target).trigger("mousemove-filtered", c)
})
}
function v(a, c, d) {
d = d || b;
var e;
return function () {
var b = arguments;
window.clearTimeout(e), e = window.setTimeout(function () {
c.apply(d, b)
}, a)
}
}
function w(a) {
var c, b = !1;
return function () {
return b === !1 && (c = a(), b = !0), c
}
}
function x(a, b) {
var c = v(a, function (a) {
b.trigger("scroll-debounced", a)
});
b.on("scroll", function (a) {
o(a.target, b.get()) >= 0 && c(a)
})
}
function y(a) {
a[0] !== document.activeElement && window.setTimeout(function () {
var d, b = a[0], c = a.val().length;
a.focus(), a.is(":visible") && b === document.activeElement && (b.setSelectionRange ? b.setSelectionRange(c, c) : b.createTextRange && (d = b.createTextRange(), d.collapse(!1), d.select()))
}, 0)
}
function z(b) {
b = a(b)[0];
var c = 0, d = 0;
if ("selectionStart"in b)c = b.selectionStart, d = b.selectionEnd - c; else if ("selection"in document) {
b.focus();
var e = document.selection.createRange();
d = document.selection.createRange().text.length, e.moveStart("character", -b.value.length), c = e.text.length - d
}
return{offset: c, length: d}
}
function A(a) {
a.preventDefault(), a.stopPropagation()
}
function B(a) {
a.preventDefault(), a.stopImmediatePropagation()
}
function C(b) {
if (!h) {
var c = b[0].currentStyle || window.getComputedStyle(b[0], null);
h = a(document.createElement("div")).css({position: "absolute", left: "-10000px", top: "-10000px", display: "none", fontSize: c.fontSize, fontFamily: c.fontFamily, fontStyle: c.fontStyle, fontWeight: c.fontWeight, letterSpacing: c.letterSpacing, textTransform: c.textTransform, whiteSpace: "nowrap"}), h.attr("class", "select2-sizer"), a("body").append(h)
}
return h.text(b.val()), h.width()
}
function D(b, c, d) {
var e, g, f = [];
e = b.attr("class"), e && (e = "" + e, a(e.split(" ")).each2(function () {
0 === this.indexOf("select2-") && f.push(this)
})), e = c.attr("class"), e && (e = "" + e, a(e.split(" ")).each2(function () {
0 !== this.indexOf("select2-") && (g = d(this), g && f.push(this))
})), b.attr("class", f.join(" "))
}
function E(a, b, c, d) {
var e = n(a.toUpperCase()).indexOf(n(b.toUpperCase())), f = b.length;
return 0 > e ? (c.push(d(a)), void 0) : (c.push(d(a.substring(0, e))), c.push(""), c.push(d(a.substring(e, e + f))), c.push(" "), c.push(d(a.substring(e + f, a.length))), void 0)
}
function F(a) {
var b = {"\\": "\", "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "/": "/"};
return String(a).replace(/[&<>"'\/\\]/g, function (a) {
return b[a]
})
}
function G(c) {
var d, e = null, f = c.quietMillis || 100, g = c.url, h = this;
return function (i) {
window.clearTimeout(d), d = window.setTimeout(function () {
var d = c.data, f = g, j = c.transport || a.fn.select2.ajaxDefaults.transport, k = {type: c.type || "GET", cache: c.cache || !1, jsonpCallback: c.jsonpCallback || b, dataType: c.dataType || "json"}, l = a.extend({}, a.fn.select2.ajaxDefaults.params, k);
d = d ? d.call(h, i.term, i.page, i.context) : null, f = "function" == typeof f ? f.call(h, i.term, i.page, i.context) : f, e && e.abort(), c.params && (a.isFunction(c.params) ? a.extend(l, c.params.call(h)) : a.extend(l, c.params)), a.extend(l, {url: f, dataType: c.dataType, data: d, success: function (a) {
var b = c.results(a, i.page);
i.callback(b)
}}), e = j.call(h, l)
}, f)
}
}
function H(b) {
var d, e, c = b, f = function (a) {
return"" + a.text
};
a.isArray(c) && (e = c, c = {results: e}), a.isFunction(c) === !1 && (e = c, c = function () {
return e
});
var g = c();
return g.text && (f = g.text, a.isFunction(f) || (d = g.text, f = function (a) {
return a[d]
})), function (b) {
var g, d = b.term, e = {results: []};
return"" === d ? (b.callback(c()), void 0) : (g = function (c, e) {
var h, i;
if (c = c[0], c.children) {
h = {};
for (i in c)c.hasOwnProperty(i) && (h[i] = c[i]);
h.children = [], a(c.children).each2(function (a, b) {
g(b, h.children)
}), (h.children.length || b.matcher(d, f(h), c)) && e.push(h)
} else b.matcher(d, f(c), c) && e.push(c)
}, a(c().results).each2(function (a, b) {
g(b, e.results)
}), b.callback(e), void 0)
}
}
function I(c) {
var d = a.isFunction(c);
return function (e) {
var f = e.term, g = {results: []};
a(d ? c() : c).each(function () {
var a = this.text !== b, c = a ? this.text : this;
("" === f || e.matcher(f, c)) && g.results.push(a ? this : {id: this, text: this})
}), e.callback(g)
}
}
function J(b, c) {
if (a.isFunction(b))return!0;
if (!b)return!1;
throw new Error(c + " must be a function or a falsy value")
}
function K(b) {
return a.isFunction(b) ? b() : b
}
function L(b) {
var c = 0;
return a.each(b, function (a, b) {
b.children ? c += L(b.children) : c++
}), c
}
function M(a, c, d, e) {
var h, i, j, k, l, f = a, g = !1;
if (!e.createSearchChoice || !e.tokenSeparators || e.tokenSeparators.length < 1)return b;
for (; ;) {
for (i = -1, j = 0, k = e.tokenSeparators.length; k > j && (l = e.tokenSeparators[j], i = a.indexOf(l), !(i >= 0)); j++);
if (0 > i)break;
if (h = a.substring(0, i), a = a.substring(i + l.length), h.length > 0 && (h = e.createSearchChoice.call(this, h, c), h !== b && null !== h && e.id(h) !== b && null !== e.id(h))) {
for (g = !1, j = 0, k = c.length; k > j; j++)if (q(e.id(h), e.id(c[j]))) {
g = !0;
break
}
g || d(h)
}
}
return f !== a ? a : void 0
}
function N(b, c) {
var d = function () {
};
return d.prototype = new b, d.prototype.constructor = d, d.prototype.parent = b.prototype, d.prototype = a.extend(d.prototype, c), d
}
if (window.Select2 === b) {
var c, d, e, f, g, h, j, k, i = {x: 0, y: 0}, c = {TAB: 9, ENTER: 13, ESC: 27, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, SHIFT: 16, CTRL: 17, ALT: 18, PAGE_UP: 33, PAGE_DOWN: 34, HOME: 36, END: 35, BACKSPACE: 8, DELETE: 46, isArrow: function (a) {
switch (a = a.which ? a.which : a) {
case c.LEFT:
case c.RIGHT:
case c.UP:
case c.DOWN:
return!0
}
return!1
}, isControl: function (a) {
var b = a.which;
switch (b) {
case c.SHIFT:
case c.CTRL:
case c.ALT:
return!0
}
return a.metaKey ? !0 : !1
}, isFunctionKey: function (a) {
return a = a.which ? a.which : a, a >= 112 && 123 >= a
}}, l = "
", m = {"\u24b6": "A", "\uff21": "A", "\xc0": "A", "\xc1": "A", "\xc2": "A", "\u1ea6": "A", "\u1ea4": "A", "\u1eaa": "A", "\u1ea8": "A", "\xc3": "A", "\u0100": "A", "\u0102": "A", "\u1eb0": "A", "\u1eae": "A", "\u1eb4": "A", "\u1eb2": "A", "\u0226": "A", "\u01e0": "A", "\xc4": "A", "\u01de": "A", "\u1ea2": "A", "\xc5": "A", "\u01fa": "A", "\u01cd": "A", "\u0200": "A", "\u0202": "A", "\u1ea0": "A", "\u1eac": "A", "\u1eb6": "A", "\u1e00": "A", "\u0104": "A", "\u023a": "A", "\u2c6f": "A", "\ua732": "AA", "\xc6": "AE", "\u01fc": "AE", "\u01e2": "AE", "\ua734": "AO", "\ua736": "AU", "\ua738": "AV", "\ua73a": "AV", "\ua73c": "AY", "\u24b7": "B", "\uff22": "B", "\u1e02": "B", "\u1e04": "B", "\u1e06": "B", "\u0243": "B", "\u0182": "B", "\u0181": "B", "\u24b8": "C", "\uff23": "C", "\u0106": "C", "\u0108": "C", "\u010a": "C", "\u010c": "C", "\xc7": "C", "\u1e08": "C", "\u0187": "C", "\u023b": "C", "\ua73e": "C", "\u24b9": "D", "\uff24": "D", "\u1e0a": "D", "\u010e": "D", "\u1e0c": "D", "\u1e10": "D", "\u1e12": "D", "\u1e0e": "D", "\u0110": "D", "\u018b": "D", "\u018a": "D", "\u0189": "D", "\ua779": "D", "\u01f1": "DZ", "\u01c4": "DZ", "\u01f2": "Dz", "\u01c5": "Dz", "\u24ba": "E", "\uff25": "E", "\xc8": "E", "\xc9": "E", "\xca": "E", "\u1ec0": "E", "\u1ebe": "E", "\u1ec4": "E", "\u1ec2": "E", "\u1ebc": "E", "\u0112": "E", "\u1e14": "E", "\u1e16": "E", "\u0114": "E", "\u0116": "E", "\xcb": "E", "\u1eba": "E", "\u011a": "E", "\u0204": "E", "\u0206": "E", "\u1eb8": "E", "\u1ec6": "E", "\u0228": "E", "\u1e1c": "E", "\u0118": "E", "\u1e18": "E", "\u1e1a": "E", "\u0190": "E", "\u018e": "E", "\u24bb": "F", "\uff26": "F", "\u1e1e": "F", "\u0191": "F", "\ua77b": "F", "\u24bc": "G", "\uff27": "G", "\u01f4": "G", "\u011c": "G", "\u1e20": "G", "\u011e": "G", "\u0120": "G", "\u01e6": "G", "\u0122": "G", "\u01e4": "G", "\u0193": "G", "\ua7a0": "G", "\ua77d": "G", "\ua77e": "G", "\u24bd": "H", "\uff28": "H", "\u0124": "H", "\u1e22": "H", "\u1e26": "H", "\u021e": "H", "\u1e24": "H", "\u1e28": "H", "\u1e2a": "H", "\u0126": "H", "\u2c67": "H", "\u2c75": "H", "\ua78d": "H", "\u24be": "I", "\uff29": "I", "\xcc": "I", "\xcd": "I", "\xce": "I", "\u0128": "I", "\u012a": "I", "\u012c": "I", "\u0130": "I", "\xcf": "I", "\u1e2e": "I", "\u1ec8": "I", "\u01cf": "I", "\u0208": "I", "\u020a": "I", "\u1eca": "I", "\u012e": "I", "\u1e2c": "I", "\u0197": "I", "\u24bf": "J", "\uff2a": "J", "\u0134": "J", "\u0248": "J", "\u24c0": "K", "\uff2b": "K", "\u1e30": "K", "\u01e8": "K", "\u1e32": "K", "\u0136": "K", "\u1e34": "K", "\u0198": "K", "\u2c69": "K", "\ua740": "K", "\ua742": "K", "\ua744": "K", "\ua7a2": "K", "\u24c1": "L", "\uff2c": "L", "\u013f": "L", "\u0139": "L", "\u013d": "L", "\u1e36": "L", "\u1e38": "L", "\u013b": "L", "\u1e3c": "L", "\u1e3a": "L", "\u0141": "L", "\u023d": "L", "\u2c62": "L", "\u2c60": "L", "\ua748": "L", "\ua746": "L", "\ua780": "L", "\u01c7": "LJ", "\u01c8": "Lj", "\u24c2": "M", "\uff2d": "M", "\u1e3e": "M", "\u1e40": "M", "\u1e42": "M", "\u2c6e": "M", "\u019c": "M", "\u24c3": "N", "\uff2e": "N", "\u01f8": "N", "\u0143": "N", "\xd1": "N", "\u1e44": "N", "\u0147": "N", "\u1e46": "N", "\u0145": "N", "\u1e4a": "N", "\u1e48": "N", "\u0220": "N", "\u019d": "N", "\ua790": "N", "\ua7a4": "N", "\u01ca": "NJ", "\u01cb": "Nj", "\u24c4": "O", "\uff2f": "O", "\xd2": "O", "\xd3": "O", "\xd4": "O", "\u1ed2": "O", "\u1ed0": "O", "\u1ed6": "O", "\u1ed4": "O", "\xd5": "O", "\u1e4c": "O", "\u022c": "O", "\u1e4e": "O", "\u014c": "O", "\u1e50": "O", "\u1e52": "O", "\u014e": "O", "\u022e": "O", "\u0230": "O", "\xd6": "O", "\u022a": "O", "\u1ece": "O", "\u0150": "O", "\u01d1": "O", "\u020c": "O", "\u020e": "O", "\u01a0": "O", "\u1edc": "O", "\u1eda": "O", "\u1ee0": "O", "\u1ede": "O", "\u1ee2": "O", "\u1ecc": "O", "\u1ed8": "O", "\u01ea": "O", "\u01ec": "O", "\xd8": "O", "\u01fe": "O", "\u0186": "O", "\u019f": "O", "\ua74a": "O", "\ua74c": "O", "\u01a2": "OI", "\ua74e": "OO", "\u0222": "OU", "\u24c5": "P", "\uff30": "P", "\u1e54": "P", "\u1e56": "P", "\u01a4": "P", "\u2c63": "P", "\ua750": "P", "\ua752": "P", "\ua754": "P", "\u24c6": "Q", "\uff31": "Q", "\ua756": "Q", "\ua758": "Q", "\u024a": "Q", "\u24c7": "R", "\uff32": "R", "\u0154": "R", "\u1e58": "R", "\u0158": "R", "\u0210": "R", "\u0212": "R", "\u1e5a": "R", "\u1e5c": "R", "\u0156": "R", "\u1e5e": "R", "\u024c": "R", "\u2c64": "R", "\ua75a": "R", "\ua7a6": "R", "\ua782": "R", "\u24c8": "S", "\uff33": "S", "\u1e9e": "S", "\u015a": "S", "\u1e64": "S", "\u015c": "S", "\u1e60": "S", "\u0160": "S", "\u1e66": "S", "\u1e62": "S", "\u1e68": "S", "\u0218": "S", "\u015e": "S", "\u2c7e": "S", "\ua7a8": "S", "\ua784": "S", "\u24c9": "T", "\uff34": "T", "\u1e6a": "T", "\u0164": "T", "\u1e6c": "T", "\u021a": "T", "\u0162": "T", "\u1e70": "T", "\u1e6e": "T", "\u0166": "T", "\u01ac": "T", "\u01ae": "T", "\u023e": "T", "\ua786": "T", "\ua728": "TZ", "\u24ca": "U", "\uff35": "U", "\xd9": "U", "\xda": "U", "\xdb": "U", "\u0168": "U", "\u1e78": "U", "\u016a": "U", "\u1e7a": "U", "\u016c": "U", "\xdc": "U", "\u01db": "U", "\u01d7": "U", "\u01d5": "U", "\u01d9": "U", "\u1ee6": "U", "\u016e": "U", "\u0170": "U", "\u01d3": "U", "\u0214": "U", "\u0216": "U", "\u01af": "U", "\u1eea": "U", "\u1ee8": "U", "\u1eee": "U", "\u1eec": "U", "\u1ef0": "U", "\u1ee4": "U", "\u1e72": "U", "\u0172": "U", "\u1e76": "U", "\u1e74": "U", "\u0244": "U", "\u24cb": "V", "\uff36": "V", "\u1e7c": "V", "\u1e7e": "V", "\u01b2": "V", "\ua75e": "V", "\u0245": "V", "\ua760": "VY", "\u24cc": "W", "\uff37": "W", "\u1e80": "W", "\u1e82": "W", "\u0174": "W", "\u1e86": "W", "\u1e84": "W", "\u1e88": "W", "\u2c72": "W", "\u24cd": "X", "\uff38": "X", "\u1e8a": "X", "\u1e8c": "X", "\u24ce": "Y", "\uff39": "Y", "\u1ef2": "Y", "\xdd": "Y", "\u0176": "Y", "\u1ef8": "Y", "\u0232": "Y", "\u1e8e": "Y", "\u0178": "Y", "\u1ef6": "Y", "\u1ef4": "Y", "\u01b3": "Y", "\u024e": "Y", "\u1efe": "Y", "\u24cf": "Z", "\uff3a": "Z", "\u0179": "Z", "\u1e90": "Z", "\u017b": "Z", "\u017d": "Z", "\u1e92": "Z", "\u1e94": "Z", "\u01b5": "Z", "\u0224": "Z", "\u2c7f": "Z", "\u2c6b": "Z", "\ua762": "Z", "\u24d0": "a", "\uff41": "a", "\u1e9a": "a", "\xe0": "a", "\xe1": "a", "\xe2": "a", "\u1ea7": "a", "\u1ea5": "a", "\u1eab": "a", "\u1ea9": "a", "\xe3": "a", "\u0101": "a", "\u0103": "a", "\u1eb1": "a", "\u1eaf": "a", "\u1eb5": "a", "\u1eb3": "a", "\u0227": "a", "\u01e1": "a", "\xe4": "a", "\u01df": "a", "\u1ea3": "a", "\xe5": "a", "\u01fb": "a", "\u01ce": "a", "\u0201": "a", "\u0203": "a", "\u1ea1": "a", "\u1ead": "a", "\u1eb7": "a", "\u1e01": "a", "\u0105": "a", "\u2c65": "a", "\u0250": "a", "\ua733": "aa", "\xe6": "ae", "\u01fd": "ae", "\u01e3": "ae", "\ua735": "ao", "\ua737": "au", "\ua739": "av", "\ua73b": "av", "\ua73d": "ay", "\u24d1": "b", "\uff42": "b", "\u1e03": "b", "\u1e05": "b", "\u1e07": "b", "\u0180": "b", "\u0183": "b", "\u0253": "b", "\u24d2": "c", "\uff43": "c", "\u0107": "c", "\u0109": "c", "\u010b": "c", "\u010d": "c", "\xe7": "c", "\u1e09": "c", "\u0188": "c", "\u023c": "c", "\ua73f": "c", "\u2184": "c", "\u24d3": "d", "\uff44": "d", "\u1e0b": "d", "\u010f": "d", "\u1e0d": "d", "\u1e11": "d", "\u1e13": "d", "\u1e0f": "d", "\u0111": "d", "\u018c": "d", "\u0256": "d", "\u0257": "d", "\ua77a": "d", "\u01f3": "dz", "\u01c6": "dz", "\u24d4": "e", "\uff45": "e", "\xe8": "e", "\xe9": "e", "\xea": "e", "\u1ec1": "e", "\u1ebf": "e", "\u1ec5": "e", "\u1ec3": "e", "\u1ebd": "e", "\u0113": "e", "\u1e15": "e", "\u1e17": "e", "\u0115": "e", "\u0117": "e", "\xeb": "e", "\u1ebb": "e", "\u011b": "e", "\u0205": "e", "\u0207": "e", "\u1eb9": "e", "\u1ec7": "e", "\u0229": "e", "\u1e1d": "e", "\u0119": "e", "\u1e19": "e", "\u1e1b": "e", "\u0247": "e", "\u025b": "e", "\u01dd": "e", "\u24d5": "f", "\uff46": "f", "\u1e1f": "f", "\u0192": "f", "\ua77c": "f", "\u24d6": "g", "\uff47": "g", "\u01f5": "g", "\u011d": "g", "\u1e21": "g", "\u011f": "g", "\u0121": "g", "\u01e7": "g", "\u0123": "g", "\u01e5": "g", "\u0260": "g", "\ua7a1": "g", "\u1d79": "g", "\ua77f": "g", "\u24d7": "h", "\uff48": "h", "\u0125": "h", "\u1e23": "h", "\u1e27": "h", "\u021f": "h", "\u1e25": "h", "\u1e29": "h", "\u1e2b": "h", "\u1e96": "h", "\u0127": "h", "\u2c68": "h", "\u2c76": "h", "\u0265": "h", "\u0195": "hv", "\u24d8": "i", "\uff49": "i", "\xec": "i", "\xed": "i", "\xee": "i", "\u0129": "i", "\u012b": "i", "\u012d": "i", "\xef": "i", "\u1e2f": "i", "\u1ec9": "i", "\u01d0": "i", "\u0209": "i", "\u020b": "i", "\u1ecb": "i", "\u012f": "i", "\u1e2d": "i", "\u0268": "i", "\u0131": "i", "\u24d9": "j", "\uff4a": "j", "\u0135": "j", "\u01f0": "j", "\u0249": "j", "\u24da": "k", "\uff4b": "k", "\u1e31": "k", "\u01e9": "k", "\u1e33": "k", "\u0137": "k", "\u1e35": "k", "\u0199": "k", "\u2c6a": "k", "\ua741": "k", "\ua743": "k", "\ua745": "k", "\ua7a3": "k", "\u24db": "l", "\uff4c": "l", "\u0140": "l", "\u013a": "l", "\u013e": "l", "\u1e37": "l", "\u1e39": "l", "\u013c": "l", "\u1e3d": "l", "\u1e3b": "l", "\u017f": "l", "\u0142": "l", "\u019a": "l", "\u026b": "l", "\u2c61": "l", "\ua749": "l", "\ua781": "l", "\ua747": "l", "\u01c9": "lj", "\u24dc": "m", "\uff4d": "m", "\u1e3f": "m", "\u1e41": "m", "\u1e43": "m", "\u0271": "m", "\u026f": "m", "\u24dd": "n", "\uff4e": "n", "\u01f9": "n", "\u0144": "n", "\xf1": "n", "\u1e45": "n", "\u0148": "n", "\u1e47": "n", "\u0146": "n", "\u1e4b": "n", "\u1e49": "n", "\u019e": "n", "\u0272": "n", "\u0149": "n", "\ua791": "n", "\ua7a5": "n", "\u01cc": "nj", "\u24de": "o", "\uff4f": "o", "\xf2": "o", "\xf3": "o", "\xf4": "o", "\u1ed3": "o", "\u1ed1": "o", "\u1ed7": "o", "\u1ed5": "o", "\xf5": "o", "\u1e4d": "o", "\u022d": "o", "\u1e4f": "o", "\u014d": "o", "\u1e51": "o", "\u1e53": "o", "\u014f": "o", "\u022f": "o", "\u0231": "o", "\xf6": "o", "\u022b": "o", "\u1ecf": "o", "\u0151": "o", "\u01d2": "o", "\u020d": "o", "\u020f": "o", "\u01a1": "o", "\u1edd": "o", "\u1edb": "o", "\u1ee1": "o", "\u1edf": "o", "\u1ee3": "o", "\u1ecd": "o", "\u1ed9": "o", "\u01eb": "o", "\u01ed": "o", "\xf8": "o", "\u01ff": "o", "\u0254": "o", "\ua74b": "o", "\ua74d": "o", "\u0275": "o", "\u01a3": "oi", "\u0223": "ou", "\ua74f": "oo", "\u24df": "p", "\uff50": "p", "\u1e55": "p", "\u1e57": "p", "\u01a5": "p", "\u1d7d": "p", "\ua751": "p", "\ua753": "p", "\ua755": "p", "\u24e0": "q", "\uff51": "q", "\u024b": "q", "\ua757": "q", "\ua759": "q", "\u24e1": "r", "\uff52": "r", "\u0155": "r", "\u1e59": "r", "\u0159": "r", "\u0211": "r", "\u0213": "r", "\u1e5b": "r", "\u1e5d": "r", "\u0157": "r", "\u1e5f": "r", "\u024d": "r", "\u027d": "r", "\ua75b": "r", "\ua7a7": "r", "\ua783": "r", "\u24e2": "s", "\uff53": "s", "\xdf": "s", "\u015b": "s", "\u1e65": "s", "\u015d": "s", "\u1e61": "s", "\u0161": "s", "\u1e67": "s", "\u1e63": "s", "\u1e69": "s", "\u0219": "s", "\u015f": "s", "\u023f": "s", "\ua7a9": "s", "\ua785": "s", "\u1e9b": "s", "\u24e3": "t", "\uff54": "t", "\u1e6b": "t", "\u1e97": "t", "\u0165": "t", "\u1e6d": "t", "\u021b": "t", "\u0163": "t", "\u1e71": "t", "\u1e6f": "t", "\u0167": "t", "\u01ad": "t", "\u0288": "t", "\u2c66": "t", "\ua787": "t", "\ua729": "tz", "\u24e4": "u", "\uff55": "u", "\xf9": "u", "\xfa": "u", "\xfb": "u", "\u0169": "u", "\u1e79": "u", "\u016b": "u", "\u1e7b": "u", "\u016d": "u", "\xfc": "u", "\u01dc": "u", "\u01d8": "u", "\u01d6": "u", "\u01da": "u", "\u1ee7": "u", "\u016f": "u", "\u0171": "u", "\u01d4": "u", "\u0215": "u", "\u0217": "u", "\u01b0": "u", "\u1eeb": "u", "\u1ee9": "u", "\u1eef": "u", "\u1eed": "u", "\u1ef1": "u", "\u1ee5": "u", "\u1e73": "u", "\u0173": "u", "\u1e77": "u", "\u1e75": "u", "\u0289": "u", "\u24e5": "v", "\uff56": "v", "\u1e7d": "v", "\u1e7f": "v", "\u028b": "v", "\ua75f": "v", "\u028c": "v", "\ua761": "vy", "\u24e6": "w", "\uff57": "w", "\u1e81": "w", "\u1e83": "w", "\u0175": "w", "\u1e87": "w", "\u1e85": "w", "\u1e98": "w", "\u1e89": "w", "\u2c73": "w", "\u24e7": "x", "\uff58": "x", "\u1e8b": "x", "\u1e8d": "x", "\u24e8": "y", "\uff59": "y", "\u1ef3": "y", "\xfd": "y", "\u0177": "y", "\u1ef9": "y", "\u0233": "y", "\u1e8f": "y", "\xff": "y", "\u1ef7": "y", "\u1e99": "y", "\u1ef5": "y", "\u01b4": "y", "\u024f": "y", "\u1eff": "y", "\u24e9": "z", "\uff5a": "z", "\u017a": "z", "\u1e91": "z", "\u017c": "z", "\u017e": "z", "\u1e93": "z", "\u1e95": "z", "\u01b6": "z", "\u0225": "z", "\u0240": "z", "\u2c6c": "z", "\ua763": "z"};
j = a(document), g = function () {
var a = 1;
return function () {
return a++
}
}(), j.on("mousemove", function (a) {
i.x = a.pageX, i.y = a.pageY
}), d = N(Object, {bind: function (a) {
var b = this;
return function () {
a.apply(b, arguments)
}
}, init: function (c) {
var d, e, h, i, f = ".select2-results";
this.opts = c = this.prepareOpts(c), this.id = c.id, c.element.data("select2") !== b && null !== c.element.data("select2") && c.element.data("select2").destroy(), this.container = this.createContainer(), this.containerId = "s2id_" + (c.element.attr("id") || "autogen" + g()), this.containerSelector = "#" + this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, "\\$1"), this.container.attr("id", this.containerId), this.body = w(function () {
return c.element.closest("body")
}), D(this.container, this.opts.element, this.opts.adaptContainerCssClass), this.container.attr("style", c.element.attr("style")), this.container.css(K(c.containerCss)), this.container.addClass(K(c.containerCssClass)), this.elementTabIndex = this.opts.element.attr("tabindex"), this.opts.element.data("select2", this).attr("tabindex", "-1").before(this.container).on("click.select2", A), this.container.data("select2", this), this.dropdown = this.container.find(".select2-drop"), D(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass), this.dropdown.addClass(K(c.dropdownCssClass)), this.dropdown.data("select2", this), this.dropdown.on("click", A), this.results = d = this.container.find(f), this.search = e = this.container.find("input.select2-input"), this.queryCount = 0, this.resultsPage = 0, this.context = null, this.initContainer(), this.container.on("click", A), u(this.results), this.dropdown.on("mousemove-filtered touchstart touchmove touchend", f, this.bind(this.highlightUnderEvent)), x(80, this.results), this.dropdown.on("scroll-debounced", f, this.bind(this.loadMoreIfNeeded)), a(this.container).on("change", ".select2-input", function (a) {
a.stopPropagation()
}), a(this.dropdown).on("change", ".select2-input", function (a) {
a.stopPropagation()
}), a.fn.mousewheel && d.mousewheel(function (a, b, c, e) {
var f = d.scrollTop();
e > 0 && 0 >= f - e ? (d.scrollTop(0), A(a)) : 0 > e && d.get(0).scrollHeight - d.scrollTop() + e <= d.height() && (d.scrollTop(d.get(0).scrollHeight - d.height()), A(a))
}), t(e), e.on("keyup-change input paste", this.bind(this.updateResults)), e.on("focus", function () {
e.addClass("select2-focused")
}), e.on("blur", function () {
e.removeClass("select2-focused")
}), this.dropdown.on("mouseup", f, this.bind(function (b) {
a(b.target).closest(".select2-result-selectable").length > 0 && (this.highlightUnderEvent(b), this.selectHighlighted(b))
})), this.dropdown.on("click mouseup mousedown", function (a) {
a.stopPropagation()
}), a.isFunction(this.opts.initSelection) && (this.initSelection(), this.monitorSource()), null !== c.maximumInputLength && this.search.attr("maxlength", c.maximumInputLength);
var h = c.element.prop("disabled");
h === b && (h = !1), this.enable(!h);
var i = c.element.prop("readonly");
i === b && (i = !1), this.readonly(i), k = k || p(), this.autofocus = c.element.prop("autofocus"), c.element.prop("autofocus", !1), this.autofocus && this.focus(), this.nextSearchTerm = b
}, destroy: function () {
var a = this.opts.element, c = a.data("select2");
this.close(), this.propertyObserver && (delete this.propertyObserver, this.propertyObserver = null), c !== b && (c.container.remove(), c.dropdown.remove(), a.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus", this.autofocus || !1), this.elementTabIndex ? a.attr({tabindex: this.elementTabIndex}) : a.removeAttr("tabindex"), a.show())
}, optionToData: function (a) {
return a.is("option") ? {id: a.prop("value"), text: a.text(), element: a.get(), css: a.attr("class"), disabled: a.prop("disabled"), locked: q(a.attr("locked"), "locked") || q(a.data("locked"), !0)} : a.is("optgroup") ? {text: a.attr("label"), children: [], element: a.get(), css: a.attr("class")} : void 0
}, prepareOpts: function (c) {
var d, e, f, g, h = this;
if (d = c.element, "select" === d.get(0).tagName.toLowerCase() && (this.select = e = c.element), e && a.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () {
if (this in c)throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a element.")
}), c = a.extend({}, {populateResults: function (d, e, f) {
var g, l = this.opts.id;
g = function (d, e, i) {
var j, k, m, n, o, p, q, r, s, t;
for (d = c.sortResults(d, e, f), j = 0, k = d.length; k > j; j += 1)m = d[j], o = m.disabled === !0, n = !o && l(m) !== b, p = m.children && m.children.length > 0, q = a(" "), q.addClass("select2-results-dept-" + i), q.addClass("select2-result"), q.addClass(n ? "select2-result-selectable" : "select2-result-unselectable"), o && q.addClass("select2-disabled"), p && q.addClass("select2-result-with-children"), q.addClass(h.opts.formatResultCssClass(m)), r = a(document.createElement("div")), r.addClass("select2-result-label"), t = c.formatResult(m, r, f, h.opts.escapeMarkup), t !== b && r.html(t), q.append(r), p && (s = a(""), s.addClass("select2-result-sub"), g(m.children, s, i + 1), q.append(s)), q.data("select2-data", m), e.append(q)
}, g(e, d, 0)
}}, a.fn.select2.defaults, c), "function" != typeof c.id && (f = c.id, c.id = function (a) {
return a[f]
}), a.isArray(c.element.data("select2Tags"))) {
if ("tags"in c)throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 " + c.element.attr("id");
c.tags = c.element.data("select2Tags")
}
if (e ? (c.query = this.bind(function (a) {
var f, g, i, c = {results: [], more: !1}, e = a.term;
i = function (b, c) {
var d;
b.is("option") ? a.matcher(e, b.text(), b) && c.push(h.optionToData(b)) : b.is("optgroup") && (d = h.optionToData(b), b.children().each2(function (a, b) {
i(b, d.children)
}), d.children.length > 0 && c.push(d))
}, f = d.children(), this.getPlaceholder() !== b && f.length > 0 && (g = this.getPlaceholderOption(), g && (f = f.not(g))), f.each2(function (a, b) {
i(b, c.results)
}), a.callback(c)
}), c.id = function (a) {
return a.id
}, c.formatResultCssClass = function (a) {
return a.css
}) : "query"in c || ("ajax"in c ? (g = c.element.data("ajax-url"), g && g.length > 0 && (c.ajax.url = g), c.query = G.call(c.element, c.ajax)) : "data"in c ? c.query = H(c.data) : "tags"in c && (c.query = I(c.tags), c.createSearchChoice === b && (c.createSearchChoice = function (b) {
return{id: a.trim(b), text: a.trim(b)}
}), c.initSelection === b && (c.initSelection = function (b, d) {
var e = [];
a(r(b.val(), c.separator)).each(function () {
var b = {id: this, text: this}, d = c.tags;
a.isFunction(d) && (d = d()), a(d).each(function () {
return q(this.id, b.id) ? (b = this, !1) : void 0
}), e.push(b)
}), d(e)
}))), "function" != typeof c.query)throw"query function not defined for Select2 " + c.element.attr("id");
return c
}, monitorSource: function () {
var c, a = this.opts.element;
a.on("change.select2", this.bind(function () {
this.opts.element.data("select2-change-triggered") !== !0 && this.initSelection()
})), c = this.bind(function () {
var d, f = a.prop("disabled");
f === b && (f = !1), this.enable(!f);
var d = a.prop("readonly");
d === b && (d = !1), this.readonly(d), D(this.container, this.opts.element, this.opts.adaptContainerCssClass), this.container.addClass(K(this.opts.containerCssClass)), D(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass), this.dropdown.addClass(K(this.opts.dropdownCssClass))
}), a.on("propertychange.select2 DOMAttrModified.select2", c), this.mutationCallback === b && (this.mutationCallback = function (a) {
a.forEach(c)
}), "undefined" != typeof WebKitMutationObserver && (this.propertyObserver && (delete this.propertyObserver, this.propertyObserver = null), this.propertyObserver = new WebKitMutationObserver(this.mutationCallback), this.propertyObserver.observe(a.get(0), {attributes: !0, subtree: !1}))
}, triggerSelect: function (b) {
var c = a.Event("select2-selecting", {val: this.id(b), object: b});
return this.opts.element.trigger(c), !c.isDefaultPrevented()
}, triggerChange: function (b) {
b = b || {}, b = a.extend({}, b, {type: "change", val: this.val()}), this.opts.element.data("select2-change-triggered", !0), this.opts.element.trigger(b), this.opts.element.data("select2-change-triggered", !1), this.opts.element.click(), this.opts.blurOnChange && this.opts.element.blur()
}, isInterfaceEnabled: function () {
return this.enabledInterface === !0
}, enableInterface: function () {
var a = this._enabled && !this._readonly, b = !a;
return a === this.enabledInterface ? !1 : (this.container.toggleClass("select2-container-disabled", b), this.close(), this.enabledInterface = a, !0)
}, enable: function (a) {
a === b && (a = !0), this._enabled !== a && (this._enabled = a, this.opts.element.prop("disabled", !a), this.enableInterface())
}, disable: function () {
this.enable(!1)
}, readonly: function (a) {
return a === b && (a = !1), this._readonly === a ? !1 : (this._readonly = a, this.opts.element.prop("readonly", a), this.enableInterface(), !0)
}, opened: function () {
return this.container.hasClass("select2-dropdown-open")
}, positionDropdown: function () {
var q, r, s, t, b = this.dropdown, c = this.container.offset(), d = this.container.outerHeight(!1), e = this.container.outerWidth(!1), f = b.outerHeight(!1), g = a(window).scrollLeft() + a(window).width(), h = a(window).scrollTop() + a(window).height(), i = c.top + d, j = c.left, l = h >= i + f, m = c.top - f >= this.body().scrollTop(), n = b.outerWidth(!1), o = g >= j + n, p = b.hasClass("select2-drop-above");
this.opts.dropdownAutoWidth ? (t = a(".select2-results", b)[0], b.addClass("select2-drop-auto-width"), b.css("width", ""), n = b.outerWidth(!1) + (t.scrollHeight === t.clientHeight ? 0 : k.width), n > e ? e = n : n = e, o = g >= j + n) : this.container.removeClass("select2-drop-auto-width"), "static" !== this.body().css("position") && (q = this.body().offset(), i -= q.top, j -= q.left), p ? (r = !0, !m && l && (r = !1)) : (r = !1, !l && m && (r = !0)), o || (j = c.left + e - n), r ? (i = c.top - f, this.container.addClass("select2-drop-above"), b.addClass("select2-drop-above")) : (this.container.removeClass("select2-drop-above"), b.removeClass("select2-drop-above")), s = a.extend({top: i, left: j, width: e}, K(this.opts.dropdownCss)), b.css(s)
}, shouldOpen: function () {
var b;
return this.opened() ? !1 : this._enabled === !1 || this._readonly === !0 ? !1 : (b = a.Event("select2-opening"), this.opts.element.trigger(b), !b.isDefaultPrevented())
}, clearDropdownAlignmentPreference: function () {
this.container.removeClass("select2-drop-above"), this.dropdown.removeClass("select2-drop-above")
}, open: function () {
return this.shouldOpen() ? (this.opening(), !0) : !1
}, opening: function () {
var f, b = this.containerId, c = "scroll." + b, d = "resize." + b, e = "orientationchange." + b;
this.container.addClass("select2-dropdown-open").addClass("select2-container-active"), this.clearDropdownAlignmentPreference(), this.dropdown[0] !== this.body().children().last()[0] && this.dropdown.detach().appendTo(this.body()), f = a("#select2-drop-mask"), 0 == f.length && (f = a(document.createElement("div")), f.attr("id", "select2-drop-mask").attr("class", "select2-drop-mask"), f.hide(), f.appendTo(this.body()), f.on("mousedown touchstart click", function (b) {
var d, c = a("#select2-drop");
c.length > 0 && (d = c.data("select2"), d.opts.selectOnBlur && d.selectHighlighted({noFocus: !0}), d.close({focus: !1}), b.preventDefault(), b.stopPropagation())
})), this.dropdown.prev()[0] !== f[0] && this.dropdown.before(f), a("#select2-drop").removeAttr("id"), this.dropdown.attr("id", "select2-drop"), f.show(), this.positionDropdown(), this.dropdown.show(), this.positionDropdown(), this.dropdown.addClass("select2-drop-active");
var h = this;
this.container.parents().add(window).each(function () {
a(this).on(d + " " + c + " " + e, function () {
h.positionDropdown()
})
})
}, close: function () {
if (this.opened()) {
var b = this.containerId, c = "scroll." + b, d = "resize." + b, e = "orientationchange." + b;
this.container.parents().add(window).each(function () {
a(this).off(c).off(d).off(e)
}), this.clearDropdownAlignmentPreference(), a("#select2-drop-mask").hide(), this.dropdown.removeAttr("id"), this.dropdown.hide(), this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active"), this.results.empty(), this.clearSearch(), this.search.removeClass("select2-active"), this.opts.element.trigger(a.Event("select2-close"))
}
}, externalSearch: function (a) {
this.open(), this.search.val(a), this.updateResults(!1)
}, clearSearch: function () {
}, getMaximumSelectionSize: function () {
return K(this.opts.maximumSelectionSize)
}, ensureHighlightVisible: function () {
var c, d, e, f, g, h, i, b = this.results;
if (d = this.highlight(), !(0 > d)) {
if (0 == d)return b.scrollTop(0), void 0;
c = this.findHighlightableChoices().find(".select2-result-label"), e = a(c[d]), f = e.offset().top + e.outerHeight(!0), d === c.length - 1 && (i = b.find("li.select2-more-results"), i.length > 0 && (f = i.offset().top + i.outerHeight(!0))), g = b.offset().top + b.outerHeight(!0), f > g && b.scrollTop(b.scrollTop() + (f - g)), h = e.offset().top - b.offset().top, 0 > h && "none" != e.css("display") && b.scrollTop(b.scrollTop() + h)
}
}, findHighlightableChoices: function () {
return this.results.find(".select2-result-selectable:not(.select2-disabled)")
}, moveHighlight: function (b) {
for (var c = this.findHighlightableChoices(), d = this.highlight(); d > -1 && d < c.length;) {
d += b;
var e = a(c[d]);
if (e.hasClass("select2-result-selectable") && !e.hasClass("select2-disabled") && !e.hasClass("select2-selected")) {
this.highlight(d);
break
}
}
}, highlight: function (b) {
var d, e, c = this.findHighlightableChoices();
return 0 === arguments.length ? o(c.filter(".select2-highlighted")[0], c.get()) : (b >= c.length && (b = c.length - 1), 0 > b && (b = 0), this.removeHighlight(), d = a(c[b]), d.addClass("select2-highlighted"), this.ensureHighlightVisible(), e = d.data("select2-data"), e && this.opts.element.trigger({type: "select2-highlight", val: this.id(e), choice: e}), void 0)
}, removeHighlight: function () {
this.results.find(".select2-highlighted").removeClass("select2-highlighted")
}, countSelectableResults: function () {
return this.findHighlightableChoices().length
}, highlightUnderEvent: function (b) {
var c = a(b.target).closest(".select2-result-selectable");
if (c.length > 0 && !c.is(".select2-highlighted")) {
var d = this.findHighlightableChoices();
this.highlight(d.index(c))
} else 0 == c.length && this.removeHighlight()
}, loadMoreIfNeeded: function () {
var c, a = this.results, b = a.find("li.select2-more-results"), e = this.resultsPage + 1, f = this, g = this.search.val(), h = this.context;
0 !== b.length && (c = b.offset().top - a.offset().top - a.height(), c <= this.opts.loadMorePadding && (b.addClass("select2-active"), this.opts.query({element: this.opts.element, term: g, page: e, context: h, matcher: this.opts.matcher, callback: this.bind(function (c) {
f.opened() && (f.opts.populateResults.call(this, a, c.results, {term: g, page: e, context: h}), f.postprocessResults(c, !1, !1), c.more === !0 ? (b.detach().appendTo(a).text(f.opts.formatLoadMore(e + 1)), window.setTimeout(function () {
f.loadMoreIfNeeded()
}, 10)) : b.remove(), f.positionDropdown(), f.resultsPage = e, f.context = c.context, this.opts.element.trigger({type: "select2-loaded", items: c}))
})})))
}, tokenize: function () {
}, updateResults: function (c) {
function m() {
d.removeClass("select2-active"), h.positionDropdown()
}
function n(a) {
e.html(a), m()
}
var g, i, l, d = this.search, e = this.results, f = this.opts, h = this, j = d.val(), k = a.data(this.container, "select2-last-term");
if ((c === !0 || !k || !q(j, k)) && (a.data(this.container, "select2-last-term", j), c === !0 || this.showSearchInput !== !1 && this.opened())) {
l = ++this.queryCount;
var o = this.getMaximumSelectionSize();
if (o >= 1 && (g = this.data(), a.isArray(g) && g.length >= o && J(f.formatSelectionTooBig, "formatSelectionTooBig")))return n("" + f.formatSelectionTooBig(o) + " "), void 0;
if (d.val().length < f.minimumInputLength)return J(f.formatInputTooShort, "formatInputTooShort") ? n("" + f.formatInputTooShort(d.val(), f.minimumInputLength) + " ") : n(""), c && this.showSearch && this.showSearch(!0), void 0;
if (f.maximumInputLength && d.val().length > f.maximumInputLength)return J(f.formatInputTooLong, "formatInputTooLong") ? n("" + f.formatInputTooLong(d.val(), f.maximumInputLength) + " ") : n(""), void 0;
f.formatSearching && 0 === this.findHighlightableChoices().length && n("" + f.formatSearching() + " "), d.addClass("select2-active"), this.removeHighlight(), i = this.tokenize(), i != b && null != i && d.val(i), this.resultsPage = 1, f.query({element: f.element, term: d.val(), page: this.resultsPage, context: null, matcher: f.matcher, callback: this.bind(function (g) {
var i;
if (l == this.queryCount) {
if (!this.opened())return this.search.removeClass("select2-active"), void 0;
if (this.context = g.context === b ? null : g.context, this.opts.createSearchChoice && "" !== d.val() && (i = this.opts.createSearchChoice.call(h, d.val(), g.results), i !== b && null !== i && h.id(i) !== b && null !== h.id(i) && 0 === a(g.results).filter(function () {
return q(h.id(this), h.id(i))
}).length && g.results.unshift(i)), 0 === g.results.length && J(f.formatNoMatches, "formatNoMatches"))return n("" + f.formatNoMatches(d.val()) + " "), void 0;
e.empty(), h.opts.populateResults.call(this, e, g.results, {term: d.val(), page: this.resultsPage, context: null}), g.more === !0 && J(f.formatLoadMore, "formatLoadMore") && (e.append("" + h.opts.escapeMarkup(f.formatLoadMore(this.resultsPage)) + " "), window.setTimeout(function () {
h.loadMoreIfNeeded()
}, 10)), this.postprocessResults(g, c), m(), this.opts.element.trigger({type: "select2-loaded", items: g})
}
})})
}
}, cancel: function () {
this.close()
}, blur: function () {
this.opts.selectOnBlur && this.selectHighlighted({noFocus: !0}), this.close(), this.container.removeClass("select2-container-active"), this.search[0] === document.activeElement && this.search.blur(), this.clearSearch(), this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")
}, focusSearch: function () {
y(this.search)
}, selectHighlighted: function (a) {
var b = this.highlight(), c = this.results.find(".select2-highlighted"), d = c.closest(".select2-result").data("select2-data");
d ? (this.highlight(b), this.onSelect(d, a)) : a && a.noFocus && this.close()
}, getPlaceholder: function () {
var a;
return this.opts.element.attr("placeholder") || this.opts.element.attr("data-placeholder") || this.opts.element.data("placeholder") || this.opts.placeholder || ((a = this.getPlaceholderOption()) !== b ? a.text() : b)
}, getPlaceholderOption: function () {
if (this.select) {
var a = this.select.children().first();
if (this.opts.placeholderOption !== b)return"first" === this.opts.placeholderOption && a || "function" == typeof this.opts.placeholderOption && this.opts.placeholderOption(this.select);
if ("" === a.text() && "" === a.val())return a
}
}, initContainerWidth: function () {
function c() {
var c, d, e, f, g;
if ("off" === this.opts.width)return null;
if ("element" === this.opts.width)return 0 === this.opts.element.outerWidth(!1) ? "auto" : this.opts.element.outerWidth(!1) + "px";
if ("copy" === this.opts.width || "resolve" === this.opts.width) {
if (c = this.opts.element.attr("style"), c !== b)for (d = c.split(";"), f = 0, g = d.length; g > f; f += 1)if (e = d[f].replace(/\s/g, "").match(/[^-]width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i), null !== e && e.length >= 1)return e[1];
return"resolve" === this.opts.width ? (c = this.opts.element.css("width"), c.indexOf("%") > 0 ? c : 0 === this.opts.element.outerWidth(!1) ? "auto" : this.opts.element.outerWidth(!1) + "px") : null
}
return a.isFunction(this.opts.width) ? this.opts.width() : this.opts.width
}
var d = c.call(this);
null !== d && this.container.css("width", d)
}}), e = N(d, {createContainer: function () {
var b = a(document.createElement("div")).attr({"class": "select2-container"}).html(["", " ", " ", " ", " ", ""].join(""));
return b
}, enableInterface: function () {
this.parent.enableInterface.apply(this, arguments) && this.focusser.prop("disabled", !this.isInterfaceEnabled())
}, opening: function () {
var c, d, e;
this.opts.minimumResultsForSearch >= 0 && this.showSearch(!0), this.parent.opening.apply(this, arguments), this.showSearchInput !== !1 && this.search.val(this.focusser.val()), this.search.focus(), c = this.search.get(0), c.createTextRange ? (d = c.createTextRange(), d.collapse(!1), d.select()) : c.setSelectionRange && (e = this.search.val().length, c.setSelectionRange(e, e)), "" === this.search.val() && this.nextSearchTerm != b && (this.search.val(this.nextSearchTerm), this.search.select()), this.focusser.prop("disabled", !0).val(""), this.updateResults(!0), this.opts.element.trigger(a.Event("select2-open"))
}, close: function (a) {
this.opened() && (this.parent.close.apply(this, arguments), a = a || {focus: !0}, this.focusser.removeAttr("disabled"), a.focus && this.focusser.focus())
}, focus: function () {
this.opened() ? this.close() : (this.focusser.removeAttr("disabled"), this.focusser.focus())
}, isFocused: function () {
return this.container.hasClass("select2-container-active")
}, cancel: function () {
this.parent.cancel.apply(this, arguments), this.focusser.removeAttr("disabled"), this.focusser.focus()
}, destroy: function () {
a("label[for='" + this.focusser.attr("id") + "']").attr("for", this.opts.element.attr("id")), this.parent.destroy.apply(this, arguments)
}, initContainer: function () {
var b, d = this.container, e = this.dropdown;
this.opts.minimumResultsForSearch < 0 ? this.showSearch(!1) : this.showSearch(!0), this.selection = b = d.find(".select2-choice"), this.focusser = d.find(".select2-focusser"), this.focusser.attr("id", "s2id_autogen" + g()), a("label[for='" + this.opts.element.attr("id") + "']").attr("for", this.focusser.attr("id")), this.focusser.attr("tabindex", this.elementTabIndex), this.search.on("keydown", this.bind(function (a) {
if (this.isInterfaceEnabled()) {
if (a.which === c.PAGE_UP || a.which === c.PAGE_DOWN)return A(a), void 0;
switch (a.which) {
case c.UP:
case c.DOWN:
return this.moveHighlight(a.which === c.UP ? -1 : 1), A(a), void 0;
case c.ENTER:
return this.selectHighlighted(), A(a), void 0;
case c.TAB:
return this.selectHighlighted({noFocus: !0}), void 0;
case c.ESC:
return this.cancel(a), A(a), void 0
}
}
})), this.search.on("blur", this.bind(function () {
document.activeElement === this.body().get(0) && window.setTimeout(this.bind(function () {
this.search.focus()
}), 0)
})), this.focusser.on("keydown", this.bind(function (a) {
if (this.isInterfaceEnabled() && a.which !== c.TAB && !c.isControl(a) && !c.isFunctionKey(a) && a.which !== c.ESC) {
if (this.opts.openOnEnter === !1 && a.which === c.ENTER)return A(a), void 0;
if (a.which == c.DOWN || a.which == c.UP || a.which == c.ENTER && this.opts.openOnEnter) {
if (a.altKey || a.ctrlKey || a.shiftKey || a.metaKey)return;
return this.open(), A(a), void 0
}
return a.which == c.DELETE || a.which == c.BACKSPACE ? (this.opts.allowClear && this.clear(), A(a), void 0) : void 0
}
})), t(this.focusser), this.focusser.on("keyup-change input", this.bind(function (a) {
if (this.opts.minimumResultsForSearch >= 0) {
if (a.stopPropagation(), this.opened())return;
this.open()
}
})), b.on("mousedown", "abbr", this.bind(function (a) {
this.isInterfaceEnabled() && (this.clear(), B(a), this.close(), this.selection.focus())
})), b.on("mousedown", this.bind(function (b) {
this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.opened() ? this.close() : this.isInterfaceEnabled() && this.open(), A(b)
})), e.on("mousedown", this.bind(function () {
this.search.focus()
})), b.on("focus", this.bind(function (a) {
A(a)
})), this.focusser.on("focus", this.bind(function () {
this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active")
})).on("blur", this.bind(function () {
this.opened() || (this.container.removeClass("select2-container-active"), this.opts.element.trigger(a.Event("select2-blur")))
})), this.search.on("focus", this.bind(function () {
this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active")
})), this.initContainerWidth(), this.opts.element.addClass("select2-offscreen"), this.setPlaceholder()
}, clear: function (b) {
var c = this.selection.data("select2-data");
if (c) {
var d = a.Event("select2-clearing");
if (this.opts.element.trigger(d), d.isDefaultPrevented())return;
var e = this.getPlaceholderOption();
this.opts.element.val(e ? e.val() : ""), this.selection.find(".select2-chosen").empty(), this.selection.removeData("select2-data"), this.setPlaceholder(), b !== !1 && (this.opts.element.trigger({type: "select2-removed", val: this.id(c), choice: c}), this.triggerChange({removed: c}))
}
}, initSelection: function () {
if (this.isPlaceholderOptionSelected())this.updateSelection(null), this.close(), this.setPlaceholder(); else {
var c = this;
this.opts.initSelection.call(null, this.opts.element, function (a) {
a !== b && null !== a && (c.updateSelection(a), c.close(), c.setPlaceholder())
})
}
}, isPlaceholderOptionSelected: function () {
var a;
return this.getPlaceholder() ? (a = this.getPlaceholderOption()) !== b && a.is(":selected") || "" === this.opts.element.val() || this.opts.element.val() === b || null === this.opts.element.val() : !1
}, prepareOpts: function () {
var b = this.parent.prepareOpts.apply(this, arguments), c = this;
return"select" === b.element.get(0).tagName.toLowerCase() ? b.initSelection = function (a, b) {
var d = a.find(":selected");
b(c.optionToData(d))
} : "data"in b && (b.initSelection = b.initSelection || function (c, d) {
var e = c.val(), f = null;
b.query({matcher: function (a, c, d) {
var g = q(e, b.id(d));
return g && (f = d), g
}, callback: a.isFunction(d) ? function () {
d(f)
} : a.noop})
}), b
}, getPlaceholder: function () {
return this.select && this.getPlaceholderOption() === b ? b : this.parent.getPlaceholder.apply(this, arguments)
}, setPlaceholder: function () {
var a = this.getPlaceholder();
if (this.isPlaceholderOptionSelected() && a !== b) {
if (this.select && this.getPlaceholderOption() === b)return;
this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)), this.selection.addClass("select2-default"), this.container.removeClass("select2-allowclear")
}
}, postprocessResults: function (a, b, c) {
var d = 0, e = this;
if (this.findHighlightableChoices().each2(function (a, b) {
return q(e.id(b.data("select2-data")), e.opts.element.val()) ? (d = a, !1) : void 0
}), c !== !1 && (b === !0 && d >= 0 ? this.highlight(d) : this.highlight(0)), b === !0) {
var g = this.opts.minimumResultsForSearch;
g >= 0 && this.showSearch(L(a.results) >= g)
}
}, showSearch: function (b) {
this.showSearchInput !== b && (this.showSearchInput = b, this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !b), this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !b), a(this.dropdown, this.container).toggleClass("select2-with-searchbox", b))
}, onSelect: function (a, b) {
if (this.triggerSelect(a)) {
var c = this.opts.element.val(), d = this.data();
this.opts.element.val(this.id(a)), this.updateSelection(a), this.opts.element.trigger({type: "select2-selected", val: this.id(a), choice: a}), this.nextSearchTerm = this.opts.nextSearchTerm(a, this.search.val()), this.close(), b && b.noFocus || this.focusser.focus(), q(c, this.id(a)) || this.triggerChange({added: a, removed: d})
}
}, updateSelection: function (a) {
var d, e, c = this.selection.find(".select2-chosen");
this.selection.data("select2-data", a), c.empty(), null !== a && (d = this.opts.formatSelection(a, c, this.opts.escapeMarkup)), d !== b && c.append(d), e = this.opts.formatSelectionCssClass(a, c), e !== b && c.addClass(e), this.selection.removeClass("select2-default"), this.opts.allowClear && this.getPlaceholder() !== b && this.container.addClass("select2-allowclear")
}, val: function () {
var a, c = !1, d = null, e = this, f = this.data();
if (0 === arguments.length)return this.opts.element.val();
if (a = arguments[0], arguments.length > 1 && (c = arguments[1]), this.select)this.select.val(a).find(":selected").each2(function (a, b) {
return d = e.optionToData(b), !1
}), this.updateSelection(d), this.setPlaceholder(), c && this.triggerChange({added: d, removed: f}); else {
if (!a && 0 !== a)return this.clear(c), void 0;
if (this.opts.initSelection === b)throw new Error("cannot call val() if initSelection() is not defined");
this.opts.element.val(a), this.opts.initSelection(this.opts.element, function (a) {
e.opts.element.val(a ? e.id(a) : ""), e.updateSelection(a), e.setPlaceholder(), c && e.triggerChange({added: a, removed: f})
})
}
}, clearSearch: function () {
this.search.val(""), this.focusser.val("")
}, data: function (a) {
var c, d = !1;
return 0 === arguments.length ? (c = this.selection.data("select2-data"), c == b && (c = null), c) : (arguments.length > 1 && (d = arguments[1]), a ? (c = this.data(), this.opts.element.val(a ? this.id(a) : ""), this.updateSelection(a), d && this.triggerChange({added: a, removed: c})) : this.clear(d), void 0)
}}), f = N(d, {createContainer: function () {
var b = a(document.createElement("div")).attr({"class": "select2-container select2-container-multi"}).html(["", ""].join(""));
return b
}, prepareOpts: function () {
var b = this.parent.prepareOpts.apply(this, arguments), c = this;
return"select" === b.element.get(0).tagName.toLowerCase() ? b.initSelection = function (a, b) {
var d = [];
a.find(":selected").each2(function (a, b) {
d.push(c.optionToData(b))
}), b(d)
} : "data"in b && (b.initSelection = b.initSelection || function (c, d) {
var e = r(c.val(), b.separator), f = [];
b.query({matcher: function (c, d, g) {
var h = a.grep(e,function (a) {
return q(a, b.id(g))
}).length;
return h && f.push(g), h
}, callback: a.isFunction(d) ? function () {
for (var a = [], c = 0; c < e.length; c++)for (var g = e[c], h = 0; h < f.length; h++) {
var i = f[h];
if (q(g, b.id(i))) {
a.push(i), f.splice(h, 1);
break
}
}
d(a)
} : a.noop})
}), b
}, selectChoice: function (a) {
var b = this.container.find(".select2-search-choice-focus");
b.length && a && a[0] == b[0] || (b.length && this.opts.element.trigger("choice-deselected", b), b.removeClass("select2-search-choice-focus"), a && a.length && (this.close(), a.addClass("select2-search-choice-focus"), this.opts.element.trigger("choice-selected", a)))
}, destroy: function () {
a("label[for='" + this.search.attr("id") + "']").attr("for", this.opts.element.attr("id")), this.parent.destroy.apply(this, arguments)
}, initContainer: function () {
var d, b = ".select2-choices";
this.searchContainer = this.container.find(".select2-search-field"), this.selection = d = this.container.find(b);
var e = this;
this.selection.on("click", ".select2-search-choice:not(.select2-locked)", function () {
e.search[0].focus(), e.selectChoice(a(this))
}), this.search.attr("id", "s2id_autogen" + g()), a("label[for='" + this.opts.element.attr("id") + "']").attr("for", this.search.attr("id")), this.search.on("input paste", this.bind(function () {
this.isInterfaceEnabled() && (this.opened() || this.open())
})), this.search.attr("tabindex", this.elementTabIndex), this.keydowns = 0, this.search.on("keydown", this.bind(function (a) {
if (this.isInterfaceEnabled()) {
++this.keydowns;
var b = d.find(".select2-search-choice-focus"), e = b.prev(".select2-search-choice:not(.select2-locked)"), f = b.next(".select2-search-choice:not(.select2-locked)"), g = z(this.search);
if (b.length && (a.which == c.LEFT || a.which == c.RIGHT || a.which == c.BACKSPACE || a.which == c.DELETE || a.which == c.ENTER)) {
var h = b;
return a.which == c.LEFT && e.length ? h = e : a.which == c.RIGHT ? h = f.length ? f : null : a.which === c.BACKSPACE ? (this.unselect(b.first()), this.search.width(10), h = e.length ? e : f) : a.which == c.DELETE ? (this.unselect(b.first()), this.search.width(10), h = f.length ? f : null) : a.which == c.ENTER && (h = null), this.selectChoice(h), A(a), h && h.length || this.open(), void 0
}
if ((a.which === c.BACKSPACE && 1 == this.keydowns || a.which == c.LEFT) && 0 == g.offset && !g.length)return this.selectChoice(d.find(".select2-search-choice:not(.select2-locked)").last()), A(a), void 0;
if (this.selectChoice(null), this.opened())switch (a.which) {
case c.UP:
case c.DOWN:
return this.moveHighlight(a.which === c.UP ? -1 : 1), A(a), void 0;
case c.ENTER:
return this.selectHighlighted(), A(a), void 0;
case c.TAB:
return this.selectHighlighted({noFocus: !0}), this.close(), void 0;
case c.ESC:
return this.cancel(a), A(a), void 0
}
if (a.which !== c.TAB && !c.isControl(a) && !c.isFunctionKey(a) && a.which !== c.BACKSPACE && a.which !== c.ESC) {
if (a.which === c.ENTER) {
if (this.opts.openOnEnter === !1)return;
if (a.altKey || a.ctrlKey || a.shiftKey || a.metaKey)return
}
this.open(), (a.which === c.PAGE_UP || a.which === c.PAGE_DOWN) && A(a), a.which === c.ENTER && A(a)
}
}
})), this.search.on("keyup", this.bind(function () {
this.keydowns = 0, this.resizeSearch()
})), this.search.on("blur", this.bind(function (b) {
this.container.removeClass("select2-container-active"), this.search.removeClass("select2-focused"), this.selectChoice(null), this.opened() || this.clearSearch(), b.stopImmediatePropagation(), this.opts.element.trigger(a.Event("select2-blur"))
})), this.container.on("click", b, this.bind(function (b) {
this.isInterfaceEnabled() && (a(b.target).closest(".select2-search-choice").length > 0 || (this.selectChoice(null), this.clearPlaceholder(), this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.open(), this.focusSearch(), b.preventDefault()))
})), this.container.on("focus", b, this.bind(function () {
this.isInterfaceEnabled() && (this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active"), this.dropdown.addClass("select2-drop-active"), this.clearPlaceholder())
})), this.initContainerWidth(), this.opts.element.addClass("select2-offscreen"), this.clearSearch()
}, enableInterface: function () {
this.parent.enableInterface.apply(this, arguments) && this.search.prop("disabled", !this.isInterfaceEnabled())
}, initSelection: function () {
if ("" === this.opts.element.val() && "" === this.opts.element.text() && (this.updateSelection([]), this.close(), this.clearSearch()), this.select || "" !== this.opts.element.val()) {
var c = this;
this.opts.initSelection.call(null, this.opts.element, function (a) {
a !== b && null !== a && (c.updateSelection(a), c.close(), c.clearSearch())
})
}
}, clearSearch: function () {
var a = this.getPlaceholder(), c = this.getMaxSearchWidth();
a !== b && 0 === this.getVal().length && this.search.hasClass("select2-focused") === !1 ? (this.search.val(a).addClass("select2-default"), this.search.width(c > 0 ? c : this.container.css("width"))) : this.search.val("").width(10)
}, clearPlaceholder: function () {
this.search.hasClass("select2-default") && this.search.val("").removeClass("select2-default")
}, opening: function () {
this.clearPlaceholder(), this.resizeSearch(), this.parent.opening.apply(this, arguments), this.focusSearch(), this.updateResults(!0), this.search.focus(), this.opts.element.trigger(a.Event("select2-open"))
}, close: function () {
this.opened() && this.parent.close.apply(this, arguments)
}, focus: function () {
this.close(), this.search.focus()
}, isFocused: function () {
return this.search.hasClass("select2-focused")
}, updateSelection: function (b) {
var c = [], d = [], e = this;
a(b).each(function () {
o(e.id(this), c) < 0 && (c.push(e.id(this)), d.push(this))
}), b = d, this.selection.find(".select2-search-choice").remove(), a(b).each(function () {
e.addSelectedChoice(this)
}), e.postprocessResults()
}, tokenize: function () {
var a = this.search.val();
a = this.opts.tokenizer.call(this, a, this.data(), this.bind(this.onSelect), this.opts), null != a && a != b && (this.search.val(a), a.length > 0 && this.open())
}, onSelect: function (a, b) {
this.triggerSelect(a) && (this.addSelectedChoice(a), this.opts.element.trigger({type: "selected", val: this.id(a), choice: a}), (this.select || !this.opts.closeOnSelect) && this.postprocessResults(a, !1, this.opts.closeOnSelect === !0), this.opts.closeOnSelect ? (this.close(), this.search.width(10)) : this.countSelectableResults() > 0 ? (this.search.width(10), this.resizeSearch(), this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize() && this.updateResults(!0), this.positionDropdown()) : (this.close(), this.search.width(10)), this.triggerChange({added: a}), b && b.noFocus || this.focusSearch())
}, cancel: function () {
this.close(), this.focusSearch()
}, addSelectedChoice: function (c) {
var j, k, d = !c.locked, e = a("
"), f = a("
"), g = d ? e : f, h = this.id(c), i = this.getVal();
j = this.opts.formatSelection(c, g.find("div"), this.opts.escapeMarkup), j != b && g.find("div").replaceWith("" + j + "
"), k = this.opts.formatSelectionCssClass(c, g.find("div")), k != b && g.addClass(k), d && g.find(".select2-search-choice-close").on("mousedown", A).on("click dblclick", this.bind(function (b) {
this.isInterfaceEnabled() && (a(b.target).closest(".select2-search-choice").fadeOut("fast", this.bind(function () {
this.unselect(a(b.target)), this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"), this.close(), this.focusSearch()
})).dequeue(), A(b))
})).on("focus", this.bind(function () {
this.isInterfaceEnabled() && (this.container.addClass("select2-container-active"), this.dropdown.addClass("select2-drop-active"))
})), g.data("select2-data", c), g.insertBefore(this.searchContainer), i.push(h), this.setVal(i)
}, unselect: function (a) {
var c, d, b = this.getVal();
if (a = a.closest(".select2-search-choice"), 0 === a.length)throw"Invalid argument: " + a + ". Must be .select2-search-choice";
if (c = a.data("select2-data")) {
for (; (d = o(this.id(c), b)) >= 0;)b.splice(d, 1), this.setVal(b), this.select && this.postprocessResults();
a.remove(), this.opts.element.trigger({type: "removed", val: this.id(c), choice: c}), this.triggerChange({removed: c})
}
}, postprocessResults: function (a, b, c) {
var d = this.getVal(), e = this.results.find(".select2-result"), f = this.results.find(".select2-result-with-children"), g = this;
e.each2(function (a, b) {
var c = g.id(b.data("select2-data"));
o(c, d) >= 0 && (b.addClass("select2-selected"), b.find(".select2-result-selectable").addClass("select2-selected"))
}), f.each2(function (a, b) {
b.is(".select2-result-selectable") || 0 !== b.find(".select2-result-selectable:not(.select2-selected)").length || b.addClass("select2-selected")
}), -1 == this.highlight() && c !== !1 && g.highlight(0), !this.opts.createSearchChoice && !e.filter(".select2-result:not(.select2-selected)").length > 0 && (!a || a && !a.more && 0 === this.results.find(".select2-no-results").length) && J(g.opts.formatNoMatches, "formatNoMatches") && this.results.append("" + g.opts.formatNoMatches(g.search.val()) + " ")
}, getMaxSearchWidth: function () {
return this.selection.width() - s(this.search)
}, resizeSearch: function () {
var a, b, c, d, e, f = s(this.search);
a = C(this.search) + 10, b = this.search.offset().left, c = this.selection.width(), d = this.selection.offset().left, e = c - (b - d) - f, a > e && (e = c - f), 40 > e && (e = c - f), 0 >= e && (e = a), this.search.width(Math.floor(e))
}, getVal: function () {
var a;
return this.select ? (a = this.select.val(), null === a ? [] : a) : (a = this.opts.element.val(), r(a, this.opts.separator))
}, setVal: function (b) {
var c;
this.select ? this.select.val(b) : (c = [], a(b).each(function () {
o(this, c) < 0 && c.push(this)
}), this.opts.element.val(0 === c.length ? "" : c.join(this.opts.separator)))
}, buildChangeDetails: function (a, b) {
for (var b = b.slice(0), a = a.slice(0), c = 0; c < b.length; c++)for (var d = 0; d < a.length; d++)q(this.opts.id(b[c]), this.opts.id(a[d])) && (b.splice(c, 1), c--, a.splice(d, 1), d--);
return{added: b, removed: a}
}, val: function (c, d) {
var e, f = this;
if (0 === arguments.length)return this.getVal();
if (e = this.data(), e.length || (e = []), !c && 0 !== c)return this.opts.element.val(""), this.updateSelection([]), this.clearSearch(), d && this.triggerChange({added: this.data(), removed: e}), void 0;
if (this.setVal(c), this.select)this.opts.initSelection(this.select, this.bind(this.updateSelection)), d && this.triggerChange(this.buildChangeDetails(e, this.data())); else {
if (this.opts.initSelection === b)throw new Error("val() cannot be called if initSelection() is not defined");
this.opts.initSelection(this.opts.element, function (b) {
var c = a.map(b, f.id);
f.setVal(c), f.updateSelection(b), f.clearSearch(), d && f.triggerChange(f.buildChangeDetails(e, this.data()))
})
}
this.clearSearch()
}, onSortStart: function () {
if (this.select)throw new Error("Sorting of elements is not supported when attached to . Attach to instead.");
this.search.width(0), this.searchContainer.hide()
}, onSortEnd: function () {
var b = [], c = this;
this.searchContainer.show(), this.searchContainer.appendTo(this.searchContainer.parent()), this.resizeSearch(), this.selection.find(".select2-search-choice").each(function () {
b.push(c.opts.id(a(this).data("select2-data")))
}), this.setVal(b), this.triggerChange()
}, data: function (b, c) {
var e, f, d = this;
return 0 === arguments.length ? this.selection.find(".select2-search-choice").map(function () {
return a(this).data("select2-data")
}).get() : (f = this.data(), b || (b = []), e = a.map(b, function (a) {
return d.opts.id(a)
}), this.setVal(e), this.updateSelection(b), this.clearSearch(), c && this.triggerChange(this.buildChangeDetails(f, this.data())), void 0)
}}), a.fn.select2 = function () {
var d, g, h, i, j, c = Array.prototype.slice.call(arguments, 0), k = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "disable", "readonly", "positionDropdown", "data", "search"], l = ["opened", "isFocused", "container", "dropdown"], m = ["val", "data"], n = {search: "externalSearch"};
return this.each(function () {
if (0 === c.length || "object" == typeof c[0])d = 0 === c.length ? {} : a.extend({}, c[0]), d.element = a(this), "select" === d.element.get(0).tagName.toLowerCase() ? j = d.element.prop("multiple") : (j = d.multiple || !1, "tags"in d && (d.multiple = j = !0)), g = j ? new f : new e, g.init(d); else {
if ("string" != typeof c[0])throw"Invalid arguments to select2 plugin: " + c;
if (o(c[0], k) < 0)throw"Unknown method: " + c[0];
if (i = b, g = a(this).data("select2"), g === b)return;
if (h = c[0], "container" === h ? i = g.container : "dropdown" === h ? i = g.dropdown : (n[h] && (h = n[h]), i = g[h].apply(g, c.slice(1))), o(c[0], l) >= 0 || o(c[0], m) && 1 == c.length)return!1
}
}), i === b ? this : i
}, a.fn.select2.defaults = {width: "copy", loadMorePadding: 0, closeOnSelect: !0, openOnEnter: !0, containerCss: {}, dropdownCss: {}, containerCssClass: "", dropdownCssClass: "", formatResult: function (a, b, c, d) {
var e = [];
return E(a.text, c.term, e, d), e.join("")
}, formatSelection: function (a, c, d) {
return a ? d(a.text) : b
}, sortResults: function (a) {
return a
}, formatResultCssClass: function () {
return b
}, formatSelectionCssClass: function () {
return b
}, formatNoMatches: function () {
return"No matches found"
}, formatInputTooShort: function (a, b) {
var c = b - a.length;
return"Please enter " + c + " more character" + (1 == c ? "" : "s")
}, formatInputTooLong: function (a, b) {
var c = a.length - b;
return"Please delete " + c + " character" + (1 == c ? "" : "s")
}, formatSelectionTooBig: function (a) {
return"You can only select " + a + " item" + (1 == a ? "" : "s")
}, formatLoadMore: function () {
return"Loading more results..."
}, formatSearching: function () {
return"Searching..."
}, minimumResultsForSearch: 0, minimumInputLength: 0, maximumInputLength: null, maximumSelectionSize: 0, id: function (a) {
return a.id
}, matcher: function (a, b) {
return n("" + b).toUpperCase().indexOf(n("" + a).toUpperCase()) >= 0
}, separator: ",", tokenSeparators: [], tokenizer: M, escapeMarkup: F, blurOnChange: !1, selectOnBlur: !1, adaptContainerCssClass: function (a) {
return a
}, adaptDropdownCssClass: function () {
return null
}, nextSearchTerm: function () {
return b
}}, a.fn.select2.ajaxDefaults = {transport: a.ajax, params: {type: "GET", cache: !1, dataType: "json"}}, window.Select2 = {query: {ajax: G, local: H, tags: I}, util: {debounce: v, markMatch: E, escapeMarkup: F, stripDiacritics: n}, "class": {"abstract": d, single: e, multi: f}}
}
}(jQuery);