· 6 years ago · Feb 11, 2020, 09:04 AM
1function isCallable() {
2 if (!arguments.length)return !1;
3 for (var e = 0, t = arguments.length; t > e; e++)if ("function" != typeof arguments[e])return !1;
4 return !0
5}
6function isDefined() {
7 if (!arguments.length)return !1;
8 for (var e = 0, t = arguments.length; t > e; e++)if ("undefined" == typeof arguments[e])return !1;
9 return !0
10}
11function log() {
12 pb.debug && window.console && isCallable(window.console.log) && (console.log.apply(console, arguments), pb.debugTrace && console.trace())
13}
14function warn() {
15 pb.debug && window.console && isCallable(window.console.warn) && (console.warn.apply(console, arguments), pb.debugTrace && console.trace())
16}
17function info() {
18 pb.debug && window.console && isCallable(window.console.info) && (console.info.apply(console, arguments), pb.debugTrace && console.trace())
19}
20function extend(e, t) {
21 var n = function () {
22 };
23 n.prototype = t.prototype, e.superClass_ = t.prototype, e.prototype = new n, e.prototype.constructor = e
24}
25function toInt(e, t) {
26 return parseInt("" + e, t || 10)
27}
28function getConstructorName(e, t) {
29 var n, i;
30 t = t || window;
31 for (var o in t)if (n = t[o], "function" == typeof n && -1 === n.toString().indexOf("[native code]")) {
32 if (e instanceof n && e.constructor === n)return o;
33 if (i = getConstructorName(e, n))return o + "." + i
34 } else if (n && n.constructor === Object && (i = getConstructorName(e, n)))return o + "." + i;
35 return !1
36}
37function isPreventClickEvent(e) {
38 return e.button || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey
39}
40function isInstanceOf(e, t) {
41 return isDefined(e) && "function" == typeof t && e instanceof t ? !0 : !1
42}
43function isFlashEnabled() {
44 var e = !1;
45 try {
46 var t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
47 t && (e = !0)
48 } catch (n) {
49 isDefined(navigator.mimeTypes["application/x-shockwave-flash"]) && (e = !0)
50 }
51 return e
52}
53function debounce(e, t, n) {
54 var i;
55 return function () {
56 var o = this, r = arguments, s = function () {
57 i = null, n || t.apply(o, r)
58 }, a = n && !i;
59 clearTimeout(i), i = setTimeout(s, e), a && t.apply(o, r)
60 }
61}
62function throttle(e, t) {
63 var n, i;
64 return function () {
65 var o = this, r = +new Date, s = arguments;
66 n && n + e > r ? (clearTimeout(i), i = setTimeout(function () {
67 n = r, t.apply(o, s)
68 }, e)) : (n = r, t.apply(o, s))
69 }
70}
71function nextTick(e) {
72 setTimeout(e, 0)
73}
74window.Modernizr = function (e, t, n) {
75 function i(e) {
76 b.cssText = e
77 }
78
79 function o(e, t) {
80 return i(x.join(e + ";") + (t || ""))
81 }
82
83 function r(e, t) {
84 return typeof e === t
85 }
86
87 function s(e, t) {
88 return !!~("" + e).indexOf(t)
89 }
90
91 function a(e, t) {
92 for (var i in e) {
93 var o = e[i];
94 if (!s(o, "-") && b[o] !== n)return "pfx" == t ? o : !0
95 }
96 return !1
97 }
98
99 function l(e, t, i) {
100 for (var o in e) {
101 var s = t[e[o]];
102 if (s !== n)return i === !1 ? e[o] : r(s, "function") ? s.bind(i || t) : s
103 }
104 return !1
105 }
106
107 function p(e, t, n) {
108 var i = e.charAt(0).toUpperCase() + e.slice(1), o = (e + " " + T.join(i + " ") + i).split(" ");
109 return r(t, "string") || r(t, "undefined") ? a(o, t) : (o = (e + " " + S.join(i + " ") + i).split(" "), l(o, t, n))
110 }
111
112 var c, u, d, h = "2.8.3", f = {}, m = !0, g = t.documentElement, v = "modernizr", y = t.createElement(v),
113 b = y.style, w = ":)", x = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")), C = "Webkit Moz O ms",
114 T = C.split(" "), S = C.toLowerCase().split(" "), k = {}, E = [], P = E.slice, A = function (e, n, i, o) {
115 var r, s, a, l, p = t.createElement("div"), c = t.body, u = c || t.createElement("body");
116 if (parseInt(i, 10))for (; i--;)a = t.createElement("div"), a.id = o ? o[i] : v + (i + 1), p.appendChild(a);
117 return r = ["­", '<style id="s', v, '">', e, "</style>"].join(""), p.id = v, (c ? p : u).innerHTML += r, u.appendChild(p), c || (u.style.background = "", u.style.overflow = "hidden", l = g.style.overflow, g.style.overflow = "hidden", g.appendChild(u)), s = n(p, e), c ? p.parentNode.removeChild(p) : (u.parentNode.removeChild(u), g.style.overflow = l), !!s
118 }, N = function () {
119 function e(e, o) {
120 o = o || t.createElement(i[e] || "div"), e = "on" + e;
121 var s = e in o;
122 return s || (o.setAttribute || (o = t.createElement("div")), o.setAttribute && o.removeAttribute && (o.setAttribute(e, ""), s = r(o[e], "function"), r(o[e], "undefined") || (o[e] = n), o.removeAttribute(e))), o = null, s
123 }
124
125 var i = {
126 select: "input",
127 change: "input",
128 submit: "form",
129 reset: "form",
130 error: "img",
131 load: "img",
132 abort: "img"
133 };
134 return e
135 }(), F = {}.hasOwnProperty;
136 d = r(F, "undefined") || r(F.call, "undefined") ? function (e, t) {
137 return t in e && r(e.constructor.prototype[t], "undefined")
138 } : function (e, t) {
139 return F.call(e, t)
140 }, Function.prototype.bind || (Function.prototype.bind = function (e) {
141 var t = this;
142 if ("function" != typeof t)throw new TypeError;
143 var n = P.call(arguments, 1), i = function () {
144 if (this instanceof i) {
145 var o = function () {
146 };
147 o.prototype = t.prototype;
148 var r = new o, s = t.apply(r, n.concat(P.call(arguments)));
149 return Object(s) === s ? s : r
150 }
151 return t.apply(e, n.concat(P.call(arguments)))
152 };
153 return i
154 }), k.flexbox = function () {
155 return p("flexWrap")
156 }, k.flexboxlegacy = function () {
157 return p("boxDirection")
158 }, k.geolocation = function () {
159 return "geolocation" in navigator
160 }, k.rgba = function () {
161 return i("background-color:rgba(150,255,150,.5)"), s(b.backgroundColor, "rgba")
162 }, k.hsla = function () {
163 return i("background-color:hsla(120,40%,100%,.5)"), s(b.backgroundColor, "rgba") || s(b.backgroundColor, "hsla")
164 }, k.multiplebgs = function () {
165 return i("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(b.background)
166 }, k.backgroundsize = function () {
167 return p("backgroundSize")
168 }, k.borderimage = function () {
169 return p("borderImage")
170 }, k.borderradius = function () {
171 return p("borderRadius")
172 }, k.boxshadow = function () {
173 return p("boxShadow")
174 }, k.textshadow = function () {
175 return "" === t.createElement("div").style.textShadow
176 }, k.opacity = function () {
177 return o("opacity:.55"), /^0.55$/.test(b.opacity)
178 }, k.cssanimations = function () {
179 return p("animationName")
180 }, k.csscolumns = function () {
181 return p("columnCount")
182 }, k.cssgradients = function () {
183 var e = "background-image:", t = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
184 n = "linear-gradient(left top,#9f9, white);";
185 return i((e + "-webkit- ".split(" ").join(t + e) + x.join(n + e)).slice(0, -e.length)), s(b.backgroundImage, "gradient")
186 }, k.cssreflections = function () {
187 return p("boxReflect")
188 }, k.csstransforms = function () {
189 return !!p("transform")
190 }, k.csstransforms3d = function () {
191 var e = !!p("perspective");
192 return e && "webkitPerspective" in g.style && A("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function (t) {
193 e = 9 === t.offsetLeft && 3 === t.offsetHeight
194 }), e
195 }, k.csstransitions = function () {
196 return p("transition")
197 }, k.fontface = function () {
198 var e;
199 return A('@font-face {font-family:"font";src:url("https://")}', function (n, i) {
200 var o = t.getElementById("smodernizr"), r = o.sheet || o.styleSheet,
201 s = r ? r.cssRules && r.cssRules[0] ? r.cssRules[0].cssText : r.cssText || "" : "";
202 e = /src/i.test(s) && 0 === s.indexOf(i.split(" ")[0])
203 }), e
204 }, k.generatedcontent = function () {
205 var e;
206 return A(["#", v, "{font:0/0 a}#", v, ':after{content:"', w, '";visibility:hidden;font:3px/1 a}'].join(""), function (t) {
207 e = t.offsetHeight >= 3
208 }), e
209 };
210 for (var O in k)d(k, O) && (u = O.toLowerCase(), f[u] = k[O](), E.push((f[u] ? "" : "no-") + u));
211 return f.addTest = function (e, t) {
212 if ("object" == typeof e)for (var i in e)d(e, i) && f.addTest(i, e[i]); else {
213 if (e = e.toLowerCase(), f[e] !== n)return f;
214 t = "function" == typeof t ? t() : t, "undefined" != typeof m && m && (g.className += " " + (t ? "" : "no-") + e), f[e] = t
215 }
216 return f
217 }, i(""), y = c = null, function (e, t) {
218 function n(e, t) {
219 var n = e.createElement("p"), i = e.getElementsByTagName("head")[0] || e.documentElement;
220 return n.innerHTML = "x<style>" + t + "</style>", i.insertBefore(n.lastChild, i.firstChild)
221 }
222
223 function i() {
224 var e = y.elements;
225 return "string" == typeof e ? e.split(" ") : e
226 }
227
228 function o(e) {
229 var t = v[e[m]];
230 return t || (t = {}, g++, e[m] = g, v[g] = t), t
231 }
232
233 function r(e, n, i) {
234 if (n || (n = t), c)return n.createElement(e);
235 i || (i = o(n));
236 var r;
237 return r = i.cache[e] ? i.cache[e].cloneNode() : f.test(e) ? (i.cache[e] = i.createElem(e)).cloneNode() : i.createElem(e), !r.canHaveChildren || h.test(e) || r.tagUrn ? r : i.frag.appendChild(r)
238 }
239
240 function s(e, n) {
241 if (e || (e = t), c)return e.createDocumentFragment();
242 n = n || o(e);
243 for (var r = n.frag.cloneNode(), s = 0, a = i(), l = a.length; l > s; s++)r.createElement(a[s]);
244 return r
245 }
246
247 function a(e, t) {
248 t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) {
249 return y.shivMethods ? r(n, e, t) : t.createElem(n)
250 }, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + i().join().replace(/[\w\-]+/g, function (e) {
251 return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
252 }) + ");return n}")(y, t.frag)
253 }
254
255 function l(e) {
256 e || (e = t);
257 var i = o(e);
258 return y.shivCSS && !p && !i.hasCSS && (i.hasCSS = !!n(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), c || a(e, i), e
259 }
260
261 var p, c, u = "3.7.0", d = e.html5 || {},
262 h = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
263 f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
264 m = "_html5shiv", g = 0, v = {};
265 !function () {
266 try {
267 var e = t.createElement("a");
268 e.innerHTML = "<xyz></xyz>", p = "hidden" in e, c = 1 == e.childNodes.length || function () {
269 t.createElement("a");
270 var e = t.createDocumentFragment();
271 return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
272 }()
273 } catch (n) {
274 p = !0, c = !0
275 }
276 }();
277 var y = {
278 elements: d.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
279 version: u,
280 shivCSS: d.shivCSS !== !1,
281 supportsUnknownElements: c,
282 shivMethods: d.shivMethods !== !1,
283 type: "default",
284 shivDocument: l,
285 createElement: r,
286 createDocumentFragment: s
287 };
288 e.html5 = y, l(t)
289 }(this, t), f._version = h, f._prefixes = x, f._domPrefixes = S, f._cssomPrefixes = T, f.hasEvent = N, f.testProp = function (e) {
290 return a([e])
291 }, f.testAllProps = p, f.testStyles = A, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (m ? " js " + E.join(" ") : ""), f
292}(this, this.document), function (e, t, n) {
293 function i(e) {
294 return "[object Function]" == g.call(e)
295 }
296
297 function o(e) {
298 return "string" == typeof e
299 }
300
301 function r() {
302 }
303
304 function s(e) {
305 return !e || "loaded" == e || "complete" == e || "uninitialized" == e
306 }
307
308 function a() {
309 var e = v.shift();
310 y = 1, e ? e.t ? f(function () {
311 ("c" == e.t ? d.injectCss : d.injectJs)(e.s, 0, e.a, e.x, e.e, 1)
312 }, 0) : (e(), a()) : y = 0
313 }
314
315 function l(e, n, i, o, r, l, p) {
316 function c(t) {
317 if (!h && s(u.readyState) && (b.r = h = 1, !y && a(), u.onload = u.onreadystatechange = null, t)) {
318 "img" != e && f(function () {
319 x.removeChild(u)
320 }, 50);
321 for (var i in E[n])E[n].hasOwnProperty(i) && E[n][i].onload()
322 }
323 }
324
325 var p = p || d.errorTimeout, u = t.createElement(e), h = 0, g = 0, b = {t: i, s: n, e: r, a: l, x: p};
326 1 === E[n] && (g = 1, E[n] = []), "object" == e ? u.data = n : (u.src = n, u.type = e), u.width = u.height = "0", u.onerror = u.onload = u.onreadystatechange = function () {
327 c.call(this, g)
328 }, v.splice(o, 0, b), "img" != e && (g || 2 === E[n] ? (x.insertBefore(u, w ? null : m), f(c, p)) : E[n].push(u))
329 }
330
331 function p(e, t, n, i, r) {
332 return y = 0, t = t || "j", o(e) ? l("c" == t ? T : C, e, t, this.i++, n, i, r) : (v.splice(this.i++, 0, e), 1 == v.length && a()), this
333 }
334
335 function c() {
336 var e = d;
337 return e.loader = {load: p, i: 0}, e
338 }
339
340 var u, d, h = t.documentElement, f = e.setTimeout, m = t.getElementsByTagName("script")[0], g = {}.toString, v = [],
341 y = 0, b = "MozAppearance" in h.style, w = b && !!t.createRange().compareNode, x = w ? h : m.parentNode,
342 h = e.opera && "[object Opera]" == g.call(e.opera), h = !!t.attachEvent && !h,
343 C = b ? "object" : h ? "script" : "img", T = h ? "script" : C, S = Array.isArray || function (e) {
344 return "[object Array]" == g.call(e)
345 }, k = [], E = {}, P = {
346 timeout: function (e, t) {
347 return t.length && (e.timeout = t[0]), e
348 }
349 };
350 d = function (e) {
351 function t(e) {
352 var t, n, i, e = e.split("!"), o = k.length, r = e.pop(), s = e.length,
353 r = {url: r, origUrl: r, prefixes: e};
354 for (n = 0; s > n; n++)i = e[n].split("="), (t = P[i.shift()]) && (r = t(r, i));
355 for (n = 0; o > n; n++)r = k[n](r);
356 return r
357 }
358
359 function s(e, o, r, s, a) {
360 var l = t(e), p = l.autoCallback;
361 l.url.split(".").pop().split("?").shift(), l.bypass || (o && (o = i(o) ? o : o[e] || o[s] || o[e.split("/").pop().split("?")[0]]), l.instead ? l.instead(e, o, r, s, a) : (E[l.url] ? l.noexec = !0 : E[l.url] = 1, r.load(l.url, l.forceCSS || !l.forceJS && "css" == l.url.split(".").pop().split("?").shift() ? "c" : n, l.noexec, l.attrs, l.timeout), (i(o) || i(p)) && r.load(function () {
362 c(), o && o(l.origUrl, a, s), p && p(l.origUrl, a, s), E[l.url] = 2
363 })))
364 }
365
366 function a(e, t) {
367 function n(e, n) {
368 if (e) {
369 if (o(e)) n || (u = function () {
370 var e = [].slice.call(arguments);
371 d.apply(this, e), h()
372 }), s(e, u, t, 0, p); else if (Object(e) === e)for (l in a = function () {
373 var t, n = 0;
374 for (t in e)e.hasOwnProperty(t) && n++;
375 return n
376 }(), e)e.hasOwnProperty(l) && (!n && !--a && (i(u) ? u = function () {
377 var e = [].slice.call(arguments);
378 d.apply(this, e), h()
379 } : u[l] = function (e) {
380 return function () {
381 var t = [].slice.call(arguments);
382 e && e.apply(this, t), h()
383 }
384 }(d[l])), s(e[l], u, t, l, p))
385 } else!n && h()
386 }
387
388 var a, l, p = !!e.test, c = e.load || e.both, u = e.callback || r, d = u, h = e.complete || r;
389 n(p ? e.yep : e.nope, !!c), c && n(c)
390 }
391
392 var l, p, u = this.yepnope.loader;
393 if (o(e)) s(e, 0, u, 0); else if (S(e))for (l = 0; l < e.length; l++)p = e[l], o(p) ? s(p, 0, u, 0) : S(p) ? d(p) : Object(p) === p && a(p, u); else Object(e) === e && a(e, u)
394 }, d.addPrefix = function (e, t) {
395 P[e] = t
396 }, d.addFilter = function (e) {
397 k.push(e)
398 }, d.errorTimeout = 1e4, null == t.readyState && t.addEventListener && (t.readyState = "loading", t.addEventListener("DOMContentLoaded", u = function () {
399 t.removeEventListener("DOMContentLoaded", u, 0), t.readyState = "complete"
400 }, 0)), e.yepnope = c(), e.yepnope.executeStack = a, e.yepnope.injectJs = function (e, n, i, o, l, p) {
401 var c, u, h = t.createElement("script"), o = o || d.errorTimeout;
402 h.src = e;
403 for (u in i)h.setAttribute(u, i[u]);
404 n = p ? a : n || r, h.onreadystatechange = h.onload = function () {
405 !c && s(h.readyState) && (c = 1, n(), h.onload = h.onreadystatechange = null)
406 }, f(function () {
407 c || (c = 1, n(1))
408 }, o), l ? h.onload() : m.parentNode.insertBefore(h, m)
409 }, e.yepnope.injectCss = function (e, n, i, o, s, l) {
410 var p, o = t.createElement("link"), n = l ? a : n || r;
411 o.href = e, o.rel = "stylesheet", o.type = "text/css";
412 for (p in i)o.setAttribute(p, i[p]);
413 s || (m.parentNode.insertBefore(o, m), f(n, 0))
414 }
415}(this, document), Modernizr.load = function () {
416 yepnope.apply(window, [].slice.call(arguments, 0))
417}, function (e, t) {
418 function n(e) {
419 var t = e.length, n = lt.type(e);
420 return lt.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e)
421 }
422
423 function i(e) {
424 var t = Tt[e] = {};
425 return lt.each(e.match(ct) || [], function (e, n) {
426 t[n] = !0
427 }), t
428 }
429
430 function o(e, n, i, o) {
431 if (lt.acceptData(e)) {
432 var r, s, a = lt.expando, l = "string" == typeof n, p = e.nodeType, c = p ? lt.cache : e,
433 u = p ? e[a] : e[a] && a;
434 if (u && c[u] && (o || c[u].data) || !l || i !== t)return u || (p ? e[a] = u = Q.pop() || lt.guid++ : u = a), c[u] || (c[u] = {}, p || (c[u].toJSON = lt.noop)), ("object" == typeof n || "function" == typeof n) && (o ? c[u] = lt.extend(c[u], n) : c[u].data = lt.extend(c[u].data, n)), r = c[u], o || (r.data || (r.data = {}), r = r.data), i !== t && (r[lt.camelCase(n)] = i), l ? (s = r[n], null == s && (s = r[lt.camelCase(n)])) : s = r, s
435 }
436 }
437
438 function r(e, t, n) {
439 if (lt.acceptData(e)) {
440 var i, o, r, s = e.nodeType, l = s ? lt.cache : e, p = s ? e[lt.expando] : lt.expando;
441 if (l[p]) {
442 if (t && (r = n ? l[p] : l[p].data)) {
443 lt.isArray(t) ? t = t.concat(lt.map(t, lt.camelCase)) : t in r ? t = [t] : (t = lt.camelCase(t), t = t in r ? [t] : t.split(" "));
444 for (i = 0, o = t.length; o > i; i++)delete r[t[i]];
445 if (!(n ? a : lt.isEmptyObject)(r))return
446 }
447 (n || (delete l[p].data, a(l[p]))) && (s ? lt.cleanData([e], !0) : lt.support.deleteExpando || l != l.window ? delete l[p] : l[p] = null)
448 }
449 }
450 }
451
452 function s(e, n, i) {
453 if (i === t && 1 === e.nodeType) {
454 var o = "data-" + n.replace(kt, "-$1").toLowerCase();
455 if (i = e.getAttribute(o), "string" == typeof i) {
456 try {
457 i = "true" === i ? !0 : "false" === i ? !1 : "null" === i ? null : +i + "" === i ? +i : St.test(i) ? lt.parseJSON(i) : i
458 } catch (r) {
459 }
460 lt.data(e, n, i)
461 } else i = t
462 }
463 return i
464 }
465
466 function a(e) {
467 var t;
468 for (t in e)if (("data" !== t || !lt.isEmptyObject(e[t])) && "toJSON" !== t)return !1;
469 return !0
470 }
471
472 function l() {
473 return !0
474 }
475
476 function p() {
477 return !1
478 }
479
480 function c(e, t) {
481 do e = e[t]; while (e && 1 !== e.nodeType);
482 return e
483 }
484
485 function u(e, t, n) {
486 if (t = t || 0, lt.isFunction(t))return lt.grep(e, function (e, i) {
487 var o = !!t.call(e, i, e);
488 return o === n
489 });
490 if (t.nodeType)return lt.grep(e, function (e) {
491 return e === t === n
492 });
493 if ("string" == typeof t) {
494 var i = lt.grep(e, function (e) {
495 return 1 === e.nodeType
496 });
497 if (Bt.test(t))return lt.filter(t, i, !n);
498 t = lt.filter(t, i)
499 }
500 return lt.grep(e, function (e) {
501 return lt.inArray(e, t) >= 0 === n
502 })
503 }
504
505 function d(e) {
506 var t = Vt.split("|"), n = e.createDocumentFragment();
507 if (n.createElement)for (; t.length;)n.createElement(t.pop());
508 return n
509 }
510
511 function h(e, t) {
512 return e.getElementsByTagName(t)[0] || e.appendChild(e.ownerDocument.createElement(t))
513 }
514
515 function f(e) {
516 var t = e.getAttributeNode("type");
517 return e.type = (t && t.specified) + "/" + e.type, e
518 }
519
520 function m(e) {
521 var t = rn.exec(e.type);
522 return t ? e.type = t[1] : e.removeAttribute("type"), e
523 }
524
525 function g(e, t) {
526 for (var n, i = 0; null != (n = e[i]); i++)lt._data(n, "globalEval", !t || lt._data(t[i], "globalEval"))
527 }
528
529 function v(e, t) {
530 if (1 === t.nodeType && lt.hasData(e)) {
531 var n, i, o, r = lt._data(e), s = lt._data(t, r), a = r.events;
532 if (a) {
533 delete s.handle, s.events = {};
534 for (n in a)for (i = 0, o = a[n].length; o > i; i++)lt.event.add(t, n, a[n][i])
535 }
536 s.data && (s.data = lt.extend({}, s.data))
537 }
538 }
539
540 function y(e, t) {
541 var n, i, o;
542 if (1 === t.nodeType) {
543 if (n = t.nodeName.toLowerCase(), !lt.support.noCloneEvent && t[lt.expando]) {
544 o = lt._data(t);
545 for (i in o.events)lt.removeEvent(t, i, o.handle);
546 t.removeAttribute(lt.expando)
547 }
548 "script" === n && t.text !== e.text ? (f(t).text = e.text, m(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), lt.support.html5Clone && e.innerHTML && !lt.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && tn.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
549 }
550 }
551
552 function b(e, n) {
553 var i, o, r = 0,
554 s = typeof e.getElementsByTagName !== X ? e.getElementsByTagName(n || "*") : typeof e.querySelectorAll !== X ? e.querySelectorAll(n || "*") : t;
555 if (!s)for (s = [], i = e.childNodes || e; null != (o = i[r]); r++)!n || lt.nodeName(o, n) ? s.push(o) : lt.merge(s, b(o, n));
556 return n === t || n && lt.nodeName(e, n) ? lt.merge([e], s) : s
557 }
558
559 function w(e) {
560 tn.test(e.type) && (e.defaultChecked = e.checked)
561 }
562
563 function x(e, t) {
564 if (t in e)return t;
565 for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, o = kn.length; o--;)if (t = kn[o] + n, t in e)return t;
566 return i
567 }
568
569 function C(e, t) {
570 return e = t || e, "none" === lt.css(e, "display") || !lt.contains(e.ownerDocument, e)
571 }
572
573 function T(e, t) {
574 for (var n, i, o, r = [], s = 0, a = e.length; a > s; s++)i = e[s], i.style && (r[s] = lt._data(i, "olddisplay"), n = i.style.display, t ? (r[s] || "none" !== n || (i.style.display = ""), "" === i.style.display && C(i) && (r[s] = lt._data(i, "olddisplay", P(i.nodeName)))) : r[s] || (o = C(i), (n && "none" !== n || !o) && lt._data(i, "olddisplay", o ? n : lt.css(i, "display"))));
575 for (s = 0; a > s; s++)i = e[s], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? r[s] || "" : "none"));
576 return e
577 }
578
579 function S(e, t, n) {
580 var i = yn.exec(t);
581 return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t
582 }
583
584 function k(e, t, n, i, o) {
585 for (var r = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, s = 0; 4 > r; r += 2)"margin" === n && (s += lt.css(e, n + Sn[r], !0, o)), i ? ("content" === n && (s -= lt.css(e, "padding" + Sn[r], !0, o)), "margin" !== n && (s -= lt.css(e, "border" + Sn[r] + "Width", !0, o))) : (s += lt.css(e, "padding" + Sn[r], !0, o), "padding" !== n && (s += lt.css(e, "border" + Sn[r] + "Width", !0, o)));
586 return s
587 }
588
589 function E(e, t, n) {
590 var i = !0, o = "width" === t ? e.offsetWidth : e.offsetHeight, r = un(e),
591 s = lt.support.boxSizing && "border-box" === lt.css(e, "boxSizing", !1, r);
592 if (0 >= o || null == o) {
593 if (o = dn(e, t, r), (0 > o || null == o) && (o = e.style[t]), bn.test(o))return o;
594 i = s && (lt.support.boxSizingReliable || o === e.style[t]), o = parseFloat(o) || 0
595 }
596 return o + k(e, t, n || (s ? "border" : "content"), i, r) + "px"
597 }
598
599 function P(e) {
600 var t = Y, n = xn[e];
601 return n || (n = A(e, t), "none" !== n && n || (cn = (cn || lt("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(t.documentElement), t = (cn[0].contentWindow || cn[0].contentDocument).document, t.write("<!doctype html><html><body>"), t.close(), n = A(e, t), cn.detach()), xn[e] = n), n
602 }
603
604 function A(e, t) {
605 var n = lt(t.createElement(e)).appendTo(t.body), i = lt.css(n[0], "display");
606 return n.remove(), i
607 }
608
609 function N(e, t, n, i) {
610 var o;
611 if (lt.isArray(t)) lt.each(t, function (t, o) {
612 n || Pn.test(e) ? i(e, o) : N(e + "[" + ("object" == typeof o ? t : "") + "]", o, n, i)
613 }); else if (n || "object" !== lt.type(t)) i(e, t); else for (o in t)N(e + "[" + o + "]", t[o], n, i)
614 }
615
616 function F(e) {
617 return function (t, n) {
618 "string" != typeof t && (n = t, t = "*");
619 var i, o = 0, r = t.toLowerCase().match(ct) || [];
620 if (lt.isFunction(n))for (; i = r[o++];)"+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n)
621 }
622 }
623
624 function O(e, n, i, o) {
625 function r(l) {
626 var p;
627 return s[l] = !0, lt.each(e[l] || [], function (e, l) {
628 var c = l(n, i, o);
629 return "string" != typeof c || a || s[c] ? a ? !(p = c) : t : (n.dataTypes.unshift(c), r(c), !1)
630 }), p
631 }
632
633 var s = {}, a = e === Wn;
634 return r(n.dataTypes[0]) || !s["*"] && r("*")
635 }
636
637 function D(e, n) {
638 var i, o, r = lt.ajaxSettings.flatOptions || {};
639 for (o in n)n[o] !== t && ((r[o] ? e : i || (i = {}))[o] = n[o]);
640 return i && lt.extend(!0, e, i), e
641 }
642
643 function j(e, n, i) {
644 var o, r, s, a, l = e.contents, p = e.dataTypes, c = e.responseFields;
645 for (a in c)a in i && (n[c[a]] = i[a]);
646 for (; "*" === p[0];)p.shift(), r === t && (r = e.mimeType || n.getResponseHeader("Content-Type"));
647 if (r)for (a in l)if (l[a] && l[a].test(r)) {
648 p.unshift(a);
649 break
650 }
651 if (p[0] in i) s = p[0]; else {
652 for (a in i) {
653 if (!p[0] || e.converters[a + " " + p[0]]) {
654 s = a;
655 break
656 }
657 o || (o = a)
658 }
659 s = s || o
660 }
661 return s ? (s !== p[0] && p.unshift(s), i[s]) : t
662 }
663
664 function M(e, t) {
665 var n, i, o, r, s = {}, a = 0, l = e.dataTypes.slice(), p = l[0];
666 if (e.dataFilter && (t = e.dataFilter(t, e.dataType)), l[1])for (o in e.converters)s[o.toLowerCase()] = e.converters[o];
667 for (; i = l[++a];)if ("*" !== i) {
668 if ("*" !== p && p !== i) {
669 if (o = s[p + " " + i] || s["* " + i], !o)for (n in s)if (r = n.split(" "), r[1] === i && (o = s[p + " " + r[0]] || s["* " + r[0]])) {
670 o === !0 ? o = s[n] : s[n] !== !0 && (i = r[0], l.splice(a--, 0, i));
671 break
672 }
673 if (o !== !0)if (o && e["throws"]) t = o(t); else try {
674 t = o(t)
675 } catch (c) {
676 return {state: "parsererror", error: o ? c : "No conversion from " + p + " to " + i}
677 }
678 }
679 p = i
680 }
681 return {state: "success", data: t}
682 }
683
684 function L() {
685 try {
686 return new e.XMLHttpRequest
687 } catch (t) {
688 }
689 }
690
691 function _() {
692 try {
693 return new e.ActiveXObject("Microsoft.XMLHTTP")
694 } catch (t) {
695 }
696 }
697
698 function z() {
699 return setTimeout(function () {
700 Qn = t
701 }), Qn = lt.now()
702 }
703
704 function R(e, t) {
705 lt.each(t, function (t, n) {
706 for (var i = (ri[t] || []).concat(ri["*"]), o = 0, r = i.length; r > o; o++)if (i[o].call(e, t, n))return
707 })
708 }
709
710 function I(e, t, n) {
711 var i, o, r = 0, s = oi.length, a = lt.Deferred().always(function () {
712 delete l.elem
713 }), l = function () {
714 if (o)return !1;
715 for (var t = Qn || z(), n = Math.max(0, p.startTime + p.duration - t), i = n / p.duration || 0, r = 1 - i, s = 0, l = p.tweens.length; l > s; s++)p.tweens[s].run(r);
716 return a.notifyWith(e, [p, r, n]), 1 > r && l ? n : (a.resolveWith(e, [p]), !1)
717 }, p = a.promise({
718 elem: e,
719 props: lt.extend({}, t),
720 opts: lt.extend(!0, {specialEasing: {}}, n),
721 originalProperties: t,
722 originalOptions: n,
723 startTime: Qn || z(),
724 duration: n.duration,
725 tweens: [],
726 createTween: function (t, n) {
727 var i = lt.Tween(e, p.opts, t, n, p.opts.specialEasing[t] || p.opts.easing);
728 return p.tweens.push(i), i
729 },
730 stop: function (t) {
731 var n = 0, i = t ? p.tweens.length : 0;
732 if (o)return this;
733 for (o = !0; i > n; n++)p.tweens[n].run(1);
734 return t ? a.resolveWith(e, [p, t]) : a.rejectWith(e, [p, t]), this
735 }
736 }), c = p.props;
737 for (H(c, p.opts.specialEasing); s > r; r++)if (i = oi[r].call(p, e, c, p.opts))return i;
738 return R(p, c), lt.isFunction(p.opts.start) && p.opts.start.call(e, p), lt.fx.timer(lt.extend(l, {
739 elem: e,
740 anim: p,
741 queue: p.opts.queue
742 })), p.progress(p.opts.progress).done(p.opts.done, p.opts.complete).fail(p.opts.fail).always(p.opts.always)
743 }
744
745 function H(e, t) {
746 var n, i, o, r, s;
747 for (o in e)if (i = lt.camelCase(o), r = t[i], n = e[o], lt.isArray(n) && (r = n[1], n = e[o] = n[0]), o !== i && (e[i] = n, delete e[o]), s = lt.cssHooks[i], s && "expand" in s) {
748 n = s.expand(n), delete e[i];
749 for (o in n)o in e || (e[o] = n[o], t[o] = r)
750 } else t[i] = r
751 }
752
753 function q(e, t, n) {
754 var i, o, r, s, a, l, p, c, u, d = this, h = e.style, f = {}, m = [], g = e.nodeType && C(e);
755 n.queue || (c = lt._queueHooks(e, "fx"), null == c.unqueued && (c.unqueued = 0, u = c.empty.fire, c.empty.fire = function () {
756 c.unqueued || u()
757 }), c.unqueued++, d.always(function () {
758 d.always(function () {
759 c.unqueued--, lt.queue(e, "fx").length || c.empty.fire()
760 })
761 })), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [h.overflow, h.overflowX, h.overflowY], "inline" === lt.css(e, "display") && "none" === lt.css(e, "float") && (lt.support.inlineBlockNeedsLayout && "inline" !== P(e.nodeName) ? h.zoom = 1 : h.display = "inline-block")), n.overflow && (h.overflow = "hidden", lt.support.shrinkWrapBlocks || d.always(function () {
762 h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
763 }));
764 for (o in t)if (s = t[o], ti.exec(s)) {
765 if (delete t[o], l = l || "toggle" === s, s === (g ? "hide" : "show"))continue;
766 m.push(o)
767 }
768 if (r = m.length) {
769 a = lt._data(e, "fxshow") || lt._data(e, "fxshow", {}), "hidden" in a && (g = a.hidden), l && (a.hidden = !g), g ? lt(e).show() : d.done(function () {
770 lt(e).hide()
771 }), d.done(function () {
772 var t;
773 lt._removeData(e, "fxshow");
774 for (t in f)lt.style(e, t, f[t])
775 });
776 for (o = 0; r > o; o++)i = m[o], p = d.createTween(i, g ? a[i] : 0), f[i] = a[i] || lt.style(e, i), i in a || (a[i] = p.start, g && (p.end = p.start, p.start = "width" === i || "height" === i ? 1 : 0))
777 }
778 }
779
780 function $(e, t, n, i, o) {
781 return new $.prototype.init(e, t, n, i, o)
782 }
783
784 function B(e, t) {
785 var n, i = {height: e}, o = 0;
786 for (t = t ? 1 : 0; 4 > o; o += 2 - t)n = Sn[o], i["margin" + n] = i["padding" + n] = e;
787 return t && (i.opacity = i.width = e), i
788 }
789
790 function W(e) {
791 return lt.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
792 }
793
794 var U, V, X = typeof t, Y = e.document, Z = e.location, J = e.jQuery, K = e.$, G = {}, Q = [], et = "1.9.1",
795 tt = Q.concat, nt = Q.push, it = Q.slice, ot = Q.indexOf, rt = G.toString, st = G.hasOwnProperty, at = et.trim,
796 lt = function (e, t) {
797 return new lt.fn.init(e, t, V)
798 }, pt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ct = /\S+/g, ut = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
799 dt = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, ht = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, ft = /^[\],:{}\s]*$/,
800 mt = /(?:^|:|,)(?:\s*\[)+/g, gt = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
801 vt = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, yt = /^-ms-/, bt = /-([\da-z])/gi,
802 wt = function (e, t) {
803 return t.toUpperCase()
804 }, xt = function (e) {
805 (Y.addEventListener || "load" === e.type || "complete" === Y.readyState) && (Ct(), lt.ready())
806 }, Ct = function () {
807 Y.addEventListener ? (Y.removeEventListener("DOMContentLoaded", xt, !1), e.removeEventListener("load", xt, !1)) : (Y.detachEvent("onreadystatechange", xt), e.detachEvent("onload", xt))
808 };
809 lt.fn = lt.prototype = {
810 jquery: et, constructor: lt, init: function (e, n, i) {
811 var o, r;
812 if (!e)return this;
813 if ("string" == typeof e) {
814 if (o = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : dt.exec(e), !o || !o[1] && n)return !n || n.jquery ? (n || i).find(e) : this.constructor(n).find(e);
815 if (o[1]) {
816 if (n = n instanceof lt ? n[0] : n, lt.merge(this, lt.parseHTML(o[1], n && n.nodeType ? n.ownerDocument || n : Y, !0)), ht.test(o[1]) && lt.isPlainObject(n))for (o in n)lt.isFunction(this[o]) ? this[o](n[o]) : this.attr(o, n[o]);
817 return this
818 }
819 if (r = Y.getElementById(o[2]), r && r.parentNode) {
820 if (r.id !== o[2])return i.find(e);
821 this.length = 1, this[0] = r
822 }
823 return this.context = Y, this.selector = e, this
824 }
825 return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : lt.isFunction(e) ? i.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), lt.makeArray(e, this))
826 }, selector: "", length: 0, size: function () {
827 return this.length
828 }, toArray: function () {
829 return it.call(this)
830 }, get: function (e) {
831 return null == e ? this.toArray() : 0 > e ? this[this.length + e] : this[e]
832 }, pushStack: function (e) {
833 var t = lt.merge(this.constructor(), e);
834 return t.prevObject = this, t.context = this.context, t
835 }, each: function (e, t) {
836 return lt.each(this, e, t)
837 }, ready: function (e) {
838 return lt.ready.promise().done(e), this
839 }, slice: function () {
840 return this.pushStack(it.apply(this, arguments))
841 }, first: function () {
842 return this.eq(0)
843 }, last: function () {
844 return this.eq(-1)
845 }, eq: function (e) {
846 var t = this.length, n = +e + (0 > e ? t : 0);
847 return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
848 }, map: function (e) {
849 return this.pushStack(lt.map(this, function (t, n) {
850 return e.call(t, n, t)
851 }))
852 }, end: function () {
853 return this.prevObject || this.constructor(null)
854 }, push: nt, sort: [].sort, splice: [].splice
855 }, lt.fn.init.prototype = lt.fn, lt.extend = lt.fn.extend = function () {
856 var e, n, i, o, r, s, a = arguments[0] || {}, l = 1, p = arguments.length, c = !1;
857 for ("boolean" == typeof a && (c = a, a = arguments[1] || {}, l = 2), "object" == typeof a || lt.isFunction(a) || (a = {}), p === l && (a = this, --l); p > l; l++)if (null != (r = arguments[l]))for (o in r)e = a[o], i = r[o], a !== i && (c && i && (lt.isPlainObject(i) || (n = lt.isArray(i))) ? (n ? (n = !1, s = e && lt.isArray(e) ? e : []) : s = e && lt.isPlainObject(e) ? e : {}, a[o] = lt.extend(c, s, i)) : i !== t && (a[o] = i));
858 return a
859 }, lt.extend({
860 noConflict: function (t) {
861 return e.$ === lt && (e.$ = K), t && e.jQuery === lt && (e.jQuery = J), lt
862 }, isReady: !1, readyWait: 1, holdReady: function (e) {
863 e ? lt.readyWait++ : lt.ready(!0)
864 }, ready: function (e) {
865 if (e === !0 ? !--lt.readyWait : !lt.isReady) {
866 if (!Y.body)return setTimeout(lt.ready);
867 lt.isReady = !0, e !== !0 && --lt.readyWait > 0 || (U.resolveWith(Y, [lt]), lt.fn.trigger && lt(Y).trigger("ready").off("ready"))
868 }
869 }, isFunction: function (e) {
870 return "function" === lt.type(e)
871 }, isArray: Array.isArray || function (e) {
872 return "array" === lt.type(e)
873 }, isWindow: function (e) {
874 return null != e && e == e.window
875 }, isNumeric: function (e) {
876 return !isNaN(parseFloat(e)) && isFinite(e)
877 }, type: function (e) {
878 return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? G[rt.call(e)] || "object" : typeof e
879 }, isPlainObject: function (e) {
880 if (!e || "object" !== lt.type(e) || e.nodeType || lt.isWindow(e))return !1;
881 try {
882 if (e.constructor && !st.call(e, "constructor") && !st.call(e.constructor.prototype, "isPrototypeOf"))return !1
883 } catch (n) {
884 return !1
885 }
886 var i;
887 for (i in e);
888 return i === t || st.call(e, i)
889 }, isEmptyObject: function (e) {
890 var t;
891 for (t in e)return !1;
892 return !0
893 }, error: function (e) {
894 throw Error(e)
895 }, parseHTML: function (e, t, n) {
896 if (!e || "string" != typeof e)return null;
897 "boolean" == typeof t && (n = t, t = !1), t = t || Y;
898 var i = ht.exec(e), o = !n && [];
899 return i ? [t.createElement(i[1])] : (i = lt.buildFragment([e], t, o), o && lt(o).remove(), lt.merge([], i.childNodes))
900 }, parseJSON: function (n) {
901 return e.JSON && e.JSON.parse ? e.JSON.parse(n) : null === n ? n : "string" == typeof n && (n = lt.trim(n), n && ft.test(n.replace(gt, "@").replace(vt, "]").replace(mt, ""))) ? Function("return " + n)() : (lt.error("Invalid JSON: " + n), t)
902 }, parseXML: function (n) {
903 var i, o;
904 if (!n || "string" != typeof n)return null;
905 try {
906 e.DOMParser ? (o = new DOMParser, i = o.parseFromString(n, "text/xml")) : (i = new ActiveXObject("Microsoft.XMLDOM"), i.async = "false", i.loadXML(n))
907 } catch (r) {
908 i = t
909 }
910 return i && i.documentElement && !i.getElementsByTagName("parsererror").length || lt.error("Invalid XML: " + n), i
911 }, noop: function () {
912 }, globalEval: function (t) {
913 t && lt.trim(t) && (e.execScript || function (t) {
914 e.eval.call(e, t)
915 })(t)
916 }, camelCase: function (e) {
917 return e.replace(yt, "ms-").replace(bt, wt)
918 }, nodeName: function (e, t) {
919 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
920 }, each: function (e, t, i) {
921 var o, r = 0, s = e.length, a = n(e);
922 if (i) {
923 if (a)for (; s > r && (o = t.apply(e[r], i), o !== !1); r++); else for (r in e)if (o = t.apply(e[r], i), o === !1)break
924 } else if (a)for (; s > r && (o = t.call(e[r], r, e[r]), o !== !1); r++); else for (r in e)if (o = t.call(e[r], r, e[r]), o === !1)break;
925 return e
926 }, trim: at && !at.call(" ") ? function (e) {
927 return null == e ? "" : at.call(e)
928 } : function (e) {
929 return null == e ? "" : (e + "").replace(ut, "")
930 }, makeArray: function (e, t) {
931 var i = t || [];
932 return null != e && (n(Object(e)) ? lt.merge(i, "string" == typeof e ? [e] : e) : nt.call(i, e)), i
933 }, inArray: function (e, t, n) {
934 var i;
935 if (t) {
936 if (ot)return ot.call(t, e, n);
937 for (i = t.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++)if (n in t && t[n] === e)return n
938 }
939 return -1
940 }, merge: function (e, n) {
941 var i = n.length, o = e.length, r = 0;
942 if ("number" == typeof i)for (; i > r; r++)e[o++] = n[r]; else for (; n[r] !== t;)e[o++] = n[r++];
943 return e.length = o, e
944 }, grep: function (e, t, n) {
945 var i, o = [], r = 0, s = e.length;
946 for (n = !!n; s > r; r++)i = !!t(e[r], r), n !== i && o.push(e[r]);
947 return o
948 }, map: function (e, t, i) {
949 var o, r = 0, s = e.length, a = n(e), l = [];
950 if (a)for (; s > r; r++)o = t(e[r], r, i), null != o && (l[l.length] = o); else for (r in e)o = t(e[r], r, i), null != o && (l[l.length] = o);
951 return tt.apply([], l)
952 }, guid: 1, proxy: function (e, n) {
953 var i, o, r;
954 return "string" == typeof n && (r = e[n], n = e, e = r), lt.isFunction(e) ? (i = it.call(arguments, 2), o = function () {
955 return e.apply(n || this, i.concat(it.call(arguments)))
956 }, o.guid = e.guid = e.guid || lt.guid++, o) : t
957 }, access: function (e, n, i, o, r, s, a) {
958 var l = 0, p = e.length, c = null == i;
959 if ("object" === lt.type(i)) {
960 r = !0;
961 for (l in i)lt.access(e, n, l, i[l], !0, s, a)
962 } else if (o !== t && (r = !0, lt.isFunction(o) || (a = !0), c && (a ? (n.call(e, o), n = null) : (c = n, n = function (e, t, n) {
963 return c.call(lt(e), n)
964 })), n))for (; p > l; l++)n(e[l], i, a ? o : o.call(e[l], l, n(e[l], i)));
965 return r ? e : c ? n.call(e) : p ? n(e[0], i) : s
966 }, now: function () {
967 return (new Date).getTime()
968 }
969 }), lt.ready.promise = function (t) {
970 if (!U)if (U = lt.Deferred(), "complete" === Y.readyState) setTimeout(lt.ready); else if (Y.addEventListener) Y.addEventListener("DOMContentLoaded", xt, !1), e.addEventListener("load", xt, !1); else {
971 Y.attachEvent("onreadystatechange", xt), e.attachEvent("onload", xt);
972 var n = !1;
973 try {
974 n = null == e.frameElement && Y.documentElement
975 } catch (i) {
976 }
977 n && n.doScroll && function o() {
978 if (!lt.isReady) {
979 try {
980 n.doScroll("left")
981 } catch (e) {
982 return setTimeout(o, 50)
983 }
984 Ct(), lt.ready()
985 }
986 }()
987 }
988 return U.promise(t)
989 }, lt.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (e, t) {
990 G["[object " + t + "]"] = t.toLowerCase()
991 }), V = lt(Y);
992 var Tt = {};
993 lt.Callbacks = function (e) {
994 e = "string" == typeof e ? Tt[e] || i(e) : lt.extend({}, e);
995 var n, o, r, s, a, l, p = [], c = !e.once && [], u = function (t) {
996 for (o = e.memory && t, r = !0, a = l || 0, l = 0, s = p.length, n = !0; p && s > a; a++)if (p[a].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
997 o = !1;
998 break
999 }
1000 n = !1, p && (c ? c.length && u(c.shift()) : o ? p = [] : d.disable())
1001 }, d = {
1002 add: function () {
1003 if (p) {
1004 var t = p.length;
1005 !function i(t) {
1006 lt.each(t, function (t, n) {
1007 var o = lt.type(n);
1008 "function" === o ? e.unique && d.has(n) || p.push(n) : n && n.length && "string" !== o && i(n)
1009 })
1010 }(arguments), n ? s = p.length : o && (l = t, u(o))
1011 }
1012 return this
1013 }, remove: function () {
1014 return p && lt.each(arguments, function (e, t) {
1015 for (var i; (i = lt.inArray(t, p, i)) > -1;)p.splice(i, 1), n && (s >= i && s--, a >= i && a--)
1016 }), this
1017 }, has: function (e) {
1018 return e ? lt.inArray(e, p) > -1 : !(!p || !p.length)
1019 }, empty: function () {
1020 return p = [], this
1021 }, disable: function () {
1022 return p = c = o = t, this
1023 }, disabled: function () {
1024 return !p
1025 }, lock: function () {
1026 return c = t, o || d.disable(), this
1027 }, locked: function () {
1028 return !c
1029 }, fireWith: function (e, t) {
1030 return t = t || [], t = [e, t.slice ? t.slice() : t], !p || r && !c || (n ? c.push(t) : u(t)), this
1031 }, fire: function () {
1032 return d.fireWith(this, arguments), this
1033 }, fired: function () {
1034 return !!r
1035 }
1036 };
1037 return d
1038 }, lt.extend({
1039 Deferred: function (e) {
1040 var t = [["resolve", "done", lt.Callbacks("once memory"), "resolved"], ["reject", "fail", lt.Callbacks("once memory"), "rejected"], ["notify", "progress", lt.Callbacks("memory")]],
1041 n = "pending", i = {
1042 state: function () {
1043 return n
1044 }, always: function () {
1045 return o.done(arguments).fail(arguments), this
1046 }, then: function () {
1047 var e = arguments;
1048 return lt.Deferred(function (n) {
1049 lt.each(t, function (t, r) {
1050 var s = r[0], a = lt.isFunction(e[t]) && e[t];
1051 o[r[1]](function () {
1052 var e = a && a.apply(this, arguments);
1053 e && lt.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s + "With"](this === i ? n.promise() : this, a ? [e] : arguments)
1054 })
1055 }), e = null
1056 }).promise()
1057 }, promise: function (e) {
1058 return null != e ? lt.extend(e, i) : i
1059 }
1060 }, o = {};
1061 return i.pipe = i.then, lt.each(t, function (e, r) {
1062 var s = r[2], a = r[3];
1063 i[r[1]] = s.add, a && s.add(function () {
1064 n = a
1065 }, t[1 ^ e][2].disable, t[2][2].lock), o[r[0]] = function () {
1066 return o[r[0] + "With"](this === o ? i : this, arguments), this
1067 }, o[r[0] + "With"] = s.fireWith
1068 }), i.promise(o), e && e.call(o, o), o
1069 }, when: function (e) {
1070 var t, n, i, o = 0, r = it.call(arguments), s = r.length,
1071 a = 1 !== s || e && lt.isFunction(e.promise) ? s : 0, l = 1 === a ? e : lt.Deferred(),
1072 p = function (e, n, i) {
1073 return function (o) {
1074 n[e] = this, i[e] = arguments.length > 1 ? it.call(arguments) : o, i === t ? l.notifyWith(n, i) : --a || l.resolveWith(n, i)
1075 }
1076 };
1077 if (s > 1)for (t = Array(s), n = Array(s), i = Array(s); s > o; o++)r[o] && lt.isFunction(r[o].promise) ? r[o].promise().done(p(o, i, r)).fail(l.reject).progress(p(o, n, t)) : --a;
1078 return a || l.resolveWith(i, r), l.promise()
1079 }
1080 }), lt.support = function () {
1081 var t, n, i, o, r, s, a, l, p, c, u = Y.createElement("div");
1082 if (u.setAttribute("className", "t"), u.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = u.getElementsByTagName("*"), i = u.getElementsByTagName("a")[0], !n || !i || !n.length)return {};
1083 r = Y.createElement("select"), a = r.appendChild(Y.createElement("option")), o = u.getElementsByTagName("input")[0], i.style.cssText = "top:1px;float:left;opacity:.5", t = {
1084 getSetAttribute: "t" !== u.className,
1085 leadingWhitespace: 3 === u.firstChild.nodeType,
1086 tbody: !u.getElementsByTagName("tbody").length,
1087 htmlSerialize: !!u.getElementsByTagName("link").length,
1088 style: /top/.test(i.getAttribute("style")),
1089 hrefNormalized: "/a" === i.getAttribute("href"),
1090 opacity: /^0.5/.test(i.style.opacity),
1091 cssFloat: !!i.style.cssFloat,
1092 checkOn: !!o.value,
1093 optSelected: a.selected,
1094 enctype: !!Y.createElement("form").enctype,
1095 html5Clone: "<:nav></:nav>" !== Y.createElement("nav").cloneNode(!0).outerHTML,
1096 boxModel: "CSS1Compat" === Y.compatMode,
1097 deleteExpando: !0,
1098 noCloneEvent: !0,
1099 inlineBlockNeedsLayout: !1,
1100 shrinkWrapBlocks: !1,
1101 reliableMarginRight: !0,
1102 boxSizingReliable: !0,
1103 pixelPosition: !1
1104 }, o.checked = !0, t.noCloneChecked = o.cloneNode(!0).checked, r.disabled = !0, t.optDisabled = !a.disabled;
1105 try {
1106 delete u.test
1107 } catch (d) {
1108 t.deleteExpando = !1
1109 }
1110 o = Y.createElement("input"), o.setAttribute("value", ""), t.input = "" === o.getAttribute("value"), o.value = "t", o.setAttribute("type", "radio"), t.radioValue = "t" === o.value, o.setAttribute("checked", "t"), o.setAttribute("name", "t"), s = Y.createDocumentFragment(), s.appendChild(o), t.appendChecked = o.checked, t.checkClone = s.cloneNode(!0).cloneNode(!0).lastChild.checked, u.attachEvent && (u.attachEvent("onclick", function () {
1111 t.noCloneEvent = !1
1112 }), u.cloneNode(!0).click());
1113 for (c in{
1114 submit: !0,
1115 change: !0,
1116 focusin: !0
1117 })u.setAttribute(l = "on" + c, "t"), t[c + "Bubbles"] = l in e || u.attributes[l].expando === !1;
1118 return u.style.backgroundClip = "content-box", u.cloneNode(!0).style.backgroundClip = "", t.clearCloneStyle = "content-box" === u.style.backgroundClip, lt(function () {
1119 var n, i, o,
1120 r = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
1121 s = Y.getElementsByTagName("body")[0];
1122 s && (n = Y.createElement("div"), n.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", s.appendChild(n).appendChild(u), u.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", o = u.getElementsByTagName("td"), o[0].style.cssText = "padding:0;margin:0;border:0;display:none", p = 0 === o[0].offsetHeight, o[0].style.display = "", o[1].style.display = "none", t.reliableHiddenOffsets = p && 0 === o[0].offsetHeight, u.innerHTML = "", u.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", t.boxSizing = 4 === u.offsetWidth, t.doesNotIncludeMarginInBodyOffset = 1 !== s.offsetTop, e.getComputedStyle && (t.pixelPosition = "1%" !== (e.getComputedStyle(u, null) || {}).top, t.boxSizingReliable = "4px" === (e.getComputedStyle(u, null) || {width: "4px"}).width, i = u.appendChild(Y.createElement("div")), i.style.cssText = u.style.cssText = r, i.style.marginRight = i.style.width = "0", u.style.width = "1px", t.reliableMarginRight = !parseFloat((e.getComputedStyle(i, null) || {}).marginRight)), typeof u.style.zoom !== X && (u.innerHTML = "", u.style.cssText = r + "width:1px;padding:1px;display:inline;zoom:1", t.inlineBlockNeedsLayout = 3 === u.offsetWidth, u.style.display = "block", u.innerHTML = "<div></div>", u.firstChild.style.width = "5px", t.shrinkWrapBlocks = 3 !== u.offsetWidth, t.inlineBlockNeedsLayout && (s.style.zoom = 1)), s.removeChild(n), n = u = o = i = null)
1123 }), n = r = s = a = i = o = null, t
1124 }();
1125 var St = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, kt = /([A-Z])/g;
1126 lt.extend({
1127 cache: {},
1128 expando: "jQuery" + (et + Math.random()).replace(/\D/g, ""),
1129 noData: {embed: !0, object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet: !0},
1130 hasData: function (e) {
1131 return e = e.nodeType ? lt.cache[e[lt.expando]] : e[lt.expando], !!e && !a(e)
1132 },
1133 data: function (e, t, n) {
1134 return o(e, t, n)
1135 },
1136 removeData: function (e, t) {
1137 return r(e, t)
1138 },
1139 _data: function (e, t, n) {
1140 return o(e, t, n, !0)
1141 },
1142 _removeData: function (e, t) {
1143 return r(e, t, !0)
1144 },
1145 acceptData: function (e) {
1146 if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType)return !1;
1147 var t = e.nodeName && lt.noData[e.nodeName.toLowerCase()];
1148 return !t || t !== !0 && e.getAttribute("classid") === t
1149 }
1150 }), lt.fn.extend({
1151 data: function (e, n) {
1152 var i, o, r = this[0], a = 0, l = null;
1153 if (e === t) {
1154 if (this.length && (l = lt.data(r), 1 === r.nodeType && !lt._data(r, "parsedAttrs"))) {
1155 for (i = r.attributes; i.length > a; a++)o = i[a].name, o.indexOf("data-") || (o = lt.camelCase(o.slice(5)), s(r, o, l[o]));
1156 lt._data(r, "parsedAttrs", !0)
1157 }
1158 return l
1159 }
1160 return "object" == typeof e ? this.each(function () {
1161 lt.data(this, e)
1162 }) : lt.access(this, function (n) {
1163 return n === t ? r ? s(r, e, lt.data(r, e)) : null : (this.each(function () {
1164 lt.data(this, e, n)
1165 }), t)
1166 }, null, n, arguments.length > 1, null, !0)
1167 }, removeData: function (e) {
1168 return this.each(function () {
1169 lt.removeData(this, e)
1170 })
1171 }
1172 }), lt.extend({
1173 queue: function (e, n, i) {
1174 var o;
1175 return e ? (n = (n || "fx") + "queue", o = lt._data(e, n), i && (!o || lt.isArray(i) ? o = lt._data(e, n, lt.makeArray(i)) : o.push(i)), o || []) : t
1176 }, dequeue: function (e, t) {
1177 t = t || "fx";
1178 var n = lt.queue(e, t), i = n.length, o = n.shift(), r = lt._queueHooks(e, t), s = function () {
1179 lt.dequeue(e, t)
1180 };
1181 "inprogress" === o && (o = n.shift(), i--), r.cur = o, o && ("fx" === t && n.unshift("inprogress"), delete r.stop, o.call(e, s, r)), !i && r && r.empty.fire()
1182 }, _queueHooks: function (e, t) {
1183 var n = t + "queueHooks";
1184 return lt._data(e, n) || lt._data(e, n, {
1185 empty: lt.Callbacks("once memory").add(function () {
1186 lt._removeData(e, t + "queue"), lt._removeData(e, n)
1187 })
1188 })
1189 }
1190 }), lt.fn.extend({
1191 queue: function (e, n) {
1192 var i = 2;
1193 return "string" != typeof e && (n = e, e = "fx", i--), i > arguments.length ? lt.queue(this[0], e) : n === t ? this : this.each(function () {
1194 var t = lt.queue(this, e, n);
1195 lt._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && lt.dequeue(this, e)
1196 })
1197 }, dequeue: function (e) {
1198 return this.each(function () {
1199 lt.dequeue(this, e)
1200 })
1201 }, delay: function (e, t) {
1202 return e = lt.fx ? lt.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function (t, n) {
1203 var i = setTimeout(t, e);
1204 n.stop = function () {
1205 clearTimeout(i)
1206 }
1207 })
1208 }, clearQueue: function (e) {
1209 return this.queue(e || "fx", [])
1210 }, promise: function (e, n) {
1211 var i, o = 1, r = lt.Deferred(), s = this, a = this.length, l = function () {
1212 --o || r.resolveWith(s, [s])
1213 };
1214 for ("string" != typeof e && (n = e, e = t), e = e || "fx"; a--;)i = lt._data(s[a], e + "queueHooks"), i && i.empty && (o++, i.empty.add(l));
1215 return l(), r.promise(n)
1216 }
1217 });
1218 var Et, Pt, At = /[\t\r\n]/g, Nt = /\r/g, Ft = /^(?:input|select|textarea|button|object)$/i, Ot = /^(?:a|area)$/i,
1219 Dt = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
1220 jt = /^(?:checked|selected)$/i, Mt = lt.support.getSetAttribute, Lt = lt.support.input;
1221 lt.fn.extend({
1222 attr: function (e, t) {
1223 return lt.access(this, lt.attr, e, t, arguments.length > 1)
1224 }, removeAttr: function (e) {
1225 return this.each(function () {
1226 lt.removeAttr(this, e)
1227 })
1228 }, prop: function (e, t) {
1229 return lt.access(this, lt.prop, e, t, arguments.length > 1)
1230 }, removeProp: function (e) {
1231 return e = lt.propFix[e] || e, this.each(function () {
1232 try {
1233 this[e] = t, delete this[e]
1234 } catch (n) {
1235 }
1236 })
1237 }, addClass: function (e) {
1238 var t, n, i, o, r, s = 0, a = this.length, l = "string" == typeof e && e;
1239 if (lt.isFunction(e))return this.each(function (t) {
1240 lt(this).addClass(e.call(this, t, this.className))
1241 });
1242 if (l)for (t = (e || "").match(ct) || []; a > s; s++)if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(At, " ") : " ")) {
1243 for (r = 0; o = t[r++];)0 > i.indexOf(" " + o + " ") && (i += o + " ");
1244 n.className = lt.trim(i)
1245 }
1246 return this
1247 }, removeClass: function (e) {
1248 var t, n, i, o, r, s = 0, a = this.length, l = 0 === arguments.length || "string" == typeof e && e;
1249 if (lt.isFunction(e))return this.each(function (t) {
1250 lt(this).removeClass(e.call(this, t, this.className))
1251 });
1252 if (l)for (t = (e || "").match(ct) || []; a > s; s++)if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(At, " ") : "")) {
1253 for (r = 0; o = t[r++];)for (; i.indexOf(" " + o + " ") >= 0;)i = i.replace(" " + o + " ", " ");
1254 n.className = e ? lt.trim(i) : ""
1255 }
1256 return this
1257 }, toggleClass: function (e, t) {
1258 var n = typeof e, i = "boolean" == typeof t;
1259 return lt.isFunction(e) ? this.each(function (n) {
1260 lt(this).toggleClass(e.call(this, n, this.className, t), t)
1261 }) : this.each(function () {
1262 if ("string" === n)for (var o, r = 0, s = lt(this), a = t, l = e.match(ct) || []; o = l[r++];)a = i ? a : !s.hasClass(o), s[a ? "addClass" : "removeClass"](o); else(n === X || "boolean" === n) && (this.className && lt._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : lt._data(this, "__className__") || "")
1263 })
1264 }, hasClass: function (e) {
1265 for (var t = " " + e + " ", n = 0, i = this.length; i > n; n++)if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(At, " ").indexOf(t) >= 0)return !0;
1266 return !1
1267 }, val: function (e) {
1268 var n, i, o, r = this[0];
1269 return arguments.length ? (o = lt.isFunction(e), this.each(function (n) {
1270 var r, s = lt(this);
1271 1 === this.nodeType && (r = o ? e.call(this, n, s.val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : lt.isArray(r) && (r = lt.map(r, function (e) {
1272 return null == e ? "" : e + ""
1273 })), i = lt.valHooks[this.type] || lt.valHooks[this.nodeName.toLowerCase()], i && "set" in i && i.set(this, r, "value") !== t || (this.value = r))
1274 })) : r ? (i = lt.valHooks[r.type] || lt.valHooks[r.nodeName.toLowerCase()], i && "get" in i && (n = i.get(r, "value")) !== t ? n : (n = r.value, "string" == typeof n ? n.replace(Nt, "") : null == n ? "" : n)) : void 0
1275 }
1276 }), lt.extend({
1277 valHooks: {
1278 option: {
1279 get: function (e) {
1280 var t = e.attributes.value;
1281 return !t || t.specified ? e.value : e.text
1282 }
1283 }, select: {
1284 get: function (e) {
1285 for (var t, n, i = e.options, o = e.selectedIndex, r = "select-one" === e.type || 0 > o, s = r ? null : [], a = r ? o + 1 : i.length, l = 0 > o ? a : r ? o : 0; a > l; l++)if (n = i[l], !(!n.selected && l !== o || (lt.support.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && lt.nodeName(n.parentNode, "optgroup"))) {
1286 if (t = lt(n).val(), r)return t;
1287 s.push(t)
1288 }
1289 return s
1290 }, set: function (e, t) {
1291 var n = lt.makeArray(t);
1292 return lt(e).find("option").each(function () {
1293 this.selected = lt.inArray(lt(this).val(), n) >= 0
1294 }), n.length || (e.selectedIndex = -1), n
1295 }
1296 }
1297 },
1298 attr: function (e, n, i) {
1299 var o, r, s, a = e.nodeType;
1300 return e && 3 !== a && 8 !== a && 2 !== a ? typeof e.getAttribute === X ? lt.prop(e, n, i) : (r = 1 !== a || !lt.isXMLDoc(e), r && (n = n.toLowerCase(), o = lt.attrHooks[n] || (Dt.test(n) ? Pt : Et)), i === t ? o && r && "get" in o && null !== (s = o.get(e, n)) ? s : (typeof e.getAttribute !== X && (s = e.getAttribute(n)), null == s ? t : s) : null !== i ? o && r && "set" in o && (s = o.set(e, i, n)) !== t ? s : (e.setAttribute(n, i + ""), i) : (lt.removeAttr(e, n), t)) : void 0
1301 },
1302 removeAttr: function (e, t) {
1303 var n, i, o = 0, r = t && t.match(ct);
1304 if (r && 1 === e.nodeType)for (; n = r[o++];)i = lt.propFix[n] || n, Dt.test(n) ? !Mt && jt.test(n) ? e[lt.camelCase("default-" + n)] = e[i] = !1 : e[i] = !1 : lt.attr(e, n, ""), e.removeAttribute(Mt ? n : i)
1305 },
1306 attrHooks: {
1307 type: {
1308 set: function (e, t) {
1309 if (!lt.support.radioValue && "radio" === t && lt.nodeName(e, "input")) {
1310 var n = e.value;
1311 return e.setAttribute("type", t), n && (e.value = n), t
1312 }
1313 }
1314 }
1315 },
1316 propFix: {
1317 tabindex: "tabIndex",
1318 readonly: "readOnly",
1319 "for": "htmlFor",
1320 "class": "className",
1321 maxlength: "maxLength",
1322 cellspacing: "cellSpacing",
1323 cellpadding: "cellPadding",
1324 rowspan: "rowSpan",
1325 colspan: "colSpan",
1326 usemap: "useMap",
1327 frameborder: "frameBorder",
1328 contenteditable: "contentEditable"
1329 },
1330 prop: function (e, n, i) {
1331 var o, r, s, a = e.nodeType;
1332 return e && 3 !== a && 8 !== a && 2 !== a ? (s = 1 !== a || !lt.isXMLDoc(e), s && (n = lt.propFix[n] || n, r = lt.propHooks[n]), i !== t ? r && "set" in r && (o = r.set(e, i, n)) !== t ? o : e[n] = i : r && "get" in r && null !== (o = r.get(e, n)) ? o : e[n]) : void 0
1333 },
1334 propHooks: {
1335 tabIndex: {
1336 get: function (e) {
1337 var n = e.getAttributeNode("tabindex");
1338 return n && n.specified ? parseInt(n.value, 10) : Ft.test(e.nodeName) || Ot.test(e.nodeName) && e.href ? 0 : t
1339 }
1340 }
1341 }
1342 }), Pt = {
1343 get: function (e, n) {
1344 var i = lt.prop(e, n), o = "boolean" == typeof i && e.getAttribute(n),
1345 r = "boolean" == typeof i ? Lt && Mt ? null != o : jt.test(n) ? e[lt.camelCase("default-" + n)] : !!o : e.getAttributeNode(n);
1346 return r && r.value !== !1 ? n.toLowerCase() : t
1347 }, set: function (e, t, n) {
1348 return t === !1 ? lt.removeAttr(e, n) : Lt && Mt || !jt.test(n) ? e.setAttribute(!Mt && lt.propFix[n] || n, n) : e[lt.camelCase("default-" + n)] = e[n] = !0, n
1349 }
1350 }, Lt && Mt || (lt.attrHooks.value = {
1351 get: function (e, n) {
1352 var i = e.getAttributeNode(n);
1353 return lt.nodeName(e, "input") ? e.defaultValue : i && i.specified ? i.value : t
1354 }, set: function (e, n, i) {
1355 return lt.nodeName(e, "input") ? (e.defaultValue = n, t) : Et && Et.set(e, n, i)
1356 }
1357 }), Mt || (Et = lt.valHooks.button = {
1358 get: function (e, n) {
1359 var i = e.getAttributeNode(n);
1360 return i && ("id" === n || "name" === n || "coords" === n ? "" !== i.value : i.specified) ? i.value : t
1361 }, set: function (e, n, i) {
1362 var o = e.getAttributeNode(i);
1363 return o || e.setAttributeNode(o = e.ownerDocument.createAttribute(i)), o.value = n += "", "value" === i || n === e.getAttribute(i) ? n : t
1364 }
1365 }, lt.attrHooks.contenteditable = {
1366 get: Et.get, set: function (e, t, n) {
1367 Et.set(e, "" === t ? !1 : t, n)
1368 }
1369 }, lt.each(["width", "height"], function (e, n) {
1370 lt.attrHooks[n] = lt.extend(lt.attrHooks[n], {
1371 set: function (e, i) {
1372 return "" === i ? (e.setAttribute(n, "auto"), i) : t
1373 }
1374 })
1375 })), lt.support.hrefNormalized || (lt.each(["href", "src", "width", "height"], function (e, n) {
1376 lt.attrHooks[n] = lt.extend(lt.attrHooks[n], {
1377 get: function (e) {
1378 var i = e.getAttribute(n, 2);
1379 return null == i ? t : i
1380 }
1381 })
1382 }), lt.each(["href", "src"], function (e, t) {
1383 lt.propHooks[t] = {
1384 get: function (e) {
1385 return e.getAttribute(t, 4)
1386 }
1387 }
1388 })), lt.support.style || (lt.attrHooks.style = {
1389 get: function (e) {
1390 return e.style.cssText || t
1391 }, set: function (e, t) {
1392 return e.style.cssText = t + ""
1393 }
1394 }), lt.support.optSelected || (lt.propHooks.selected = lt.extend(lt.propHooks.selected, {
1395 get: function (e) {
1396 var t = e.parentNode;
1397 return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
1398 }
1399 })), lt.support.enctype || (lt.propFix.enctype = "encoding"), lt.support.checkOn || lt.each(["radio", "checkbox"], function () {
1400 lt.valHooks[this] = {
1401 get: function (e) {
1402 return null === e.getAttribute("value") ? "on" : e.value
1403 }
1404 }
1405 }), lt.each(["radio", "checkbox"], function () {
1406 lt.valHooks[this] = lt.extend(lt.valHooks[this], {
1407 set: function (e, n) {
1408 return lt.isArray(n) ? e.checked = lt.inArray(lt(e).val(), n) >= 0 : t
1409 }
1410 })
1411 });
1412 var _t = /^(?:input|select|textarea)$/i, zt = /^key/, Rt = /^(?:mouse|contextmenu)|click/,
1413 It = /^(?:focusinfocus|focusoutblur)$/, Ht = /^([^.]*)(?:\.(.+)|)$/;
1414 lt.event = {
1415 global: {},
1416 add: function (e, n, i, o, r) {
1417 var s, a, l, p, c, u, d, h, f, m, g, v = lt._data(e);
1418 if (v) {
1419 for (i.handler && (p = i, i = p.handler, r = p.selector), i.guid || (i.guid = lt.guid++), (a = v.events) || (a = v.events = {}), (u = v.handle) || (u = v.handle = function (e) {
1420 return typeof lt === X || e && lt.event.triggered === e.type ? t : lt.event.dispatch.apply(u.elem, arguments)
1421 }, u.elem = e), n = (n || "").match(ct) || [""], l = n.length; l--;)s = Ht.exec(n[l]) || [], f = g = s[1], m = (s[2] || "").split(".").sort(), c = lt.event.special[f] || {}, f = (r ? c.delegateType : c.bindType) || f, c = lt.event.special[f] || {}, d = lt.extend({
1422 type: f,
1423 origType: g,
1424 data: o,
1425 handler: i,
1426 guid: i.guid,
1427 selector: r,
1428 needsContext: r && lt.expr.match.needsContext.test(r),
1429 namespace: m.join(".")
1430 }, p), (h = a[f]) || (h = a[f] = [], h.delegateCount = 0, c.setup && c.setup.call(e, o, m, u) !== !1 || (e.addEventListener ? e.addEventListener(f, u, !1) : e.attachEvent && e.attachEvent("on" + f, u))), c.add && (c.add.call(e, d), d.handler.guid || (d.handler.guid = i.guid)), r ? h.splice(h.delegateCount++, 0, d) : h.push(d), lt.event.global[f] = !0;
1431 e = null
1432 }
1433 },
1434 remove: function (e, t, n, i, o) {
1435 var r, s, a, l, p, c, u, d, h, f, m, g = lt.hasData(e) && lt._data(e);
1436 if (g && (c = g.events)) {
1437 for (t = (t || "").match(ct) || [""], p = t.length; p--;)if (a = Ht.exec(t[p]) || [], h = m = a[1], f = (a[2] || "").split(".").sort(), h) {
1438 for (u = lt.event.special[h] || {}, h = (i ? u.delegateType : u.bindType) || h, d = c[h] || [], a = a[2] && RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = r = d.length; r--;)s = d[r], !o && m !== s.origType || n && n.guid !== s.guid || a && !a.test(s.namespace) || i && i !== s.selector && ("**" !== i || !s.selector) || (d.splice(r, 1), s.selector && d.delegateCount--, u.remove && u.remove.call(e, s));
1439 l && !d.length && (u.teardown && u.teardown.call(e, f, g.handle) !== !1 || lt.removeEvent(e, h, g.handle), delete c[h])
1440 } else for (h in c)lt.event.remove(e, h + t[p], n, i, !0);
1441 lt.isEmptyObject(c) && (delete g.handle, lt._removeData(e, "events"))
1442 }
1443 },
1444 trigger: function (n, i, o, r) {
1445 var s, a, l, p, c, u, d, h = [o || Y], f = st.call(n, "type") ? n.type : n,
1446 m = st.call(n, "namespace") ? n.namespace.split(".") : [];
1447 if (l = u = o = o || Y, 3 !== o.nodeType && 8 !== o.nodeType && !It.test(f + lt.event.triggered) && (f.indexOf(".") >= 0 && (m = f.split("."), f = m.shift(), m.sort()), a = 0 > f.indexOf(":") && "on" + f, n = n[lt.expando] ? n : new lt.Event(f, "object" == typeof n && n), n.isTrigger = !0, n.namespace = m.join("."), n.namespace_re = n.namespace ? RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, n.result = t, n.target || (n.target = o), i = null == i ? [n] : lt.makeArray(i, [n]), c = lt.event.special[f] || {}, r || !c.trigger || c.trigger.apply(o, i) !== !1)) {
1448 if (!r && !c.noBubble && !lt.isWindow(o)) {
1449 for (p = c.delegateType || f, It.test(p + f) || (l = l.parentNode); l; l = l.parentNode)h.push(l), u = l;
1450 u === (o.ownerDocument || Y) && h.push(u.defaultView || u.parentWindow || e)
1451 }
1452 for (d = 0; (l = h[d++]) && !n.isPropagationStopped();)n.type = d > 1 ? p : c.bindType || f, s = (lt._data(l, "events") || {})[n.type] && lt._data(l, "handle"), s && s.apply(l, i), s = a && l[a], s && lt.acceptData(l) && s.apply && s.apply(l, i) === !1 && n.preventDefault();
1453 if (n.type = f, !(r || n.isDefaultPrevented() || c._default && c._default.apply(o.ownerDocument, i) !== !1 || "click" === f && lt.nodeName(o, "a") || !lt.acceptData(o) || !a || !o[f] || lt.isWindow(o))) {
1454 u = o[a], u && (o[a] = null), lt.event.triggered = f;
1455 try {
1456 o[f]()
1457 } catch (g) {
1458 }
1459 lt.event.triggered = t, u && (o[a] = u)
1460 }
1461 return n.result
1462 }
1463 },
1464 dispatch: function (e) {
1465 e = lt.event.fix(e);
1466 var n, i, o, r, s, a = [], l = it.call(arguments), p = (lt._data(this, "events") || {})[e.type] || [],
1467 c = lt.event.special[e.type] || {};
1468 if (l[0] = e, e.delegateTarget = this, !c.preDispatch || c.preDispatch.call(this, e) !== !1) {
1469 for (a = lt.event.handlers.call(this, e, p), n = 0; (r = a[n++]) && !e.isPropagationStopped();)for (e.currentTarget = r.elem, s = 0; (o = r.handlers[s++]) && !e.isImmediatePropagationStopped();)(!e.namespace_re || e.namespace_re.test(o.namespace)) && (e.handleObj = o, e.data = o.data, i = ((lt.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, l), i !== t && (e.result = i) === !1 && (e.preventDefault(), e.stopPropagation()));
1470 return c.postDispatch && c.postDispatch.call(this, e), e.result
1471 }
1472 },
1473 handlers: function (e, n) {
1474 var i, o, r, s, a = [], l = n.delegateCount, p = e.target;
1475 if (l && p.nodeType && (!e.button || "click" !== e.type))for (; p != this; p = p.parentNode || this)if (1 === p.nodeType && (p.disabled !== !0 || "click" !== e.type)) {
1476 for (r = [], s = 0; l > s; s++)o = n[s], i = o.selector + " ", r[i] === t && (r[i] = o.needsContext ? lt(i, this).index(p) >= 0 : lt.find(i, this, null, [p]).length), r[i] && r.push(o);
1477 r.length && a.push({elem: p, handlers: r})
1478 }
1479 return n.length > l && a.push({elem: this, handlers: n.slice(l)}), a
1480 },
1481 fix: function (e) {
1482 if (e[lt.expando])return e;
1483 var t, n, i, o = e.type, r = e, s = this.fixHooks[o];
1484 for (s || (this.fixHooks[o] = s = Rt.test(o) ? this.mouseHooks : zt.test(o) ? this.keyHooks : {}), i = s.props ? this.props.concat(s.props) : this.props, e = new lt.Event(r), t = i.length; t--;)n = i[t], e[n] = r[n];
1485 return e.target || (e.target = r.srcElement || Y), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, s.filter ? s.filter(e, r) : e
1486 },
1487 props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
1488 fixHooks: {},
1489 keyHooks: {
1490 props: "char charCode key keyCode".split(" "), filter: function (e, t) {
1491 return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
1492 }
1493 },
1494 mouseHooks: {
1495 props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
1496 filter: function (e, n) {
1497 var i, o, r, s = n.button, a = n.fromElement;
1498 return null == e.pageX && null != n.clientX && (o = e.target.ownerDocument || Y, r = o.documentElement, i = o.body, e.pageX = n.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0), e.pageY = n.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)), !e.relatedTarget && a && (e.relatedTarget = a === e.target ? n.toElement : a), e.which || s === t || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e
1499 }
1500 },
1501 special: {
1502 load: {noBubble: !0}, click: {
1503 trigger: function () {
1504 return lt.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : t
1505 }
1506 }, focus: {
1507 trigger: function () {
1508 if (this !== Y.activeElement && this.focus)try {
1509 return this.focus(), !1
1510 } catch (e) {
1511 }
1512 }, delegateType: "focusin"
1513 }, blur: {
1514 trigger: function () {
1515 return this === Y.activeElement && this.blur ? (this.blur(), !1) : t
1516 }, delegateType: "focusout"
1517 }, beforeunload: {
1518 postDispatch: function (e) {
1519 e.result !== t && (e.originalEvent.returnValue = e.result)
1520 }
1521 }
1522 },
1523 simulate: function (e, t, n, i) {
1524 var o = lt.extend(new lt.Event, n, {type: e, isSimulated: !0, originalEvent: {}});
1525 i ? lt.event.trigger(o, null, t) : lt.event.dispatch.call(t, o), o.isDefaultPrevented() && n.preventDefault()
1526 }
1527 }, lt.removeEvent = Y.removeEventListener ? function (e, t, n) {
1528 e.removeEventListener && e.removeEventListener(t, n, !1)
1529 } : function (e, t, n) {
1530 var i = "on" + t;
1531 e.detachEvent && (typeof e[i] === X && (e[i] = null), e.detachEvent(i, n))
1532 }, lt.Event = function (e, n) {
1533 return this instanceof lt.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault() ? l : p) : this.type = e, n && lt.extend(this, n), this.timeStamp = e && e.timeStamp || lt.now(), this[lt.expando] = !0, t) : new lt.Event(e, n)
1534 }, lt.Event.prototype = {
1535 isDefaultPrevented: p,
1536 isPropagationStopped: p,
1537 isImmediatePropagationStopped: p,
1538 preventDefault: function () {
1539 var e = this.originalEvent;
1540 this.isDefaultPrevented = l, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
1541 },
1542 stopPropagation: function () {
1543 var e = this.originalEvent;
1544 this.isPropagationStopped = l, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
1545 },
1546 stopImmediatePropagation: function () {
1547 this.isImmediatePropagationStopped = l, this.stopPropagation()
1548 }
1549 }, lt.each({mouseenter: "mouseover", mouseleave: "mouseout"}, function (e, t) {
1550 lt.event.special[e] = {
1551 delegateType: t, bindType: t, handle: function (e) {
1552 var n, i = this, o = e.relatedTarget, r = e.handleObj;
1553 return (!o || o !== i && !lt.contains(i, o)) && (e.type = r.origType, n = r.handler.apply(this, arguments), e.type = t), n
1554 }
1555 }
1556 }), lt.support.submitBubbles || (lt.event.special.submit = {
1557 setup: function () {
1558 return lt.nodeName(this, "form") ? !1 : (lt.event.add(this, "click._submit keypress._submit", function (e) {
1559 var n = e.target, i = lt.nodeName(n, "input") || lt.nodeName(n, "button") ? n.form : t;
1560 i && !lt._data(i, "submitBubbles") && (lt.event.add(i, "submit._submit", function (e) {
1561 e._submit_bubble = !0
1562 }), lt._data(i, "submitBubbles", !0))
1563 }), t)
1564 }, postDispatch: function (e) {
1565 e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && lt.event.simulate("submit", this.parentNode, e, !0))
1566 }, teardown: function () {
1567 return lt.nodeName(this, "form") ? !1 : (lt.event.remove(this, "._submit"), t)
1568 }
1569 }), lt.support.changeBubbles || (lt.event.special.change = {
1570 setup: function () {
1571 return _t.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (lt.event.add(this, "propertychange._change", function (e) {
1572 "checked" === e.originalEvent.propertyName && (this._just_changed = !0)
1573 }), lt.event.add(this, "click._change", function (e) {
1574 this._just_changed && !e.isTrigger && (this._just_changed = !1), lt.event.simulate("change", this, e, !0)
1575 })), !1) : (lt.event.add(this, "beforeactivate._change", function (e) {
1576 var t = e.target;
1577 _t.test(t.nodeName) && !lt._data(t, "changeBubbles") && (lt.event.add(t, "change._change", function (e) {
1578 !this.parentNode || e.isSimulated || e.isTrigger || lt.event.simulate("change", this.parentNode, e, !0)
1579 }), lt._data(t, "changeBubbles", !0))
1580 }), t)
1581 }, handle: function (e) {
1582 var n = e.target;
1583 return this !== n || e.isSimulated || e.isTrigger || "radio" !== n.type && "checkbox" !== n.type ? e.handleObj.handler.apply(this, arguments) : t
1584 }, teardown: function () {
1585 return lt.event.remove(this, "._change"), !_t.test(this.nodeName)
1586 }
1587 }), lt.support.focusinBubbles || lt.each({focus: "focusin", blur: "focusout"}, function (e, t) {
1588 var n = 0, i = function (e) {
1589 lt.event.simulate(t, e.target, lt.event.fix(e), !0)
1590 };
1591 lt.event.special[t] = {
1592 setup: function () {
1593 0 === n++ && Y.addEventListener(e, i, !0)
1594 }, teardown: function () {
1595 0 === --n && Y.removeEventListener(e, i, !0)
1596 }
1597 }
1598 }), lt.fn.extend({
1599 on: function (e, n, i, o, r) {
1600 var s, a;
1601 if ("object" == typeof e) {
1602 "string" != typeof n && (i = i || n, n = t);
1603 for (s in e)this.on(s, n, i, e[s], r);
1604 return this
1605 }
1606 if (null == i && null == o ? (o = n, i = n = t) : null == o && ("string" == typeof n ? (o = i, i = t) : (o = i, i = n, n = t)), o === !1) o = p; else if (!o)return this;
1607 return 1 === r && (a = o, o = function (e) {
1608 return lt().off(e), a.apply(this, arguments)
1609 }, o.guid = a.guid || (a.guid = lt.guid++)), this.each(function () {
1610 lt.event.add(this, e, o, i, n)
1611 })
1612 }, one: function (e, t, n, i) {
1613 return this.on(e, t, n, i, 1)
1614 }, off: function (e, n, i) {
1615 var o, r;
1616 if (e && e.preventDefault && e.handleObj)return o = e.handleObj, lt(e.delegateTarget).off(o.namespace ? o.origType + "." + o.namespace : o.origType, o.selector, o.handler), this;
1617 if ("object" == typeof e) {
1618 for (r in e)this.off(r, n, e[r]);
1619 return this
1620 }
1621 return (n === !1 || "function" == typeof n) && (i = n, n = t), i === !1 && (i = p), this.each(function () {
1622 lt.event.remove(this, e, i, n)
1623 })
1624 }, bind: function (e, t, n) {
1625 return this.on(e, null, t, n)
1626 }, unbind: function (e, t) {
1627 return this.off(e, null, t)
1628 }, delegate: function (e, t, n, i) {
1629 return this.on(t, e, n, i)
1630 }, undelegate: function (e, t, n) {
1631 return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
1632 }, trigger: function (e, t) {
1633 return this.each(function () {
1634 lt.event.trigger(e, t, this)
1635 })
1636 }, triggerHandler: function (e, n) {
1637 var i = this[0];
1638 return i ? lt.event.trigger(e, n, i, !0) : t
1639 }
1640 }), function (e, t) {
1641 function n(e) {
1642 return ft.test(e + "")
1643 }
1644
1645 function i() {
1646 var e, t = [];
1647 return e = function (n, i) {
1648 return t.push(n += " ") > S.cacheLength && delete e[t.shift()], e[n] = i
1649 }
1650 }
1651
1652 function o(e) {
1653 return e[I] = !0, e
1654 }
1655
1656 function r(e) {
1657 var t = O.createElement("div");
1658 try {
1659 return e(t)
1660 } catch (n) {
1661 return !1
1662 } finally {
1663 t = null
1664 }
1665 }
1666
1667 function s(e, t, n, i) {
1668 var o, r, s, a, l, p, c, h, f, m;
1669 if ((t ? t.ownerDocument || t : H) !== O && F(t), t = t || O, n = n || [], !e || "string" != typeof e)return n;
1670 if (1 !== (a = t.nodeType) && 9 !== a)return [];
1671 if (!j && !i) {
1672 if (o = mt.exec(e))if (s = o[1]) {
1673 if (9 === a) {
1674 if (r = t.getElementById(s), !r || !r.parentNode)return n;
1675 if (r.id === s)return n.push(r), n
1676 } else if (t.ownerDocument && (r = t.ownerDocument.getElementById(s)) && z(t, r) && r.id === s)return n.push(r), n
1677 } else {
1678 if (o[2])return K.apply(n, G.call(t.getElementsByTagName(e), 0)), n;
1679 if ((s = o[3]) && q.getByClassName && t.getElementsByClassName)return K.apply(n, G.call(t.getElementsByClassName(s), 0)), n
1680 }
1681 if (q.qsa && !M.test(e)) {
1682 if (c = !0, h = I, f = t, m = 9 === a && e, 1 === a && "object" !== t.nodeName.toLowerCase()) {
1683 for (p = u(e), (c = t.getAttribute("id")) ? h = c.replace(yt, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", l = p.length; l--;)p[l] = h + d(p[l]);
1684 f = ht.test(e) && t.parentNode || t, m = p.join(",")
1685 }
1686 if (m)try {
1687 return K.apply(n, G.call(f.querySelectorAll(m), 0)), n
1688 } catch (g) {
1689 } finally {
1690 c || t.removeAttribute("id")
1691 }
1692 }
1693 }
1694 return w(e.replace(st, "$1"), t, n, i)
1695 }
1696
1697 function a(e, t) {
1698 var n = t && e, i = n && (~t.sourceIndex || Y) - (~e.sourceIndex || Y);
1699 if (i)return i;
1700 if (n)for (; n = n.nextSibling;)if (n === t)return -1;
1701 return e ? 1 : -1
1702 }
1703
1704 function l(e) {
1705 return function (t) {
1706 var n = t.nodeName.toLowerCase();
1707 return "input" === n && t.type === e
1708 }
1709 }
1710
1711 function p(e) {
1712 return function (t) {
1713 var n = t.nodeName.toLowerCase();
1714 return ("input" === n || "button" === n) && t.type === e
1715 }
1716 }
1717
1718 function c(e) {
1719 return o(function (t) {
1720 return t = +t, o(function (n, i) {
1721 for (var o, r = e([], n.length, t), s = r.length; s--;)n[o = r[s]] && (n[o] = !(i[o] = n[o]))
1722 })
1723 })
1724 }
1725
1726 function u(e, t) {
1727 var n, i, o, r, a, l, p, c = U[e + " "];
1728 if (c)return t ? 0 : c.slice(0);
1729 for (a = e, l = [], p = S.preFilter; a;) {
1730 (!n || (i = at.exec(a))) && (i && (a = a.slice(i[0].length) || a), l.push(o = [])), n = !1, (i = pt.exec(a)) && (n = i.shift(), o.push({
1731 value: n,
1732 type: i[0].replace(st, " ")
1733 }), a = a.slice(n.length));
1734 for (r in S.filter)!(i = dt[r].exec(a)) || p[r] && !(i = p[r](i)) || (n = i.shift(), o.push({
1735 value: n,
1736 type: r,
1737 matches: i
1738 }), a = a.slice(n.length));
1739 if (!n)break
1740 }
1741 return t ? a.length : a ? s.error(e) : U(e, l).slice(0)
1742 }
1743
1744 function d(e) {
1745 for (var t = 0, n = e.length, i = ""; n > t; t++)i += e[t].value;
1746 return i
1747 }
1748
1749 function h(e, t, n) {
1750 var i = t.dir, o = n && "parentNode" === i, r = B++;
1751 return t.first ? function (t, n, r) {
1752 for (; t = t[i];)if (1 === t.nodeType || o)return e(t, n, r)
1753 } : function (t, n, s) {
1754 var a, l, p, c = $ + " " + r;
1755 if (s) {
1756 for (; t = t[i];)if ((1 === t.nodeType || o) && e(t, n, s))return !0
1757 } else for (; t = t[i];)if (1 === t.nodeType || o)if (p = t[I] || (t[I] = {}), (l = p[i]) && l[0] === c) {
1758 if ((a = l[1]) === !0 || a === T)return a === !0
1759 } else if (l = p[i] = [c], l[1] = e(t, n, s) || T, l[1] === !0)return !0
1760 }
1761 }
1762
1763 function f(e) {
1764 return e.length > 1 ? function (t, n, i) {
1765 for (var o = e.length; o--;)if (!e[o](t, n, i))return !1;
1766 return !0
1767 } : e[0]
1768 }
1769
1770 function m(e, t, n, i, o) {
1771 for (var r, s = [], a = 0, l = e.length, p = null != t; l > a; a++)(r = e[a]) && (!n || n(r, i, o)) && (s.push(r), p && t.push(a));
1772 return s
1773 }
1774
1775 function g(e, t, n, i, r, s) {
1776 return i && !i[I] && (i = g(i)), r && !r[I] && (r = g(r, s)), o(function (o, s, a, l) {
1777 var p, c, u, d = [], h = [], f = s.length, g = o || b(t || "*", a.nodeType ? [a] : a, []),
1778 v = !e || !o && t ? g : m(g, d, e, a, l), y = n ? r || (o ? e : f || i) ? [] : s : v;
1779 if (n && n(v, y, a, l), i)for (p = m(y, h), i(p, [], a, l), c = p.length; c--;)(u = p[c]) && (y[h[c]] = !(v[h[c]] = u));
1780 if (o) {
1781 if (r || e) {
1782 if (r) {
1783 for (p = [], c = y.length; c--;)(u = y[c]) && p.push(v[c] = u);
1784 r(null, y = [], p, l)
1785 }
1786 for (c = y.length; c--;)(u = y[c]) && (p = r ? Q.call(o, u) : d[c]) > -1 && (o[p] = !(s[p] = u))
1787 }
1788 } else y = m(y === s ? y.splice(f, y.length) : y), r ? r(null, s, y, l) : K.apply(s, y)
1789 })
1790 }
1791
1792 function v(e) {
1793 for (var t, n, i, o = e.length, r = S.relative[e[0].type], s = r || S.relative[" "], a = r ? 1 : 0, l = h(function (e) {
1794 return e === t
1795 }, s, !0), p = h(function (e) {
1796 return Q.call(t, e) > -1
1797 }, s, !0), c = [function (e, n, i) {
1798 return !r && (i || n !== N) || ((t = n).nodeType ? l(e, n, i) : p(e, n, i))
1799 }]; o > a; a++)if (n = S.relative[e[a].type]) c = [h(f(c), n)]; else {
1800 if (n = S.filter[e[a].type].apply(null, e[a].matches), n[I]) {
1801 for (i = ++a; o > i && !S.relative[e[i].type]; i++);
1802 return g(a > 1 && f(c), a > 1 && d(e.slice(0, a - 1)).replace(st, "$1"), n, i > a && v(e.slice(a, i)), o > i && v(e = e.slice(i)), o > i && d(e))
1803 }
1804 c.push(n)
1805 }
1806 return f(c)
1807 }
1808
1809 function y(e, t) {
1810 var n = 0, i = t.length > 0, r = e.length > 0, a = function (o, a, l, p, c) {
1811 var u, d, h, f = [], g = 0, v = "0", y = o && [], b = null != c, w = N,
1812 x = o || r && S.find.TAG("*", c && a.parentNode || a), C = $ += null == w ? 1 : Math.random() || .1;
1813 for (b && (N = a !== O && a, T = n); null != (u = x[v]); v++) {
1814 if (r && u) {
1815 for (d = 0; h = e[d++];)if (h(u, a, l)) {
1816 p.push(u);
1817 break
1818 }
1819 b && ($ = C, T = ++n)
1820 }
1821 i && ((u = !h && u) && g--, o && y.push(u))
1822 }
1823 if (g += v, i && v !== g) {
1824 for (d = 0; h = t[d++];)h(y, f, a, l);
1825 if (o) {
1826 if (g > 0)for (; v--;)y[v] || f[v] || (f[v] = J.call(p));
1827 f = m(f)
1828 }
1829 K.apply(p, f), b && !o && f.length > 0 && g + t.length > 1 && s.uniqueSort(p)
1830 }
1831 return b && ($ = C, N = w), y
1832 };
1833 return i ? o(a) : a
1834 }
1835
1836 function b(e, t, n) {
1837 for (var i = 0, o = t.length; o > i; i++)s(e, t[i], n);
1838 return n
1839 }
1840
1841 function w(e, t, n, i) {
1842 var o, r, s, a, l, p = u(e);
1843 if (!i && 1 === p.length) {
1844 if (r = p[0] = p[0].slice(0), r.length > 2 && "ID" === (s = r[0]).type && 9 === t.nodeType && !j && S.relative[r[1].type]) {
1845 if (t = S.find.ID(s.matches[0].replace(wt, xt), t)[0], !t)return n;
1846 e = e.slice(r.shift().value.length)
1847 }
1848 for (o = dt.needsContext.test(e) ? 0 : r.length; o-- && (s = r[o], !S.relative[a = s.type]);)if ((l = S.find[a]) && (i = l(s.matches[0].replace(wt, xt), ht.test(r[0].type) && t.parentNode || t))) {
1849 if (r.splice(o, 1), e = i.length && d(r), !e)return K.apply(n, G.call(i, 0)), n;
1850 break
1851 }
1852 }
1853 return P(e, p)(i, t, j, n, ht.test(e)), n
1854 }
1855
1856 function x() {
1857 }
1858
1859 var C, T, S, k, E, P, A, N, F, O, D, j, M, L, _, z, R, I = "sizzle" + -new Date, H = e.document, q = {}, $ = 0,
1860 B = 0, W = i(), U = i(), V = i(), X = typeof t, Y = 1 << 31, Z = [], J = Z.pop, K = Z.push, G = Z.slice,
1861 Q = Z.indexOf || function (e) {
1862 for (var t = 0, n = this.length; n > t; t++)if (this[t] === e)return t;
1863 return -1
1864 }, et = "[\\x20\\t\\r\\n\\f]", tt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", nt = tt.replace("w", "w#"),
1865 it = "([*^$|!~]?=)",
1866 ot = "\\[" + et + "*(" + tt + ")" + et + "*(?:" + it + et + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + nt + ")|)|)" + et + "*\\]",
1867 rt = ":(" + tt + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + ot.replace(3, 8) + ")*)|.*)\\)|)",
1868 st = RegExp("^" + et + "+|((?:^|[^\\\\])(?:\\\\.)*)" + et + "+$", "g"),
1869 at = RegExp("^" + et + "*," + et + "*"), pt = RegExp("^" + et + "*([\\x20\\t\\r\\n\\f>+~])" + et + "*"),
1870 ct = RegExp(rt), ut = RegExp("^" + nt + "$"), dt = {
1871 ID: RegExp("^#(" + tt + ")"),
1872 CLASS: RegExp("^\\.(" + tt + ")"),
1873 NAME: RegExp("^\\[name=['\"]?(" + tt + ")['\"]?\\]"),
1874 TAG: RegExp("^(" + tt.replace("w", "w*") + ")"),
1875 ATTR: RegExp("^" + ot),
1876 PSEUDO: RegExp("^" + rt),
1877 CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + et + "*(even|odd|(([+-]|)(\\d*)n|)" + et + "*(?:([+-]|)" + et + "*(\\d+)|))" + et + "*\\)|)", "i"),
1878 needsContext: RegExp("^" + et + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + et + "*((?:-\\d)?\\d*)" + et + "*\\)|)(?=[^-]|$)", "i")
1879 }, ht = /[\x20\t\r\n\f]*[+~]/, ft = /^[^{]+\{\s*\[native code/, mt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
1880 gt = /^(?:input|select|textarea|button)$/i, vt = /^h\d$/i, yt = /'|\\/g,
1881 bt = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, wt = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
1882 xt = function (e, t) {
1883 var n = "0x" + t - 65536;
1884 return n !== n ? t : 0 > n ? String.fromCharCode(n + 65536) : String.fromCharCode(55296 | n >> 10, 56320 | 1023 & n)
1885 };
1886 try {
1887 G.call(H.documentElement.childNodes, 0)[0].nodeType
1888 } catch (Ct) {
1889 G = function (e) {
1890 for (var t, n = []; t = this[e++];)n.push(t);
1891 return n
1892 }
1893 }
1894 E = s.isXML = function (e) {
1895 var t = e && (e.ownerDocument || e).documentElement;
1896 return t ? "HTML" !== t.nodeName : !1
1897 }, F = s.setDocument = function (e) {
1898 var i = e ? e.ownerDocument || e : H;
1899 return i !== O && 9 === i.nodeType && i.documentElement ? (O = i, D = i.documentElement, j = E(i), q.tagNameNoComments = r(function (e) {
1900 return e.appendChild(i.createComment("")), !e.getElementsByTagName("*").length
1901 }), q.attributes = r(function (e) {
1902 e.innerHTML = "<select></select>";
1903 var t = typeof e.lastChild.getAttribute("multiple");
1904 return "boolean" !== t && "string" !== t
1905 }), q.getByClassName = r(function (e) {
1906 return e.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", e.getElementsByClassName && e.getElementsByClassName("e").length ? (e.lastChild.className = "e", 2 === e.getElementsByClassName("e").length) : !1
1907 }), q.getByName = r(function (e) {
1908 e.id = I + 0, e.innerHTML = "<a name='" + I + "'></a><div name='" + I + "'></div>", D.insertBefore(e, D.firstChild);
1909 var t = i.getElementsByName && i.getElementsByName(I).length === 2 + i.getElementsByName(I + 0).length;
1910 return q.getIdNotName = !i.getElementById(I), D.removeChild(e), t
1911 }), S.attrHandle = r(function (e) {
1912 return e.innerHTML = "<a href='#'></a>", e.firstChild && typeof e.firstChild.getAttribute !== X && "#" === e.firstChild.getAttribute("href")
1913 }) ? {} : {
1914 href: function (e) {
1915 return e.getAttribute("href", 2)
1916 }, type: function (e) {
1917 return e.getAttribute("type")
1918 }
1919 }, q.getIdNotName ? (S.find.ID = function (e, t) {
1920 if (typeof t.getElementById !== X && !j) {
1921 var n = t.getElementById(e);
1922 return n && n.parentNode ? [n] : []
1923 }
1924 }, S.filter.ID = function (e) {
1925 var t = e.replace(wt, xt);
1926 return function (e) {
1927 return e.getAttribute("id") === t
1928 }
1929 }) : (S.find.ID = function (e, n) {
1930 if (typeof n.getElementById !== X && !j) {
1931 var i = n.getElementById(e);
1932 return i ? i.id === e || typeof i.getAttributeNode !== X && i.getAttributeNode("id").value === e ? [i] : t : []
1933 }
1934 }, S.filter.ID = function (e) {
1935 var t = e.replace(wt, xt);
1936 return function (e) {
1937 var n = typeof e.getAttributeNode !== X && e.getAttributeNode("id");
1938 return n && n.value === t
1939 }
1940 }), S.find.TAG = q.tagNameNoComments ? function (e, n) {
1941 return typeof n.getElementsByTagName !== X ? n.getElementsByTagName(e) : t
1942 } : function (e, t) {
1943 var n, i = [], o = 0, r = t.getElementsByTagName(e);
1944 if ("*" === e) {
1945 for (; n = r[o++];)1 === n.nodeType && i.push(n);
1946 return i
1947 }
1948 return r
1949 }, S.find.NAME = q.getByName && function (e, n) {
1950 return typeof n.getElementsByName !== X ? n.getElementsByName(name) : t
1951 }, S.find.CLASS = q.getByClassName && function (e, n) {
1952 return typeof n.getElementsByClassName === X || j ? t : n.getElementsByClassName(e)
1953 }, L = [], M = [":focus"], (q.qsa = n(i.querySelectorAll)) && (r(function (e) {
1954 e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || M.push("\\[" + et + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), e.querySelectorAll(":checked").length || M.push(":checked")
1955 }), r(function (e) {
1956 e.innerHTML = "<input type='hidden' i=''/>", e.querySelectorAll("[i^='']").length && M.push("[*^$]=" + et + "*(?:\"\"|'')"), e.querySelectorAll(":enabled").length || M.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), M.push(",.*:")
1957 })), (q.matchesSelector = n(_ = D.matchesSelector || D.mozMatchesSelector || D.webkitMatchesSelector || D.oMatchesSelector || D.msMatchesSelector)) && r(function (e) {
1958 q.disconnectedMatch = _.call(e, "div"), _.call(e, "[s!='']:x"), L.push("!=", rt)
1959 }), M = RegExp(M.join("|")), L = RegExp(L.join("|")), z = n(D.contains) || D.compareDocumentPosition ? function (e, t) {
1960 var n = 9 === e.nodeType ? e.documentElement : e, i = t && t.parentNode;
1961 return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)))
1962 } : function (e, t) {
1963 if (t)for (; t = t.parentNode;)if (t === e)return !0;
1964 return !1
1965 }, R = D.compareDocumentPosition ? function (e, t) {
1966 var n;
1967 return e === t ? (A = !0, 0) : (n = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t)) ? 1 & n || e.parentNode && 11 === e.parentNode.nodeType ? e === i || z(H, e) ? -1 : t === i || z(H, t) ? 1 : 0 : 4 & n ? -1 : 1 : e.compareDocumentPosition ? -1 : 1
1968 } : function (e, t) {
1969 var n, o = 0, r = e.parentNode, s = t.parentNode, l = [e], p = [t];
1970 if (e === t)return A = !0, 0;
1971 if (!r || !s)return e === i ? -1 : t === i ? 1 : r ? -1 : s ? 1 : 0;
1972 if (r === s)return a(e, t);
1973 for (n = e; n = n.parentNode;)l.unshift(n);
1974 for (n = t; n = n.parentNode;)p.unshift(n);
1975 for (; l[o] === p[o];)o++;
1976 return o ? a(l[o], p[o]) : l[o] === H ? -1 : p[o] === H ? 1 : 0
1977 }, A = !1, [0, 0].sort(R), q.detectDuplicates = A, O) : O
1978 }, s.matches = function (e, t) {
1979 return s(e, null, null, t)
1980 }, s.matchesSelector = function (e, t) {
1981 if ((e.ownerDocument || e) !== O && F(e), t = t.replace(bt, "='$1']"), !(!q.matchesSelector || j || L && L.test(t) || M.test(t)))try {
1982 var n = _.call(e, t);
1983 if (n || q.disconnectedMatch || e.document && 11 !== e.document.nodeType)return n
1984 } catch (i) {
1985 }
1986 return s(t, O, null, [e]).length > 0
1987 }, s.contains = function (e, t) {
1988 return (e.ownerDocument || e) !== O && F(e), z(e, t)
1989 }, s.attr = function (e, t) {
1990 var n;
1991 return (e.ownerDocument || e) !== O && F(e), j || (t = t.toLowerCase()), (n = S.attrHandle[t]) ? n(e) : j || q.attributes ? e.getAttribute(t) : ((n = e.getAttributeNode(t)) || e.getAttribute(t)) && e[t] === !0 ? t : n && n.specified ? n.value : null
1992 }, s.error = function (e) {
1993 throw Error("Syntax error, unrecognized expression: " + e)
1994 }, s.uniqueSort = function (e) {
1995 var t, n = [], i = 1, o = 0;
1996 if (A = !q.detectDuplicates, e.sort(R), A) {
1997 for (; t = e[i]; i++)t === e[i - 1] && (o = n.push(i));
1998 for (; o--;)e.splice(n[o], 1)
1999 }
2000 return e
2001 }, k = s.getText = function (e) {
2002 var t, n = "", i = 0, o = e.nodeType;
2003 if (o) {
2004 if (1 === o || 9 === o || 11 === o) {
2005 if ("string" == typeof e.textContent)return e.textContent;
2006 for (e = e.firstChild; e; e = e.nextSibling)n += k(e)
2007 } else if (3 === o || 4 === o)return e.nodeValue
2008 } else for (; t = e[i]; i++)n += k(t);
2009 return n
2010 }, S = s.selectors = {
2011 cacheLength: 50,
2012 createPseudo: o,
2013 match: dt,
2014 find: {},
2015 relative: {
2016 ">": {dir: "parentNode", first: !0},
2017 " ": {dir: "parentNode"},
2018 "+": {dir: "previousSibling", first: !0},
2019 "~": {dir: "previousSibling"}
2020 },
2021 preFilter: {
2022 ATTR: function (e) {
2023 return e[1] = e[1].replace(wt, xt), e[3] = (e[4] || e[5] || "").replace(wt, xt), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
2024 }, CHILD: function (e) {
2025 return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || s.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && s.error(e[0]), e
2026 }, PSEUDO: function (e) {
2027 var t, n = !e[5] && e[2];
2028 return dt.CHILD.test(e[0]) ? null : (e[4] ? e[2] = e[4] : n && ct.test(n) && (t = u(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
2029 }
2030 },
2031 filter: {
2032 TAG: function (e) {
2033 return "*" === e ? function () {
2034 return !0
2035 } : (e = e.replace(wt, xt).toLowerCase(), function (t) {
2036 return t.nodeName && t.nodeName.toLowerCase() === e
2037 })
2038 }, CLASS: function (e) {
2039 var t = W[e + " "];
2040 return t || (t = RegExp("(^|" + et + ")" + e + "(" + et + "|$)")) && W(e, function (e) {
2041 return t.test(e.className || typeof e.getAttribute !== X && e.getAttribute("class") || "")
2042 })
2043 }, ATTR: function (e, t, n) {
2044 return function (i) {
2045 var o = s.attr(i, e);
2046 return null == o ? "!=" === t : t ? (o += "", "=" === t ? o === n : "!=" === t ? o !== n : "^=" === t ? n && 0 === o.indexOf(n) : "*=" === t ? n && o.indexOf(n) > -1 : "$=" === t ? n && o.slice(-n.length) === n : "~=" === t ? (" " + o + " ").indexOf(n) > -1 : "|=" === t ? o === n || o.slice(0, n.length + 1) === n + "-" : !1) : !0
2047 }
2048 }, CHILD: function (e, t, n, i, o) {
2049 var r = "nth" !== e.slice(0, 3), s = "last" !== e.slice(-4), a = "of-type" === t;
2050 return 1 === i && 0 === o ? function (e) {
2051 return !!e.parentNode
2052 } : function (t, n, l) {
2053 var p, c, u, d, h, f, m = r !== s ? "nextSibling" : "previousSibling", g = t.parentNode,
2054 v = a && t.nodeName.toLowerCase(), y = !l && !a;
2055 if (g) {
2056 if (r) {
2057 for (; m;) {
2058 for (u = t; u = u[m];)if (a ? u.nodeName.toLowerCase() === v : 1 === u.nodeType)return !1;
2059 f = m = "only" === e && !f && "nextSibling"
2060 }
2061 return !0
2062 }
2063 if (f = [s ? g.firstChild : g.lastChild], s && y) {
2064 for (c = g[I] || (g[I] = {}), p = c[e] || [], h = p[0] === $ && p[1], d = p[0] === $ && p[2], u = h && g.childNodes[h]; u = ++h && u && u[m] || (d = h = 0) || f.pop();)if (1 === u.nodeType && ++d && u === t) {
2065 c[e] = [$, h, d];
2066 break
2067 }
2068 } else if (y && (p = (t[I] || (t[I] = {}))[e]) && p[0] === $) d = p[1]; else for (; (u = ++h && u && u[m] || (d = h = 0) || f.pop()) && ((a ? u.nodeName.toLowerCase() !== v : 1 !== u.nodeType) || !++d || (y && ((u[I] || (u[I] = {}))[e] = [$, d]), u !== t)););
2069 return d -= o, d === i || 0 === d % i && d / i >= 0
2070 }
2071 }
2072 }, PSEUDO: function (e, t) {
2073 var n, i = S.pseudos[e] || S.setFilters[e.toLowerCase()] || s.error("unsupported pseudo: " + e);
2074 return i[I] ? i(t) : i.length > 1 ? (n = [e, e, "", t], S.setFilters.hasOwnProperty(e.toLowerCase()) ? o(function (e, n) {
2075 for (var o, r = i(e, t), s = r.length; s--;)o = Q.call(e, r[s]), e[o] = !(n[o] = r[s])
2076 }) : function (e) {
2077 return i(e, 0, n)
2078 }) : i
2079 }
2080 },
2081 pseudos: {
2082 not: o(function (e) {
2083 var t = [], n = [], i = P(e.replace(st, "$1"));
2084 return i[I] ? o(function (e, t, n, o) {
2085 for (var r, s = i(e, null, o, []), a = e.length; a--;)(r = s[a]) && (e[a] = !(t[a] = r))
2086 }) : function (e, o, r) {
2087 return t[0] = e, i(t, null, r, n), !n.pop()
2088 }
2089 }), has: o(function (e) {
2090 return function (t) {
2091 return s(e, t).length > 0
2092 }
2093 }), contains: o(function (e) {
2094 return function (t) {
2095 return (t.textContent || t.innerText || k(t)).indexOf(e) > -1
2096 }
2097 }), lang: o(function (e) {
2098 return ut.test(e || "") || s.error("unsupported lang: " + e), e = e.replace(wt, xt).toLowerCase(), function (t) {
2099 var n;
2100 do if (n = j ? t.getAttribute("xml:lang") || t.getAttribute("lang") : t.lang)return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-"); while ((t = t.parentNode) && 1 === t.nodeType);
2101 return !1
2102 }
2103 }), target: function (t) {
2104 var n = e.location && e.location.hash;
2105 return n && n.slice(1) === t.id
2106 }, root: function (e) {
2107 return e === D
2108 }, focus: function (e) {
2109 return e === O.activeElement && (!O.hasFocus || O.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
2110 }, enabled: function (e) {
2111 return e.disabled === !1
2112 }, disabled: function (e) {
2113 return e.disabled === !0
2114 }, checked: function (e) {
2115 var t = e.nodeName.toLowerCase();
2116 return "input" === t && !!e.checked || "option" === t && !!e.selected
2117 }, selected: function (e) {
2118 return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
2119 }, empty: function (e) {
2120 for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeName > "@" || 3 === e.nodeType || 4 === e.nodeType)return !1;
2121 return !0
2122 }, parent: function (e) {
2123 return !S.pseudos.empty(e)
2124 }, header: function (e) {
2125 return vt.test(e.nodeName)
2126 }, input: function (e) {
2127 return gt.test(e.nodeName)
2128 }, button: function (e) {
2129 var t = e.nodeName.toLowerCase();
2130 return "input" === t && "button" === e.type || "button" === t
2131 }, text: function (e) {
2132 var t;
2133 return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || t.toLowerCase() === e.type)
2134 }, first: c(function () {
2135 return [0]
2136 }), last: c(function (e, t) {
2137 return [t - 1]
2138 }), eq: c(function (e, t, n) {
2139 return [0 > n ? n + t : n]
2140 }), even: c(function (e, t) {
2141 for (var n = 0; t > n; n += 2)e.push(n);
2142 return e
2143 }), odd: c(function (e, t) {
2144 for (var n = 1; t > n; n += 2)e.push(n);
2145 return e
2146 }), lt: c(function (e, t, n) {
2147 for (var i = 0 > n ? n + t : n; --i >= 0;)e.push(i);
2148 return e
2149 }), gt: c(function (e, t, n) {
2150 for (var i = 0 > n ? n + t : n; t > ++i;)e.push(i);
2151 return e
2152 })
2153 }
2154 };
2155 for (C in{radio: !0, checkbox: !0, file: !0, password: !0, image: !0})S.pseudos[C] = l(C);
2156 for (C in{submit: !0, reset: !0})S.pseudos[C] = p(C);
2157 P = s.compile = function (e, t) {
2158 var n, i = [], o = [], r = V[e + " "];
2159 if (!r) {
2160 for (t || (t = u(e)), n = t.length; n--;)r = v(t[n]), r[I] ? i.push(r) : o.push(r);
2161 r = V(e, y(o, i))
2162 }
2163 return r
2164 }, S.pseudos.nth = S.pseudos.eq, S.filters = x.prototype = S.pseudos, S.setFilters = new x, F(), s.attr = lt.attr, lt.find = s, lt.expr = s.selectors, lt.expr[":"] = lt.expr.pseudos, lt.unique = s.uniqueSort, lt.text = s.getText, lt.isXMLDoc = s.isXML, lt.contains = s.contains
2165 }(e);
2166 var qt = /Until$/, $t = /^(?:parents|prev(?:Until|All))/, Bt = /^.[^:#\[\.,]*$/, Wt = lt.expr.match.needsContext,
2167 Ut = {children: !0, contents: !0, next: !0, prev: !0};
2168 lt.fn.extend({
2169 find: function (e) {
2170 var t, n, i, o = this.length;
2171 if ("string" != typeof e)return i = this, this.pushStack(lt(e).filter(function () {
2172 for (t = 0; o > t; t++)if (lt.contains(i[t], this))return !0
2173 }));
2174 for (n = [], t = 0; o > t; t++)lt.find(e, this[t], n);
2175 return n = this.pushStack(o > 1 ? lt.unique(n) : n), n.selector = (this.selector ? this.selector + " " : "") + e, n
2176 }, has: function (e) {
2177 var t, n = lt(e, this), i = n.length;
2178 return this.filter(function () {
2179 for (t = 0; i > t; t++)if (lt.contains(this, n[t]))return !0
2180 })
2181 }, not: function (e) {
2182 return this.pushStack(u(this, e, !1))
2183 }, filter: function (e) {
2184 return this.pushStack(u(this, e, !0))
2185 }, is: function (e) {
2186 return !!e && ("string" == typeof e ? Wt.test(e) ? lt(e, this.context).index(this[0]) >= 0 : lt.filter(e, this).length > 0 : this.filter(e).length > 0)
2187 }, closest: function (e, t) {
2188 for (var n, i = 0, o = this.length, r = [], s = Wt.test(e) || "string" != typeof e ? lt(e, t || this.context) : 0; o > i; i++)for (n = this[i]; n && n.ownerDocument && n !== t && 11 !== n.nodeType;) {
2189 if (s ? s.index(n) > -1 : lt.find.matchesSelector(n, e)) {
2190 r.push(n);
2191 break
2192 }
2193 n = n.parentNode
2194 }
2195 return this.pushStack(r.length > 1 ? lt.unique(r) : r)
2196 }, index: function (e) {
2197 return e ? "string" == typeof e ? lt.inArray(this[0], lt(e)) : lt.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
2198 }, add: function (e, t) {
2199 var n = "string" == typeof e ? lt(e, t) : lt.makeArray(e && e.nodeType ? [e] : e),
2200 i = lt.merge(this.get(), n);
2201 return this.pushStack(lt.unique(i))
2202 }, addBack: function (e) {
2203 return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
2204 }
2205 }), lt.fn.andSelf = lt.fn.addBack, lt.each({
2206 parent: function (e) {
2207 var t = e.parentNode;
2208 return t && 11 !== t.nodeType ? t : null
2209 }, parents: function (e) {
2210 return lt.dir(e, "parentNode")
2211 }, parentsUntil: function (e, t, n) {
2212 return lt.dir(e, "parentNode", n)
2213 }, next: function (e) {
2214 return c(e, "nextSibling")
2215 }, prev: function (e) {
2216 return c(e, "previousSibling")
2217 }, nextAll: function (e) {
2218 return lt.dir(e, "nextSibling")
2219 }, prevAll: function (e) {
2220 return lt.dir(e, "previousSibling")
2221 }, nextUntil: function (e, t, n) {
2222 return lt.dir(e, "nextSibling", n)
2223 }, prevUntil: function (e, t, n) {
2224 return lt.dir(e, "previousSibling", n)
2225 }, siblings: function (e) {
2226 return lt.sibling((e.parentNode || {}).firstChild, e)
2227 }, children: function (e) {
2228 return lt.sibling(e.firstChild)
2229 }, contents: function (e) {
2230 return lt.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : lt.merge([], e.childNodes)
2231 }
2232 }, function (e, t) {
2233 lt.fn[e] = function (n, i) {
2234 var o = lt.map(this, t, n);
2235 return qt.test(e) || (i = n), i && "string" == typeof i && (o = lt.filter(i, o)), o = this.length > 1 && !Ut[e] ? lt.unique(o) : o, this.length > 1 && $t.test(e) && (o = o.reverse()), this.pushStack(o)
2236 }
2237 }), lt.extend({
2238 filter: function (e, t, n) {
2239 return n && (e = ":not(" + e + ")"), 1 === t.length ? lt.find.matchesSelector(t[0], e) ? [t[0]] : [] : lt.find.matches(e, t)
2240 }, dir: function (e, n, i) {
2241 for (var o = [], r = e[n]; r && 9 !== r.nodeType && (i === t || 1 !== r.nodeType || !lt(r).is(i));)1 === r.nodeType && o.push(r), r = r[n];
2242 return o
2243 }, sibling: function (e, t) {
2244 for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e);
2245 return n
2246 }
2247 });
2248 var Vt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
2249 Xt = / jQuery\d+="(?:null|\d+)"/g, Yt = RegExp("<(?:" + Vt + ")[\\s/>]", "i"), Zt = /^\s+/,
2250 Jt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Kt = /<([\w:]+)/,
2251 Gt = /<tbody/i, Qt = /<|&#?\w+;/, en = /<(?:script|style|link)/i, tn = /^(?:checkbox|radio)$/i,
2252 nn = /checked\s*(?:[^=]|=\s*.checked.)/i, on = /^$|\/(?:java|ecma)script/i, rn = /^true\/(.*)/,
2253 sn = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, an = {
2254 option: [1, "<select multiple='multiple'>", "</select>"],
2255 legend: [1, "<fieldset>", "</fieldset>"],
2256 area: [1, "<map>", "</map>"],
2257 param: [1, "<object>", "</object>"],
2258 thead: [1, "<table>", "</table>"],
2259 tr: [2, "<table><tbody>", "</tbody></table>"],
2260 col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
2261 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
2262 _default: lt.support.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
2263 }, ln = d(Y), pn = ln.appendChild(Y.createElement("div"));
2264 an.optgroup = an.option, an.tbody = an.tfoot = an.colgroup = an.caption = an.thead, an.th = an.td, lt.fn.extend({
2265 text: function (e) {
2266 return lt.access(this, function (e) {
2267 return e === t ? lt.text(this) : this.empty().append((this[0] && this[0].ownerDocument || Y).createTextNode(e))
2268 }, null, e, arguments.length)
2269 }, wrapAll: function (e) {
2270 if (lt.isFunction(e))return this.each(function (t) {
2271 lt(this).wrapAll(e.call(this, t))
2272 });
2273 if (this[0]) {
2274 var t = lt(e, this[0].ownerDocument).eq(0).clone(!0);
2275 this[0].parentNode && t.insertBefore(this[0]), t.map(function () {
2276 for (var e = this; e.firstChild && 1 === e.firstChild.nodeType;)e = e.firstChild;
2277 return e
2278 }).append(this)
2279 }
2280 return this
2281 }, wrapInner: function (e) {
2282 return lt.isFunction(e) ? this.each(function (t) {
2283 lt(this).wrapInner(e.call(this, t))
2284 }) : this.each(function () {
2285 var t = lt(this), n = t.contents();
2286 n.length ? n.wrapAll(e) : t.append(e)
2287 })
2288 }, wrap: function (e) {
2289 var t = lt.isFunction(e);
2290 return this.each(function (n) {
2291 lt(this).wrapAll(t ? e.call(this, n) : e)
2292 })
2293 }, unwrap: function () {
2294 return this.parent().each(function () {
2295 lt.nodeName(this, "body") || lt(this).replaceWith(this.childNodes)
2296 }).end()
2297 }, append: function () {
2298 return this.domManip(arguments, !0, function (e) {
2299 (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.appendChild(e)
2300 })
2301 }, prepend: function () {
2302 return this.domManip(arguments, !0, function (e) {
2303 (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.insertBefore(e, this.firstChild)
2304 })
2305 }, before: function () {
2306 return this.domManip(arguments, !1, function (e) {
2307 this.parentNode && this.parentNode.insertBefore(e, this)
2308 })
2309 }, after: function () {
2310 return this.domManip(arguments, !1, function (e) {
2311 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
2312 })
2313 }, remove: function (e, t) {
2314 for (var n, i = 0; null != (n = this[i]); i++)(!e || lt.filter(e, [n]).length > 0) && (t || 1 !== n.nodeType || lt.cleanData(b(n)), n.parentNode && (t && lt.contains(n.ownerDocument, n) && g(b(n, "script")), n.parentNode.removeChild(n)));
2315 return this
2316 }, empty: function () {
2317 for (var e, t = 0; null != (e = this[t]); t++) {
2318 for (1 === e.nodeType && lt.cleanData(b(e, !1)); e.firstChild;)e.removeChild(e.firstChild);
2319 e.options && lt.nodeName(e, "select") && (e.options.length = 0)
2320 }
2321 return this
2322 }, clone: function (e, t) {
2323 return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function () {
2324 return lt.clone(this, e, t)
2325 })
2326 }, html: function (e) {
2327 return lt.access(this, function (e) {
2328 var n = this[0] || {}, i = 0, o = this.length;
2329 if (e === t)return 1 === n.nodeType ? n.innerHTML.replace(Xt, "") : t;
2330 if (!("string" != typeof e || en.test(e) || !lt.support.htmlSerialize && Yt.test(e) || !lt.support.leadingWhitespace && Zt.test(e) || an[(Kt.exec(e) || ["", ""])[1].toLowerCase()])) {
2331 e = e.replace(Jt, "<$1></$2>");
2332 try {
2333 for (; o > i; i++)n = this[i] || {}, 1 === n.nodeType && (lt.cleanData(b(n, !1)), n.innerHTML = e);
2334 n = 0
2335 } catch (r) {
2336 }
2337 }
2338 n && this.empty().append(e)
2339 }, null, e, arguments.length)
2340 }, replaceWith: function (e) {
2341 var t = lt.isFunction(e);
2342 return t || "string" == typeof e || (e = lt(e).not(this).detach()), this.domManip([e], !0, function (e) {
2343 var t = this.nextSibling, n = this.parentNode;
2344 n && (lt(this).remove(), n.insertBefore(e, t))
2345 })
2346 }, detach: function (e) {
2347 return this.remove(e, !0)
2348 }, domManip: function (e, n, i) {
2349 e = tt.apply([], e);
2350 var o, r, s, a, l, p, c = 0, u = this.length, d = this, g = u - 1, v = e[0], y = lt.isFunction(v);
2351 if (y || !(1 >= u || "string" != typeof v || lt.support.checkClone) && nn.test(v))return this.each(function (o) {
2352 var r = d.eq(o);
2353 y && (e[0] = v.call(this, o, n ? r.html() : t)), r.domManip(e, n, i)
2354 });
2355 if (u && (p = lt.buildFragment(e, this[0].ownerDocument, !1, this), o = p.firstChild, 1 === p.childNodes.length && (p = o), o)) {
2356 for (n = n && lt.nodeName(o, "tr"), a = lt.map(b(p, "script"), f), s = a.length; u > c; c++)r = p, c !== g && (r = lt.clone(r, !0, !0), s && lt.merge(a, b(r, "script"))), i.call(n && lt.nodeName(this[c], "table") ? h(this[c], "tbody") : this[c], r, c);
2357 if (s)for (l = a[a.length - 1].ownerDocument, lt.map(a, m), c = 0; s > c; c++)r = a[c], on.test(r.type || "") && !lt._data(r, "globalEval") && lt.contains(l, r) && (r.src ? lt.ajax({
2358 url: r.src,
2359 type: "GET",
2360 dataType: "script",
2361 async: !1,
2362 global: !1,
2363 "throws": !0
2364 }) : lt.globalEval((r.text || r.textContent || r.innerHTML || "").replace(sn, "")));
2365 p = o = null
2366 }
2367 return this
2368 }
2369 }), lt.each({
2370 appendTo: "append",
2371 prependTo: "prepend",
2372 insertBefore: "before",
2373 insertAfter: "after",
2374 replaceAll: "replaceWith"
2375 }, function (e, t) {
2376 lt.fn[e] = function (e) {
2377 for (var n, i = 0, o = [], r = lt(e), s = r.length - 1; s >= i; i++)n = i === s ? this : this.clone(!0), lt(r[i])[t](n), nt.apply(o, n.get());
2378 return this.pushStack(o)
2379 }
2380 }), lt.extend({
2381 clone: function (e, t, n) {
2382 var i, o, r, s, a, l = lt.contains(e.ownerDocument, e);
2383 if (lt.support.html5Clone || lt.isXMLDoc(e) || !Yt.test("<" + e.nodeName + ">") ? r = e.cloneNode(!0) : (pn.innerHTML = e.outerHTML, pn.removeChild(r = pn.firstChild)), !(lt.support.noCloneEvent && lt.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || lt.isXMLDoc(e)))for (i = b(r), a = b(e), s = 0; null != (o = a[s]); ++s)i[s] && y(o, i[s]);
2384 if (t)if (n)for (a = a || b(e), i = i || b(r), s = 0; null != (o = a[s]); s++)v(o, i[s]); else v(e, r);
2385 return i = b(r, "script"), i.length > 0 && g(i, !l && b(e, "script")), i = a = o = null, r
2386 }, buildFragment: function (e, t, n, i) {
2387 for (var o, r, s, a, l, p, c, u = e.length, h = d(t), f = [], m = 0; u > m; m++)if (r = e[m], r || 0 === r)if ("object" === lt.type(r)) lt.merge(f, r.nodeType ? [r] : r); else if (Qt.test(r)) {
2388 for (a = a || h.appendChild(t.createElement("div")), l = (Kt.exec(r) || ["", ""])[1].toLowerCase(), c = an[l] || an._default, a.innerHTML = c[1] + r.replace(Jt, "<$1></$2>") + c[2], o = c[0]; o--;)a = a.lastChild;
2389 if (!lt.support.leadingWhitespace && Zt.test(r) && f.push(t.createTextNode(Zt.exec(r)[0])), !lt.support.tbody)for (r = "table" !== l || Gt.test(r) ? "<table>" !== c[1] || Gt.test(r) ? 0 : a : a.firstChild, o = r && r.childNodes.length; o--;)lt.nodeName(p = r.childNodes[o], "tbody") && !p.childNodes.length && r.removeChild(p);
2390 for (lt.merge(f, a.childNodes), a.textContent = ""; a.firstChild;)a.removeChild(a.firstChild);
2391 a = h.lastChild
2392 } else f.push(t.createTextNode(r));
2393 for (a && h.removeChild(a), lt.support.appendChecked || lt.grep(b(f, "input"), w), m = 0; r = f[m++];)if ((!i || -1 === lt.inArray(r, i)) && (s = lt.contains(r.ownerDocument, r), a = b(h.appendChild(r), "script"), s && g(a), n))for (o = 0; r = a[o++];)on.test(r.type || "") && n.push(r);
2394 return a = null, h
2395 }, cleanData: function (e, t) {
2396 for (var n, i, o, r, s = 0, a = lt.expando, l = lt.cache, p = lt.support.deleteExpando, c = lt.event.special; null != (n = e[s]); s++)if ((t || lt.acceptData(n)) && (o = n[a], r = o && l[o])) {
2397 if (r.events)for (i in r.events)c[i] ? lt.event.remove(n, i) : lt.removeEvent(n, i, r.handle);
2398 l[o] && (delete l[o], p ? delete n[a] : typeof n.removeAttribute !== X ? n.removeAttribute(a) : n[a] = null, Q.push(o))
2399 }
2400 }
2401 });
2402 var cn, un, dn, hn = /alpha\([^)]*\)/i, fn = /opacity\s*=\s*([^)]*)/, mn = /^(top|right|bottom|left)$/,
2403 gn = /^(none|table(?!-c[ea]).+)/, vn = /^margin/, yn = RegExp("^(" + pt + ")(.*)$", "i"),
2404 bn = RegExp("^(" + pt + ")(?!px)[a-z%]+$", "i"), wn = RegExp("^([+-])=(" + pt + ")", "i"), xn = {BODY: "block"},
2405 Cn = {position: "absolute", visibility: "hidden", display: "block"}, Tn = {letterSpacing: 0, fontWeight: 400},
2406 Sn = ["Top", "Right", "Bottom", "Left"], kn = ["Webkit", "O", "Moz", "ms"];
2407 lt.fn.extend({
2408 css: function (e, n) {
2409 return lt.access(this, function (e, n, i) {
2410 var o, r, s = {}, a = 0;
2411 if (lt.isArray(n)) {
2412 for (r = un(e), o = n.length; o > a; a++)s[n[a]] = lt.css(e, n[a], !1, r);
2413 return s
2414 }
2415 return i !== t ? lt.style(e, n, i) : lt.css(e, n)
2416 }, e, n, arguments.length > 1)
2417 }, show: function () {
2418 return T(this, !0)
2419 }, hide: function () {
2420 return T(this)
2421 }, toggle: function (e) {
2422 var t = "boolean" == typeof e;
2423 return this.each(function () {
2424 (t ? e : C(this)) ? lt(this).show() : lt(this).hide()
2425 })
2426 }
2427 }), lt.extend({
2428 cssHooks: {
2429 opacity: {
2430 get: function (e, t) {
2431 if (t) {
2432 var n = dn(e, "opacity");
2433 return "" === n ? "1" : n
2434 }
2435 }
2436 }
2437 },
2438 cssNumber: {
2439 columnCount: !0,
2440 fillOpacity: !0,
2441 fontWeight: !0,
2442 lineHeight: !0,
2443 opacity: !0,
2444 orphans: !0,
2445 widows: !0,
2446 zIndex: !0,
2447 zoom: !0
2448 },
2449 cssProps: {"float": lt.support.cssFloat ? "cssFloat" : "styleFloat"},
2450 style: function (e, n, i, o) {
2451 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
2452 var r, s, a, l = lt.camelCase(n), p = e.style;
2453 if (n = lt.cssProps[l] || (lt.cssProps[l] = x(p, l)), a = lt.cssHooks[n] || lt.cssHooks[l], i === t)return a && "get" in a && (r = a.get(e, !1, o)) !== t ? r : p[n];
2454 if (s = typeof i, "string" === s && (r = wn.exec(i)) && (i = (r[1] + 1) * r[2] + parseFloat(lt.css(e, n)), s = "number"), !(null == i || "number" === s && isNaN(i) || ("number" !== s || lt.cssNumber[l] || (i += "px"), lt.support.clearCloneStyle || "" !== i || 0 !== n.indexOf("background") || (p[n] = "inherit"), a && "set" in a && (i = a.set(e, i, o)) === t)))try {
2455 p[n] = i
2456 } catch (c) {
2457 }
2458 }
2459 },
2460 css: function (e, n, i, o) {
2461 var r, s, a, l = lt.camelCase(n);
2462 return n = lt.cssProps[l] || (lt.cssProps[l] = x(e.style, l)), a = lt.cssHooks[n] || lt.cssHooks[l], a && "get" in a && (s = a.get(e, !0, i)), s === t && (s = dn(e, n, o)), "normal" === s && n in Tn && (s = Tn[n]), "" === i || i ? (r = parseFloat(s), i === !0 || lt.isNumeric(r) ? r || 0 : s) : s
2463 },
2464 swap: function (e, t, n, i) {
2465 var o, r, s = {};
2466 for (r in t)s[r] = e.style[r], e.style[r] = t[r];
2467 o = n.apply(e, i || []);
2468 for (r in t)e.style[r] = s[r];
2469 return o
2470 }
2471 }), e.getComputedStyle ? (un = function (t) {
2472 return e.getComputedStyle(t, null)
2473 }, dn = function (e, n, i) {
2474 var o, r, s, a = i || un(e), l = a ? a.getPropertyValue(n) || a[n] : t, p = e.style;
2475 return a && ("" !== l || lt.contains(e.ownerDocument, e) || (l = lt.style(e, n)), bn.test(l) && vn.test(n) && (o = p.width, r = p.minWidth, s = p.maxWidth, p.minWidth = p.maxWidth = p.width = l, l = a.width, p.width = o, p.minWidth = r, p.maxWidth = s)), l
2476 }) : Y.documentElement.currentStyle && (un = function (e) {
2477 return e.currentStyle
2478 }, dn = function (e, n, i) {
2479 var o, r, s, a = i || un(e), l = a ? a[n] : t, p = e.style;
2480 return null == l && p && p[n] && (l = p[n]), bn.test(l) && !mn.test(n) && (o = p.left, r = e.runtimeStyle, s = r && r.left, s && (r.left = e.currentStyle.left), p.left = "fontSize" === n ? "1em" : l, l = p.pixelLeft + "px", p.left = o, s && (r.left = s)), "" === l ? "auto" : l
2481 }), lt.each(["height", "width"], function (e, n) {
2482 lt.cssHooks[n] = {
2483 get: function (e, i, o) {
2484 return i ? 0 === e.offsetWidth && gn.test(lt.css(e, "display")) ? lt.swap(e, Cn, function () {
2485 return E(e, n, o)
2486 }) : E(e, n, o) : t
2487 }, set: function (e, t, i) {
2488 var o = i && un(e);
2489 return S(e, t, i ? k(e, n, i, lt.support.boxSizing && "border-box" === lt.css(e, "boxSizing", !1, o), o) : 0)
2490 }
2491 }
2492 }), lt.support.opacity || (lt.cssHooks.opacity = {
2493 get: function (e, t) {
2494 return fn.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
2495 }, set: function (e, t) {
2496 var n = e.style, i = e.currentStyle, o = lt.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
2497 r = i && i.filter || n.filter || "";
2498 n.zoom = 1, (t >= 1 || "" === t) && "" === lt.trim(r.replace(hn, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || i && !i.filter) || (n.filter = hn.test(r) ? r.replace(hn, o) : r + " " + o)
2499 }
2500 }), lt(function () {
2501 lt.support.reliableMarginRight || (lt.cssHooks.marginRight = {
2502 get: function (e, n) {
2503 return n ? lt.swap(e, {display: "inline-block"}, dn, [e, "marginRight"]) : t
2504 }
2505 }), !lt.support.pixelPosition && lt.fn.position && lt.each(["top", "left"], function (e, n) {
2506 lt.cssHooks[n] = {
2507 get: function (e, i) {
2508 return i ? (i = dn(e, n), bn.test(i) ? lt(e).position()[n] + "px" : i) : t
2509 }
2510 }
2511 })
2512 }), lt.expr && lt.expr.filters && (lt.expr.filters.hidden = function (e) {
2513 return 0 >= e.offsetWidth && 0 >= e.offsetHeight || !lt.support.reliableHiddenOffsets && "none" === (e.style && e.style.display || lt.css(e, "display"))
2514 }, lt.expr.filters.visible = function (e) {
2515 return !lt.expr.filters.hidden(e)
2516 }), lt.each({margin: "", padding: "", border: "Width"}, function (e, t) {
2517 lt.cssHooks[e + t] = {
2518 expand: function (n) {
2519 for (var i = 0, o = {}, r = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++)o[e + Sn[i] + t] = r[i] || r[i - 2] || r[0];
2520 return o
2521 }
2522 }, vn.test(e) || (lt.cssHooks[e + t].set = S)
2523 });
2524 var En = /%20/g, Pn = /\[\]$/, An = /\r?\n/g, Nn = /^(?:submit|button|image|reset|file)$/i,
2525 Fn = /^(?:input|select|textarea|keygen)/i;
2526 lt.fn.extend({
2527 serialize: function () {
2528 return lt.param(this.serializeArray())
2529 }, serializeArray: function () {
2530 return this.map(function () {
2531 var e = lt.prop(this, "elements");
2532 return e ? lt.makeArray(e) : this
2533 }).filter(function () {
2534 var e = this.type;
2535 return this.name && !lt(this).is(":disabled") && Fn.test(this.nodeName) && !Nn.test(e) && (this.checked || !tn.test(e))
2536 }).map(function (e, t) {
2537 var n = lt(this).val();
2538 return null == n ? null : lt.isArray(n) ? lt.map(n, function (e) {
2539 return {name: t.name, value: e.replace(An, "\r\n")}
2540 }) : {name: t.name, value: n.replace(An, "\r\n")}
2541 }).get()
2542 }
2543 }), lt.param = function (e, n) {
2544 var i, o = [], r = function (e, t) {
2545 t = lt.isFunction(t) ? t() : null == t ? "" : t, o[o.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
2546 };
2547 if (n === t && (n = lt.ajaxSettings && lt.ajaxSettings.traditional), lt.isArray(e) || e.jquery && !lt.isPlainObject(e)) lt.each(e, function () {
2548 r(this.name, this.value)
2549 }); else for (i in e)N(i, e[i], n, r);
2550 return o.join("&").replace(En, "+")
2551 }, lt.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 (e, t) {
2552 lt.fn[t] = function (e, n) {
2553 return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
2554 }
2555 }), lt.fn.hover = function (e, t) {
2556 return this.mouseenter(e).mouseleave(t || e)
2557 };
2558 var On, Dn, jn = lt.now(), Mn = /\?/, Ln = /#.*$/, _n = /([?&])_=[^&]*/, zn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
2559 Rn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, In = /^(?:GET|HEAD)$/, Hn = /^\/\//,
2560 qn = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, $n = lt.fn.load, Bn = {}, Wn = {}, Un = "*/".concat("*");
2561 try {
2562 Dn = Z.href
2563 } catch (Vn) {
2564 Dn = Y.createElement("a"), Dn.href = "", Dn = Dn.href
2565 }
2566 On = qn.exec(Dn.toLowerCase()) || [], lt.fn.load = function (e, n, i) {
2567 if ("string" != typeof e && $n)return $n.apply(this, arguments);
2568 var o, r, s, a = this, l = e.indexOf(" ");
2569 return l >= 0 && (o = e.slice(l, e.length), e = e.slice(0, l)), lt.isFunction(n) ? (i = n, n = t) : n && "object" == typeof n && (s = "POST"), a.length > 0 && lt.ajax({
2570 url: e,
2571 type: s,
2572 dataType: "html",
2573 data: n
2574 }).done(function (e) {
2575 r = arguments, a.html(o ? lt("<div>").append(lt.parseHTML(e)).find(o) : e)
2576 }).complete(i && function (e, t) {
2577 a.each(i, r || [e.responseText, t, e])
2578 }), this
2579 }, lt.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
2580 lt.fn[t] = function (e) {
2581 return this.on(t, e)
2582 }
2583 }), lt.each(["get", "post"], function (e, n) {
2584 lt[n] = function (e, i, o, r) {
2585 return lt.isFunction(i) && (r = r || o, o = i, i = t), lt.ajax({
2586 url: e,
2587 type: n,
2588 dataType: r,
2589 data: i,
2590 success: o
2591 })
2592 }
2593 }), lt.extend({
2594 active: 0,
2595 lastModified: {},
2596 etag: {},
2597 ajaxSettings: {
2598 url: Dn,
2599 type: "GET",
2600 isLocal: Rn.test(On[1]),
2601 global: !0,
2602 processData: !0,
2603 async: !0,
2604 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
2605 accepts: {
2606 "*": Un,
2607 text: "text/plain",
2608 html: "text/html",
2609 xml: "application/xml, text/xml",
2610 json: "application/json, text/javascript"
2611 },
2612 contents: {xml: /xml/, html: /html/, json: /json/},
2613 responseFields: {xml: "responseXML", text: "responseText"},
2614 converters: {"* text": e.String, "text html": !0, "text json": lt.parseJSON, "text xml": lt.parseXML},
2615 flatOptions: {url: !0, context: !0}
2616 },
2617 ajaxSetup: function (e, t) {
2618 return t ? D(D(e, lt.ajaxSettings), t) : D(lt.ajaxSettings, e)
2619 },
2620 ajaxPrefilter: F(Bn),
2621 ajaxTransport: F(Wn),
2622 ajax: function (e, n) {
2623 function i(e, n, i, o) {
2624 var r, u, y, b, x, T = n;
2625 2 !== w && (w = 2, l && clearTimeout(l), c = t, a = o || "", C.readyState = e > 0 ? 4 : 0, i && (b = j(d, C, i)), e >= 200 && 300 > e || 304 === e ? (d.ifModified && (x = C.getResponseHeader("Last-Modified"), x && (lt.lastModified[s] = x), x = C.getResponseHeader("etag"), x && (lt.etag[s] = x)), 204 === e ? (r = !0, T = "nocontent") : 304 === e ? (r = !0, T = "notmodified") : (r = M(d, b), T = r.state, u = r.data, y = r.error, r = !y)) : (y = T, (e || !T) && (T = "error", 0 > e && (e = 0))), C.status = e, C.statusText = (n || T) + "", r ? m.resolveWith(h, [u, T, C]) : m.rejectWith(h, [C, T, y]), C.statusCode(v), v = t, p && f.trigger(r ? "ajaxSuccess" : "ajaxError", [C, d, r ? u : y]), g.fireWith(h, [C, T]), p && (f.trigger("ajaxComplete", [C, d]), --lt.active || lt.event.trigger("ajaxStop")))
2626 }
2627
2628 "object" == typeof e && (n = e, e = t), n = n || {};
2629 var o, r, s, a, l, p, c, u, d = lt.ajaxSetup({}, n), h = d.context || d,
2630 f = d.context && (h.nodeType || h.jquery) ? lt(h) : lt.event, m = lt.Deferred(),
2631 g = lt.Callbacks("once memory"), v = d.statusCode || {}, y = {}, b = {}, w = 0, x = "canceled", C = {
2632 readyState: 0, getResponseHeader: function (e) {
2633 var t;
2634 if (2 === w) {
2635 if (!u)for (u = {}; t = zn.exec(a);)u[t[1].toLowerCase()] = t[2];
2636 t = u[e.toLowerCase()]
2637 }
2638 return null == t ? null : t
2639 }, getAllResponseHeaders: function () {
2640 return 2 === w ? a : null
2641 }, setRequestHeader: function (e, t) {
2642 var n = e.toLowerCase();
2643 return w || (e = b[n] = b[n] || e, y[e] = t), this
2644 }, overrideMimeType: function (e) {
2645 return w || (d.mimeType = e), this
2646 }, statusCode: function (e) {
2647 var t;
2648 if (e)if (2 > w)for (t in e)v[t] = [v[t], e[t]]; else C.always(e[C.status]);
2649 return this
2650 }, abort: function (e) {
2651 var t = e || x;
2652 return c && c.abort(t), i(0, t), this
2653 }
2654 };
2655 if (m.promise(C).complete = g.add, C.success = C.done, C.error = C.fail, d.url = ((e || d.url || Dn) + "").replace(Ln, "").replace(Hn, On[1] + "//"), d.type = n.method || n.type || d.method || d.type, d.dataTypes = lt.trim(d.dataType || "*").toLowerCase().match(ct) || [""], null == d.crossDomain && (o = qn.exec(d.url.toLowerCase()), d.crossDomain = !(!o || o[1] === On[1] && o[2] === On[2] && (o[3] || ("http:" === o[1] ? 80 : 443)) == (On[3] || ("http:" === On[1] ? 80 : 443)))), d.data && d.processData && "string" != typeof d.data && (d.data = lt.param(d.data, d.traditional)), O(Bn, d, n, C), 2 === w)return C;
2656 p = d.global, p && 0 === lt.active++ && lt.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !In.test(d.type), s = d.url, d.hasContent || (d.data && (s = d.url += (Mn.test(s) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = _n.test(s) ? s.replace(_n, "$1_=" + jn++) : s + (Mn.test(s) ? "&" : "?") + "_=" + jn++)), d.ifModified && (lt.lastModified[s] && C.setRequestHeader("If-Modified-Since", lt.lastModified[s]), lt.etag[s] && C.setRequestHeader("If-None-Match", lt.etag[s])), (d.data && d.hasContent && d.contentType !== !1 || n.contentType) && C.setRequestHeader("Content-Type", d.contentType), C.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Un + "; q=0.01" : "") : d.accepts["*"]);
2657 for (r in d.headers)C.setRequestHeader(r, d.headers[r]);
2658 if (d.beforeSend && (d.beforeSend.call(h, C, d) === !1 || 2 === w))return C.abort();
2659 x = "abort";
2660 for (r in{success: 1, error: 1, complete: 1})C[r](d[r]);
2661 if (c = O(Wn, d, n, C)) {
2662 C.readyState = 1, p && f.trigger("ajaxSend", [C, d]), d.async && d.timeout > 0 && (l = setTimeout(function () {
2663 C.abort("timeout")
2664 }, d.timeout));
2665 try {
2666 w = 1, c.send(y, i)
2667 } catch (T) {
2668 if (!(2 > w))throw T;
2669 i(-1, T)
2670 }
2671 } else i(-1, "No Transport");
2672 return C
2673 },
2674 getScript: function (e, n) {
2675 return lt.get(e, t, n, "script")
2676 },
2677 getJSON: function (e, t, n) {
2678 return lt.get(e, t, n, "json")
2679 }
2680 }), lt.ajaxSetup({
2681 accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
2682 contents: {script: /(?:java|ecma)script/},
2683 converters: {
2684 "text script": function (e) {
2685 return lt.globalEval(e), e
2686 }
2687 }
2688 }), lt.ajaxPrefilter("script", function (e) {
2689 e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
2690 }), lt.ajaxTransport("script", function (e) {
2691 if (e.crossDomain) {
2692 var n, i = Y.head || lt("head")[0] || Y.documentElement;
2693 return {
2694 send: function (t, o) {
2695 n = Y.createElement("script"), n.async = !0, e.scriptCharset && (n.charset = e.scriptCharset), n.src = e.url, n.onload = n.onreadystatechange = function (e, t) {
2696 (t || !n.readyState || /loaded|complete/.test(n.readyState)) && (n.onload = n.onreadystatechange = null, n.parentNode && n.parentNode.removeChild(n), n = null, t || o(200, "success"))
2697 }, i.insertBefore(n, i.firstChild)
2698 }, abort: function () {
2699 n && n.onload(t, !0)
2700 }
2701 }
2702 }
2703 });
2704 var Xn = [], Yn = /(=)\?(?=&|$)|\?\?/;
2705 lt.ajaxSetup({
2706 jsonp: "callback", jsonpCallback: function () {
2707 var e = Xn.pop() || lt.expando + "_" + jn++;
2708 return this[e] = !0, e
2709 }
2710 }), lt.ajaxPrefilter("json jsonp", function (n, i, o) {
2711 var r, s, a,
2712 l = n.jsonp !== !1 && (Yn.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Yn.test(n.data) && "data");
2713 return l || "jsonp" === n.dataTypes[0] ? (r = n.jsonpCallback = lt.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, l ? n[l] = n[l].replace(Yn, "$1" + r) : n.jsonp !== !1 && (n.url += (Mn.test(n.url) ? "&" : "?") + n.jsonp + "=" + r), n.converters["script json"] = function () {
2714 return a || lt.error(r + " was not called"), a[0]
2715 }, n.dataTypes[0] = "json", s = e[r], e[r] = function () {
2716 a = arguments
2717 }, o.always(function () {
2718 e[r] = s, n[r] && (n.jsonpCallback = i.jsonpCallback, Xn.push(r)), a && lt.isFunction(s) && s(a[0]), a = s = t
2719 }), "script") : t
2720 });
2721 var Zn, Jn, Kn = 0, Gn = e.ActiveXObject && function () {
2722 var e;
2723 for (e in Zn)Zn[e](t, !0)
2724 };
2725 lt.ajaxSettings.xhr = e.ActiveXObject ? function () {
2726 return !this.isLocal && L() || _()
2727 } : L, Jn = lt.ajaxSettings.xhr(), lt.support.cors = !!Jn && "withCredentials" in Jn, Jn = lt.support.ajax = !!Jn, Jn && lt.ajaxTransport(function (n) {
2728 if (!n.crossDomain || lt.support.cors) {
2729 var i;
2730 return {
2731 send: function (o, r) {
2732 var s, a, l = n.xhr();
2733 if (n.username ? l.open(n.type, n.url, n.async, n.username, n.password) : l.open(n.type, n.url, n.async), n.xhrFields)for (a in n.xhrFields)l[a] = n.xhrFields[a];
2734 n.mimeType && l.overrideMimeType && l.overrideMimeType(n.mimeType), n.crossDomain || o["X-Requested-With"] || (o["X-Requested-With"] = "XMLHttpRequest");
2735 try {
2736 for (a in o)l.setRequestHeader(a, o[a])
2737 } catch (p) {
2738 }
2739 l.send(n.hasContent && n.data || null), i = function (e, o) {
2740 var a, p, c, u;
2741 try {
2742 if (i && (o || 4 === l.readyState))if (i = t, s && (l.onreadystatechange = lt.noop, Gn && delete Zn[s]), o) 4 !== l.readyState && l.abort(); else {
2743 u = {}, a = l.status, p = l.getAllResponseHeaders(), "string" == typeof l.responseText && (u.text = l.responseText);
2744 try {
2745 c = l.statusText
2746 } catch (d) {
2747 c = ""
2748 }
2749 a || !n.isLocal || n.crossDomain ? 1223 === a && (a = 204) : a = u.text ? 200 : 404
2750 }
2751 } catch (h) {
2752 o || r(-1, h)
2753 }
2754 u && r(a, c, u, p)
2755 }, n.async ? 4 === l.readyState ? setTimeout(i) : (s = ++Kn, Gn && (Zn || (Zn = {}, lt(e).unload(Gn)), Zn[s] = i), l.onreadystatechange = i) : i()
2756 }, abort: function () {
2757 i && i(t, !0)
2758 }
2759 }
2760 }
2761 });
2762 var Qn, ei, ti = /^(?:toggle|show|hide)$/, ni = RegExp("^(?:([+-])=|)(" + pt + ")([a-z%]*)$", "i"),
2763 ii = /queueHooks$/, oi = [q], ri = {
2764 "*": [function (e, t) {
2765 var n, i, o = this.createTween(e, t), r = ni.exec(t), s = o.cur(), a = +s || 0, l = 1, p = 20;
2766 if (r) {
2767 if (n = +r[2], i = r[3] || (lt.cssNumber[e] ? "" : "px"), "px" !== i && a) {
2768 a = lt.css(o.elem, e, !0) || n || 1;
2769 do l = l || ".5", a /= l, lt.style(o.elem, e, a + i); while (l !== (l = o.cur() / s) && 1 !== l && --p)
2770 }
2771 o.unit = i, o.start = a, o.end = r[1] ? a + (r[1] + 1) * n : n
2772 }
2773 return o
2774 }]
2775 };
2776 lt.Animation = lt.extend(I, {
2777 tweener: function (e, t) {
2778 lt.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
2779 for (var n, i = 0, o = e.length; o > i; i++)n = e[i], ri[n] = ri[n] || [], ri[n].unshift(t)
2780 }, prefilter: function (e, t) {
2781 t ? oi.unshift(e) : oi.push(e)
2782 }
2783 }), lt.Tween = $, $.prototype = {
2784 constructor: $, init: function (e, t, n, i, o, r) {
2785 this.elem = e, this.prop = n, this.easing = o || "swing", this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = r || (lt.cssNumber[n] ? "" : "px")
2786 }, cur: function () {
2787 var e = $.propHooks[this.prop];
2788 return e && e.get ? e.get(this) : $.propHooks._default.get(this)
2789 }, run: function (e) {
2790 var t, n = $.propHooks[this.prop];
2791 return this.pos = t = this.options.duration ? lt.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : $.propHooks._default.set(this), this
2792 }
2793 }, $.prototype.init.prototype = $.prototype, $.propHooks = {
2794 _default: {
2795 get: function (e) {
2796 var t;
2797 return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = lt.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop]
2798 }, set: function (e) {
2799 lt.fx.step[e.prop] ? lt.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[lt.cssProps[e.prop]] || lt.cssHooks[e.prop]) ? lt.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
2800 }
2801 }
2802 }, $.propHooks.scrollTop = $.propHooks.scrollLeft = {
2803 set: function (e) {
2804 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
2805 }
2806 }, lt.each(["toggle", "show", "hide"], function (e, t) {
2807 var n = lt.fn[t];
2808 lt.fn[t] = function (e, i, o) {
2809 return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(B(t, !0), e, i, o)
2810 }
2811 }), lt.fn.extend({
2812 fadeTo: function (e, t, n, i) {
2813 return this.filter(C).css("opacity", 0).show().end().animate({opacity: t}, e, n, i)
2814 }, animate: function (e, t, n, i) {
2815 var o = lt.isEmptyObject(e), r = lt.speed(t, n, i), s = function () {
2816 var t = I(this, lt.extend({}, e), r);
2817 s.finish = function () {
2818 t.stop(!0)
2819 }, (o || lt._data(this, "finish")) && t.stop(!0)
2820 };
2821 return s.finish = s, o || r.queue === !1 ? this.each(s) : this.queue(r.queue, s)
2822 }, stop: function (e, n, i) {
2823 var o = function (e) {
2824 var t = e.stop;
2825 delete e.stop, t(i)
2826 };
2827 return "string" != typeof e && (i = n, n = e, e = t), n && e !== !1 && this.queue(e || "fx", []), this.each(function () {
2828 var t = !0, n = null != e && e + "queueHooks", r = lt.timers, s = lt._data(this);
2829 if (n) s[n] && s[n].stop && o(s[n]); else for (n in s)s[n] && s[n].stop && ii.test(n) && o(s[n]);
2830 for (n = r.length; n--;)r[n].elem !== this || null != e && r[n].queue !== e || (r[n].anim.stop(i), t = !1, r.splice(n, 1));
2831 (t || !i) && lt.dequeue(this, e)
2832 })
2833 }, finish: function (e) {
2834 return e !== !1 && (e = e || "fx"), this.each(function () {
2835 var t, n = lt._data(this), i = n[e + "queue"], o = n[e + "queueHooks"], r = lt.timers,
2836 s = i ? i.length : 0;
2837 for (n.finish = !0, lt.queue(this, e, []), o && o.cur && o.cur.finish && o.cur.finish.call(this), t = r.length; t--;)r[t].elem === this && r[t].queue === e && (r[t].anim.stop(!0), r.splice(t, 1));
2838 for (t = 0; s > t; t++)i[t] && i[t].finish && i[t].finish.call(this);
2839 delete n.finish
2840 })
2841 }
2842 }), lt.each({
2843 slideDown: B("show"),
2844 slideUp: B("hide"),
2845 slideToggle: B("toggle"),
2846 fadeIn: {opacity: "show"},
2847 fadeOut: {opacity: "hide"},
2848 fadeToggle: {opacity: "toggle"}
2849 }, function (e, t) {
2850 lt.fn[e] = function (e, n, i) {
2851 return this.animate(t, e, n, i)
2852 }
2853 }), lt.speed = function (e, t, n) {
2854 var i = e && "object" == typeof e ? lt.extend({}, e) : {
2855 complete: n || !n && t || lt.isFunction(e) && e,
2856 duration: e,
2857 easing: n && t || t && !lt.isFunction(t) && t
2858 };
2859 return i.duration = lt.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in lt.fx.speeds ? lt.fx.speeds[i.duration] : lt.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function () {
2860 lt.isFunction(i.old) && i.old.call(this), i.queue && lt.dequeue(this, i.queue)
2861 }, i
2862 }, lt.easing = {
2863 linear: function (e) {
2864 return e
2865 }, swing: function (e) {
2866 return .5 - Math.cos(e * Math.PI) / 2
2867 }
2868 }, lt.timers = [], lt.fx = $.prototype.init, lt.fx.tick = function () {
2869 var e, n = lt.timers, i = 0;
2870 for (Qn = lt.now(); n.length > i; i++)e = n[i], e() || n[i] !== e || n.splice(i--, 1);
2871 n.length || lt.fx.stop(), Qn = t
2872 }, lt.fx.timer = function (e) {
2873 e() && lt.timers.push(e) && lt.fx.start()
2874 }, lt.fx.interval = 13, lt.fx.start = function () {
2875 ei || (ei = setInterval(lt.fx.tick, lt.fx.interval))
2876 }, lt.fx.stop = function () {
2877 clearInterval(ei), ei = null
2878 }, lt.fx.speeds = {
2879 slow: 600,
2880 fast: 200,
2881 _default: 400
2882 }, lt.fx.step = {}, lt.expr && lt.expr.filters && (lt.expr.filters.animated = function (e) {
2883 return lt.grep(lt.timers, function (t) {
2884 return e === t.elem
2885 }).length
2886 }), lt.fn.offset = function (e) {
2887 if (arguments.length)return e === t ? this : this.each(function (t) {
2888 lt.offset.setOffset(this, e, t)
2889 });
2890 var n, i, o = {top: 0, left: 0}, r = this[0], s = r && r.ownerDocument;
2891 return s ? (n = s.documentElement, lt.contains(n, r) ? (typeof r.getBoundingClientRect !== X && (o = r.getBoundingClientRect()), i = W(s), {
2892 top: o.top + (i.pageYOffset || n.scrollTop) - (n.clientTop || 0),
2893 left: o.left + (i.pageXOffset || n.scrollLeft) - (n.clientLeft || 0)
2894 }) : o) : void 0
2895 }, lt.offset = {
2896 setOffset: function (e, t, n) {
2897 var i = lt.css(e, "position");
2898 "static" === i && (e.style.position = "relative");
2899 var o, r, s = lt(e), a = s.offset(), l = lt.css(e, "top"), p = lt.css(e, "left"),
2900 c = ("absolute" === i || "fixed" === i) && lt.inArray("auto", [l, p]) > -1, u = {}, d = {};
2901 c ? (d = s.position(), o = d.top, r = d.left) : (o = parseFloat(l) || 0, r = parseFloat(p) || 0), lt.isFunction(t) && (t = t.call(e, n, a)), null != t.top && (u.top = t.top - a.top + o), null != t.left && (u.left = t.left - a.left + r), "using" in t ? t.using.call(e, u) : s.css(u)
2902 }
2903 }, lt.fn.extend({
2904 position: function () {
2905 if (this[0]) {
2906 var e, t, n = {top: 0, left: 0}, i = this[0];
2907 return "fixed" === lt.css(i, "position") ? t = i.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), lt.nodeName(e[0], "html") || (n = e.offset()), n.top += lt.css(e[0], "borderTopWidth", !0), n.left += lt.css(e[0], "borderLeftWidth", !0)), {
2908 top: t.top - n.top - lt.css(i, "marginTop", !0),
2909 left: t.left - n.left - lt.css(i, "marginLeft", !0)
2910 }
2911 }
2912 }, offsetParent: function () {
2913 return this.map(function () {
2914 for (var e = this.offsetParent || Y.documentElement; e && !lt.nodeName(e, "html") && "static" === lt.css(e, "position");)e = e.offsetParent;
2915 return e || Y.documentElement
2916 })
2917 }
2918 }), lt.each({scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function (e, n) {
2919 var i = /Y/.test(n);
2920 lt.fn[e] = function (o) {
2921 return lt.access(this, function (e, o, r) {
2922 var s = W(e);
2923 return r === t ? s ? n in s ? s[n] : s.document.documentElement[o] : e[o] : (s ? s.scrollTo(i ? lt(s).scrollLeft() : r, i ? r : lt(s).scrollTop()) : e[o] = r, t)
2924 }, e, o, arguments.length, null)
2925 }
2926 }), lt.each({Height: "height", Width: "width"}, function (e, n) {
2927 lt.each({padding: "inner" + e, content: n, "": "outer" + e}, function (i, o) {
2928 lt.fn[o] = function (o, r) {
2929 var s = arguments.length && (i || "boolean" != typeof o),
2930 a = i || (o === !0 || r === !0 ? "margin" : "border");
2931 return lt.access(this, function (n, i, o) {
2932 var r;
2933 return lt.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (r = n.documentElement, Math.max(n.body["scroll" + e], r["scroll" + e], n.body["offset" + e], r["offset" + e], r["client" + e])) : o === t ? lt.css(n, i, a) : lt.style(n, i, o, a)
2934 }, n, s ? o : t, s, null)
2935 }
2936 })
2937 }), e.jQuery = e.$ = lt, "function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function () {
2938 return lt
2939 })
2940}(window), function (e) {
2941 "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? e(require("jquery")) : e(window.jQuery || window.Zepto)
2942}(function (e) {
2943 var t, n, i, o, r, s, a = "Close", l = "BeforeClose", p = "AfterClose", c = "BeforeAppend", u = "MarkupParse",
2944 d = "Open", h = "Change", f = "mfp", m = "." + f, g = "mfp-ready", v = "mfp-removing", y = "mfp-prevent-close",
2945 b = function () {
2946 }, w = !!window.jQuery, x = e(window), C = function (e, n) {
2947 t.ev.on(f + e + m, n)
2948 }, T = function (t, n, i, o) {
2949 var r = document.createElement("div");
2950 return r.className = "mfp-" + t, i && (r.innerHTML = i), o ? n && n.appendChild(r) : (r = e(r), n && r.appendTo(n)), r
2951 }, S = function (n, i) {
2952 t.ev.triggerHandler(f + n, i), t.st.callbacks && (n = n.charAt(0).toLowerCase() + n.slice(1), t.st.callbacks[n] && t.st.callbacks[n].apply(t, e.isArray(i) ? i : [i]))
2953 }, k = function (n) {
2954 return n === s && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace("%title%", t.st.tClose)), s = n), t.currTemplate.closeBtn
2955 }, E = function () {
2956 e.magnificPopup.instance || (t = new b, t.init(), e.magnificPopup.instance = t)
2957 }, P = function () {
2958 var e = document.createElement("p").style, t = ["ms", "O", "Moz", "Webkit"];
2959 if (void 0 !== e.transition)return !0;
2960 for (; t.length;)if (t.pop() + "Transition" in e)return !0;
2961 return !1
2962 };
2963 b.prototype = {
2964 constructor: b, init: function () {
2965 var n = navigator.appVersion;
2966 t.isIE7 = -1 !== n.indexOf("MSIE 7."), t.isIE8 = -1 !== n.indexOf("MSIE 8."), t.isLowIE = t.isIE7 || t.isIE8, t.isAndroid = /android/gi.test(n), t.isIOS = /iphone|ipad|ipod/gi.test(n), t.supportsTransition = P(), t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), i = e(document), t.popupsCache = {}
2967 }, open: function (n) {
2968 var o;
2969 if (n.isObj === !1) {
2970 t.items = n.items.toArray(), t.index = 0;
2971 var s, a = n.items;
2972 for (o = 0; o < a.length; o++)if (s = a[o], s.parsed && (s = s.el[0]), s === n.el[0]) {
2973 t.index = o;
2974 break
2975 }
2976 } else t.items = e.isArray(n.items) ? n.items : [n.items], t.index = n.index || 0;
2977 if (t.isOpen)return t.updateItemHTML(), void 0;
2978 t.types = [], r = "", t.ev = n.mainEl && n.mainEl.length ? n.mainEl.eq(0) : i, n.key ? (t.popupsCache[n.key] || (t.popupsCache[n.key] = {}), t.currTemplate = t.popupsCache[n.key]) : t.currTemplate = {}, t.st = e.extend(!0, {}, e.magnificPopup.defaults, n), t.fixedContentPos = "auto" === t.st.fixedContentPos ? !t.probablyMobile : t.st.fixedContentPos, t.st.modal && (t.st.closeOnContentClick = !1, t.st.closeOnBgClick = !1, t.st.showCloseBtn = !1, t.st.enableEscapeKey = !1), t.bgOverlay || (t.bgOverlay = T("bg").on("click" + m, function () {
2979 t.close()
2980 }), t.wrap = T("wrap").on("click" + m, function (e) {
2981 t._checkIfClose(e.target) && t.close()
2982 }), t.container = T("container", t.wrap)), t.contentContainer = T("content"), t.st.preloader && (t.preloader = T("preloader", t.container, t.st.tLoading));
2983 var l = e.magnificPopup.modules;
2984 for (o = 0; o < l.length; o++) {
2985 var p = l[o];
2986 p = p.charAt(0).toUpperCase() + p.slice(1), t["init" + p].call(t)
2987 }
2988 S("BeforeOpen"), t.st.showCloseBtn && (t.st.closeBtnInside ? (C(u, function (e, t, n, i) {
2989 n.close_replaceWith = k(i.type)
2990 }), r += " mfp-close-btn-in") : t.wrap.append(k())), t.st.alignTop && (r += " mfp-align-top"), t.fixedContentPos ? t.wrap.css({
2991 overflow: t.st.overflowY,
2992 overflowX: "hidden",
2993 overflowY: t.st.overflowY
2994 }) : t.wrap.css({
2995 top: x.scrollTop(),
2996 position: "absolute"
2997 }), (t.st.fixedBgPos === !1 || "auto" === t.st.fixedBgPos && !t.fixedContentPos) && t.bgOverlay.css({
2998 height: i.height(),
2999 position: "absolute"
3000 }), t.st.enableEscapeKey && i.on("keyup" + m, function (e) {
3001 27 === e.keyCode && t.close()
3002 }), x.on("resize" + m, function () {
3003 t.updateSize()
3004 }), t.st.closeOnContentClick || (r += " mfp-auto-cursor"), r && t.wrap.addClass(r);
3005 var c = t.wH = x.height(), h = {};
3006 if (t.fixedContentPos && t._hasScrollBar(c)) {
3007 var f = t._getScrollbarSize();
3008 f && (h.marginRight = f)
3009 }
3010 t.fixedContentPos && (t.isIE7 ? e("body, html").css("overflow", "hidden") : h.overflow = "hidden");
3011 var v = t.st.mainClass;
3012 return t.isIE7 && (v += " mfp-ie7"), v && t._addClassToMFP(v), t.updateItemHTML(), S("BuildControls"), e("html").css(h), t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo || e(document.body)), t._lastFocusedEl = document.activeElement, setTimeout(function () {
3013 t.content ? (t._addClassToMFP(g), t._setFocus()) : t.bgOverlay.addClass(g), i.on("focusin" + m, t._onFocusIn)
3014 }, 16), t.isOpen = !0, t.updateSize(c), S(d), n
3015 }, close: function () {
3016 t.isOpen && (S(l), t.isOpen = !1, t.st.removalDelay && !t.isLowIE && t.supportsTransition ? (t._addClassToMFP(v), setTimeout(function () {
3017 t._close()
3018 }, t.st.removalDelay)) : t._close())
3019 }, _close: function () {
3020 S(a);
3021 var n = v + " " + g + " ";
3022 if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (n += t.st.mainClass + " "), t._removeClassFromMFP(n), t.fixedContentPos) {
3023 var o = {marginRight: ""};
3024 t.isIE7 ? e("body, html").css("overflow", "") : o.overflow = "", e("html").css(o)
3025 }
3026 i.off("keyup" + m + " focusin" + m), t.ev.off(m), t.wrap.attr("class", "mfp-wrap").removeAttr("style"), t.bgOverlay.attr("class", "mfp-bg"), t.container.attr("class", "mfp-container"), !t.st.showCloseBtn || t.st.closeBtnInside && t.currTemplate[t.currItem.type] !== !0 || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(), t._lastFocusedEl && e(t._lastFocusedEl).focus(), t.currItem = null, t.content = null, t.currTemplate = null, t.prevHeight = 0, S(p)
3027 }, updateSize: function (e) {
3028 if (t.isIOS) {
3029 var n = document.documentElement.clientWidth / window.innerWidth, i = window.innerHeight * n;
3030 t.wrap.css("height", i), t.wH = i
3031 } else t.wH = e || x.height();
3032 t.fixedContentPos || t.wrap.css("height", t.wH), S("Resize")
3033 }, updateItemHTML: function () {
3034 var n = t.items[t.index];
3035 t.contentContainer.detach(), t.content && t.content.detach(), n.parsed || (n = t.parseEl(t.index));
3036 var i = n.type;
3037 if (S("BeforeChange", [t.currItem ? t.currItem.type : "", i]), t.currItem = n, !t.currTemplate[i]) {
3038 var r = t.st[i] ? t.st[i].markup : !1;
3039 S("FirstMarkupParse", r), t.currTemplate[i] = r ? e(r) : !0
3040 }
3041 o && o !== n.type && t.container.removeClass("mfp-" + o + "-holder");
3042 var s = t["get" + i.charAt(0).toUpperCase() + i.slice(1)](n, t.currTemplate[i]);
3043 t.appendContent(s, i), n.preloaded = !0, S(h, n), o = n.type, t.container.prepend(t.contentContainer), S("AfterChange")
3044 }, appendContent: function (e, n) {
3045 t.content = e, e ? t.st.showCloseBtn && t.st.closeBtnInside && t.currTemplate[n] === !0 ? t.content.find(".mfp-close").length || t.content.append(k()) : t.content = e : t.content = "", S(c), t.container.addClass("mfp-" + n + "-holder"), t.contentContainer.append(t.content)
3046 }, parseEl: function (n) {
3047 var i, o = t.items[n];
3048 if (o.tagName ? o = {el: e(o)} : (i = o.type, o = {data: o, src: o.src}), o.el) {
3049 for (var r = t.types, s = 0; s < r.length; s++)if (o.el.hasClass("mfp-" + r[s])) {
3050 i = r[s];
3051 break
3052 }
3053 o.src = o.el.attr("data-mfp-src"), o.src || (o.src = o.el.attr("href"))
3054 }
3055 return o.type = i || t.st.type || "inline", o.index = n, o.parsed = !0, t.items[n] = o, S("ElementParse", o), t.items[n]
3056 }, addGroup: function (e, n) {
3057 var i = function (i) {
3058 i.mfpEl = this, t._openClick(i, e, n)
3059 };
3060 n || (n = {});
3061 var o = "click.magnificPopup";
3062 n.mainEl = e, n.items ? (n.isObj = !0, e.off(o).on(o, i)) : (n.isObj = !1, n.delegate ? e.off(o).on(o, n.delegate, i) : (n.items = e, e.off(o).on(o, i)))
3063 }, _openClick: function (n, i, o) {
3064 var r = void 0 !== o.midClick ? o.midClick : e.magnificPopup.defaults.midClick;
3065 if (r || 2 !== n.which && !n.ctrlKey && !n.metaKey) {
3066 var s = void 0 !== o.disableOn ? o.disableOn : e.magnificPopup.defaults.disableOn;
3067 if (s)if (e.isFunction(s)) {
3068 if (!s.call(t))return !0
3069 } else if (x.width() < s)return !0;
3070 n.type && (n.preventDefault(), t.isOpen && n.stopPropagation()), o.el = e(n.mfpEl), o.delegate && (o.items = i.find(o.delegate)), t.open(o)
3071 }
3072 }, updateStatus: function (e, i) {
3073 if (t.preloader) {
3074 n !== e && t.container.removeClass("mfp-s-" + n), i || "loading" !== e || (i = t.st.tLoading);
3075 var o = {status: e, text: i};
3076 S("UpdateStatus", o), e = o.status, i = o.text, t.preloader.html(i), t.preloader.find("a").on("click", function (e) {
3077 e.stopImmediatePropagation()
3078 }), t.container.addClass("mfp-s-" + e), n = e
3079 }
3080 }, _checkIfClose: function (n) {
3081 if (!e(n).hasClass(y)) {
3082 var i = t.st.closeOnContentClick, o = t.st.closeOnBgClick;
3083 if (i && o)return !0;
3084 if (!t.content || e(n).hasClass("mfp-close") || t.preloader && n === t.preloader[0])return !0;
3085 if (n === t.content[0] || e.contains(t.content[0], n)) {
3086 if (i)return !0
3087 } else if (o && e.contains(document, n))return !0;
3088 return !1
3089 }
3090 }, _addClassToMFP: function (e) {
3091 t.bgOverlay.addClass(e), t.wrap.addClass(e)
3092 }, _removeClassFromMFP: function (e) {
3093 this.bgOverlay.removeClass(e), t.wrap.removeClass(e)
3094 }, _hasScrollBar: function (e) {
3095 return (t.isIE7 ? i.height() : document.body.scrollHeight) > (e || x.height())
3096 }, _setFocus: function () {
3097 (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus()
3098 }, _onFocusIn: function (n) {
3099 return n.target === t.wrap[0] || e.contains(t.wrap[0], n.target) ? void 0 : (t._setFocus(), !1)
3100 }, _parseMarkup: function (t, n, i) {
3101 var o;
3102 i.data && (n = e.extend(i.data, n)), S(u, [t, n, i]), e.each(n, function (e, n) {
3103 if (void 0 === n || n === !1)return !0;
3104 if (o = e.split("_"), o.length > 1) {
3105 var i = t.find(m + "-" + o[0]);
3106 if (i.length > 0) {
3107 var r = o[1];
3108 "replaceWith" === r ? i[0] !== n[0] && i.replaceWith(n) : "img" === r ? i.is("img") ? i.attr("src", n) : i.replaceWith('<img src="' + n + '" class="' + i.attr("class") + '" />') : i.attr(o[1], n)
3109 }
3110 } else t.find(m + "-" + e).html(n)
3111 })
3112 }, _getScrollbarSize: function () {
3113 if (void 0 === t.scrollbarSize) {
3114 var e = document.createElement("div");
3115 e.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(e), t.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e)
3116 }
3117 return t.scrollbarSize
3118 }
3119 }, e.magnificPopup = {
3120 instance: null,
3121 proto: b.prototype,
3122 modules: [],
3123 open: function (t, n) {
3124 return E(), t = t ? e.extend(!0, {}, t) : {}, t.isObj = !0, t.index = n || 0, this.instance.open(t)
3125 },
3126 close: function () {
3127 return e.magnificPopup.instance && e.magnificPopup.instance.close()
3128 },
3129 registerModule: function (t, n) {
3130 n.options && (e.magnificPopup.defaults[t] = n.options), e.extend(this.proto, n.proto), this.modules.push(t)
3131 },
3132 defaults: {
3133 disableOn: 0,
3134 key: null,
3135 midClick: !1,
3136 mainClass: "",
3137 preloader: !0,
3138 focus: "",
3139 closeOnContentClick: !1,
3140 closeOnBgClick: !0,
3141 closeBtnInside: !0,
3142 showCloseBtn: !0,
3143 enableEscapeKey: !0,
3144 modal: !1,
3145 alignTop: !1,
3146 removalDelay: 0,
3147 prependTo: null,
3148 fixedContentPos: "auto",
3149 fixedBgPos: "auto",
3150 overflowY: "auto",
3151 closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>',
3152 tClose: "Close (Esc)",
3153 tLoading: "Loading..."
3154 }
3155 }, e.fn.magnificPopup = function (n) {
3156 E();
3157 var i = e(this);
3158 if ("string" == typeof n)if ("open" === n) {
3159 var o, r = w ? i.data("magnificPopup") : i[0].magnificPopup, s = parseInt(arguments[1], 10) || 0;
3160 r.items ? o = r.items[s] : (o = i, r.delegate && (o = o.find(r.delegate)), o = o.eq(s)), t._openClick({mfpEl: o}, i, r)
3161 } else t.isOpen && t[n].apply(t, Array.prototype.slice.call(arguments, 1)); else n = e.extend(!0, {}, n), w ? i.data("magnificPopup", n) : i[0].magnificPopup = n, t.addGroup(i, n);
3162 return i
3163 };
3164 var A, N, F, O = "inline", D = function () {
3165 F && (N.after(F.addClass(A)).detach(), F = null)
3166 };
3167 e.magnificPopup.registerModule(O, {
3168 options: {hiddenClass: "hide", markup: "", tNotFound: "Content not found"},
3169 proto: {
3170 initInline: function () {
3171 t.types.push(O), C(a + "." + O, function () {
3172 D()
3173 })
3174 }, getInline: function (n, i) {
3175 if (D(), n.src) {
3176 var o = t.st.inline, r = e(n.src);
3177 if (r.length) {
3178 var s = r[0].parentNode;
3179 s && s.tagName && (N || (A = o.hiddenClass, N = T(A), A = "mfp-" + A), F = r.after(N).detach().removeClass(A)), t.updateStatus("ready")
3180 } else t.updateStatus("error", o.tNotFound), r = e("<div>");
3181 return n.inlineElement = r, r
3182 }
3183 return t.updateStatus("ready"), t._parseMarkup(i, {}, n), i
3184 }
3185 }
3186 });
3187 var j, M = "ajax", L = function () {
3188 j && e(document.body).removeClass(j)
3189 }, _ = function () {
3190 L(), t.req && t.req.abort()
3191 };
3192 e.magnificPopup.registerModule(M, {
3193 options: {
3194 settings: null,
3195 cursor: "mfp-ajax-cur",
3196 tError: '<a href="%url%">The content</a> could not be loaded.'
3197 }, proto: {
3198 initAjax: function () {
3199 t.types.push(M), j = t.st.ajax.cursor, C(a + "." + M, _), C("BeforeChange." + M, _)
3200 }, getAjax: function (n) {
3201 j && e(document.body).addClass(j), t.updateStatus("loading");
3202 var i = e.extend({
3203 url: n.src, success: function (i, o, r) {
3204 var s = {data: i, xhr: r};
3205 S("ParseAjax", s), t.appendContent(e(s.data), M), n.finished = !0, L(), t._setFocus(), setTimeout(function () {
3206 t.wrap.addClass(g)
3207 }, 16), t.updateStatus("ready"), S("AjaxContentAdded")
3208 }, error: function () {
3209 L(), n.finished = n.loadError = !0, t.updateStatus("error", t.st.ajax.tError.replace("%url%", n.src))
3210 }
3211 }, t.st.ajax.settings);
3212 return t.req = e.ajax(i), ""
3213 }
3214 }
3215 });
3216 var z, R = function (n) {
3217 if (n.data && void 0 !== n.data.title)return n.data.title;
3218 var i = t.st.image.titleSrc;
3219 if (i) {
3220 if (e.isFunction(i))return i.call(t, n);
3221 if (n.el)return n.el.attr(i) || ""
3222 }
3223 return ""
3224 };
3225 e.magnificPopup.registerModule("image", {
3226 options: {
3227 markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
3228 cursor: "mfp-zoom-out-cur",
3229 titleSrc: "title",
3230 verticalFit: !0,
3231 tError: '<a href="%url%">The image</a> could not be loaded.'
3232 }, proto: {
3233 initImage: function () {
3234 var n = t.st.image, i = ".image";
3235 t.types.push("image"), C(d + i, function () {
3236 "image" === t.currItem.type && n.cursor && e(document.body).addClass(n.cursor)
3237 }), C(a + i, function () {
3238 n.cursor && e(document.body).removeClass(n.cursor), x.off("resize" + m)
3239 }), C("Resize" + i, t.resizeImage), t.isLowIE && C("AfterChange", t.resizeImage)
3240 }, resizeImage: function () {
3241 var e = t.currItem;
3242 if (e && e.img && t.st.image.verticalFit) {
3243 var n = 0;
3244 t.isLowIE && (n = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", t.wH - n)
3245 }
3246 }, _onImageHasSize: function (e) {
3247 e.img && (e.hasSize = !0, z && clearInterval(z), e.isCheckingImgSize = !1, S("ImageHasSize", e), e.imgHidden && (t.content && t.content.removeClass("mfp-loading"), e.imgHidden = !1))
3248 }, findImageSize: function (e) {
3249 var n = 0, i = e.img[0], o = function (r) {
3250 z && clearInterval(z), z = setInterval(function () {
3251 return i.naturalWidth > 0 ? (t._onImageHasSize(e), void 0) : (n > 200 && clearInterval(z), n++, 3 === n ? o(10) : 40 === n ? o(50) : 100 === n && o(500), void 0)
3252 }, r)
3253 };
3254 o(1)
3255 }, getImage: function (n, i) {
3256 var o = 0, r = function () {
3257 n && (n.img[0].complete ? (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("ready")), n.hasSize = !0, n.loaded = !0, S("ImageLoadComplete")) : (o++, 200 > o ? setTimeout(r, 100) : s()))
3258 }, s = function () {
3259 n && (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("error", a.tError.replace("%url%", n.src))), n.hasSize = !0, n.loaded = !0, n.loadError = !0)
3260 }, a = t.st.image, l = i.find(".mfp-img");
3261 if (l.length) {
3262 var p = document.createElement("img");
3263 p.className = "mfp-img", n.el && n.el.find("img").length && (p.alt = n.el.find("img").attr("alt")), n.img = e(p).on("load.mfploader", r).on("error.mfploader", s), p.src = n.src, l.is("img") && (n.img = n.img.clone()), p = n.img[0], p.naturalWidth > 0 ? n.hasSize = !0 : p.width || (n.hasSize = !1)
3264 }
3265 return t._parseMarkup(i, {
3266 title: R(n),
3267 img_replaceWith: n.img
3268 }, n), t.resizeImage(), n.hasSize ? (z && clearInterval(z), n.loadError ? (i.addClass("mfp-loading"), t.updateStatus("error", a.tError.replace("%url%", n.src))) : (i.removeClass("mfp-loading"), t.updateStatus("ready")), i) : (t.updateStatus("loading"), n.loading = !0, n.hasSize || (n.imgHidden = !0, i.addClass("mfp-loading"), t.findImageSize(n)), i)
3269 }
3270 }
3271 });
3272 var I, H = function () {
3273 return void 0 === I && (I = void 0 !== document.createElement("p").style.MozTransform), I
3274 };
3275 e.magnificPopup.registerModule("zoom", {
3276 options: {
3277 enabled: !1,
3278 easing: "ease-in-out",
3279 duration: 300,
3280 opener: function (e) {
3281 return e.is("img") ? e : e.find("img")
3282 }
3283 }, proto: {
3284 initZoom: function () {
3285 var e, n = t.st.zoom, i = ".zoom";
3286 if (n.enabled && t.supportsTransition) {
3287 var o, r, s = n.duration, p = function (e) {
3288 var t = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
3289 i = "all " + n.duration / 1e3 + "s " + n.easing, o = {
3290 position: "fixed",
3291 zIndex: 9999,
3292 left: 0,
3293 top: 0,
3294 "-webkit-backface-visibility": "hidden"
3295 }, r = "transition";
3296 return o["-webkit-" + r] = o["-moz-" + r] = o["-o-" + r] = o[r] = i, t.css(o), t
3297 }, c = function () {
3298 t.content.css("visibility", "visible")
3299 };
3300 C("BuildControls" + i, function () {
3301 if (t._allowZoom()) {
3302 if (clearTimeout(o), t.content.css("visibility", "hidden"), e = t._getItemToZoom(), !e)return c(), void 0;
3303 r = p(e), r.css(t._getOffset()), t.wrap.append(r), o = setTimeout(function () {
3304 r.css(t._getOffset(!0)), o = setTimeout(function () {
3305 c(), setTimeout(function () {
3306 r.remove(), e = r = null, S("ZoomAnimationEnded")
3307 }, 16)
3308 }, s)
3309 }, 16)
3310 }
3311 }), C(l + i, function () {
3312 if (t._allowZoom()) {
3313 if (clearTimeout(o), t.st.removalDelay = s, !e) {
3314 if (e = t._getItemToZoom(), !e)return;
3315 r = p(e)
3316 }
3317 r.css(t._getOffset(!0)), t.wrap.append(r), t.content.css("visibility", "hidden"), setTimeout(function () {
3318 r.css(t._getOffset())
3319 }, 16)
3320 }
3321 }), C(a + i, function () {
3322 t._allowZoom() && (c(), r && r.remove(), e = null)
3323 })
3324 }
3325 }, _allowZoom: function () {
3326 return "image" === t.currItem.type
3327 }, _getItemToZoom: function () {
3328 return t.currItem.hasSize ? t.currItem.img : !1
3329 }, _getOffset: function (n) {
3330 var i;
3331 i = n ? t.currItem.img : t.st.zoom.opener(t.currItem.el || t.currItem);
3332 var o = i.offset(), r = parseInt(i.css("padding-top"), 10), s = parseInt(i.css("padding-bottom"), 10);
3333 o.top -= e(window).scrollTop() - r;
3334 var a = {width: i.width(), height: (w ? i.innerHeight() : i[0].offsetHeight) - s - r};
3335 return H() ? a["-moz-transform"] = a.transform = "translate(" + o.left + "px," + o.top + "px)" : (a.left = o.left, a.top = o.top), a
3336 }
3337 }
3338 });
3339 var q = "iframe", $ = "//about:blank", B = function (e) {
3340 if (t.currTemplate[q]) {
3341 var n = t.currTemplate[q].find("iframe");
3342 n.length && (e || (n[0].src = $), t.isIE8 && n.css("display", e ? "block" : "none"))
3343 }
3344 };
3345 e.magnificPopup.registerModule(q, {
3346 options: {
3347 markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
3348 srcAction: "iframe_src",
3349 patterns: {
3350 youtube: {index: "youtube.com", id: "v=", src: "//www.youtube.com/embed/%id%?autoplay=1"},
3351 vimeo: {index: "vimeo.com/", id: "/", src: "//player.vimeo.com/video/%id%?autoplay=1"},
3352 gmaps: {index: "//maps.google.", src: "%id%&output=embed"}
3353 }
3354 }, proto: {
3355 initIframe: function () {
3356 t.types.push(q), C("BeforeChange", function (e, t, n) {
3357 t !== n && (t === q ? B() : n === q && B(!0))
3358 }), C(a + "." + q, function () {
3359 B()
3360 })
3361 }, getIframe: function (n, i) {
3362 var o = n.src, r = t.st.iframe;
3363 e.each(r.patterns, function () {
3364 return o.indexOf(this.index) > -1 ? (this.id && (o = "string" == typeof this.id ? o.substr(o.lastIndexOf(this.id) + this.id.length, o.length) : this.id.call(this, o)), o = this.src.replace("%id%", o), !1) : void 0
3365 });
3366 var s = {};
3367 return r.srcAction && (s[r.srcAction] = o), t._parseMarkup(i, s, n), t.updateStatus("ready"), i
3368 }
3369 }
3370 });
3371 var W = function (e) {
3372 var n = t.items.length;
3373 return e > n - 1 ? e - n : 0 > e ? n + e : e
3374 }, U = function (e, t, n) {
3375 return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, n)
3376 };
3377 e.magnificPopup.registerModule("gallery", {
3378 options: {
3379 enabled: !1,
3380 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
3381 preload: [0, 2],
3382 navigateByImgClick: !0,
3383 arrows: !0,
3384 tPrev: "Previous (Left arrow key)",
3385 tNext: "Next (Right arrow key)",
3386 tCounter: "%curr% of %total%"
3387 }, proto: {
3388 initGallery: function () {
3389 var n = t.st.gallery, o = ".mfp-gallery", s = Boolean(e.fn.mfpFastClick);
3390 return t.direction = !0, n && n.enabled ? (r += " mfp-gallery", C(d + o, function () {
3391 n.navigateByImgClick && t.wrap.on("click" + o, ".mfp-img", function () {
3392 return t.items.length > 1 ? (t.next(), !1) : void 0
3393 }), i.on("keydown" + o, function (e) {
3394 37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next()
3395 })
3396 }), C("UpdateStatus" + o, function (e, n) {
3397 n.text && (n.text = U(n.text, t.currItem.index, t.items.length))
3398 }), C(u + o, function (e, i, o, r) {
3399 var s = t.items.length;
3400 o.counter = s > 1 ? U(n.tCounter, r.index, s) : ""
3401 }), C("BuildControls" + o, function () {
3402 if (t.items.length > 1 && n.arrows && !t.arrowLeft) {
3403 var i = n.arrowMarkup,
3404 o = t.arrowLeft = e(i.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(y),
3405 r = t.arrowRight = e(i.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(y),
3406 a = s ? "mfpFastClick" : "click";
3407 o[a](function () {
3408 t.prev()
3409 }), r[a](function () {
3410 t.next()
3411 }), t.isIE7 && (T("b", o[0], !1, !0), T("a", o[0], !1, !0), T("b", r[0], !1, !0), T("a", r[0], !1, !0)), t.container.append(o.add(r))
3412 }
3413 }), C(h + o, function () {
3414 t._preloadTimeout && clearTimeout(t._preloadTimeout), t._preloadTimeout = setTimeout(function () {
3415 t.preloadNearbyImages(), t._preloadTimeout = null
3416 }, 16)
3417 }), C(a + o, function () {
3418 i.off(o), t.wrap.off("click" + o), t.arrowLeft && s && t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(), t.arrowRight = t.arrowLeft = null
3419 }), void 0) : !1
3420 }, next: function () {
3421 t.direction = !0, t.index = W(t.index + 1), t.updateItemHTML()
3422 }, prev: function () {
3423 t.direction = !1, t.index = W(t.index - 1), t.updateItemHTML()
3424 }, goTo: function (e) {
3425 t.direction = e >= t.index, t.index = e, t.updateItemHTML()
3426 }, preloadNearbyImages: function () {
3427 var e, n = t.st.gallery.preload, i = Math.min(n[0], t.items.length), o = Math.min(n[1], t.items.length);
3428 for (e = 1; e <= (t.direction ? o : i); e++)t._preloadItem(t.index + e);
3429 for (e = 1; e <= (t.direction ? i : o); e++)t._preloadItem(t.index - e)
3430 }, _preloadItem: function (n) {
3431 if (n = W(n), !t.items[n].preloaded) {
3432 var i = t.items[n];
3433 i.parsed || (i = t.parseEl(n)), S("LazyLoad", i), "image" === i.type && (i.img = e('<img class="mfp-img" />').on("load.mfploader", function () {
3434 i.hasSize = !0
3435 }).on("error.mfploader", function () {
3436 i.hasSize = !0, i.loadError = !0, S("LazyLoadError", i)
3437 }).attr("src", i.src)), i.preloaded = !0
3438 }
3439 }
3440 }
3441 });
3442 var V = "retina";
3443 e.magnificPopup.registerModule(V, {
3444 options: {
3445 replaceSrc: function (e) {
3446 return e.src.replace(/\.\w+$/, function (e) {
3447 return "@2x" + e
3448 })
3449 }, ratio: 1
3450 }, proto: {
3451 initRetina: function () {
3452 if (window.devicePixelRatio > 1) {
3453 var e = t.st.retina, n = e.ratio;
3454 n = isNaN(n) ? n() : n, n > 1 && (C("ImageHasSize." + V, function (e, t) {
3455 t.img.css({"max-width": t.img[0].naturalWidth / n, width: "100%"})
3456 }), C("ElementParse." + V, function (t, i) {
3457 i.src = e.replaceSrc(i, n)
3458 }))
3459 }
3460 }
3461 }
3462 }), function () {
3463 var t = 1e3, n = "ontouchstart" in window, i = function () {
3464 x.off("touchmove" + r + " touchend" + r)
3465 }, o = "mfpFastClick", r = "." + o;
3466 e.fn.mfpFastClick = function (o) {
3467 return e(this).each(function () {
3468 var s, a = e(this);
3469 if (n) {
3470 var l, p, c, u, d, h;
3471 a.on("touchstart" + r, function (e) {
3472 u = !1, h = 1, d = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0], p = d.clientX, c = d.clientY, x.on("touchmove" + r, function (e) {
3473 d = e.originalEvent ? e.originalEvent.touches : e.touches, h = d.length, d = d[0], (Math.abs(d.clientX - p) > 10 || Math.abs(d.clientY - c) > 10) && (u = !0, i())
3474 }).on("touchend" + r, function (e) {
3475 i(), u || h > 1 || (s = !0, e.preventDefault(), clearTimeout(l), l = setTimeout(function () {
3476 s = !1
3477 }, t), o())
3478 })
3479 })
3480 }
3481 a.on("click" + r, function () {
3482 s || o()
3483 })
3484 })
3485 }, e.fn.destroyMfpFastClick = function () {
3486 e(this).off("touchstart" + r + " click" + r), n && x.off("touchmove" + r + " touchend" + r)
3487 }
3488 }(), E()
3489}), function (e) {
3490 e.extend(e.fn, {
3491 validate: function (t) {
3492 if (!this.length)return t && t.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing."), void 0;
3493 var n = e.data(this[0], "validator");
3494 return n ? n : (this.attr("novalidate", "novalidate"), n = new e.validator(t, this[0]), e.data(this[0], "validator", n), n.settings.onsubmit && (this.validateDelegate(":submit", "click", function (t) {
3495 n.settings.submitHandler && (n.submitButton = t.target), e(t.target).hasClass("cancel") && (n.cancelSubmit = !0), void 0 !== e(t.target).attr("formnovalidate") && (n.cancelSubmit = !0)
3496 }), this.submit(function (t) {
3497 function i() {
3498 var i;
3499 return n.settings.submitHandler ? (n.submitButton && (i = e("<input type='hidden'/>").attr("name", n.submitButton.name).val(e(n.submitButton).val()).appendTo(n.currentForm)), n.settings.submitHandler.call(n, n.currentForm, t), n.submitButton && i.remove(), !1) : !0
3500 }
3501
3502 return n.settings.debug && t.preventDefault(), n.cancelSubmit ? (n.cancelSubmit = !1, i()) : n.form() ? n.pendingRequest ? (n.formSubmitted = !0, !1) : i() : (n.focusInvalid(), !1)
3503 })), n)
3504 }, valid: function () {
3505 var t, n;
3506 return e(this[0]).is("form") ? t = this.validate().form() : (t = !0, n = e(this[0].form).validate(), this.each(function () {
3507 t = n.element(this) && t
3508 })), t
3509 }, removeAttrs: function (t) {
3510 var n = {}, i = this;
3511 return e.each(t.split(/\s/), function (e, t) {
3512 n[t] = i.attr(t), i.removeAttr(t)
3513 }), n
3514 }, rules: function (t, n) {
3515 var i, o, r, s, a, l, p = this[0];
3516 if (t)switch (i = e.data(p.form, "validator").settings, o = i.rules, r = e.validator.staticRules(p), t) {
3517 case"add":
3518 e.extend(r, e.validator.normalizeRule(n)), delete r.messages, o[p.name] = r, n.messages && (i.messages[p.name] = e.extend(i.messages[p.name], n.messages));
3519 break;
3520 case"remove":
3521 return n ? (l = {}, e.each(n.split(/\s/), function (t, n) {
3522 l[n] = r[n], delete r[n], "required" === n && e(p).removeAttr("aria-required")
3523 }), l) : (delete o[p.name], r)
3524 }
3525 return s = e.validator.normalizeRules(e.extend({}, e.validator.classRules(p), e.validator.attributeRules(p), e.validator.dataRules(p), e.validator.staticRules(p)), p), s.required && (a = s.required, delete s.required, s = e.extend({required: a}, s), e(p).attr("aria-required", "true")), s.remote && (a = s.remote, delete s.remote, s = e.extend(s, {remote: a})), s
3526 }
3527 }), e.extend(e.expr[":"], {
3528 blank: function (t) {
3529 return !e.trim("" + e(t).val())
3530 }, filled: function (t) {
3531 return !!e.trim("" + e(t).val())
3532 }, unchecked: function (t) {
3533 return !e(t).prop("checked")
3534 }
3535 }), e.validator = function (t, n) {
3536 this.settings = e.extend(!0, {}, e.validator.defaults, t), this.currentForm = n, this.init()
3537 }, e.validator.format = function (t, n) {
3538 return 1 === arguments.length ? function () {
3539 var n = e.makeArray(arguments);
3540 return n.unshift(t), e.validator.format.apply(this, n)
3541 } : (arguments.length > 2 && n.constructor !== Array && (n = e.makeArray(arguments).slice(1)), n.constructor !== Array && (n = [n]), e.each(n, function (e, n) {
3542 t = t.replace(new RegExp("\\{" + e + "\\}", "g"), function () {
3543 return n
3544 })
3545 }), t)
3546 }, e.extend(e.validator, {
3547 defaults: {
3548 messages: {},
3549 groups: {},
3550 rules: {},
3551 errorClass: "error",
3552 validClass: "valid",
3553 errorElement: "label",
3554 focusInvalid: !0,
3555 errorContainer: e([]),
3556 errorLabelContainer: e([]),
3557 onsubmit: !0,
3558 ignore: ":hidden",
3559 ignoreTitle: !1,
3560 onfocusin: function (e) {
3561 this.lastActive = e, this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, e, this.settings.errorClass, this.settings.validClass), this.addWrapper(this.errorsFor(e)).hide())
3562 },
3563 onfocusout: function (e) {
3564 this.checkable(e) || !(e.name in this.submitted) && this.optional(e) || this.element(e)
3565 },
3566 onkeyup: function (e, t) {
3567 (9 !== t.which || "" !== this.elementValue(e)) && (e.name in this.submitted || e === this.lastElement) && this.element(e)
3568 },
3569 onclick: function (e) {
3570 e.name in this.submitted ? this.element(e) : e.parentNode.name in this.submitted && this.element(e.parentNode)
3571 },
3572 highlight: function (t, n, i) {
3573 "radio" === t.type ? this.findByName(t.name).addClass(n).removeClass(i) : e(t).addClass(n).removeClass(i)
3574 },
3575 unhighlight: function (t, n, i) {
3576 "radio" === t.type ? this.findByName(t.name).removeClass(n).addClass(i) : e(t).removeClass(n).addClass(i)
3577 }
3578 },
3579 setDefaults: function (t) {
3580 e.extend(e.validator.defaults, t)
3581 },
3582 messages: {
3583 required: "This field is required.",
3584 remote: "Please fix this field.",
3585 email: "Please enter a valid email address.",
3586 phone: "Please enter a valid phone number.",
3587 url: "Please enter a valid URL.",
3588 date: "Please enter a valid date.",
3589 dateISO: "Please enter a valid date (ISO).",
3590 number: "Please enter a valid number.",
3591 digits: "Please enter only digits.",
3592 creditcard: "Please enter a valid credit card number.",
3593 equalTo: "Please enter the same value again.",
3594 maxlength: e.validator.format("Please enter no more than {0} characters."),
3595 minlength: e.validator.format("Please enter at least {0} characters."),
3596 rangelength: e.validator.format("Please enter a value between {0} and {1} characters long."),
3597 range: e.validator.format("Please enter a value between {0} and {1}."),
3598 max: e.validator.format("Please enter a value less than or equal to {0}."),
3599 min: e.validator.format("Please enter a value greater than or equal to {0}.")
3600 },
3601 autoCreateRanges: !1,
3602 prototype: {
3603 init: function () {
3604 function t(t) {
3605 var n = e.data(this[0].form, "validator"), i = "on" + t.type.replace(/^validate/, ""),
3606 o = n.settings;
3607 o[i] && !this.is(o.ignore) && o[i].call(n, this[0], t)
3608 }
3609
3610 this.labelContainer = e(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || e(this.currentForm), this.containers = e(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset();
3611 var n, i = this.groups = {};
3612 e.each(this.settings.groups, function (t, n) {
3613 "string" == typeof n && (n = n.split(/\s/)), e.each(n, function (e, n) {
3614 i[n] = t
3615 })
3616 }), n = this.settings.rules, e.each(n, function (t, i) {
3617 n[t] = e.validator.normalizeRule(i)
3618 }), e(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ", "focusin focusout keyup", t).validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", t), this.settings.invalidHandler && e(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler), e(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true")
3619 }, form: function () {
3620 return this.checkForm(), e.extend(this.submitted, this.errorMap), this.invalid = e.extend({}, this.errorMap), this.valid() || e(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
3621 }, checkForm: function () {
3622 this.prepareForm();
3623 for (var e = 0, t = this.currentElements = this.elements(); t[e]; e++)this.check(t[e]);
3624 return this.valid()
3625 }, element: function (t) {
3626 var n = this.clean(t), i = this.validationTargetFor(n), o = !0;
3627 return this.lastElement = i, void 0 === i ? delete this.invalid[n.name] : (this.prepareElement(i), this.currentElements = e(i), o = this.check(i) !== !1, o ? delete this.invalid[i.name] : this.invalid[i.name] = !0), e(t).attr("aria-invalid", !o), this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), o
3628 }, showErrors: function (t) {
3629 if (t) {
3630 e.extend(this.errorMap, t), this.errorList = [];
3631 for (var n in t)this.errorList.push({message: t[n], element: this.findByName(n)[0]});
3632 this.successList = e.grep(this.successList, function (e) {
3633 return !(e.name in t)
3634 })
3635 }
3636 this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
3637 }, resetForm: function () {
3638 e.fn.resetForm && e(this.currentForm).resetForm(), this.submitted = {}, this.lastElement = null, this.prepareForm(), this.hideErrors(), this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid")
3639 }, numberOfInvalids: function () {
3640 return this.objectLength(this.invalid)
3641 }, objectLength: function (e) {
3642 var t, n = 0;
3643 for (t in e)n++;
3644 return n
3645 }, hideErrors: function () {
3646 this.addWrapper(this.toHide).hide()
3647 }, valid: function () {
3648 return 0 === this.size()
3649 }, size: function () {
3650 return this.errorList.length
3651 }, focusInvalid: function () {
3652 if (this.settings.focusInvalid)try {
3653 e(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin")
3654 } catch (t) {
3655 }
3656 }, findLastActive: function () {
3657 var t = this.lastActive;
3658 return t && 1 === e.grep(this.errorList, function (e) {
3659 return e.element.name === t.name
3660 }).length && t
3661 }, elements: function () {
3662 var t = this, n = {};
3663 return e(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function () {
3664 return !this.name && t.settings.debug && window.console && console.error("%o has no name assigned", this), this.name in n || !t.objectLength(e(this).rules()) ? !1 : (n[this.name] = !0, !0)
3665 })
3666 }, clean: function (t) {
3667 return e(t)[0]
3668 }, errors: function () {
3669 var t = this.settings.errorClass.split(" ").join(".");
3670 return e(this.settings.errorElement + "." + t, this.errorContext)
3671 }, reset: function () {
3672 this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = e([]), this.toHide = e([]), this.currentElements = e([])
3673 }, prepareForm: function () {
3674 this.reset(), this.toHide = this.errors().add(this.containers)
3675 }, prepareElement: function (e) {
3676 this.reset(), this.toHide = this.errorsFor(e)
3677 }, elementValue: function (t) {
3678 var n, i = e(t), o = i.attr("type");
3679 return "radio" === o || "checkbox" === o ? e("input[name='" + i.attr("name") + "']:checked").val() : (n = i.val(), "string" == typeof n ? n.replace(/\r/g, "") : n)
3680 }, check: function (t) {
3681 t = this.validationTargetFor(this.clean(t));
3682 var n, i, o, r = e(t).rules(), s = e.map(r, function (e, t) {
3683 return t
3684 }).length, a = !1, l = this.elementValue(t);
3685 for (i in r) {
3686 o = {method: i, parameters: r[i]};
3687 try {
3688 if (n = e.validator.methods[i].call(this, l, t, o.parameters), "dependency-mismatch" === n && 1 === s) {
3689 a = !0;
3690 continue
3691 }
3692 if (a = !1, "pending" === n)return this.toHide = this.toHide.not(this.errorsFor(t)), void 0;
3693 if (!n)return this.formatAndAdd(t, o), !1
3694 } catch (p) {
3695 throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + t.id + ", check the '" + o.method + "' method.", p), p
3696 }
3697 }
3698 if (!a)return this.objectLength(r) && this.successList.push(t), !0
3699 }, customDataMessage: function (t, n) {
3700 return e(t).data("msg" + n[0].toUpperCase() + n.substring(1).toLowerCase()) || e(t).data("msg")
3701 }, customMessage: function (e, t) {
3702 var n = this.settings.messages[e];
3703 return n && (n.constructor === String ? n : n[t])
3704 }, findDefined: function () {
3705 for (var e = 0; e < arguments.length; e++)if (void 0 !== arguments[e])return arguments[e];
3706 return void 0
3707 }, defaultMessage: function (t, n) {
3708 return this.findDefined(this.customMessage(t.name, n), this.customDataMessage(t, n), !this.settings.ignoreTitle && t.title || void 0, e.validator.messages[n], "<strong>Warning: No message defined for " + t.name + "</strong>")
3709 }, formatAndAdd: function (t, n) {
3710 var i = this.defaultMessage(t, n.method), o = /\$?\{(\d+)\}/g;
3711 "function" == typeof i ? i = i.call(this, n.parameters, t) : o.test(i) && (i = e.validator.format(i.replace(o, "{$1}"), n.parameters)), this.errorList.push({
3712 message: i,
3713 element: t,
3714 method: n.method
3715 }), this.errorMap[t.name] = i, this.submitted[t.name] = i
3716 }, addWrapper: function (e) {
3717 return this.settings.wrapper && (e = e.add(e.parent(this.settings.wrapper))), e
3718 }, defaultShowErrors: function () {
3719 var e, t, n;
3720 for (e = 0; this.errorList[e]; e++)n = this.errorList[e], this.settings.highlight && this.settings.highlight.call(this, n.element, this.settings.errorClass, this.settings.validClass), this.showLabel(n.element, n.message);
3721 if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)for (e = 0; this.successList[e]; e++)this.showLabel(this.successList[e]);
3722 if (this.settings.unhighlight)for (e = 0, t = this.validElements(); t[e]; e++)this.settings.unhighlight.call(this, t[e], this.settings.errorClass, this.settings.validClass);
3723 this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show()
3724 }, validElements: function () {
3725 return this.currentElements.not(this.invalidElements())
3726 }, invalidElements: function () {
3727 return e(this.errorList).map(function () {
3728 return this.element
3729 })
3730 }, showLabel: function (t, n) {
3731 var i = this.errorsFor(t);
3732 i.length ? (i.removeClass(this.settings.validClass).addClass(this.settings.errorClass), i.html(n)) : (i = e("<" + this.settings.errorElement + ">").attr("for", this.idOrName(t)).addClass(this.settings.errorClass).html(n || ""), this.settings.wrapper && (i = i.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.append(i).length || (this.settings.errorPlacement ? this.settings.errorPlacement(i, e(t)) : i.insertAfter(t))), !n && this.settings.success && (i.text(""), "string" == typeof this.settings.success ? i.addClass(this.settings.success) : this.settings.success(i, t)), this.toShow = this.toShow.add(i)
3733 }, errorsFor: function (t) {
3734 var n = this.idOrName(t);
3735 return this.errors().filter(function () {
3736 return e(this).attr("for") === n
3737 })
3738 }, idOrName: function (e) {
3739 return this.groups[e.name] || (this.checkable(e) ? e.name : e.id || e.name)
3740 }, validationTargetFor: function (e) {
3741 return this.checkable(e) && (e = this.findByName(e.name).not(this.settings.ignore)[0]), e
3742 }, checkable: function (e) {
3743 return /radio|checkbox/i.test(e.type)
3744 }, findByName: function (t) {
3745 return e(this.currentForm).find("[name='" + t + "']")
3746 }, getLength: function (t, n) {
3747 switch (n.nodeName.toLowerCase()) {
3748 case"select":
3749 return e("option:selected", n).length;
3750 case"input":
3751 if (this.checkable(n))return this.findByName(n.name).filter(":checked").length
3752 }
3753 return t.length
3754 }, depend: function (e, t) {
3755 return this.dependTypes[typeof e] ? this.dependTypes[typeof e](e, t) : !0
3756 }, dependTypes: {
3757 "boolean": function (e) {
3758 return e
3759 }, string: function (t, n) {
3760 return !!e(t, n.form).length
3761 }, "function": function (e, t) {
3762 return e(t)
3763 }
3764 }, optional: function (t) {
3765 var n = this.elementValue(t);
3766 return !e.validator.methods.required.call(this, n, t) && "dependency-mismatch"
3767 }, startRequest: function (e) {
3768 this.pending[e.name] || (this.pendingRequest++, this.pending[e.name] = !0)
3769 }, stopRequest: function (t, n) {
3770 this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[t.name], n && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (e(this.currentForm).submit(), this.formSubmitted = !1) : !n && 0 === this.pendingRequest && this.formSubmitted && (e(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
3771 }, previousValue: function (t) {
3772 return e.data(t, "previousValue") || e.data(t, "previousValue", {
3773 old: null,
3774 valid: !0,
3775 message: this.defaultMessage(t, "remote")
3776 })
3777 }
3778 },
3779 classRuleSettings: {
3780 required: {required: !0},
3781 email: {email: !0},
3782 url: {url: !0},
3783 date: {date: !0},
3784 dateISO: {dateISO: !0},
3785 number: {number: !0},
3786 phone: {phone: !0},
3787 phone_length_9_14: {rangelength: [9, 14]},
3788 digits: {digits: !0},
3789 creditcard: {creditcard: !0}
3790 },
3791 addClassRules: function (t, n) {
3792 t.constructor === String ? this.classRuleSettings[t] = n : e.extend(this.classRuleSettings, t)
3793 },
3794 classRules: function (t) {
3795 var n = {}, i = e(t).attr("class");
3796 return i && e.each(i.split(" "), function () {
3797 this in e.validator.classRuleSettings && e.extend(n, e.validator.classRuleSettings[this])
3798 }), n
3799 },
3800 attributeRules: function (t) {
3801 var n, i, o = {}, r = e(t), s = t.getAttribute("type");
3802 for (n in e.validator.methods)"required" === n ? (i = t.getAttribute(n), "" === i && (i = !0), i = !!i) : i = r.attr(n), /min|max/.test(n) && (null === s || /number|range|text/.test(s)) && (i = Number(i)), i || 0 === i ? o[n] = i : s === n && "range" !== s && (o[n] = !0);
3803 return o.maxlength && /-1|2147483647|524288/.test(o.maxlength) && delete o.maxlength, o
3804 },
3805 dataRules: function (t) {
3806 var n, i, o = {}, r = e(t);
3807 for (n in e.validator.methods)i = r.data("rule" + n[0].toUpperCase() + n.substring(1).toLowerCase()), void 0 !== i && (o[n] = i);
3808 return o
3809 },
3810 staticRules: function (t) {
3811 var n = {}, i = e.data(t.form, "validator");
3812 return i.settings.rules && (n = e.validator.normalizeRule(i.settings.rules[t.name]) || {}), n
3813 },
3814 normalizeRules: function (t, n) {
3815 return e.each(t, function (i, o) {
3816 if (o === !1)return delete t[i], void 0;
3817 if (o.param || o.depends) {
3818 var r = !0;
3819 switch (typeof o.depends) {
3820 case"string":
3821 r = !!e(o.depends, n.form).length;
3822 break;
3823 case"function":
3824 r = o.depends.call(n, n)
3825 }
3826 r ? t[i] = void 0 !== o.param ? o.param : !0 : delete t[i]
3827 }
3828 }), e.each(t, function (i, o) {
3829 t[i] = e.isFunction(o) ? o(n) : o
3830 }), e.each(["minlength", "maxlength"], function () {
3831 t[this] && (t[this] = Number(t[this]))
3832 }), e.each(["rangelength", "range"], function () {
3833 var n;
3834 t[this] && (e.isArray(t[this]) ? t[this] = [Number(t[this][0]), Number(t[this][1])] : "string" == typeof t[this] && (n = t[this].split(/[\s,]+/), t[this] = [Number(n[0]), Number(n[1])]))
3835 }), e.validator.autoCreateRanges && (t.min && t.max && (t.range = [t.min, t.max], delete t.min, delete t.max), t.minlength && t.maxlength && (t.rangelength = [t.minlength, t.maxlength], delete t.minlength, delete t.maxlength)), t
3836 },
3837 normalizeRule: function (t) {
3838 if ("string" == typeof t) {
3839 var n = {};
3840 e.each(t.split(/\s/), function () {
3841 n[this] = !0
3842 }), t = n
3843 }
3844 return t
3845 },
3846 addMethod: function (t, n, i) {
3847 e.validator.methods[t] = n, e.validator.messages[t] = void 0 !== i ? i : e.validator.messages[t], n.length < 3 && e.validator.addClassRules(t, e.validator.normalizeRule(t))
3848 },
3849 methods: {
3850 required: function (t, n, i) {
3851 if (!this.depend(i, n))return "dependency-mismatch";
3852 if ("select" === n.nodeName.toLowerCase()) {
3853 var o = e(n).val();
3854 return o && o.length > 0
3855 }
3856 return this.checkable(n) ? this.getLength(t, n) > 0 : e.trim(t).length > 0
3857 }, email: function (e, t) {
3858 return this.optional(t) || /^[a-z0-9]+([\+_\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\.[a-z]{2,}$/i.test(e)
3859 }, url: function (e, t) {
3860 return this.optional(t) || /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(e)
3861 }, date: function (e, t) {
3862 return this.optional(t) || !/Invalid|NaN/.test(new Date(e).toString())
3863 }, dateISO: function (e, t) {
3864 return this.optional(t) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(e)
3865 }, number: function (e, t) {
3866 return this.optional(t) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e)
3867 }, phone: function (e, t) {
3868 return this.optional(t) || /^[+]?[0-9]{4,}([-]{1}[0-9]{2,})*$/.test(e)
3869 }, digits: function (e, t) {
3870 return this.optional(t) || /^\d+$/.test(e)
3871 }, creditcard: function (e, t) {
3872 if (this.optional(t))return "dependency-mismatch";
3873 if (/[^0-9 \-]+/.test(e))return !1;
3874 var n, i, o = 0, r = 0, s = !1;
3875 if (e = e.replace(/\D/g, ""), e.length < 13 || e.length > 19)return !1;
3876 for (n = e.length - 1; n >= 0; n--)i = e.charAt(n), r = parseInt(i, 10), s && (r *= 2) > 9 && (r -= 9), o += r, s = !s;
3877 return o % 10 === 0
3878 }, minlength: function (t, n, i) {
3879 var o = e.isArray(t) ? t.length : this.getLength(e.trim(t), n);
3880 return this.optional(n) || o >= i
3881 }, maxlength: function (t, n, i) {
3882 var o = e.isArray(t) ? t.length : this.getLength(e.trim(t), n);
3883 return this.optional(n) || i >= o
3884 }, rangelength: function (t, n, i) {
3885 var o = e.isArray(t) ? t.length : this.getLength(e.trim(t), n);
3886 return this.optional(n) || o >= i[0] && o <= i[1]
3887 }, min: function (e, t, n) {
3888 return this.optional(t) || e >= n
3889 }, max: function (e, t, n) {
3890 return this.optional(t) || n >= e
3891 }, range: function (e, t, n) {
3892 return this.optional(t) || e >= n[0] && e <= n[1]
3893 }, equalTo: function (t, n, i) {
3894 var o = e(i);
3895 return this.settings.onfocusout && o.unbind(".validate-equalTo").bind("blur.validate-equalTo", function () {
3896 e(n).valid()
3897 }), t === o.val()
3898 }, remote: function (t, n, i) {
3899 if (this.optional(n))return "dependency-mismatch";
3900 var o, r, s = this.previousValue(n);
3901 return this.settings.messages[n.name] || (this.settings.messages[n.name] = {}), s.originalMessage = this.settings.messages[n.name].remote, this.settings.messages[n.name].remote = s.message, i = "string" == typeof i && {url: i} || i, s.old === t ? s.valid : (s.old = t, o = this, this.startRequest(n), r = {}, r[n.name] = t, e.ajax(e.extend(!0, {
3902 url: i,
3903 mode: "abort",
3904 port: "validate" + n.name,
3905 dataType: "json",
3906 data: r,
3907 context: o.currentForm,
3908 success: function (i) {
3909 var r, a, l, p = i === !0 || "true" === i;
3910 o.settings.messages[n.name].remote = s.originalMessage, p ? (l = o.formSubmitted, o.prepareElement(n), o.formSubmitted = l, o.successList.push(n), delete o.invalid[n.name], o.showErrors()) : (r = {}, a = i || o.defaultMessage(n, "remote"), r[n.name] = s.message = e.isFunction(a) ? a(t) : a, o.invalid[n.name] = !0, o.showErrors(r)), s.valid = p, o.stopRequest(n, p)
3911 }
3912 }, i)), "pending")
3913 }
3914 }
3915 }), e.format = function () {
3916 throw"$.format has been deprecated. Please use $.validator.format instead."
3917 }
3918}(jQuery), function (e) {
3919 var t, n = {};
3920 e.ajaxPrefilter ? e.ajaxPrefilter(function (e, t, i) {
3921 var o = e.port;
3922 "abort" === e.mode && (n[o] && n[o].abort(), n[o] = i)
3923 }) : (t = e.ajax, e.ajax = function (i) {
3924 var o = ("mode" in i ? i : e.ajaxSettings).mode, r = ("port" in i ? i : e.ajaxSettings).port;
3925 return "abort" === o ? (n[r] && n[r].abort(), n[r] = t.apply(this, arguments), n[r]) : t.apply(this, arguments)
3926 })
3927}(jQuery), function (e) {
3928 e.extend(e.fn, {
3929 validateDelegate: function (t, n, i) {
3930 return this.bind(n, function (n) {
3931 var o = e(n.target);
3932 return o.is(t) ? i.apply(o, arguments) : void 0
3933 })
3934 }
3935 })
3936}(jQuery), function (e) {
3937 var t = {}, n = {
3938 mode: "horizontal",
3939 slideSelector: "",
3940 infiniteLoop: !0,
3941 hideControlOnEnd: !1,
3942 speed: 500,
3943 easing: null,
3944 slideMargin: 0,
3945 startSlide: 0,
3946 randomStart: !1,
3947 captions: !1,
3948 ticker: !1,
3949 tickerHover: !1,
3950 adaptiveHeight: !1,
3951 adaptiveHeightSpeed: 500,
3952 video: !1,
3953 useCSS: !0,
3954 preloadImages: "visible",
3955 responsive: !0,
3956 slideZIndex: 50,
3957 wrapperClass: "bx-wrapper",
3958 touchEnabled: !0,
3959 swipeThreshold: 50,
3960 oneToOneTouch: !0,
3961 preventDefaultSwipeX: !0,
3962 preventDefaultSwipeY: !1,
3963 pager: !0,
3964 pagerType: "full",
3965 pagerShortSeparator: " / ",
3966 pagerSelector: null,
3967 buildPager: null,
3968 pagerCustom: null,
3969 controls: !0,
3970 nextText: "Next",
3971 prevText: "Prev",
3972 nextSelector: null,
3973 prevSelector: null,
3974 autoControls: !1,
3975 startText: "Start",
3976 stopText: "Stop",
3977 autoControlsCombine: !1,
3978 autoControlsSelector: null,
3979 auto: !1,
3980 pause: 4e3,
3981 autoStart: !0,
3982 autoDirection: "next",
3983 autoHover: !1,
3984 autoDelay: 0,
3985 autoSlideForOnePage: !1,
3986 minSlides: 1,
3987 maxSlides: 1,
3988 moveSlides: 0,
3989 slideWidth: 0,
3990 onSliderLoad: function () {
3991 },
3992 onSlideBefore: function () {
3993 },
3994 onSlideAfter: function () {
3995 },
3996 onSlideNext: function () {
3997 },
3998 onSlidePrev: function () {
3999 },
4000 onSliderResize: function () {
4001 }
4002 };
4003 e.fn.bxSlider = function (o) {
4004 if (0 == this.length)return this;
4005 if (this.length > 1)return this.each(function () {
4006 e(this).bxSlider(o)
4007 }), this;
4008 var r = {}, s = this;
4009 t.el = this;
4010 var a = e(window).width(), l = e(window).height(), p = function () {
4011 r.settings = e.extend({}, n, o), r.settings.slideWidth = parseInt(r.settings.slideWidth), r.children = s.children(r.settings.slideSelector), r.children.length < r.settings.minSlides && (r.settings.minSlides = r.children.length), r.children.length < r.settings.maxSlides && (r.settings.maxSlides = r.children.length), r.settings.randomStart && (r.settings.startSlide = Math.floor(Math.random() * r.children.length)), r.active = {index: r.settings.startSlide}, r.carousel = r.settings.minSlides > 1 || r.settings.maxSlides > 1, r.carousel && (r.settings.preloadImages = "all"), r.minThreshold = r.settings.minSlides * r.settings.slideWidth + (r.settings.minSlides - 1) * r.settings.slideMargin, r.maxThreshold = r.settings.maxSlides * r.settings.slideWidth + (r.settings.maxSlides - 1) * r.settings.slideMargin, r.working = !1, r.controls = {}, r.interval = null, r.animProp = "vertical" == r.settings.mode ? "top" : "left", r.usingCSS = r.settings.useCSS && "fade" != r.settings.mode && function () {
4012 var e = document.createElement("div"),
4013 t = ["WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
4014 for (var n in t)if (void 0 !== e.style[t[n]])return r.cssPrefix = t[n].replace("Perspective", "").toLowerCase(), r.animProp = "-" + r.cssPrefix + "-transform", !0;
4015 return !1
4016 }(), "vertical" == r.settings.mode && (r.settings.maxSlides = r.settings.minSlides), s.data("origStyle", s.attr("style")), s.children(r.settings.slideSelector).each(function () {
4017 e(this).data("origStyle", e(this).attr("style"))
4018 }), c()
4019 }, c = function () {
4020 s.wrap('<div class="' + r.settings.wrapperClass + '"><div class="bx-viewport"></div></div>'), r.viewport = s.parent(), r.loader = e('<div class="bx-loading" />'), r.viewport.prepend(r.loader), s.css({
4021 width: "horizontal" == r.settings.mode ? 100 * r.children.length + 215 + "%" : "auto",
4022 position: "relative"
4023 }), r.usingCSS && r.settings.easing ? s.css("-" + r.cssPrefix + "-transition-timing-function", r.settings.easing) : r.settings.easing || (r.settings.easing = "swing");
4024 g();
4025 r.viewport.css({
4026 width: "100%",
4027 overflow: "hidden",
4028 position: "relative"
4029 }), r.viewport.parent().css({maxWidth: f()}), r.settings.pager || r.viewport.parent().css({margin: "0 auto 0px"}), r.children.css({
4030 "float": "horizontal" == r.settings.mode ? "left" : "none",
4031 listStyle: "none",
4032 position: "relative"
4033 }), r.children.css("width", m()), "horizontal" == r.settings.mode && r.settings.slideMargin > 0 && r.children.css("marginRight", r.settings.slideMargin), "vertical" == r.settings.mode && r.settings.slideMargin > 0 && r.children.css("marginBottom", r.settings.slideMargin), "fade" == r.settings.mode && (r.children.css({
4034 position: "absolute",
4035 zIndex: 0,
4036 display: "none"
4037 }), r.children.eq(r.settings.startSlide).css({
4038 zIndex: r.settings.slideZIndex,
4039 display: "block"
4040 })), r.controls.el = e('<div class="bx-controls" />'), r.settings.captions && k(), r.active.last = r.settings.startSlide == v() - 1, r.settings.video && s.fitVids();
4041 var t = r.children.eq(r.settings.startSlide);
4042 "all" == r.settings.preloadImages && (t = r.children), r.settings.ticker ? r.settings.pager = !1 : (r.settings.pager && C(), r.settings.controls && T(), r.settings.auto && r.settings.autoControls && S(), (r.settings.controls || r.settings.autoControls || r.settings.pager) && r.viewport.after(r.controls.el)), u(t, d)
4043 }, u = function (t, n) {
4044 var i = t.find("img, iframe").length;
4045 if (0 == i)return n(), void 0;
4046 var o = 0;
4047 t.find("img, iframe").each(function () {
4048 e(this).one("load", function () {
4049 ++o == i && n()
4050 }).each(function () {
4051 this.complete && e(this).load()
4052 })
4053 })
4054 }, d = function () {
4055 if (r.settings.infiniteLoop && "fade" != r.settings.mode && !r.settings.ticker) {
4056 var t = "vertical" == r.settings.mode ? r.settings.minSlides : r.settings.maxSlides,
4057 n = r.children.slice(0, t).clone().addClass("bx-clone"),
4058 i = r.children.slice(-t).clone().addClass("bx-clone");
4059 s.append(n).prepend(i)
4060 }
4061 r.loader.remove(), b(), "vertical" == r.settings.mode && (r.settings.adaptiveHeight = !0), r.viewport.height(h()), s.redrawSlider(), r.settings.onSliderLoad(r.active.index), r.initialized = !0, r.settings.responsive && e(window).bind("resize", $), r.settings.auto && r.settings.autoStart && (v() > 1 || r.settings.autoSlideForOnePage) && L(), r.settings.ticker && _(), r.settings.pager && O(r.settings.startSlide), r.settings.controls && M(), r.settings.touchEnabled && !r.settings.ticker && R()
4062 }, h = function () {
4063 var t = 0, n = e();
4064 if ("vertical" == r.settings.mode || r.settings.adaptiveHeight)if (r.carousel) {
4065 var o = 1 == r.settings.moveSlides ? r.active.index : r.active.index * y();
4066 for (n = r.children.eq(o), i = 1; i <= r.settings.maxSlides - 1; i++)n = o + i >= r.children.length ? n.add(r.children.eq(i - 1)) : n.add(r.children.eq(o + i))
4067 } else n = r.children.eq(r.active.index); else n = r.children;
4068 return "vertical" == r.settings.mode ? (n.each(function () {
4069 t += e(this).outerHeight()
4070 }), r.settings.slideMargin > 0 && (t += r.settings.slideMargin * (r.settings.minSlides - 1))) : t = Math.max.apply(Math, n.map(function () {
4071 return e(this).outerHeight(!1)
4072 }).get()), "border-box" == r.viewport.css("box-sizing") ? t += parseFloat(r.viewport.css("padding-top")) + parseFloat(r.viewport.css("padding-bottom")) + parseFloat(r.viewport.css("border-top-width")) + parseFloat(r.viewport.css("border-bottom-width")) : "padding-box" == r.viewport.css("box-sizing") && (t += parseFloat(r.viewport.css("padding-top")) + parseFloat(r.viewport.css("padding-bottom"))), t
4073 }, f = function () {
4074 var e = "100%";
4075 return r.settings.slideWidth > 0 && (e = "horizontal" == r.settings.mode ? r.settings.maxSlides * r.settings.slideWidth + (r.settings.maxSlides - 1) * r.settings.slideMargin : r.settings.slideWidth), e
4076 }, m = function () {
4077 var e = r.settings.slideWidth, t = r.viewport.width();
4078 return 0 == r.settings.slideWidth || r.settings.slideWidth > t && !r.carousel || "vertical" == r.settings.mode ? e = t : r.settings.maxSlides > 1 && "horizontal" == r.settings.mode && (t > r.maxThreshold || t < r.minThreshold && (e = (t - r.settings.slideMargin * (r.settings.minSlides - 1)) / r.settings.minSlides)), e
4079 }, g = function () {
4080 var e = 1;
4081 if ("horizontal" == r.settings.mode && r.settings.slideWidth > 0)if (r.viewport.width() < r.minThreshold) e = r.settings.minSlides; else if (r.viewport.width() > r.maxThreshold) e = r.settings.maxSlides; else {
4082 var t = r.children.first().width() + r.settings.slideMargin;
4083 e = Math.floor((r.viewport.width() + r.settings.slideMargin) / t)
4084 } else"vertical" == r.settings.mode && (e = r.settings.minSlides);
4085 return e
4086 }, v = function () {
4087 var e = 0;
4088 if (r.settings.moveSlides > 0)if (r.settings.infiniteLoop) e = Math.ceil(r.children.length / y()); else for (var t = 0, n = 0; t < r.children.length;)++e, t = n + g(), n += r.settings.moveSlides <= g() ? r.settings.moveSlides : g(); else e = Math.ceil(r.children.length / g());
4089 return e
4090 }, y = function () {
4091 return r.settings.moveSlides > 0 && r.settings.moveSlides <= g() ? r.settings.moveSlides : g()
4092 }, b = function () {
4093 if (r.children.length > r.settings.maxSlides && r.active.last && !r.settings.infiniteLoop) {
4094 if ("horizontal" == r.settings.mode) {
4095 var e = r.children.last(), t = e.position();
4096 w(-(t.left - (r.viewport.width() - e.outerWidth())), "reset", 0)
4097 } else if ("vertical" == r.settings.mode) {
4098 var n = r.children.length - r.settings.minSlides, t = r.children.eq(n).position();
4099 w(-t.top, "reset", 0)
4100 }
4101 } else {
4102 var t = r.children.eq(r.active.index * y()).position();
4103 r.active.index == v() - 1 && (r.active.last = !0), void 0 != t && ("horizontal" == r.settings.mode ? w(-t.left, "reset", 0) : "vertical" == r.settings.mode && w(-t.top, "reset", 0))
4104 }
4105 }, w = function (e, t, n, i) {
4106 if (r.usingCSS) {
4107 var o = "vertical" == r.settings.mode ? "translate3d(0, " + e + "px, 0)" : "translate3d(" + e + "px, 0, 0)";
4108 s.css("-" + r.cssPrefix + "-transition-duration", n / 1e3 + "s"), "slide" == t ? (s.css(r.animProp, o), s.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function () {
4109 s.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"), D()
4110 })) : "reset" == t ? s.css(r.animProp, o) : "ticker" == t && (s.css("-" + r.cssPrefix + "-transition-timing-function", "linear"), s.css(r.animProp, o), s.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function () {
4111 s.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"), w(i.resetValue, "reset", 0), z()
4112 }))
4113 } else {
4114 var a = {};
4115 a[r.animProp] = e, "slide" == t ? s.animate(a, n, r.settings.easing, function () {
4116 D()
4117 }) : "reset" == t ? s.css(r.animProp, e) : "ticker" == t && s.animate(a, speed, "linear", function () {
4118 w(i.resetValue, "reset", 0), z()
4119 })
4120 }
4121 }, x = function () {
4122 for (var t = "", n = v(), i = 0; n > i; i++) {
4123 var o = "";
4124 r.settings.buildPager && e.isFunction(r.settings.buildPager) ? (o = r.settings.buildPager(i), r.pagerEl.addClass("bx-custom-pager")) : (o = i + 1, r.pagerEl.addClass("bx-default-pager")), t += '<div class="bx-pager-item"><a href="" data-slide-index="' + i + '" class="bx-pager-link">' + o + "</a></div>"
4125 }
4126 r.pagerEl.html(t)
4127 }, C = function () {
4128 r.settings.pagerCustom ? r.pagerEl = e(r.settings.pagerCustom) : (r.pagerEl = e('<div class="bx-pager" />'), r.settings.pagerSelector ? e(r.settings.pagerSelector).html(r.pagerEl) : r.controls.el.addClass("bx-has-pager").append(r.pagerEl), x()), r.pagerEl.on("click", "a", F)
4129 }, T = function () {
4130 r.controls.next = e('<a class="bx-next" href="">' + r.settings.nextText + "</a>"), r.controls.prev = e('<a class="bx-prev" href="">' + r.settings.prevText + "</a>"), r.controls.next.bind("click", E), r.controls.prev.bind("click", P), r.settings.nextSelector && e(r.settings.nextSelector).append(r.controls.next), r.settings.prevSelector && e(r.settings.prevSelector).append(r.controls.prev), r.settings.nextSelector || r.settings.prevSelector || (r.controls.directionEl = e('<div class="bx-controls-direction" />'), r.controls.directionEl.append(r.controls.prev).append(r.controls.next), r.controls.el.addClass("bx-has-controls-direction").append(r.controls.directionEl))
4131 }, S = function () {
4132 r.controls.start = e('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + r.settings.startText + "</a></div>"), r.controls.stop = e('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + r.settings.stopText + "</a></div>"), r.controls.autoEl = e('<div class="bx-controls-auto" />'), r.controls.autoEl.on("click", ".bx-start", A), r.controls.autoEl.on("click", ".bx-stop", N), r.settings.autoControlsCombine ? r.controls.autoEl.append(r.controls.start) : r.controls.autoEl.append(r.controls.start).append(r.controls.stop), r.settings.autoControlsSelector ? e(r.settings.autoControlsSelector).html(r.controls.autoEl) : r.controls.el.addClass("bx-has-controls-auto").append(r.controls.autoEl), j(r.settings.autoStart ? "stop" : "start")
4133 }, k = function () {
4134 r.children.each(function () {
4135 var t = e(this).find("img:first").attr("title");
4136 void 0 != t && ("" + t).length && e(this).append('<div class="bx-caption"><span>' + t + "</span></div>")
4137 })
4138 }, E = function (e) {
4139 r.settings.auto && s.stopAuto(), s.parent().parent().parent().removeClass("playing"), s.parent().parent().parent().addClass("paused"), s.goToNextSlide(), e.preventDefault()
4140 }, P = function (e) {
4141 r.settings.auto && s.stopAuto(), s.parent().parent().parent().removeClass("playing"), s.parent().parent().parent().addClass("paused"), s.goToPrevSlide(), e.preventDefault()
4142 }, A = function (e) {
4143 s.startAuto(), s.parent().parent().parent().removeClass("paused"), s.parent().parent().parent().addClass("playing"), e.preventDefault()
4144 }, N = function (e) {
4145 s.stopAuto(), s.parent().parent().parent().removeClass("playing"), s.parent().parent().parent().addClass("paused"), e.preventDefault()
4146 }, F = function (t) {
4147 r.settings.auto && s.stopAuto(), s.parent().parent().parent().removeClass("playing"), s.parent().parent().parent().addClass("paused");
4148 var n = e(t.currentTarget);
4149 if (void 0 !== n.attr("data-slide-index")) {
4150 var i = parseInt(n.attr("data-slide-index"));
4151 i != r.active.index && s.goToSlide(i), t.preventDefault()
4152 }
4153 }, O = function (t) {
4154 var n = r.children.length;
4155 return "short" == r.settings.pagerType ? (r.settings.maxSlides > 1 && (n = Math.ceil(r.children.length / r.settings.maxSlides)), r.pagerEl.html(t + 1 + r.settings.pagerShortSeparator + n), void 0) : (r.pagerEl.find("a").removeClass("active"), r.pagerEl.each(function (n, i) {
4156 e(i).find("a").eq(t).addClass("active")
4157 }), void 0)
4158 }, D = function () {
4159 if (r.settings.infiniteLoop) {
4160 var e = "";
4161 0 == r.active.index ? e = r.children.eq(0).position() : r.active.index == v() - 1 && r.carousel ? e = r.children.eq((v() - 1) * y()).position() : r.active.index == r.children.length - 1 && (e = r.children.eq(r.children.length - 1).position()), e && ("horizontal" == r.settings.mode ? w(-e.left, "reset", 0) : "vertical" == r.settings.mode && w(-e.top, "reset", 0))
4162 }
4163 r.working = !1, r.settings.onSlideAfter(r.children.eq(r.active.index), r.oldIndex, r.active.index)
4164 }, j = function (e) {
4165 r.settings.autoControlsCombine ? r.controls.autoEl.html(r.controls[e]) : (r.controls.autoEl.find("a").removeClass("active"), r.controls.autoEl.find("a:not(.bx-" + e + ")").addClass("active"))
4166 }, M = function () {
4167 1 == v() ? (r.controls.prev.addClass("disabled"), r.controls.next.addClass("disabled")) : !r.settings.infiniteLoop && r.settings.hideControlOnEnd && (0 == r.active.index ? (r.controls.prev.addClass("disabled"), r.controls.next.removeClass("disabled")) : r.active.index == v() - 1 ? (r.controls.next.addClass("disabled"), r.controls.prev.removeClass("disabled")) : (r.controls.prev.removeClass("disabled"), r.controls.next.removeClass("disabled")))
4168 }, L = function () {
4169 if (r.settings.autoDelay > 0) {
4170 setTimeout(s.startAuto, r.settings.autoDelay)
4171 } else s.startAuto();
4172 r.settings.autoHover && s.hover(function () {
4173 r.interval && (s.stopAuto(!0), r.autoPaused = !0)
4174 }, function () {
4175 r.autoPaused && (s.startAuto(!0), r.autoPaused = null)
4176 })
4177 }, _ = function () {
4178 var t = 0;
4179 if ("next" == r.settings.autoDirection) s.append(r.children.clone().addClass("bx-clone")); else {
4180 s.prepend(r.children.clone().addClass("bx-clone"));
4181 var n = r.children.first().position();
4182 t = "horizontal" == r.settings.mode ? -n.left : -n.top
4183 }
4184 w(t, "reset", 0), r.settings.pager = !1, r.settings.controls = !1, r.settings.autoControls = !1, r.settings.tickerHover && !r.usingCSS && r.viewport.hover(function () {
4185 s.stop()
4186 }, function () {
4187 var t = 0;
4188 r.children.each(function () {
4189 t += "horizontal" == r.settings.mode ? e(this).outerWidth(!0) : e(this).outerHeight(!0)
4190 });
4191 var n = r.settings.speed / t, i = "horizontal" == r.settings.mode ? "left" : "top",
4192 o = n * (t - Math.abs(parseInt(s.css(i))));
4193 z(o)
4194 }), z()
4195 }, z = function (e) {
4196 speed = e ? e : r.settings.speed;
4197 var t = {left: 0, top: 0}, n = {left: 0, top: 0};
4198 "next" == r.settings.autoDirection ? t = s.find(".bx-clone").first().position() : n = r.children.first().position();
4199 var i = "horizontal" == r.settings.mode ? -t.left : -t.top,
4200 o = "horizontal" == r.settings.mode ? -n.left : -n.top, a = {resetValue: o};
4201 w(i, "ticker", speed, a)
4202 }, R = function () {
4203 r.touch = {start: {x: 0, y: 0}, end: {x: 0, y: 0}}, r.viewport.bind("touchstart", I)
4204 }, I = function (e) {
4205 if (r.working) e.preventDefault(); else {
4206 r.touch.originalPos = s.position();
4207 var t = e.originalEvent;
4208 r.touch.start.x = t.changedTouches[0].pageX, r.touch.start.y = t.changedTouches[0].pageY, r.viewport.bind("touchmove", H), r.viewport.bind("touchend", q)
4209 }
4210 }, H = function (e) {
4211 var t = e.originalEvent, n = Math.abs(t.changedTouches[0].pageX - r.touch.start.x),
4212 i = Math.abs(t.changedTouches[0].pageY - r.touch.start.y);
4213 if (3 * n > i && r.settings.preventDefaultSwipeX ? e.preventDefault() : 3 * i > n && r.settings.preventDefaultSwipeY && e.preventDefault(), "fade" != r.settings.mode && r.settings.oneToOneTouch) {
4214 var o = 0;
4215 if ("horizontal" == r.settings.mode) {
4216 var s = t.changedTouches[0].pageX - r.touch.start.x;
4217 o = r.touch.originalPos.left + s
4218 } else {
4219 var s = t.changedTouches[0].pageY - r.touch.start.y;
4220 o = r.touch.originalPos.top + s
4221 }
4222 w(o, "reset", 0)
4223 }
4224 }, q = function (e) {
4225 r.viewport.unbind("touchmove", H);
4226 var t = e.originalEvent, n = 0;
4227 if (r.touch.end.x = t.changedTouches[0].pageX, r.touch.end.y = t.changedTouches[0].pageY, "fade" == r.settings.mode) {
4228 var i = Math.abs(r.touch.start.x - r.touch.end.x);
4229 i >= r.settings.swipeThreshold && (r.touch.start.x > r.touch.end.x ? s.goToNextSlide() : s.goToPrevSlide(), s.stopAuto())
4230 } else {
4231 var i = 0;
4232 "horizontal" == r.settings.mode ? (i = r.touch.end.x - r.touch.start.x, n = r.touch.originalPos.left) : (i = r.touch.end.y - r.touch.start.y, n = r.touch.originalPos.top), !r.settings.infiniteLoop && (0 == r.active.index && i > 0 || r.active.last && 0 > i) ? w(n, "reset", 200) : Math.abs(i) >= r.settings.swipeThreshold ? (0 > i ? s.goToNextSlide() : s.goToPrevSlide(), s.stopAuto()) : w(n, "reset", 200)
4233 }
4234 r.viewport.unbind("touchend", q)
4235 }, $ = function () {
4236 if (r.initialized) {
4237 var t = e(window).width(), n = e(window).height();
4238 (a != t || l != n) && (a = t, l = n, s.redrawSlider(), r.settings.onSliderResize.call(s, r.active.index))
4239 }
4240 };
4241 return s.goToSlide = function (t, n) {
4242 if (!r.working && r.active.index != t)if (r.working = !0, r.oldIndex = r.active.index, r.active.index = 0 > t ? v() - 1 : t >= v() ? 0 : t, r.settings.onSlideBefore(r.children.eq(r.active.index), r.oldIndex, r.active.index), "next" == n ? r.settings.onSlideNext(r.children.eq(r.active.index), r.oldIndex, r.active.index) : "prev" == n && r.settings.onSlidePrev(r.children.eq(r.active.index), r.oldIndex, r.active.index), r.active.last = r.active.index >= v() - 1, r.settings.pager && O(r.active.index), r.settings.controls && M(), "fade" == r.settings.mode) r.settings.adaptiveHeight && r.viewport.height() != h() && r.viewport.animate({height: h()}, r.settings.adaptiveHeightSpeed), r.children.filter(":visible").fadeOut(r.settings.speed).css({zIndex: 0}), r.children.eq(r.active.index).css("zIndex", r.settings.slideZIndex + 1).fadeIn(r.settings.speed, function () {
4243 e(this).css("zIndex", r.settings.slideZIndex), D()
4244 }); else {
4245 r.settings.adaptiveHeight && r.viewport.height() != h() && r.viewport.animate({height: h()}, r.settings.adaptiveHeightSpeed);
4246 var i = 0, o = {left: 0, top: 0};
4247 if (!r.settings.infiniteLoop && r.carousel && r.active.last)if ("horizontal" == r.settings.mode) {
4248 var a = r.children.eq(r.children.length - 1);
4249 o = a.position(), i = r.viewport.width() - a.outerWidth()
4250 } else {
4251 var l = r.children.length - r.settings.minSlides;
4252 o = r.children.eq(l).position()
4253 } else if (r.carousel && r.active.last && "prev" == n) {
4254 var p = 1 == r.settings.moveSlides ? r.settings.maxSlides - y() : (v() - 1) * y() - (r.children.length - r.settings.maxSlides),
4255 a = s.children(".bx-clone").eq(p);
4256 o = a.position()
4257 } else if ("next" == n && 0 == r.active.index) o = s.find("> .bx-clone").eq(r.settings.maxSlides).position(), r.active.last = !1; else if (t >= 0) {
4258 var c = t * y();
4259 o = r.children.eq(c).position()
4260 }
4261 if ("undefined" != typeof o) {
4262 var u = "horizontal" == r.settings.mode ? -(o.left - i) : -o.top;
4263 w(u, "slide", r.settings.speed)
4264 }
4265 }
4266 }, s.goToNextSlide = function () {
4267 if (r.settings.infiniteLoop || !r.active.last) {
4268 var e = parseInt(r.active.index) + 1;
4269 s.goToSlide(e, "next")
4270 }
4271 }, s.goToPrevSlide = function () {
4272 if (r.settings.infiniteLoop || 0 != r.active.index) {
4273 var e = parseInt(r.active.index) - 1;
4274 s.goToSlide(e, "prev")
4275 }
4276 }, s.startAuto = function (e) {
4277 r.interval || (r.interval = setInterval(function () {
4278 "next" == r.settings.autoDirection ? s.goToNextSlide() : s.goToPrevSlide()
4279 }, r.settings.pause), r.settings.autoControls && 1 != e && j("stop"))
4280 }, s.stopAuto = function (e) {
4281 r.interval && (clearInterval(r.interval), r.interval = null, r.settings.autoControls && 1 != e && j("start"))
4282 }, s.getCurrentSlide = function () {
4283 return r.active.index
4284 }, s.getCurrentSlideElement = function () {
4285 return r.children.eq(r.active.index)
4286 }, s.getSlideCount = function () {
4287 return r.children.length
4288 }, s.redrawSlider = function () {
4289 r.children.add(s.find(".bx-clone")).width(m()), r.viewport.css("height", h()), r.settings.ticker || b(), r.active.last && (r.active.index = v() - 1), r.active.index >= v() && (r.active.last = !0), r.settings.pager && !r.settings.pagerCustom && (x(), O(r.active.index))
4290 }, s.destroySlider = function () {
4291 r.initialized && (r.initialized = !1, e(".bx-clone", this).remove(), r.children.each(function () {
4292 void 0 != e(this).data("origStyle") ? e(this).attr("style", e(this).data("origStyle")) : e(this).removeAttr("style")
4293 }), void 0 != e(this).data("origStyle") ? this.attr("style", e(this).data("origStyle")) : e(this).removeAttr("style"), e(this).unwrap().unwrap(), r.controls.el && r.controls.el.remove(), r.controls.next && r.controls.next.remove(), r.controls.prev && r.controls.prev.remove(), r.pagerEl && r.settings.controls && r.pagerEl.remove(), e(".bx-caption", this).remove(), r.controls.autoEl && r.controls.autoEl.remove(), clearInterval(r.interval), r.settings.responsive && e(window).unbind("resize", $))
4294 }, s.reloadSlider = function (e) {
4295 void 0 != e && (o = e), s.destroySlider(), p()
4296 }, p(), this
4297 }
4298}(jQuery), function (e, t) {
4299 "function" == typeof define && define.amd ? define(t) : "object" == typeof exports ? module.exports = t() : e.NProgress = t()
4300}(this, function () {
4301 function e(e, t, n) {
4302 return t > e ? t : e > n ? n : e
4303 }
4304
4305 function t(e) {
4306 return 100 * (-1 + e)
4307 }
4308
4309 function n(e, n, i) {
4310 var o;
4311 return o = "translate3d" === p.positionUsing ? {transform: "translate3d(" + t(e) + "%,0,0)"} : "translate" === p.positionUsing ? {transform: "translate(" + t(e) + "%,0)"} : {"margin-left": t(e) + "%"}, o.transition = "all " + n + "ms " + i, o
4312 }
4313
4314 function i(e, t) {
4315 var n = "string" == typeof e ? e : s(e);
4316 return n.indexOf(" " + t + " ") >= 0
4317 }
4318
4319 function o(e, t) {
4320 var n = s(e), o = n + t;
4321 i(n, t) || (e.className = o.substring(1))
4322 }
4323
4324 function r(e, t) {
4325 var n, o = s(e);
4326 i(e, t) && (n = o.replace(" " + t + " ", " "), e.className = n.substring(1, n.length - 1))
4327 }
4328
4329 function s(e) {
4330 return (" " + (e.className || "") + " ").replace(/\s+/gi, " ")
4331 }
4332
4333 function a(e) {
4334 e && e.parentNode && e.parentNode.removeChild(e)
4335 }
4336
4337 var l = {};
4338 l.version = "0.2.0";
4339 var p = l.settings = {
4340 minimum: .08,
4341 easing: "ease",
4342 positionUsing: "",
4343 speed: 200,
4344 trickle: !0,
4345 trickleRate: .02,
4346 trickleSpeed: 800,
4347 showSpinner: !0,
4348 barSelector: '[role="bar"]',
4349 spinnerSelector: '[role="spinner"]',
4350 parent: "body",
4351 template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'
4352 };
4353 l.configure = function (e) {
4354 var t, n;
4355 for (t in e)n = e[t], void 0 !== n && e.hasOwnProperty(t) && (p[t] = n);
4356 return this
4357 }, l.status = null, l.set = function (t) {
4358 var i = l.isStarted();
4359 t = e(t, p.minimum, 1), l.status = 1 === t ? null : t;
4360 var o = l.render(!i), r = o.querySelector(p.barSelector), s = p.speed, a = p.easing;
4361 return o.offsetWidth, c(function (e) {
4362 "" === p.positionUsing && (p.positionUsing = l.getPositioningCSS()), u(r, n(t, s, a)), 1 === t ? (u(o, {
4363 transition: "none",
4364 opacity: 1
4365 }), o.offsetWidth, setTimeout(function () {
4366 u(o, {transition: "all " + s + "ms linear", opacity: 0}), setTimeout(function () {
4367 l.remove(), e()
4368 }, s)
4369 }, s)) : setTimeout(e, s)
4370 }), this
4371 }, l.isStarted = function () {
4372 return "number" == typeof l.status
4373 }, l.start = function () {
4374 l.status || l.set(0);
4375 var e = function () {
4376 setTimeout(function () {
4377 l.status && (l.trickle(), e())
4378 }, p.trickleSpeed)
4379 };
4380 return p.trickle && e(), this
4381 }, l.done = function (e) {
4382 return e || l.status ? l.inc(.3 + .5 * Math.random()).set(1) : this
4383 }, l.inc = function (t) {
4384 var n = l.status;
4385 return n ? ("number" != typeof t && (t = (1 - n) * e(Math.random() * n, .1, .95)), n = e(n + t, 0, .994), l.set(n)) : l.start()
4386 }, l.trickle = function () {
4387 return l.inc(Math.random() * p.trickleRate)
4388 }, function () {
4389 var e = 0, t = 0;
4390 l.promise = function (n) {
4391 return n && "resolved" !== n.state() ? (0 === t && l.start(), e++, t++, n.always(function () {
4392 t--, 0 === t ? (e = 0, l.done()) : l.set((e - t) / e)
4393 }), this) : this
4394 }
4395 }(), l.render = function (e) {
4396 if (l.isRendered())return document.getElementById("nprogress");
4397 o(document.documentElement, "nprogress-busy");
4398 var n = document.createElement("div");
4399 n.id = "nprogress", n.innerHTML = p.template;
4400 var i, r = n.querySelector(p.barSelector), s = e ? "-100" : t(l.status || 0),
4401 c = document.querySelector(p.parent);
4402 return u(r, {
4403 transition: "all 0 linear",
4404 transform: "translate3d(" + s + "%,0,0)"
4405 }), p.showSpinner || (i = n.querySelector(p.spinnerSelector), i && a(i)), c != document.body && o(c, "nprogress-custom-parent"), c.appendChild(n), n
4406 }, l.remove = function () {
4407 r(document.documentElement, "nprogress-busy"), r(document.querySelector(p.parent), "nprogress-custom-parent");
4408 var e = document.getElementById("nprogress");
4409 e && a(e)
4410 }, l.isRendered = function () {
4411 return !!document.getElementById("nprogress")
4412 }, l.getPositioningCSS = function () {
4413 var e = document.body.style,
4414 t = "WebkitTransform" in e ? "Webkit" : "MozTransform" in e ? "Moz" : "msTransform" in e ? "ms" : "OTransform" in e ? "O" : "";
4415 return t + "Perspective" in e ? "translate3d" : t + "Transform" in e ? "translate" : "margin"
4416 };
4417 var c = function () {
4418 function e() {
4419 var n = t.shift();
4420 n && n(e)
4421 }
4422
4423 var t = [];
4424 return function (n) {
4425 t.push(n), 1 == t.length && e()
4426 }
4427 }(), u = function () {
4428 function e(e) {
4429 return e.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function (e, t) {
4430 return t.toUpperCase()
4431 })
4432 }
4433
4434 function t(e) {
4435 var t = document.body.style;
4436 if (e in t)return e;
4437 for (var n, i = o.length, r = e.charAt(0).toUpperCase() + e.slice(1); i--;)if (n = o[i] + r, n in t)return n;
4438 return e
4439 }
4440
4441 function n(n) {
4442 return n = e(n), r[n] || (r[n] = t(n))
4443 }
4444
4445 function i(e, t, i) {
4446 t = n(t), e.style[t] = i
4447 }
4448
4449 var o = ["Webkit", "O", "Moz", "ms"], r = {};
4450 return function (e, t) {
4451 var n, o, r = arguments;
4452 if (2 == r.length)for (n in t)o = t[n], void 0 !== o && t.hasOwnProperty(n) && i(e, n, o); else i(e, r[1], r[2])
4453 }
4454 }();
4455 return l
4456}), function () {
4457 var e;
4458 e = window.jQuery || window.Zepto || window.$, e.fn.fancySelect = function (t) {
4459 var n, i;
4460 return null == t && (t = {}), i = e.extend({
4461 forceiOS: !1, includeBlank: !1, optionTemplate: function (e) {
4462 return e.text()
4463 }, triggerTemplate: function (e) {
4464 return e.text()
4465 }
4466 }, t), n = !!navigator.userAgent.match(/iP(hone|od|ad)/i) && !navigator.userAgent.match(/Windows Phone/i), this.each(function () {
4467 var t, o, r, s, a, l, p;
4468 return s = e(this), s.hasClass("fancified") || "SELECT" !== s[0].tagName ? void 0 : (s.addClass("fancified"), s.css({
4469 width: 1,
4470 height: 1,
4471 display: "block",
4472 position: "absolute",
4473 top: 0,
4474 left: 0,
4475 opacity: 0
4476 }), s.wrap('<div class="fancy-select">'), p = s.parent(), s.data("class") && p.addClass(s.data("class")), p.append('<div class="trigger">'), (!n || i.forceiOS) && p.append('<ul class="options">'), a = p.find(".trigger"), r = p.find(".options"), o = s.prop("disabled"), o && p.addClass("disabled"), l = function () {
4477 var e;
4478 return e = i.triggerTemplate(s.find(":selected")), a.html(e)
4479 }, s.on("blur.fs", function () {
4480 return a.hasClass("open") ? setTimeout(function () {
4481 return a.trigger("close.fs")
4482 }, 120) : void 0
4483 }), a.on("close.fs", function () {
4484 return a.removeClass("open"), r.removeClass("open")
4485 }), a.on("click.fs", function () {
4486 var t, l;
4487 if (!o)if (a.toggleClass("open"), n && !i.forceiOS) {
4488 if (a.hasClass("open"))return s.focus()
4489 } else if (a.hasClass("open") && (l = a.parent(), t = l.offsetParent(), l.offset().top + l.outerHeight() + r.outerHeight() + 20 > e(window).height() + e(window).scrollTop() ? r.addClass("overflowing") : r.removeClass("overflowing")), r.toggleClass("open"), !n)return s.focus()
4490 }), s.on("enable", function () {
4491 s.prop("disabled", !1), p.removeClass("disabled"), o = !1
4492 }), s.on("disable", function () {
4493 return s.prop("disabled", !0), p.addClass("disabled"), o = !0
4494 }), s.on("change.fs", function (e) {
4495 return e.originalEvent && e.originalEvent.isTrusted ? e.stopPropagation() : l()
4496 }), s.on("keydown", function (e) {
4497 var t, n, i;
4498 if (i = e.which, t = r.find(".hover"), t.removeClass("hover"), r.hasClass("open")) {
4499 if (38 === i ? (e.preventDefault(), t.length && t.index() > 0 ? t.prev().addClass("hover") : r.find("li:last-child").addClass("hover")) : 40 === i ? (e.preventDefault(), t.length && t.index() < r.find("li").length - 1 ? t.next().addClass("hover") : r.find("li:first-child").addClass("hover")) : 27 === i ? (e.preventDefault(), a.trigger("click.fs")) : 13 === i || 32 === i ? (e.preventDefault(), t.trigger("click.fs")) : 9 === i && a.hasClass("open") && a.trigger("close.fs"), n = r.find(".hover"), n.length)return r.scrollTop(0), r.scrollTop(n.position().top - 12)
4500 } else if (13 === i || 32 === i || 38 === i || 40 === i)return e.preventDefault(), a.trigger("click.fs")
4501 }), r.on("click.fs", "li", function () {
4502 var t;
4503 return t = e(this), s.val(t.data("raw-value")), n || s.trigger("blur.fs").trigger("focus.fs"), r.find(".selected").removeClass("selected"), t.addClass("selected"), a.addClass("selected"), s.val(t.data("raw-value")).trigger("change.fs").trigger("blur.fs").trigger("focus.fs")
4504 }), r.on("mouseenter.fs", "li", function () {
4505 var t, n;
4506 return n = e(this), t = r.find(".hover"), t.removeClass("hover"), n.addClass("hover")
4507 }), r.on("mouseleave.fs", "li", function () {
4508 return r.find(".hover").removeClass("hover")
4509 }), t = function () {
4510 var t;
4511 return l(), !n || i.forceiOS ? (t = s.find("option"), s.find("option").each(function (t, n) {
4512 var o;
4513 return n = e(n), n.prop("disabled") || !n.val() && !i.includeBlank ? void 0 : (o = i.optionTemplate(n), n.prop("selected") ? r.append('<li data-raw-value="' + n.val() + '" class="selected">' + o + "</li>") : r.append('<li data-raw-value="' + n.val() + '">' + o + "</li>"))
4514 })) : void 0
4515 }, s.on("update.fs", function () {
4516 return p.find(".options").empty(), t()
4517 }), t())
4518 })
4519 }
4520}.call(this), !function (e) {
4521 var t = function (t, i) {
4522 if (this.element = e(t), this.format = n.parseFormat(i.format || this.element.data("date-format") || "mm/dd/yyyy"), this.picker = e(n.template).appendTo("body").on({click: e.proxy(this.click, this)}), this.isInput = this.element.is("input"), this.component = this.element.is(".date") ? this.element.find(".add-on") : !1, this.isInput ? this.element.on({
4523 focus: e.proxy(this.show, this),
4524 keyup: e.proxy(this.update, this)
4525 }) : this.component ? this.component.on("click", e.proxy(this.show, this)) : this.element.on("click", e.proxy(this.show, this)), this.minViewMode = i.minViewMode || this.element.data("date-minviewmode") || 0, "string" == typeof this.minViewMode)switch (this.minViewMode) {
4526 case"months":
4527 this.minViewMode = 1;
4528 break;
4529 case"years":
4530 this.minViewMode = 2;
4531 break;
4532 default:
4533 this.minViewMode = 0
4534 }
4535 if (this.viewMode = i.viewMode || this.element.data("date-viewmode") || 0, "string" == typeof this.viewMode)switch (this.viewMode) {
4536 case"months":
4537 this.viewMode = 1;
4538 break;
4539 case"years":
4540 this.viewMode = 2;
4541 break;
4542 default:
4543 this.viewMode = 0
4544 }
4545 this.startViewMode = this.viewMode, this.weekStart = i.weekStart || this.element.data("date-weekstart") || 0, this.weekEnd = 0 === this.weekStart ? 6 : this.weekStart - 1, this.onRender = i.onRender, this.fillDow(), this.fillMonths(), this.update(), this.showMode()
4546 };
4547 t.prototype = {
4548 constructor: t, show: function (t) {
4549 this.picker.show(), this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(), this.place(), e(window).on("resize", e.proxy(this.place, this)), t && (t.stopPropagation(), t.preventDefault()), !this.isInput;
4550 var n = this;
4551 e(document).on("mousedown", function (t) {
4552 0 == e(t.target).closest(".datepicker").length && n.hide()
4553 }), this.element.trigger({type: "show", date: this.date})
4554 }, hide: function () {
4555 this.picker.hide(), e(window).off("resize", this.place), this.viewMode = this.startViewMode, this.showMode(), this.isInput || e(document).off("mousedown", this.hide), this.element.trigger({
4556 type: "hide",
4557 date: this.date
4558 })
4559 }, set: function () {
4560 var e = n.formatDate(this.date, this.format);
4561 this.isInput ? this.element.prop("value", e) : (this.component && this.element.find("input").prop("value", e), this.element.data("date", e))
4562 }, setValue: function (e) {
4563 this.date = "string" == typeof e ? n.parseDate(e, this.format) : new Date(e), this.set(), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
4564 }, place: function () {
4565 var e = this.component ? this.component.offset() : this.element.offset();
4566 this.picker.css({top: e.top + this.height, left: e.left})
4567 }, update: function (e) {
4568 this.date = n.parseDate("string" == typeof e ? e : this.isInput ? this.element.prop("value") : this.element.data("date"), this.format), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
4569 }, fillDow: function () {
4570 for (var e = this.weekStart, t = "<tr>"; e < this.weekStart + 7;)t += '<th class="dow">' + n.dates.daysMin[e++ % 7] + "</th>";
4571 t += "</tr>", this.picker.find(".datepicker-days thead").append(t)
4572 }, fillMonths: function () {
4573 for (var e = "", t = 0; 12 > t;)e += '<span class="month">' + n.dates.monthsShort[t++] + "</span>";
4574 this.picker.find(".datepicker-months td").append(e)
4575 }, fill: function () {
4576 var e = new Date(this.viewDate), t = e.getFullYear(), i = e.getMonth(), o = this.date.valueOf();
4577 this.picker.find(".datepicker-days th:eq(1)").text(n.dates.months[i] + " " + t);
4578 var r = new Date(t, i - 1, 28, 0, 0, 0, 0), s = n.getDaysInMonth(r.getFullYear(), r.getMonth());
4579 r.setDate(s), r.setDate(s - (r.getDay() - this.weekStart + 7) % 7);
4580 var a = new Date(r);
4581 a.setDate(a.getDate() + 42), a = a.valueOf();
4582 for (var l, p, c, u = []; r.valueOf() < a;)r.getDay() === this.weekStart && u.push("<tr>"), l = this.onRender(r), p = r.getFullYear(), c = r.getMonth(), i > c && p === t || t > p ? l += " old" : (c > i && p === t || p > t) && (l += " new"), r.valueOf() === o && (l += " active"), u.push('<td class="day ' + l + '">' + r.getDate() + "</td>"), r.getDay() === this.weekEnd && u.push("</tr>"), r.setDate(r.getDate() + 1);
4583 this.picker.find(".datepicker-days tbody").empty().append(u.join(""));
4584 var d = this.date.getFullYear(),
4585 h = this.picker.find(".datepicker-months").find("th:eq(1)").text(t).end().find("span").removeClass("active");
4586 d === t && h.eq(this.date.getMonth()).addClass("active"), u = "", t = 10 * parseInt(t / 10, 10);
4587 var f = this.picker.find(".datepicker-years").find("th:eq(1)").text(t + "-" + (t + 9)).end().find("td");
4588 t -= 1;
4589 for (var m = -1; 11 > m; m++)u += '<span class="year' + (-1 === m || 10 === m ? " old" : "") + (d === t ? " active" : "") + '">' + t + "</span>", t += 1;
4590 f.html(u)
4591 }, click: function (t) {
4592 t.stopPropagation(), t.preventDefault();
4593 var i = e(t.target).closest("span, td, th");
4594 if (1 === i.length)switch (i[0].nodeName.toLowerCase()) {
4595 case"th":
4596 switch (i[0].className) {
4597 case"switch":
4598 this.showMode(1);
4599 break;
4600 case"prev":
4601 case"next":
4602 this.viewDate["set" + n.modes[this.viewMode].navFnc].call(this.viewDate, this.viewDate["get" + n.modes[this.viewMode].navFnc].call(this.viewDate) + n.modes[this.viewMode].navStep * ("prev" === i[0].className ? -1 : 1)), this.fill(), this.set()
4603 }
4604 break;
4605 case"span":
4606 if (i.is(".month")) {
4607 var o = i.parent().find("span").index(i);
4608 this.viewDate.setMonth(o)
4609 } else {
4610 var r = parseInt(i.text(), 10) || 0;
4611 this.viewDate.setFullYear(r)
4612 }
4613 0 !== this.viewMode && (this.date = new Date(this.viewDate), this.element.trigger({
4614 type: "changeDate",
4615 date: this.date,
4616 viewMode: n.modes[this.viewMode].clsName
4617 })), this.showMode(-1), this.fill(), this.set();
4618 break;
4619 case"td":
4620 if (i.is(".day") && !i.is(".disabled")) {
4621 var s = parseInt(i.text(), 10) || 1, o = this.viewDate.getMonth();
4622 i.is(".old") ? o -= 1 : i.is(".new") && (o += 1);
4623 var r = this.viewDate.getFullYear();
4624 this.date = new Date(r, o, s, 0, 0, 0, 0), this.viewDate = new Date(r, o, Math.min(28, s), 0, 0, 0, 0), this.fill(), this.set(), this.element.trigger({
4625 type: "changeDate",
4626 date: this.date,
4627 viewMode: n.modes[this.viewMode].clsName
4628 })
4629 }
4630 }
4631 }, mousedown: function (e) {
4632 e.stopPropagation(), e.preventDefault()
4633 }, showMode: function (e) {
4634 e && (this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + e))), this.picker.find(">div").hide().filter(".datepicker-" + n.modes[this.viewMode].clsName).show()
4635 }
4636 }, e.fn.datepicker = function (n, i) {
4637 return this.each(function () {
4638 var o = e(this), r = o.data("datepicker"), s = "object" == typeof n && n;
4639 r || o.data("datepicker", r = new t(this, e.extend({}, e.fn.datepicker.defaults, s))), "string" == typeof n && r[n](i)
4640 })
4641 }, e.fn.datepicker.defaults = {
4642 onRender: function () {
4643 return ""
4644 }
4645 }, e.fn.datepicker.Constructor = t;
4646 var n = {
4647 modes: [{clsName: "days", navFnc: "Month", navStep: 1}, {
4648 clsName: "months",
4649 navFnc: "FullYear",
4650 navStep: 1
4651 }, {clsName: "years", navFnc: "FullYear", navStep: 10}],
4652 dates: {
4653 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
4654 daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
4655 daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
4656 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
4657 monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
4658 },
4659 isLeapYear: function (e) {
4660 return e % 4 === 0 && e % 100 !== 0 || e % 400 === 0
4661 },
4662 getDaysInMonth: function (e, t) {
4663 return [31, n.isLeapYear(e) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][t]
4664 },
4665 parseFormat: function (e) {
4666 var t = e.match(/[.\/\-\s].*?/), n = e.split(/\W+/);
4667 if (!t || !n || 0 === n.length)throw new Error("Invalid date format.");
4668 return {separator: t, parts: n}
4669 },
4670 parseDate: function (e, t) {
4671 var n, i = e.split(t.separator), e = new Date;
4672 if (e.setHours(0), e.setMinutes(0), e.setSeconds(0), e.setMilliseconds(0), i.length === t.parts.length) {
4673 for (var o = e.getFullYear(), r = e.getDate(), s = e.getMonth(), a = 0, l = t.parts.length; l > a; a++)switch (n = parseInt(i[a], 10) || 1, t.parts[a]) {
4674 case"dd":
4675 case"d":
4676 r = n, e.setDate(n);
4677 break;
4678 case"mm":
4679 case"m":
4680 s = n - 1, e.setMonth(n - 1);
4681 break;
4682 case"yy":
4683 o = 2e3 + n, e.setFullYear(2e3 + n);
4684 break;
4685 case"yyyy":
4686 o = n, e.setFullYear(n)
4687 }
4688 e = new Date(o, s, r, 0, 0, 0)
4689 }
4690 return e
4691 },
4692 formatDate: function (e, t) {
4693 var n = {
4694 d: e.getDate(),
4695 m: e.getMonth() + 1,
4696 yy: e.getFullYear().toString().substring(2),
4697 yyyy: e.getFullYear()
4698 };
4699 n.dd = (n.d < 10 ? "0" : "") + n.d, n.mm = (n.m < 10 ? "0" : "") + n.m;
4700 for (var e = [], i = 0, o = t.parts.length; o > i; i++)e.push(n[t.parts[i]]);
4701 return e.join(t.separator)
4702 },
4703 headTemplate: '<thead><tr><th class="prev">‹</th><th colspan="5" class="switch"></th><th class="next">›</th></tr></thead>',
4704 contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>'
4705 };
4706 n.template = '<div class="datepicker dropdown-menu"><div class="datepicker-days"><table class=" table-condensed">' + n.headTemplate + '<tbody></tbody></table></div><div class="datepicker-months"><table class="table-condensed">' + n.headTemplate + n.contTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + n.headTemplate + n.contTemplate + "</table></div></div>"
4707}(window.jQuery), function (e) {
4708 var t = Array.prototype.slice, n = Array.prototype.splice, i = {
4709 topSpacing: 0,
4710 bottomSpacing: 0,
4711 className: "is-sticky",
4712 wrapperClassName: "sticky-wrapper",
4713 center: !1,
4714 getWidthFrom: "",
4715 widthFromWrapper: !0,
4716 responsiveWidth: !1
4717 }, o = e(window), r = e(document), s = [], a = o.height(), l = function () {
4718 for (var t = o.scrollTop(), n = r.height(), i = n - a, l = t > i ? i - t : 0, p = 0; p < s.length; p++) {
4719 var c = s[p], u = c.stickyWrapper.offset().top, d = u - c.topSpacing - l;
4720 if (c.stickyWrapper.css("height", c.stickyElement.outerHeight()), d >= t) null !== c.currentTop && (c.stickyElement.css({
4721 width: "",
4722 position: "",
4723 top: ""
4724 }), c.stickyElement.parent().removeClass(c.className), c.stickyElement.trigger("sticky-end", [c]), c.currentTop = null); else {
4725 var h = n - c.stickyElement.outerHeight() - c.topSpacing - c.bottomSpacing - t - l;
4726 if (0 > h ? h += c.topSpacing : h = c.topSpacing, c.currentTop != h) {
4727 var f;
4728 c.getWidthFrom ? f = e(c.getWidthFrom).width() || null : c.widthFromWrapper && (f = c.stickyWrapper.width()), null == f && (f = c.stickyElement.width()), c.stickyElement.css("width", f).css("position", "fixed").css("top", h), c.stickyElement.parent().addClass(c.className), null === c.currentTop ? c.stickyElement.trigger("sticky-start", [c]) : c.stickyElement.trigger("sticky-update", [c]), c.currentTop === c.topSpacing && c.currentTop > h || null === c.currentTop && h < c.topSpacing ? c.stickyElement.trigger("sticky-bottom-reached", [c]) : null !== c.currentTop && h === c.topSpacing && c.currentTop < h && c.stickyElement.trigger("sticky-bottom-unreached", [c]), c.currentTop = h
4729 }
4730 }
4731 }
4732 }, p = function () {
4733 a = o.height();
4734 for (var t = 0; t < s.length; t++) {
4735 var n = s[t], i = null;
4736 n.getWidthFrom ? n.responsiveWidth === !0 && (i = e(n.getWidthFrom).width()) : n.widthFromWrapper && (i = n.stickyWrapper.width()), null != i && n.stickyElement.css("width", i)
4737 }
4738 }, c = {
4739 init: function (t) {
4740 var n = e.extend({}, i, t);
4741 return this.each(function () {
4742 var t = e(this), o = t.attr("id"), r = t.outerHeight(),
4743 a = o ? o + "-" + i.wrapperClassName : i.wrapperClassName,
4744 l = e("<div></div>").attr("id", a).addClass(n.wrapperClassName);
4745 t.wrapAll(l);
4746 var p = t.parent();
4747 n.center && p.css({
4748 width: t.outerWidth(),
4749 marginLeft: "auto",
4750 marginRight: "auto"
4751 }), "right" == t.css("float") && t.css({"float": "none"}).parent().css({"float": "right"}), p.css("height", r), n.stickyElement = t, n.stickyWrapper = p, n.currentTop = null, s.push(n)
4752 })
4753 }, update: l, unstick: function () {
4754 return this.each(function () {
4755 for (var t = this, i = e(t), o = -1, r = s.length; r-- > 0;)s[r].stickyElement.get(0) === t && (n.call(s, r, 1), o = r);
4756 -1 != o && (i.unwrap(), i.css({width: "", position: "", top: "", "float": ""}))
4757 })
4758 }
4759 };
4760 window.addEventListener ? (window.addEventListener("scroll", l, !1), window.addEventListener("resize", p, !1)) : window.attachEvent && (window.attachEvent("onscroll", l), window.attachEvent("onresize", p)), e.fn.sticky = function (n) {
4761 return c[n] ? c[n].apply(this, t.call(arguments, 1)) : "object" != typeof n && n ? (e.error("Method " + n + " does not exist on jQuery.sticky"), void 0) : c.init.apply(this, arguments)
4762 }, e.fn.unstick = function (n) {
4763 return c[n] ? c[n].apply(this, t.call(arguments, 1)) : "object" != typeof n && n ? (e.error("Method " + n + " does not exist on jQuery.sticky"), void 0) : c.unstick.apply(this, arguments)
4764 }, e(function () {
4765 setTimeout(l, 0)
4766 })
4767}(jQuery), function (e) {
4768 function t(e) {
4769 return e.replace(/(:|\.)/g, "\\$1")
4770 }
4771
4772 var n = "1.5.0", i = {}, o = {
4773 exclude: [],
4774 excludeWithin: [],
4775 offset: 0,
4776 direction: "top",
4777 scrollElement: null,
4778 scrollTarget: null,
4779 beforeScroll: function () {
4780 },
4781 afterScroll: function () {
4782 },
4783 easing: "swing",
4784 speed: 400,
4785 autoCoefficient: 2,
4786 preventDefault: !0
4787 }, r = function (t) {
4788 var n = [], i = !1, o = t.dir && "left" === t.dir ? "scrollLeft" : "scrollTop";
4789 return this.each(function () {
4790 if (this !== document && this !== window) {
4791 var t = e(this);
4792 t[o]() > 0 ? n.push(this) : (t[o](1), i = t[o]() > 0, i && n.push(this), t[o](0))
4793 }
4794 }), n.length || this.each(function () {
4795 "BODY" === this.nodeName && (n = [this])
4796 }), "first" === t.el && n.length > 1 && (n = [n[0]]), n
4797 };
4798 e.fn.extend({
4799 scrollable: function (e) {
4800 var t = r.call(this, {dir: e});
4801 return this.pushStack(t)
4802 }, firstScrollable: function (e) {
4803 var t = r.call(this, {el: "first", dir: e});
4804 return this.pushStack(t)
4805 }, smoothScroll: function (n, i) {
4806 if (n = n || {}, "options" === n)return i ? this.each(function () {
4807 var t = e(this), n = e.extend(t.data("ssOpts") || {}, i);
4808 e(this).data("ssOpts", n)
4809 }) : this.first().data("ssOpts");
4810 var o = e.extend({}, e.fn.smoothScroll.defaults, n), r = e.smoothScroll.filterPath(location.pathname);
4811 return this.unbind("click.smoothscroll").bind("click.smoothscroll", function (n) {
4812 var i = this, s = e(this), a = e.extend({}, o, s.data("ssOpts") || {}), l = o.exclude,
4813 p = a.excludeWithin, c = 0, u = 0, d = !0, h = {},
4814 f = location.hostname === i.hostname || !i.hostname,
4815 m = a.scrollTarget || (e.smoothScroll.filterPath(i.pathname) || r) === r, g = t(i.hash);
4816 if (a.scrollTarget || f && m && g) {
4817 for (; d && l.length > c;)s.is(t(l[c++])) && (d = !1);
4818 for (; d && p.length > u;)s.closest(p[u++]).length && (d = !1)
4819 } else d = !1;
4820 d && (a.preventDefault && n.preventDefault(), e.extend(h, a, {
4821 scrollTarget: a.scrollTarget || g,
4822 link: i
4823 }), e.smoothScroll(h))
4824 }), this
4825 }
4826 }), e.smoothScroll = function (t, n) {
4827 if ("options" === t && "object" == typeof n)return e.extend(i, n);
4828 var o, r, s, a, l, p = 0, c = "offset", u = "scrollTop", d = {}, h = {};
4829 "number" == typeof t ? (o = e.extend({link: null}, e.fn.smoothScroll.defaults, i), s = t) : (o = e.extend({link: null}, e.fn.smoothScroll.defaults, t || {}, i), o.scrollElement && (c = "position", "static" === o.scrollElement.css("position") && o.scrollElement.css("position", "relative"))), u = "left" === o.direction ? "scrollLeft" : u, o.scrollElement ? (r = o.scrollElement, /^(?:HTML|BODY)$/.test(r[0].nodeName) || (p = r[u]())) : r = e("html, body").firstScrollable(o.direction), o.beforeScroll.call(r, o), s = "number" == typeof t ? t : n || e(o.scrollTarget)[c]() && e(o.scrollTarget)[c]()[o.direction] || 0, d[u] = s + p + o.offset, a = o.speed, "auto" === a && (l = d[u] - r.scrollTop(), 0 > l && (l *= -1), a = l / o.autoCoefficient), h = {
4830 duration: a,
4831 easing: o.easing,
4832 complete: function () {
4833 o.afterScroll.call(o.link, o)
4834 }
4835 }, o.step && (h.step = o.step), r.length ? r.stop().animate(d, h) : o.afterScroll.call(o.link, o)
4836 }, e.smoothScroll.version = n, e.smoothScroll.filterPath = function (e) {
4837 return e = e || "", e.replace(/^\//, "").replace(/(?:index|default).[a-zA-Z]{3,4}$/, "").replace(/\/$/, "")
4838 }, e.fn.smoothScroll.defaults = o
4839}(jQuery), function (e, t, n, i) {
4840 function o(t, n) {
4841 this.element = t, this.$element = e(t), this.options = e.extend({}, r, n), this._defaults = r, this.init()
4842 }
4843
4844 var r = {buttonText: "Browse", buttonClass: "btn btn--form", selectedFileEmptyText: ""};
4845 o.prototype.updateSelectedFile = function (e) {
4846 e ? this.$selectedFile.val("" + e.replace("C:\\fakepath\\", "")) : this.$selectedFile.val("" + this.options.selectedFileEmptyText)
4847 }, o.prototype.init = function () {
4848 var t = this, n = this.$element;
4849 if (n.is("div")) {
4850 var o = e('<input type="hidden" />');
4851 n = n.find("input[type='file']"), n.parent().find(".js-file-btn").on("click", function (e) {
4852 e.preventDefault(), n.click()
4853 })
4854 } else if (n.is("input")) {
4855 n.css("position", "absolute").css("z-index", -1);
4856 var r = e('<button class = "' + this.options.buttonClass + '">' + this.options.buttonText + "</button>"),
4857 o = e('<input type="text" class = "form__input form__input--file" placeholder="' + this.options.selectedFileEmptyText + '" />');
4858 r.on("click.fileprettify", function (e) {
4859 e.preventDefault(), n.click()
4860 }), e(n.parent()).append(o).append(r)
4861 }
4862 n.on("change.fileprettify", function () {
4863 var n = e(this).val();
4864 t.updateSelectedFile(n), e(this).data("ajax") !== i && e(this).closest("form").submit()
4865 }), this.$button = r, this.$selectedFile = o, this.updateSelectedFile(n.val())
4866 }, e.fn.fileprettify = function (t) {
4867 return this.each(function () {
4868 e.data(this, "fileprettify") || e.data(this, "fileprettify", new o(this, t))
4869 })
4870 }
4871}(jQuery, window, document);
4872var pb = pb || {};
4873pb.service = pb.service || {}, pb.service.Component = function () {
4874}, pb.service.Component.prototype.get = function (e) {
4875 return e instanceof jQuery || (e = $(e)), e.data("componentInstance")
4876}, Function.prototype.bind || (Function.prototype.bind = function (e) {
4877 if ("function" != typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
4878 var t = Array.prototype.slice.call(arguments, 1), n = this, i = function () {
4879 }, o = function () {
4880 return n.apply(this instanceof i && e ? this : e, t.concat(Array.prototype.slice.call(arguments)))
4881 };
4882 return i.prototype = this.prototype, o.prototype = new i, o
4883}), !function (e) {
4884 function t() {
4885 var e = arguments[0], n = t.cache;
4886 return n[e] && n.hasOwnProperty(e) || (n[e] = t.parse(e)), t.format.call(null, n[e], arguments)
4887 }
4888
4889 function n(e) {
4890 return Object.prototype.toString.call(e).slice(8, -1).toLowerCase()
4891 }
4892
4893 function i(e, t) {
4894 return Array(t + 1).join(e)
4895 }
4896
4897 var o = {
4898 not_string: /[^s]/,
4899 number: /[diefg]/,
4900 json: /[j]/,
4901 not_json: /[^j]/,
4902 text: /^[^\x25]+/,
4903 modulo: /^\x25{2}/,
4904 placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosuxX])/,
4905 key: /^([a-z_][a-z_\d]*)/i,
4906 key_access: /^\.([a-z_][a-z_\d]*)/i,
4907 index_access: /^\[(\d+)\]/,
4908 sign: /^[\+\-]/
4909 };
4910 t.format = function (e, r) {
4911 var s, a, l, p, c, u, d, h = 1, f = e.length, m = "", g = [], v = !0, y = "";
4912 for (a = 0; f > a; a++)if (m = n(e[a]), "string" === m) g[g.length] = e[a]; else if ("array" === m) {
4913 if (p = e[a], p[2])for (s = r[h], l = 0; l < p[2].length; l++) {
4914 if (!s.hasOwnProperty(p[2][l]))throw new Error(t("[sprintf] property '%s' does not exist", p[2][l]));
4915 s = s[p[2][l]]
4916 } else s = p[1] ? r[p[1]] : r[h++];
4917 if ("function" == n(s) && (s = s()), o.not_string.test(p[8]) && o.not_json.test(p[8]) && "number" != n(s) && isNaN(s))throw new TypeError(t("[sprintf] expecting number but found %s", n(s)));
4918 switch (o.number.test(p[8]) && (v = s >= 0), p[8]) {
4919 case"b":
4920 s = s.toString(2);
4921 break;
4922 case"c":
4923 s = String.fromCharCode(s);
4924 break;
4925 case"d":
4926 case"i":
4927 s = parseInt(s, 10);
4928 break;
4929 case"j":
4930 s = JSON.stringify(s, null, p[6] ? parseInt(p[6]) : 0);
4931 break;
4932 case"e":
4933 s = p[7] ? s.toExponential(p[7]) : s.toExponential();
4934 break;
4935 case"f":
4936 s = p[7] ? parseFloat(s).toFixed(p[7]) : parseFloat(s);
4937 break;
4938 case"g":
4939 s = p[7] ? parseFloat(s).toPrecision(p[7]) : parseFloat(s);
4940 break;
4941 case"o":
4942 s = s.toString(8);
4943 break;
4944 case"s":
4945 s = (s = String(s)) && p[7] ? s.substring(0, p[7]) : s;
4946 break;
4947 case"u":
4948 s >>>= 0;
4949 break;
4950 case"x":
4951 s = s.toString(16);
4952 break;
4953 case"X":
4954 s = s.toString(16).toUpperCase()
4955 }
4956 o.json.test(p[8]) ? g[g.length] = s : (!o.number.test(p[8]) || v && !p[3] ? y = "" : (y = v ? "+" : "-", s = s.toString().replace(o.sign, "")), u = p[4] ? "0" === p[4] ? "0" : p[4].charAt(1) : " ", d = p[6] - (y + s).length, c = p[6] && d > 0 ? i(u, d) : "", g[g.length] = p[5] ? y + s + c : "0" === u ? y + c + s : c + y + s)
4957 }
4958 return g.join("")
4959 }, t.cache = {}, t.parse = function (e) {
4960 for (var t = e, n = [], i = [], r = 0; t;) {
4961 if (null !== (n = o.text.exec(t))) i[i.length] = n[0]; else if (null !== (n = o.modulo.exec(t))) i[i.length] = "%"; else {
4962 if (null === (n = o.placeholder.exec(t)))throw new SyntaxError("[sprintf] unexpected placeholder");
4963 if (n[2]) {
4964 r |= 1;
4965 var s = [], a = n[2], l = [];
4966 if (null === (l = o.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");
4967 for (s[s.length] = l[1]; "" !== (a = a.substring(l[0].length));)if (null !== (l = o.key_access.exec(a))) s[s.length] = l[1]; else {
4968 if (null === (l = o.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");
4969 s[s.length] = l[1]
4970 }
4971 n[2] = s
4972 } else r |= 2;
4973 if (3 === r)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
4974 i[i.length] = n
4975 }
4976 t = t.substring(n[0].length)
4977 }
4978 return i
4979 };
4980 var r = function (e, n, i) {
4981 return i = (n || []).slice(0), i.splice(0, 0, e), t.apply(null, i)
4982 };
4983 "undefined" != typeof exports ? (exports.sprintf = t, exports.vsprintf = r) : (e.sprintf = t, e.vsprintf = r, "function" == typeof define && define.amd && define(function () {
4984 return {sprintf: t, vsprintf: r}
4985 }))
4986}("undefined" == typeof window ? this : window), $.fn.serializeObject = function () {
4987 var e = {}, t = this.serializeArray();
4988 return $.each(t, function () {
4989 void 0 !== e[this.name] ? (e[this.name].push || (e[this.name] = [e[this.name]]), e[this.name].push(this.value || "")) : e[this.name] = this.value || ""
4990 }), e
4991};
4992var pb = pb || {};
4993pb.Exception = pb.Exception || {}, pb.Exception.handle = function (e) {
4994 if (!(pb.debug || "localStorage" in window && localStorage.getItem("pbdebug")))throw e;
4995 if (!("console" in window))throw e;
4996 "toastr" in window && isCallable(toastr.error) && toastr.error(e, "Error"), console.error(e)
4997}, pb.Exception.setErrorLogging = function (e) {
4998 return e ? (window.onerror = function (t, n, i, o, r) {
4999 var s = navigator.userAgent || "unresolved", a = "undefined" !== r ? r.stack : "",
5000 l = sprintf("%s in %s (%d:%d) UA: %s - %s\n %s", t, n, i, o, s, window.location.href, a);
5001 $.ajax({url: e, data: {error_line: l}, type: "POST", global: !1})
5002 }, void 0) : (warn("Zadejte cestu k logovacimu skriptu."), void 0)
5003};
5004var pb = pb || {};
5005pb.Translator = function () {
5006 this.hasMessages = !1
5007}, pb.Translator.prototype.add = function (e, t, n) {
5008 var i;
5009 isDefined(this[e]) || (this[e] = {}), i = this[e];
5010 for (var o = t.split("."), r = o.length, s = 0; r - 1 > s; s++)isDefined(i[o[s]]) || (i[o[s]] = {}), i = i[o[s]];
5011 if (isDefined(o[r - 1])) {
5012 if ("object" == typeof i[o[r - 1]])throw"Klíč '" + t + "' je již definován.";
5013 i[o[r - 1]] = n.toString(), this.hasMessage = !0
5014 }
5015}, pb.Translator.prototype.translate = function (e, t, n) {
5016 if (!this.hasMessage)throw"Nejsou dostupné žádné zprávy";
5017 for (var i = this[e] || (this[e] = {}), o = t.split("."), r = 0; r < o.length; r++) {
5018 if ("undefined" == typeof i[o[r]])throw"Klíč '" + t + "' není nastaven pro '" + e + "' lokalizaci.";
5019 i = i[o[r]]
5020 }
5021 var s = i.toString();
5022 if (n)for (var r = 1; r <= n.length; r++)s = s.replace("$" + r, n[r - 1]);
5023 return s
5024};
5025var pb = pb || {};
5026pb.Dependencies = function () {
5027 this.list = {}, this.instances = {}
5028}, pb.Dependencies.prototype.get = function (e) {
5029 return this.instances[e] ? this.instances[e] : "function" == typeof this.list[e] ? this.instantiate_(e) : (warn("Závislost s názvem '" + e + "' není registrována v bootstrap.js."), null)
5030}, pb.Dependencies.prototype.getConstructor = function (e) {
5031 return this.list[e] ? this.list[e] : (warn("Závislost s názvem '" + e + "' není registrována v bootstrap.js."), null)
5032}, pb.Dependencies.prototype.instantiate_ = function (e) {
5033 return this.instances[e] = new this.list[e](this)
5034}, pb.Dependencies.prototype.register = function (e, t) {
5035 if (this.list[e])throw new Error("Název závislosti '" + e + "' je již zaregistrován.");
5036 if (!isDefined(t) && pb.debug)throw new Error("Závislost s názvem '" + e + "' nebyla nalezena.");
5037 this.list[e] = t
5038};
5039var pb = pb || {};
5040pb.Exception = pb.Exception || {}, pb.Exception.handle = function (e) {
5041 if (!(pb.debug || "localStorage" in window && localStorage.getItem("pbdebug")))throw e;
5042 if (!("console" in window))throw e;
5043 "toastr" in window && isCallable(toastr.error) && toastr.error(e, "Error"), console.error(e)
5044}, pb.Exception.setErrorLogging = function (e) {
5045 return e ? (window.onerror = function (t, n, i, o, r) {
5046 var s = navigator.userAgent || "unresolved", a = "undefined" !== r ? r.stack : "",
5047 l = sprintf("%s in %s (%d:%d) UA: %s - %s\n %s", t, n, i, o, s, window.location.href, a);
5048 $.ajax({url: e, data: {error_line: l}, type: "POST", global: !1})
5049 }, void 0) : (warn("Zadejte cestu k logovacimu skriptu."), void 0)
5050};
5051var pb = pb || {};
5052pb.version = "RC1.4.0", pb.Application = function (e, t, n, i) {
5053 this.dependencyFactory = t, this.componentFactory = e, this.request = n, this.template = i, this.guid = 0, this.translator = null, this.onStartup = null, this.onError = null, this.lastErrorPopup = null, this.requests = [], this.openPopups = [], this.locale = $("html").attr("lang") || null, null === this.locale && warn("Není nastavena lokalizace."), this.config = {}, this.checkRequiredDependencies_()
5054}, pb.Application.Attributes = {
5055 COMPONENT: "data-component",
5056 AJAX: "data-ajax",
5057 SNIPPET: "data-snippet-id"
5058}, pb.Application.Events = {
5059 AJAX_START: "-ajax-start",
5060 AJAX_SUCCESS: "-ajax-success",
5061 AJAX_ERROR: "-ajax-error",
5062 AJAX_COMPLETE: "-ajax-complete"
5063}, pb.Application.prototype.initPlugins = function () {
5064}, pb.Application.prototype.run = function () {
5065 try {
5066 this.initPlugins(), isCallable(this.onStartup) && this.onStartup(this), this.loadComponents()
5067 } catch (e) {
5068 pb.Exception.handle(e)
5069 }
5070}, pb.Application.prototype.nextGuid = function () {
5071 return ++this.guid
5072}, pb.Application.prototype.loadComponents = function (e) {
5073 e instanceof $ || (e = $(e || document.body));
5074 for (var t = e.find("[" + pb.Application.Attributes.COMPONENT + "]"), n = t.length, i = 0; n > i; i++)this.loadComponent_($(t[i]));
5075 0 === n && info("Kontext neobsahuje žádné další komponenty.", e)
5076}, pb.Application.prototype.getComponentName_ = function (e) {
5077 return e.attr(pb.Application.Attributes.COMPONENT)
5078}, pb.Application.prototype.loadComponent_ = function (e) {
5079 var t = this.getComponentName_(e), n = this.componentFactory.getConstructor(t);
5080 return isCallable(n) ? e.data("componentInstance") ? (e.data("componentInstance") instanceof n || warn("Element", e, " je již svázán s komponentou:", t), void 0) : pb.debug && pb.debugComponents && -1 === $.inArray(t, pb.debugComponents) ? (warn("Komponenta '" + t + "' se nebude načítat, z důvodu debugování jiných komponent určených v pb.debugComponents v bootstrap.js."), void 0) : (this.createComponent(n, e), void 0) : (warn("Komponenta s názvem '" + t + "' není zaregistrována, zkontroluj bootstrap.js."), void 0)
5081}, pb.Application.prototype.immediateLoadComponent = function (e) {
5082 var t;
5083 return t = e ? $("#" + e) : $("script").last().prev("[" + pb.Application.Attributes.COMPONENT + "]"), t.length ? (info("Okamžité načtení komponenty:"), this.loadComponent_(t), void 0) : (warn("Element, pro který se má okamžitě načíst komponenta neexistuje", t), void 0)
5084}, pb.Application.prototype.createComponent = function (e, t) {
5085 var n = new e(t, this.dependencyFactory);
5086 if (!(n instanceof pb.Component)) {
5087 var i = t.attr(pb.Application.Attributes.COMPONENT);
5088 throw Error("Komponenta " + i + " není instancí pb.Component, použij extend() těsně za konstruktorem.")
5089 }
5090 return n.setApplication(this), n.guid = this.nextGuid(), info("Načítám komponentu:", "\n -- instance:", n, "\n -- element:", t), n.attrs = n.element.data(), isCallable(n.prepare) && n.prepare(), t.data("componentInstance", n), n
5091}, pb.Application.prototype.updateComponentByName_ = function (e, t) {
5092 var n = this.dependencyFactory.get("component").get($("[" + pb.Application.Attributes.COMPONENT + "=" + e + "]"));
5093 n && n instanceof pb.Component && n.redraw(t, !0)
5094}, pb.Application.prototype.destroyComponents = function (e) {
5095 e instanceof $ || (e = $(e || document.body));
5096 for (var t, n = e.find("[" + pb.Application.Attributes.COMPONENT + "]"), i = n.length, o = 0; i > o; o++)t = this.dependencyFactory.get("component").get(n[o]), t instanceof pb.Component && t.destroy()
5097}, pb.Application.prototype.updateSnippet_ = function (e, t) {
5098 var n = this.getSnippet(e);
5099 if (n)if (this.destroyComponents(n), n.is("[" + pb.Application.Attributes.COMPONENT + "]")) {
5100 var i = this.dependencyFactory.get("component").get(n);
5101 i && i instanceof pb.Component ? (this.initPlugins(n), i.redraw(t, !0), i.setBusy(!1)) : warn("Snippet '" + e + "' s komponentou '" + n.attr(pb.Application.Attributes.COMPONENT) + "' má být překreslen, ale na elementu nebyla nalezena instance komponenty.", n)
5102 } else n.data("snippet-append") ? (t = $($.trim(t)), this.initPlugins(t), this.loadComponents(t), n.append(t)) : (n.empty().html(t), this.initPlugins(n), this.loadComponents(n)); else warn("Snippet '" + e + "' má být aktualizován, ale nebyl nalezen v dokumentu.")
5103}, pb.Application.prototype.getSnippet = function (e) {
5104 var t = $("[" + pb.Application.Attributes.SNIPPET + "=" + e + "]");
5105 return t.length ? t : null
5106}, pb.Application.prototype.createRequest = function () {
5107 var e = new this.request;
5108 return this.addRequestSuccesses_(e), this.addRequestErrors_(e), $(e).on(pb.Request.EventTypes.BEFORE_SEND, function () {
5109 this.abortRequests_(), this.requests.push(e)
5110 }.bind(this)), e
5111}, pb.Application.prototype.abortRequests_ = function () {
5112 return
5113}, pb.Application.prototype.addRequestSuccesses_ = function (e) {
5114 var t = this;
5115 e.addSuccessCallback(function (e) {
5116 if (isDefined(e.redirect))return window.location.href = "self" === e.redirect ? document.URL : e.redirect, void 0;
5117 if (e.snippets)for (var n in e.snippets)e.snippets.hasOwnProperty(n) && t.updateSnippet_(n, e.snippets[n])
5118 })
5119}, pb.Application.prototype.addRequestErrors_ = function (e) {
5120 e.addErrorCallback(function () {
5121 var e = {content: this.request.defaultError};
5122 null !== this.lastErrorPopup && (this.lastErrorPopup.destroy(), this.lastErrorPopup.element.remove()), this.lastErrorPopup = this.createPopup(pb.component.Popup.Templates.BASE_X, e), this.lastErrorPopup.overlayVisibility(!0), this.lastErrorPopup.open()
5123 }.bind(this))
5124}, pb.Application.prototype.createPopup = function (e, t) {
5125 if ("string" == typeof e) {
5126 var n = this.template.process(e, t),
5127 i = this.template.process(pb.component.Popup.Templates.WRAPPER, {content: n});
5128 e = $(i)
5129 } else if (!e.length)return warn("Nebyl předán žádný element pro popup.", e), null;
5130 return this.createComponent(this.componentFactory.getConstructor("popup"), e)
5131}, pb.Application.prototype.createTemplate = function () {
5132 return this.template
5133}, pb.Application.prototype.saveState = function () {
5134}, pb.Application.prototype.restoreState = function () {
5135}, pb.Application.prototype.getUrl = function () {
5136 return window.location.protocol + "//" + window.location.host
5137}, pb.Application.prototype.checkRequiredDependencies_ = function () {
5138 var e, t, n = this.dependencyFactory, i = this.componentFactory, o = ["component"], r = ["overlay", "popup"];
5139 for (e = 0, t = r.length; t > e; e++)if (null === i.getConstructor(r[e]))throw new Error("Komponenta s nazvem " + r[e] + " je interne pouzivana a musi byt registrována.");
5140 for (e = 0, t = o.length; t > e; e++)if (null === n.getConstructor(o[e]))throw new Error("Zavislost s nazvem " + o[e] + " je interne pouzivana a musi byt registrována.")
5141}, pb.Application.prototype.addConfig = function (e, t) {
5142 if (isDefined(this.config[e]))throw new Error("Konfigurační název " + e + " je již použitý.");
5143 this.config[e] = this.config[e] || {}, $.extend(this.config[e], t)
5144}, pb.Application.prototype.getConfig = function (e) {
5145 return this.config[e]
5146}, pb.Application.prototype.redirect = function (e) {
5147 window.location.href = e
5148}, pb.Application.prototype.setTranslator = function (e) {
5149 this.translator = e
5150}, pb.Application.prototype.getTranslator = function () {
5151 return this.translator || null
5152}, pb.Application.prototype.translate = function (e, t, n) {
5153 var i = this.getTranslator();
5154 if (null === i)throw new Error("Není nastavený překladač.");
5155 if (n = n || this.getLocale(), null === n)throw new Error("Není definovana lokalizace aplikace.");
5156 return i.translate(n, e, t)
5157}, pb.Application.prototype.setLocale = function (e) {
5158 this.locale = e
5159}, pb.Application.prototype.getLocale = function () {
5160 return 'en'
5161}, pb.Application.prototype.readCookie = function (e) {
5162 for (var e = e + "=", t = document.cookie.split(";"), n = 0, i = t.length; i > n; n++) {
5163 for (var o = t[n]; " " === o.charAt(0);)o = o.substring(1);
5164 if (0 === o.indexOf(e))return o.substring(e.length, o.length)
5165 }
5166 return ""
5167}, pb.Application.prototype.setCookie = function (e, t, n) {
5168 var i = new Date;
5169 n = toInt(n) || 30, i.setTime(i.getTime() + 24 * n * 60 * 60 * 1e3);
5170 var o = "expires=" + i.toUTCString();
5171 document.cookie = e + "=" + t + "; " + o
5172}, pb.Application.prototype.initAjax = function () {
5173 var e = "[" + pb.Application.Attributes.AJAX + "]", t = null, n = this, i = function (e, i, o, r) {
5174 t && t.abort();
5175 var s = n.createRequest();
5176 s.setUrl(e), o && s.addData(o);
5177 var a = [], l = function () {
5178 for (var e = 0, t = a.length; t > e; e++)a[e].data("snippet-append", !1)
5179 };
5180 if (r.data("snippet-append"))for (var p = r.attr("data-snippet-append").split(","), c = 0, u = p.length; u > c; c++) {
5181 var d = this.getSnippet(p[c]);
5182 d && !d.attr("data-snippet-append") && (d.data("snippet-append", !0), a.push(d))
5183 }
5184 s.addSuccessCallback(function (e) {
5185 t = null, l(), r.trigger(pb.Application.Events.AJAX_SUCCESS, e)
5186 }), s.addErrorCallback(function (e) {
5187 l(), r.trigger(pb.Application.Events.AJAX_ERROR, e)
5188 }), r.trigger(pb.Application.Events.AJAX_START, s), r.data("ajax-save-history") === !1 && s.setSaveHistory(!1), t = "post" === i ? s.post() : s.get(), t.always(function (e, t, n) {
5189 r.trigger(pb.Application.Events.AJAX_COMPLETE, [e, t, n])
5190 })
5191 }.bind(this);
5192 $("body").on("click", "a" + e, function (e) {
5193 if (!isPreventClickEvent(e)) {
5194 var t = $(e.currentTarget), o = t.attr("href") || t.data("href");
5195 o && (o = n.getUrl() + o, e.preventDefault(), i(o, "get", null, t))
5196 }
5197 }.bind(this)).on("submit", "form" + e, function (e) {
5198 e.preventDefault();
5199 var t = $(e.currentTarget), n = t.attr("action"), o = t.attr("method") || "get", r = t.serializeObject();
5200 i(n, o, r, t)
5201 }.bind(this))
5202};
5203var pb = pb || {};
5204pb.Keys = {
5205 ENTER: 13,
5206 ESC: 27,
5207 ARROW_UP: 38,
5208 ARROW_DOWN: 40,
5209 ARROW_LEFT: 37,
5210 ARROW_RIGHT: 39,
5211 SPACE: 32,
5212 DEL: 46,
5213 TAB: 9,
5214 BACKSPACE: 8
5215};
5216var pb = pb || {};
5217pb.Component = function (e) {
5218 this.element = e, this.busy = !1, this.busyOverlay = null, this.switchToDefaultRedrawType(), this.redrawer = null, this.subscribedEvents = []
5219}, pb.Component.EventType = {CLICK: "click"}, pb.Component.RedrawType = {
5220 REPLACE: "-replace",
5221 APPEND: "-append"
5222}, pb.Component.prototype.prepare = function () {
5223}, pb.Component.prototype.setApplication = function (e) {
5224 this.application = e
5225}, pb.Component.prototype.getApplication = function () {
5226 return this.application
5227}, pb.Component.prototype.createRequest = function () {
5228 return this.getApplication().createRequest()
5229}, pb.Component.prototype.createTemplate = function () {
5230 return this.getApplication().createTemplate()
5231}, pb.Component.prototype.createPopup = function (e, t) {
5232 return this.getApplication().createPopup(e, t)
5233}, pb.Component.prototype.redraw = function (e, t) {
5234 if (t) {
5235 var n = $($.trim(e));
5236 n.is("[" + pb.Application.Attributes.COMPONENT + "]") && (e = n.html())
5237 }
5238 if (this.destroy(), !this.redrawer || this.redrawer && this.redrawer(this.element, e) === !1)switch (this.redrawType) {
5239 case pb.Component.RedrawType.REPLACE:
5240 this.element.empty().html(e);
5241 break;
5242 case pb.Component.RedrawType.APPEND:
5243 this.element.append(e)
5244 }
5245 this.application.loadComponents(this.element)
5246}, pb.Component.prototype.setBusy = function (e, t) {
5247 if (this.busy !== e) {
5248 var n = this;
5249 if (this.busy = e, t) {
5250 if ("string" == typeof t) {
5251 var i = $(t).appendTo(this.element),
5252 o = this.getApplication().componentFactory.getConstructor("overlay");
5253 t = this.getApplication().createComponent(o, i)
5254 }
5255 t.show(), this.busyOverlay = t, $(this.busyOverlay).on(pb.component.Overlay.EventTypes.HIDE, function () {
5256 n.busyOverlay.remove(), n.busyOverlay = null
5257 })
5258 }
5259 !e && this.busyOverlay && this.busyOverlay.hide()
5260 }
5261}, pb.Component.prototype.isBusy = function () {
5262 return this.busy
5263}, pb.Component.prototype.redirect = function (e) {
5264 this.getApplication().redirect(e)
5265}, pb.Component.prototype.translate = function (e, t, n) {
5266 return this.getApplication().translate(e, t, n)
5267}, pb.Component.prototype.switchToDefaultRedrawType = function () {
5268 this.redrawType = pb.Component.RedrawType.REPLACE
5269}, pb.Component.prototype.setRedrawType = function (e) {
5270 this.redrawType = e
5271}, pb.Component.prototype.setRedrawer = function (e) {
5272 this.redrawer = e
5273}, pb.Component.prototype.getAttr = function (e) {
5274 return this.attrs.hasOwnProperty(e) ? this.attrs[e] : null
5275}, pb.Component.prototype.getAllAttrs = function () {
5276 return this.attrs
5277}, pb.Component.prototype.observe = function (e, t, n) {
5278 var i = sprintf("c_%i", this.guid);
5279 e.subscribe(t, n, i), this.subscribedEvents.push({service: e, eventCode: t, guid: i})
5280}, pb.Component.prototype.clearComponentObservers = function () {
5281 for (var e, t = 0; t < this.subscribedEvents.length; t++)e = this.subscribedEvents[t], e.service.unsubscribe(e.eventCode, e.guid)
5282}, pb.Component.prototype.destroy = function () {
5283 this.clearComponentObservers()
5284};
5285var pb = pb || {};
5286pb.Request = function (e, t) {
5287 this.url = e || document.URL, this.data = t || {}, this.options = {}, this.successCallbacks = [], this.errorCallbacks = [], this.method = "get", this.saveHistory = !0, this.xhr = null
5288}, pb.Request.EventTypes = {
5289 BEFORE_SEND: "-beforesend",
5290 COMPLETE: "-complete"
5291}, pb.Request.defaultError = "Při komunikaci se serverem došlo k chybě.", pb.Request.prototype.setUrl = function (e) {
5292 return this.url = e, this
5293}, pb.Request.prototype.getUrl = function () {
5294 return this.url
5295}, pb.Request.prototype.urlPrefix = function (e) {
5296 var t = $("html").data("url-prefix");
5297 return t && "/" === t.charAt(0) && (e = t + e, e = e.replace("//", "/")), e
5298}, pb.Request.prototype.addSuccessCallback = function (e) {
5299 return this.successCallbacks.push(e), this
5300}, pb.Request.prototype.addErrorCallback = function (e) {
5301 return this.errorCallbacks.push(e), this
5302}, pb.Request.prototype.setSuccess = function (e) {
5303 return this.addSuccessCallback(e), this
5304}, pb.Request.prototype.setError = function (e) {
5305 return this.addErrorCallback(e), this
5306}, pb.Request.prototype.addData = function (e) {
5307 return $.extend(this.data, e), this
5308}, pb.Request.prototype.getData = function () {
5309 return this.data
5310}, pb.Request.prototype.send = function (e) {
5311 this.url || warn("URL požadavku nebyla nastavena, bude použitá: " + window.location.href);
5312 var t = this.urlPrefix(this.url || window.location.href), n = t.split("#")[1] || null;
5313 e && this.setMethod(e);
5314 var i = {dataType: "json", cache: !1}, o = $.extend(i, this.options);
5315 o.data = this.data, o.type = this.method;
5316 var r = this;
5317 return this.successCallbacks.length && (o.success = function (e, t, i) {
5318 $(r).trigger(pb.Request.EventTypes.COMPLETE);
5319 for (var o = this.url + (null !== n ? "#" + n : ""), s = 0, a = r.successCallbacks.length; a > s; s++) {
5320 var l = r.successCallbacks[s];
5321 l(e, t, i, o)
5322 }
5323 }), this.errorCallbacks.length && (o.error = function (e, t, n) {
5324 $(r).trigger(pb.Request.EventTypes.COMPLETE);
5325 var i = this.url;
5326 if ("abort" !== t)for (var o = r.errorCallbacks.length - 1; o >= 0; o--) {
5327 var s, a = r.errorCallbacks[o];
5328 if (s = a(e, t, n, i), s === !1)break
5329 }
5330 }), $(this).trigger(pb.Request.EventTypes.BEFORE_SEND), this.xhr = $.ajax(t, o), this.xhr
5331}, pb.Request.prototype.setOptions = function (e) {
5332 return this.options = e, this
5333}, pb.Request.prototype.getOptions = function () {
5334 return this.options || {}
5335}, pb.Request.prototype.setMethod = function (e) {
5336 return e = e.toLowerCase(), "get" === e || "post" === e ? this.method = e : (this.method = "get", warn("Neplatný argument pro nastavení metody odesílání požadavku, nastavena výchozi get.", e)), this
5337}, pb.Request.prototype.getMethod = function () {
5338 return this.method
5339}, pb.Request.prototype.get = function () {
5340 return this.send()
5341}, pb.Request.prototype.post = function () {
5342 return this.send("post")
5343}, pb.Request.prototype.setSaveHistory = function (e) {
5344 return this.saveHistory = e, this
5345}, pb.Request.prototype.getSaveHistory = function () {
5346 return this.saveHistory
5347}, pb.Request.prototype.getXhr = function () {
5348 return this.xhr
5349};
5350var pb = pb || {};
5351pb.Template = {cache: {}}, pb.Template.process = function (e, t) {
5352 var n = /\W/.test(e) ? new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + e.replace(/[\r\t\n]/g, " ").split("<%").join(" ").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, "',$1,'").split(" ").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');") : pb.Template.cache[e] = pb.Template.cache[e] || pb.Template.process(e);
5353 return t ? n(t) : n
5354}, pb.Template.render = function (e, t, n) {
5355 var i = pb.Template.process($("#template-" + e).html(), t);
5356 n && $(n).html(i)
5357};
5358var pb = pb || {};
5359pb.Service = function () {
5360 this.events = {}
5361}, pb.Service.prototype.registerEvent = function (e) {
5362 return !0 === this.isEventRegistered(e) ? (warn(sprintf('Service: event "%s" already registered', e)), void 0) : (this.events[e] = {handlers: {}}, e)
5363}, pb.Service.prototype.subscribe = function (e, t, n) {
5364 var i;
5365 return !1 === this.isEventRegistered(e) ? (warn(sprintf('PubSub: attempted to subscribe non registered event "%s"', e)), void 0) : (i = this.events[e].handlers[n], i && i.hasOwnProperty("fn") ? (i.fn.push(t), void 0) : (this.events[e].handlers[n] = {fn: [t]}, void 0))
5366}, pb.Service.prototype.unsubscribe = function (e, t) {
5367 delete this.events[e].handlers[t]
5368}, pb.Service.prototype.publish = function (e, t) {
5369 var n, i = t || [];
5370 if (!1 === this.isEventRegistered(e))return warn(sprintf('PubSub: attempted to publish non registered event "%s"', e)), void 0;
5371 n = this.events[e].handlers;
5372 for (var o in n)if (n.hasOwnProperty(o))for (var r = 0; r < n[o].fn.length; r++)n[o].fn[r].apply(this, i)
5373}, pb.Service.prototype.isEventRegistered = function (e) {
5374 return this.events.hasOwnProperty(e)
5375};
5376var pb = pb || {};
5377pb.component = pb.component || {}, pb.component.Overlay = function (e) {
5378 pb.Component.call(this, e || this.getDefaultOverlay())
5379}, extend(pb.component.Overlay, pb.Component), pb.component.Overlay.Templates = {LOADING: '<div class="pb-overlay pb-overlay--loading"><div class="pb-overlay__text">Načítám, čekejte prosím.</div></div>'}, pb.component.Overlay.EventTypes = {
5380 SHOW: "-show",
5381 HIDE: "-hide",
5382 CLICK: "-click"
5383}, pb.component.Overlay.prototype.prepare = function () {
5384 this.element.on("click", function () {
5385 $(this).trigger(pb.component.Overlay.EventTypes.CLICK)
5386 }.bind(this))
5387}, pb.component.Overlay.prototype.show = function () {
5388 this.element.addClass("show"), $(this).trigger(pb.component.Overlay.EventTypes.SHOW)
5389}, pb.component.Overlay.prototype.hide = function () {
5390 this.element.removeClass("show"), $(this).trigger(pb.component.Overlay.EventTypes.HIDE)
5391}, pb.component.Overlay.prototype.remove = function () {
5392 this.element.remove()
5393}, pb.component.Overlay.create = function (e) {
5394 var t = this.getApplication().componentFactory.getConstructor("overlay");
5395 return this.getApplication().createComponent(t, e || t.getDefaultOverlay())
5396}, pb.component.Overlay.getDefaultOverlay = pb.component.Overlay.prototype.getDefaultOverlay = function () {
5397 var e = null;
5398 return $("#pb-overlay").length ? e = $("#pb-overlay") : (e = $('<div id="pb-overlay">'), $("body").append(e)), e
5399};
5400var pb = pb || {};
5401pb.component = pb.component || {}, pb.component.Popup = function (e) {
5402 pb.Component.call(this, e), this.overlay = null, this.container = null, this.snap = null
5403}, extend(pb.component.Popup, pb.Component), pb.component.Popup.prototype.prepare = function () {
5404 this.element.on("click", ".close", this.handleClose.bind(this)), this.getApplication().initPlugins(this.element)
5405}, pb.component.Popup.prototype.hideOnEscape_ = !1, pb.component.Popup.prototype.handleClose = function (e) {
5406 e.preventDefault(), this.close()
5407}, pb.component.Popup.prototype.getCloseOnEscape = function () {
5408 return this.closeOnEscape_
5409}, pb.component.Popup.prototype.setCloseOnEscape = function (e) {
5410 this.closeOnEscape_ = e
5411}, pb.component.Popup.EventType = {
5412 BEFORE_OPEN: "beforeopen",
5413 BEFORE_CLOSE: "beforeclose",
5414 AFTER_OPEN: "afteropen",
5415 AFTER_CLOSE: "afterclose"
5416}, pb.component.Popup.prototype.show_ = function () {
5417 this.reposition_(), this.element.show()
5418}, pb.component.Popup.prototype.hide_ = function () {
5419 this.element.hide()
5420}, pb.component.Popup.prototype.open = function () {
5421 this.isVisible() || this.onBeforeOpen() && (this.moveToContainer_(), this.closeOnEscape_ && $(document).on("keydown.pbpopup", this.onKeyDown_.bind(this)), this.snap || this.setDefaultPosition(), this.getApplication().openPopups.length && this.getApplication().openPopups[this.getApplication().openPopups.length - 1].close(), this.overlay && this.overlay.show(), this.show_(), this.getApplication().openPopups.push(this), $(this).triggerHandler(pb.component.Popup.EventType.AFTER_OPEN))
5422}, pb.component.Popup.prototype.close = function () {
5423 this.onBeforeClose() && (this.overlay && this.overlay.hide(), $(document).unbind(".pbpopup"), this.hide_(), this.getApplication().openPopups.splice($.inArray(this, this.getApplication().openPopups), 1), this.getApplication().openPopups.length && this.getApplication().openPopups[this.getApplication().openPopups.length - 1].open(), $(this).trigger(pb.component.Popup.EventType.AFTER_CLOSE))
5424}, pb.component.Popup.prototype.isVisible = function () {
5425 return this.element.is(":visible")
5426}, pb.component.Popup.prototype.overlayVisibility = function (e) {
5427 if (e && !this.overlay) {
5428 var t = this.getApplication().componentFactory.getConstructor("overlay");
5429 this.overlay = this.getApplication().createComponent(t, pb.component.Overlay.getDefaultOverlay()), $(this.overlay).on(pb.component.Overlay.EventTypes.SHOW, this.onOverlayShow.bind(this)).on(pb.component.Overlay.EventTypes.HIDE, this.onOverlayHide.bind(this)).on(pb.component.Overlay.EventTypes.CLICK, this.onOverlayClick.bind(this))
5430 } else!e && this.overlay && $(this.overlay).off()
5431}, pb.component.Popup.prototype.onOverlayShow = function () {
5432 this.show_()
5433}, pb.component.Popup.prototype.onOverlayHide = function () {
5434 this.hide_()
5435}, pb.component.Popup.prototype.onOverlayClick = function () {
5436 this.element.find(".js-default-action").trigger("click")
5437}, pb.component.Popup.prototype.onBeforeOpen = function () {
5438 var e = $(this).triggerHandler(pb.component.Popup.EventType.BEFORE_OPEN);
5439 return e === !1 ? !1 : !0
5440}, pb.component.Popup.prototype.onBeforeClose = function () {
5441 var e = $(this).triggerHandler(pb.component.Popup.EventType.BEFORE_CLOSE);
5442 return e === !1 ? !1 : !0
5443}, pb.component.Popup.prototype.onKeyDown_ = function (e) {
5444 e.which === pb.Keys.ESC && this.close()
5445}, pb.component.Popup.prototype.moveToContainer_ = function () {
5446 var e = this.getContainer_();
5447 e.append(this.element)
5448}, pb.component.Popup.prototype.getContainer_ = function () {
5449 if (this.container)return this.container;
5450 var e = $("#pb-popup-container");
5451 return e.length || (e = $("<div id=pb-popup-container>"), $("body").append(e)), this.container = e, e
5452}, pb.component.Popup.prototype.setDefaultPosition = function () {
5453 var e = this.element, t = e.width(), n = $(window).scrollTop(), i = $(window).height(), o = i / 100 * 15,
5454 r = {top: n + o, left: "50%", marginLeft: t / 2 * -1 + "px", position: "absolute"};
5455 e.css(r)
5456}, pb.component.Popup.HorizontalPosition = {
5457 LEFT: "left",
5458 RIGHT: "right"
5459}, pb.component.Popup.VerticalPosition = {
5460 TOP: "top",
5461 BOTTOM: "bottom"
5462}, pb.component.Popup.prototype.setSnapTo = function (e, t, n, i) {
5463 var o = "resize.pb-component-popup";
5464 return null === e ? (this.snap = null, $(window).unbind(o), void 0) : (i = $.extend({
5465 top: 0,
5466 right: 0,
5467 bottom: 0,
5468 left: 0
5469 }, i), this.snap = {element: e, horizontal: t, vertical: n, offset: i}, $(window).bind(o, function () {
5470 this.isVisible() && this.reposition_()
5471 }.bind(this)), this.reposition_(), void 0)
5472}, pb.component.Popup.prototype.reposition_ = function () {
5473 if (this.snap) {
5474 var e, t = this.snap.element;
5475 this.snap.horizontal === pb.component.Popup.HorizontalPosition.RIGHT && this.snap.vertical === pb.component.Popup.VerticalPosition.TOP ? e = {
5476 top: t.offset().top + t.outerHeight(!0) + this.snap.offset.top,
5477 left: t.offset().left + t.outerWidth(!0) - this.element.outerWidth(!0) + this.snap.offset.left,
5478 bottom: "auto",
5479 right: "auto",
5480 position: "absolute",
5481 "margin-left": 0
5482 } : this.snap.horizontal === pb.component.Popup.HorizontalPosition.LEFT && this.snap.vertical === pb.component.Popup.VerticalPosition.TOP ? e = {
5483 top: t.offset().top + t.outerHeight(!0) + this.snap.offset.top,
5484 left: t.offset().left + this.snap.offset.left,
5485 bottom: "auto",
5486 right: "auto",
5487 position: "absolute",
5488 "margin-left": 0
5489 } : this.snap.horizontal === pb.component.Popup.HorizontalPosition.RIGHT && this.snap.vertical === pb.component.Popup.VerticalPosition.BOTTOM ? e = {
5490 top: t.offset().top - this.element.outerHeight(!0) - this.snap.offset.top,
5491 left: t.offset().left + t.outerWidth(!0) - this.element.outerWidth(!0) + this.snap.offset.left,
5492 bottom: "auto",
5493 right: "auto",
5494 position: "absolute",
5495 "margin-left": 0
5496 } : this.snap.horizontal === pb.component.Popup.HorizontalPosition.LEFT && this.snap.vertical === pb.component.Popup.VerticalPosition.BOTTOM && (e = {
5497 top: t.offset().top - this.element.outerHeight(!0) - this.snap.offset.top,
5498 left: t.offset().left + this.snap.offset.left,
5499 bottom: "auto",
5500 right: "auto",
5501 position: "absolute",
5502 "margin-left": 0
5503 }), this.element.css(e)
5504 }
5505}, pb.component.Popup.Templates = {
5506 WRAPPER: '<div class="pb-popup"><%=content%></div>',
5507 BASE: '<div class="pb-popup-content"><%=content%></div>',
5508 BASE_X: '<div class="pb-popup-content"><%=content%></div><div class="pb-popup-close close js-default-action"></div>',
5509 WITH_HEADING: '<div class="pb-popup-heading"><%=heading%></div><div class="pb-popup-content"><%=content%></div>',
5510 WITH_HEADING_X: '<div class="pb-popup-heading"><%=heading%></div><div class="pb-popup-content"><%=content%></div><div class="pb-popup-close close js-default-action"></div></div>'
5511};
5512var pb = pb || {};
5513pb.component = pb.component || {}, pb.component.PopupOpener = function (e, t) {
5514 pb.Component.call(this, e, t), this.dependencies = {component: t.get("component")}
5515}, extend(pb.component.PopupOpener, pb.Component), pb.component.PopupOpener.Types = {
5516 HTML: "html",
5517 AJAX: "ajax"
5518}, pb.component.PopupOpener.SourceTypes = {
5519 SNIPPET: "snippet",
5520 CONTENT: "content"
5521}, pb.component.PopupOpener.prototype.prepare = function () {
5522 this.element.on("click", this.handleClick.bind(this))
5523}, pb.component.PopupOpener.prototype.handleClick = function (e) {
5524 e.stopPropagation(), e.preventDefault();
5525 var t = $(e.currentTarget), n = t.data("href") || t.attr("href") || "", i = this.getType(n), o = t.data("data"),
5526 r = this.element.data("ajax-content"), s = t.data("heading");
5527 if (r)return this.openPopupWithAjaxContent_(n, o, r, s), void 0;
5528 switch (i) {
5529 case pb.component.PopupOpener.Types.HTML:
5530 this.openPopupByElement_(n);
5531 break;
5532 case pb.component.PopupOpener.Types.AJAX:
5533 var a = this.element.attr("data-snippet");
5534 if (!a)return warn("Komponenta PopupOpener vyžaduje atribut 'data-snippet', který určí, jaký snippet se otevře do vyskakovacího okna.", this.element), void 0;
5535 this.openPopupBySnippet_(a, n, o, s);
5536 break;
5537 default:
5538 warn("Nebyl nalezen správný typ vyskakovacího okna.", i)
5539 }
5540}, pb.component.PopupOpener.prototype.openPopupWithAjaxContent_ = function (e, t, n, i) {
5541 var o = this.dependencies.component.get($("#popup-ajax"));
5542 if (o && o instanceof pb.component.Popup) {
5543 var r = this.createTemplate().process(pb.component.Popup.Templates.WITH_HEADING_X, {
5544 heading: i,
5545 content: this.translate("app.loading")
5546 });
5547 o.redraw(r, !0), this.openPopup_(o), this.ajaxRequest_(o, e, t, n, pb.component.PopupOpener.SourceTypes.CONTENT, i)
5548 }
5549}, pb.component.PopupOpener.prototype.openPopupBySnippet_ = function (e, t, n, i) {
5550 var o = this.dependencies.component.get($("#popup-ajax"));
5551 if (o && o instanceof pb.component.Popup) {
5552 var r = this.createTemplate().process(pb.component.Popup.Templates.WITH_HEADING_X, {
5553 heading: i,
5554 content: this.translate("app.loading")
5555 });
5556 o.redraw(r, !0), this.openPopup_(o), this.ajaxRequest_(o, t, n, e, pb.component.PopupOpener.SourceTypes.SNIPPET, i)
5557 }
5558}, pb.component.PopupOpener.prototype.openPopup_ = function (e) {
5559 if (e && e instanceof pb.component.Popup) {
5560 var t = this.element.attr("data-popup-class"), n = $(this.element.attr("data-popup-preload-id")).html();
5561 n && e.redraw(n), t && e.element.addClass(t), e.setCloseOnEscape(!0), e.overlayVisibility(!0), e.open()
5562 }
5563}, pb.component.PopupOpener.prototype.openPopupByElement_ = function (e) {
5564 var t = this.dependencies.component.get($(e));
5565 this.openPopup_(t)
5566}, pb.component.PopupOpener.prototype.ajaxRequest_ = function (e, t, n, i, o, r) {
5567 var s = this.createRequest();
5568 o = o || pb.component.PopupOpener.SourceTypes.SNIPPET, o === pb.component.PopupOpener.SourceTypes.SNIPPET ? n = $.extend(n, {snp: [i]}) : o === pb.component.PopupOpener.SourceTypes.CONTENT && (n = $.extend(n, {cnt: [i]})), s.setSaveHistory(!1), s.setUrl(t), s.addSuccessCallback(function (t) {
5569 if (o === pb.component.PopupOpener.SourceTypes.SNIPPET) {
5570 var n = this.getApplication().getSnippet(i);
5571 if (n.length) {
5572 var s = this.createTemplate().process(pb.component.Popup.Templates.WITH_HEADING_X, {
5573 heading: r,
5574 content: n.html()
5575 });
5576 e.redraw(s)
5577 } else warn("Snippet '" + i + "' nebyl nalezen v dokumentu, vyskakovací okno nebylo aktualizováno.")
5578 } else if (o === pb.component.PopupOpener.SourceTypes.CONTENT) {
5579 var a = t.contents[i], s = this.createTemplate().process(pb.component.Popup.Templates.WITH_HEADING_X, {
5580 heading: r,
5581 content: a
5582 });
5583 e.redraw(s)
5584 }
5585 }.bind(this)), s.addErrorCallback(function () {
5586 var t = this.createTemplate().process(pb.component.Popup.Templates.BASE_X, {content: this.translate("app.server.error")});
5587 return e.redraw(t, !0), !1
5588 }.bind(this)), n && s.addData(n), s.send()
5589}, pb.component.PopupOpener.prototype.getType = function (e) {
5590 return "#" === e[0] ? pb.component.PopupOpener.Types.HTML : pb.component.PopupOpener.Types.AJAX
5591};
5592var pb = pb || {};
5593pb.component = pb.component || {}, pb.component.Paging = function (e) {
5594 pb.Component.call(this, e)
5595}, extend(pb.component.Paging, pb.Component), pb.component.Paging.prototype.prepare = function () {
5596 this.element.on("click", "a", this.handleClick.bind(this))
5597}, pb.component.Paging.prototype.handleClick = function (e) {
5598 e.preventDefault();
5599 var t = $(e.currentTarget), n = this.element.data("scrollTo"), i = this.element.data("scrollToOn") || "complete",
5600 o = this.createRequest(), r = this.getApplication().getUrl() + t.attr("href");
5601 n && ("before" === i ? this.scrollToElement_($(n)) : "complete" === i && o.addSuccessCallback(function () {
5602 this.scrollToElement_($(n))
5603 }.bind(this))), o.setUrl(r).send()
5604}, pb.component.Paging.prototype.scrollToElement_ = function (e) {
5605 e.length && $("html, body").animate({scrollTop: e.offset().top - 15}, "slow")
5606}, pb.component.Paging.prototype.redraw = function (e, t) {
5607 pb.Component.prototype.redraw.call(this, e, t), e && this.element.children().length > 0 ? this.element.show() : this.element.hide();
5608 var n = this.element.parent().offset().top;
5609 $(window).scrollTop() > n && $("html, body").animate({scrollTop: n})
5610}, function (e) {
5611 var t = new pb.Translator, n = "cs";
5612 t.add(n, "test", "Testovací zpráva s parametrem '$1'"), t.add(n, "app.loading", "Načítám, čekejte prosím"), t.add(n, "app.loadingShort", "Načítám"), t.add(n, "app.close", "Zavřít"), t.add(n, "app.sending", "Odesílám požadavek"), t.add(n, "app.product.loading", "Načítám detail produktu, prosím čekejte"), t.add(n, "app.product.error", "Nastala chyba na serveru, prosím opakujte později"), t.add(n, "app.product.error.grid", "V tomto zobrazení není možné zobrazit Rychlý detail."), t.add(n, "app.product.error.url", "Nastala chyba v URL adrese detailu produktu."), t.add(n, "app.server.error", "Nastala chyba na serveru, prosím opakujte později <a class='button h43 red close' href='#'>zavřít</a>"), t.add(n, "app.form.validate.error.remote", "Tato e-mailová adresa je již použita"), t.add(n, "app.form.validate.error.minLenght", "Minimální délka řetezce je $1"), t.add(n, "app.form.validate.error.rangeLength", "Platná délka řetezce je $1 až $2"), t.add(n, "app.form.validate.error.passwordEqual", "Hesla se musí shodovat"), t.add(n, "popup.products.basket.add.title", "Přidání produktu do košíku"), t.add(n, "app.form.validate.error.number", "Neplatný formát telefonního čísla"), t.add(n, "app.form.validate.error.phoneCZ", "Prosím, zadejte platný telefon"), t.add(n, "app.form.validate.error.zipCZ", "Prosím, zadejte platné PSČ"), t.add(n, "app.form.validate.error.time", "Prosím, zadejte čas ve formátu HH:MM"), e.translator = t
5613}(window), function (e) {
5614 var t = new pb.Translator, n = "en";
5615 t.add(n, "test", "Testovací zpráva s parametrem '$1'"), t.add(n, "app.loading", "Načítám, čekejte prosím"), t.add(n, "app.loadingShort", "Načítám"), t.add(n, "app.close", "Zavřít"), t.add(n, "app.sending", "Odesílám požadavek"), t.add(n, "app.product.loading", "Načítám detail produktu, prosím čekejte"), t.add(n, "app.product.error", "Nastala chyba na serveru, prosím opakujte později"), t.add(n, "app.product.error.grid", "V tomto zobrazení není možné zobrazit Rychlý detail."), t.add(n, "app.product.error.url", "Nastala chyba v URL adrese detailu produktu."), t.add(n, "app.server.error", "Nastala chyba na serveru, prosím opakujte později <a class='button h43 red close' href='#'>zavřít</a>"), t.add(n, "app.form.validate.error.remote", "Tato e-mailová adresa je již použita"), t.add(n, "app.form.validate.error.minLenght", "Minimální délka řetezce je $1"), t.add(n, "app.form.validate.error.rangeLength", "Platná délka řetezce je $1 až $2"), t.add(n, "app.form.validate.error.passwordEqual", "Hesla se musí shodovat"), t.add(n, "popup.products.basket.add.title", "Přidání produktu do košíku"), t.add(n, "app.form.validate.error.number", "Neplatný formát telefonního čísla"), t.add(n, "app.form.validate.error.phoneCZ", "Prosím, zadejte platný telefon"), t.add(n, "app.form.validate.error.zipCZ", "Prosím, zadejte platné PSČ"), t.add(n, "app.form.validate.error.time", "Prosím, zadejte čas ve formátu HH:MM"), e.translator = t
5616}(window);
5617var app = app || {};
5618app.Request = function (e, t) {
5619 pb.Request.call(this, e, t), this.addSuccessCallback(this.handleSuccessRequest.bind(this)), $(this).on(pb.Request.EventTypes.BEFORE_SEND, this.onBeforeSend.bind(this)).on(pb.Request.EventTypes.COMPLETE, this.onComplete.bind(this))
5620}, extend(app.Request, pb.Request), app.Request.Modifiers = {AJAX_LOADING: "loading--show"}, app.Request.prototype.handleSuccessRequest = function (e, t, n, i) {
5621 if (window.history && isCallable(window.history.pushState) && "get" === this.getMethod() && this.getSaveHistory()) {
5622 var o = i.replace(/&?_=[0-9]*/, "").replace("?&", "?").replace("?#", "#").replace(/\/[?]$/, "/");
5623 window.history.pushState({
5624 url: o,
5625 scrollTop: $("body").scrollTop()
5626 }, document.title, o), setTimeout(function () {
5627 if (window.location.hash) {
5628 var e = $(window.location.hash);
5629 $.smoothScroll(window.application.getConfig("document").getScrollOffset(e))
5630 }
5631 }, 10)
5632 }
5633}, app.Request.prototype.handlePushState = function (e) {
5634 e && e.meta && "undefined" !== e.meta && (e.meta.url && "undefined" !== e.meta.url && window.history.pushState({}, "", e.meta.url), e.meta.title && "undefined" !== e.meta.title && $("title").html(e.meta.title), e.meta.keywords && "undefined" !== e.meta.keywords && $('meta[name="keywords"]').attr("content", e.meta.keywords), e.meta.description && "undefined" !== e.meta.description && $('meta[name="description"]').attr("content", e.meta.description), e.meta.canonical && "undefined" !== e.meta.canonical && $('meta[rel="canonical"]').attr("href", e.meta.canonical))
5635}, app.Request.prototype.onBeforeSend = function () {
5636 NProgress.start().set(.35)
5637}, app.Request.prototype.onComplete = function () {
5638 NProgress.done()
5639}, app.Request.defaultError = "An error occurred. Please, try again.";
5640var app = app || {};
5641app.service = app.service || {}, app.service.Document = function () {
5642 this.document = $(document), this.height = this.document.height(), this.scrollTop = this.document.scrollTop(), this.window = $(window), this.windowSize = {}, this.windowSize.width = this.window.width(), this.windowSize.height = this.window.height(), this.document.on("ready", this.handleReadyEvent.bind(this)), this.document.on("scroll", this.handleScrollEvent.bind(this)).trigger("scroll"), this.window.on("resize", this.handleResizeEvent.bind(this)).trigger("resize")
5643}, app.service.Document.EventTypes = {
5644 SCROLL: "-scroll",
5645 RESIZE: "-resize",
5646 READY: "-ready",
5647 UPDATE: "-update"
5648}, app.service.Document.prototype.handleReadyEvent = function () {
5649 this.height = this.document.height(), $(this).trigger(app.service.Document.EventTypes.READY)
5650}, app.service.Document.prototype.handleScrollEvent = function () {
5651 this.scrollTop = this.document.scrollTop(), this.height = this.document.height(), $(this).trigger(app.service.Document.EventTypes.SCROLL, this.scrollTop)
5652}, app.service.Document.prototype.handleResizeEvent = function () {
5653 this.windowSize.width = this.window.width(), this.windowSize.height = this.window.height(), this.height = this.document.height(), $(this).trigger(app.service.Document.EventTypes.RESIZE, this.windowSize)
5654}, app.service.Document.prototype.handleUpdateEvent = function () {
5655 $(this).trigger(app.service.Document.EventTypes.UPDATE)
5656};
5657var app = app || {};
5658app.service = app.service || {}, app.service.YouTubeApi = function () {
5659 pb.Service.call(this), this.API_URL = "https://www.youtube.com/iframe_api", this.EVENT = {API_READY: this.registerEvent("youtube-api-ready")}, this.busy = !1, window.onYouTubeIframeAPIReady = function () {
5660 this.apiLoaded()
5661 }.bind(this)
5662}, extend(app.service.YouTubeApi, pb.Service), app.service.YouTubeApi.prototype.getApi = function () {
5663 if (!this.busy) {
5664 if ("YT" in window)return this.apiLoaded(), void 0;
5665 this.busy = !0, this.loadApi()
5666 }
5667}, app.service.YouTubeApi.prototype.loadApi = function () {
5668 $.ajax({url: this.API_URL, cache: !0, dataType: "script"})
5669}, app.service.YouTubeApi.prototype.apiLoaded = function () {
5670 return this.busy = !1, "YT" in window ? (this.publish(this.EVENT.API_READY, [YT]), void 0) : (warn("Youtube API load failed"), void 0)
5671};
5672var app = app || {};
5673app.component = app.component || {}, app.component.Paging = function (e, t) {
5674 pb.component.Paging.call(this, e, t), this.dependencies = {document: t.get("document")}
5675}, extend(app.component.Paging, pb.component.Paging), app.component.Paging.prototype.prepare = function () {
5676 this.element.on("click", ".js-paginator-link", this.handleClick.bind(this)), this.element.on("click", ".js-load-more", this.loadMore.bind(this))
5677}, app.component.Paging.prototype.handleClick = function (e) {
5678 e.preventDefault();
5679 var t = $(e.currentTarget), n = this.element.data("scroll-to"), i = this.createRequest(),
5680 o = this.getApplication().getUrl() + t.attr("href");
5681 n && !t.data("snippet-append") && i.addSuccessCallback(function () {
5682 $.smoothScroll({scrollTarget: n, offset: -50}), this.dependencies.document.handleUpdateEvent()
5683 }.bind(this)), i.setUrl(o).send()
5684}, app.component.Paging.prototype.loadMore = function (e) {
5685 e.preventDefault();
5686 var t = $(e.currentTarget), n = t.attr("data-snippet-append"), i = this.application.getSnippet(n),
5687 o = this.createRequest();
5688 return i.data("snippetAppend", !0), o.setUrl(t.attr("href")), o.addSuccessCallback(function () {
5689 this.dependencies.document.handleUpdateEvent()
5690 }.bind(this)), o.send().success(function () {
5691 i.data("snippetAppend", !1)
5692 }), !1
5693};
5694var app = app || {};
5695app.component = app.component || {}, app.component.Form = function (e, t) {
5696 pb.Component.call(this, e, t), this.dependencies = {document: t.get("document")}, this.validateOptions = {
5697 errorClass: "form__input--error",
5698 validClass: "form__input--valid"
5699 }
5700}, extend(app.component.Form, pb.Component), app.component.Form.RegExps = {PHONE_NUMBER: "^[+]?([()/0-9]{9,})$"}, app.component.Form.prototype.prepare = function () {
5701 this.initAntiSpam(this.element.find(".antispam"), "label[for=f_check]", "#f_check"), this.initAutoSubmit(), this.initSelects(), this.initDatepickers(), this.initFileInput(), this.element.hasClass("js-validation") && this.validate()
5702}, app.component.Form.prototype.initAntiSpam = function (containerSelector, labelSelector, inputSelector) {
5703 eval(function (e, t, n, i, o, r) {
5704 if (o = function (e) {
5705 return (t > e ? "" : o(parseInt(e / t))) + ((e %= t) > 35 ? String.fromCharCode(e + 29) : e.toString(36))
5706 }, !"".replace(/^/, String)) {
5707 for (; n--;)r[o(n)] = i[n] || o(n);
5708 i = [function (e) {
5709 return r[e]
5710 }], o = function () {
5711 return "\\w+"
5712 }, n = 1
5713 }
5714 for (; n--;)i[n] && (e = e.replace(new RegExp("\\b" + o(n) + "\\b", "g"), i[n]));
5715 return e
5716 }('H I(s){J o=[],t=[],u=[],n=0,h,d,i;o["j"]=1;o["kě"]=2;o["l"]=2;o["tři"]=3;o["čeři"]=4;o["pět"]=5;o["šm"]=6;o["q"]=7;o["r"]=8;o["vět"]=9;o["w"]=10;t[2]=u[2]="l";t[3]=u[3]="tři";t[4]=u[4]="čeři";t[5]="K";t[6]="šL";t[7]="M";t[8]="N";t[9]="O";u[1]="j";u[4]="čeři";u[5]="pět";u[6]="šm";u[7]="q";u[8]="r";u[9]="vět";u[10]="w";u[11]="Páb";u[12]="Qáb";u[13]="třRáb";u[14]="čSáb";u[15]="Táb";u[16]="šUáb";u[17]="Váb";u[18]="Wáb";u[19]="Xáb";c(s.a("x")>-1||s.a("yě")>-1||s.a("Y")>-1||s.a("z")>-1){c(s.a("x")>-1){n+=A}f c(s.a("yě")>-1){n+=Z}f c(s.a("třB")>-1){n+=1a}f c(s.a("čeřB")>-1){n+=1b}f{h=s.C(0,s.a("z"));c(o[h]){n+=o[h]*A}}}c(s.a("sát")>-1||s.a("D")>-1){d=(s.a("sát")>-1)?s.a("sát"):s.a("D");E(i=2;i<10;i++){c(s.C(d-t[i].g,d)==t[i]){n+=i*10;F}}}E(i=1;i<1c;i++){c(s.G(u[i])>-1&&s.G(u[i])==s.g-u[i].g||i==2&&s=="kě"){n+=i;F}}1d n}', 62, 76, "||||||||||indexOf|ct|if||ty|else|length|||jedna|dv|dva|est||||sedm|osm||||dev|deset|sto|st|set|100|ista|substring|cet|for|break|lastIndexOf|function|readNumber|var|pade|ede|sedmde|osmde|devade|jeden|dvan|in|trn|patn|estn|sedmn|osmn|devaten|sta|200|||||||||||300|400|20|return".split("|"), 0, {}));
5717 var re = /u\s(.+)\s.+\s(.+)\sa/i;
5718 containerSelector.each(function () {
5719 var e = $(this), t = e.find(labelSelector), n = e.find(inputSelector), i = re.exec(t.html());
5720 n.val(readNumber(i[1]) + readNumber(i[2])), e.hide()
5721 })
5722}, app.component.Form.prototype.validate = function () {
5723 var e = {
5724 errorPlacement: function (e, t) {
5725 if (t.attr("data-error-placement")) {
5726 var n = $(t.attr("data-error-placement"));
5727 if (n.length)return n.append(e), void 0
5728 }
5729 e.insertAfter(t)
5730 }
5731 };
5732 $.extend(e, this.validateOptions), this.element.validate(e)
5733}, app.component.Form.prototype.initCheckboxesAndRadios = function () {
5734 this.element.find("input:checkbox:not(.js-no-init)").checkbox({cls: "form__checkbox"}), this.element.find("input:radio:not(.js-no-init)").checkbox({cls: "form__radio"})
5735}, app.component.Form.prototype.initDatepickers = function () {
5736 this.element.find(".js-datepicker").datepicker({format: "mm/dd/yyyy"})
5737}, app.component.Form.prototype.initSelects = function () {
5738 this.element.find("select:not(.js-no-init)").each(function (e, t) {
5739 var n = $(t);
5740 n.fancySelect({includeBlank: !1}), n.on("change.fs", function () {
5741 $(this).trigger("change.$")
5742 })
5743 })
5744}, app.component.Form.prototype.initFileInput = function () {
5745 this.element.find(".js-file-input").fileprettify()
5746}, app.component.Form.prototype.initAutoSubmit = function () {
5747 this.element.find(".js-auto-submit").on("change", function () {
5748 this.element.submit()
5749 }.bind(this))
5750};
5751var app = app || {};
5752app.component = app.component || {}, app.component.Header = function (e, t) {
5753 pb.Component.call(this, e), this.dependencies = {document: t.get("document")}
5754}, extend(app.component.Header, pb.Component), app.component.Header.prototype.prepare = function () {
5755 $(this.dependencies.document).on(app.service.Document.EventTypes.SCROLL, this.fixHeader.bind(this)), this.dependencies.document.handleScrollEvent(), this.element.on("click", ".js-search-btn", this.handleSearchBtnClicked.bind(this)), this.element.on("click", ".js-mobile-menu-btn", this.toggleMobileMenu.bind(this))
5756}, app.component.Header.prototype.fixHeader = function () {
5757 {
5758 var e = this.dependencies.document.scrollTop;
5759 this.element.find(".js-navbar")
5760 }
5761 e > this.element.find(".js-header-content").height() ? this.element.addClass("fixed") : this.element.removeClass("fixed")
5762}, app.component.Header.prototype.handleSearchBtnClicked = function (e) {
5763 e.preventDefault();
5764 var t = $(e.currentTarget);
5765 this.element.find(".js-navbar, .js-search-bar").toggleClass("active"), this.element.find(".js-search-input").focus(), t.toggleClass("active")
5766}, app.component.Header.prototype.toggleMobileMenu = function (e) {
5767 e.preventDefault(), $("body").toggleClass("overlayed"), this.element.find(".js-mobile-menu, .js-mobile-menu-btn").toggleClass("active")
5768};
5769var app = app || {};
5770app.component = app.component || {}, app.component.Carousel = function (e) {
5771 pb.Component.call(this, e)
5772}, extend(app.component.Carousel, pb.Component), app.component.Carousel.prototype.prepare = function () {
5773 var e = {
5774 mode: this.element.attr("data-mode") || "fade",
5775 auto: this.element.attr("data-auto") || !1,
5776 pause: parseInt(this.element.attr("data-pause")) || 4e3,
5777 speed: parseInt(this.element.attr("data-speed")) || 800,
5778 controls: this.element.attr("data-controls") || !1,
5779 prevText: "",
5780 prevSelector: this.element.attr("data-direction-selector") || null,
5781 nextText: "",
5782 nextSelector: this.element.attr("data-direction-selector") || null,
5783 autoHover: this.element.attr("data-hover") || !1,
5784 pager: this.element.attr("data-pager") || !1,
5785 pagerCustom: this.element.attr("data-pager-custom") || !1,
5786 pagerSelector: this.element.attr("data-pager-selector") || null,
5787 onSliderLoad: function (e) {
5788 this.element.find(".bx-slider > *").eq(e).addClass("active-slide"), this.element.find(".js-slider-numbers .num-item").eq(0).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(1).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(3).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(4).addClass("visible")
5789 }.bind(this),
5790 onSlideBefore: function (e, t, n) {
5791 this.element.find(".js-slider-numbers .num-item").removeClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(n).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(n + 1).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(n + 3).addClass("visible"), this.element.find(".js-slider-numbers .num-item").eq(n + 4).addClass("visible")
5792 }.bind(this),
5793 onSlideAfter: function (e) {
5794 this.element.find(".active-slide").removeClass("active-slide"), e.addClass("active-slide")
5795 }.bind(this)
5796 };
5797 $.extend(e, this.element.data("carousel-settings")), $(window).load(function () {
5798 this.element.find(".bx-slider").bxSlider(e)
5799 }.bind(this))
5800};
5801var app = app || {};
5802app.component = app.component || {}, app.component.Toggle = function (e) {
5803 pb.Component.call(this, e), this.toggleElement = null
5804}, extend(app.component.Toggle, pb.Component), app.component.Toggle.State = {
5805 ON: "on",
5806 OFF: "off"
5807}, app.component.Toggle.prototype.prepare = function () {
5808 this.toggleElement = this.element.find(".js-toggle-element"), this.element.find(".js-toggle-switch").each(function (e, t) {
5809 var n = $(t);
5810 this._isCheckbox(n) ? (n.on("change", this.handleCheckboxChangeSwitch.bind(this)), n.is(":checked") || this.switchOff(!0)) : (n.on("click", this.handleClickSwitch.bind(this)), n.data("toggle") === app.component.Toggle.State.OFF ? (this.switchOff(!0), n.data("toggleTextOff") && n.html(n.data("toggleTextOff"))) : n.data("toggle") === app.component.Toggle.State.ON && n.data("toggleTextOn") && n.html(n.data("toggleTextOn")))
5811 }.bind(this))
5812}, app.component.Toggle.prototype.handleCheckboxChangeSwitch = function (e) {
5813 var t = $(e.currentTarget);
5814 t.is(":checked") ? this.switchOn(!1) : this.switchOff(!1)
5815}, app.component.Toggle.prototype.handleClickSwitch = function (e) {
5816 var t = $(e.currentTarget);
5817 t.is("a") && e.preventDefault(), t.data("toggle") === app.component.Toggle.State.OFF ? (this.switchOn(!1), t.data("toggleTextOn") && t.html(t.data("toggleTextOn")), t.data("toggle", app.component.Toggle.State.ON)) : t.data("toggle") === app.component.Toggle.State.ON && (this.switchOff(!1), t.data("toggleTextOff") && t.html(t.data("toggleTextOff")), t.data("toggle", app.component.Toggle.State.OFF))
5818}, app.component.Toggle.prototype._isCheckbox = function (e) {
5819 return e.is("input[type=checkbox]")
5820}, app.component.Toggle.prototype.switchOn = function () {
5821 this.toggleElement.show()
5822}, app.component.Toggle.prototype.switchOff = function () {
5823 this.toggleElement.hide()
5824};
5825var app = app || {};
5826app.component = app.component || {}, app.component.ToggleAnimate = function (e, t) {
5827 app.component.Toggle.call(this, e, t), this.dependencies = {document: t.get("document")}
5828}, extend(app.component.ToggleAnimate, app.component.Toggle), app.component.Toggle.prototype.switchOn = function (e) {
5829 var t = 400;
5830 e && (t = 0), this.toggleElement.slideDown(t), this.toggleElement.find(".js-sticky").sticky("update"), setTimeout(function () {
5831 this.dependencies.document.handleResizeEvent()
5832 }.bind(this), t)
5833}, app.component.Toggle.prototype.switchOff = function (e) {
5834 var t = 400;
5835 e && (t = 0), this.toggleElement.slideUp(t), setTimeout(function () {
5836 this.dependencies.document.handleResizeEvent()
5837 }.bind(this), t)
5838};
5839var app = app || {};
5840app.component = app.component || {}, app.component.Sticky = function (e, t) {
5841 pb.Component.call(this, e), this.dependencies = {document: t.get("document")}
5842}, extend(app.component.Sticky, pb.Component), app.component.Sticky.prototype.prepare = function () {
5843 this.tabletWidth = 999, this.windowWidth = this.dependencies.document.windowSize.width, this.sticky = null, this.offset = application.getConfig("document").getScrollOffset(), $(this.dependencies.document).on(app.service.Document.EventTypes.RESIZE, this.bindSticky.bind(this)), this.bindSticky(), $(this.dependencies.document).on(app.service.Document.EventTypes.SCROLL, this.handleScroll.bind(this))
5844}, app.component.Sticky.prototype.bindSticky = function () {
5845 var e = this.dependencies.document.windowSize.width;
5846 e > this.tabletWidth ? this.sticky || (this.sticky = this.element.sticky({topSpacing: this.element.data("offset-top") || 0})) : this.sticky && (this.element.unstick(), this.sticky = null)
5847}, app.component.Sticky.prototype.handleScroll = function () {
5848 {
5849 var e = this.element.find("a"), t = this.dependencies.document.scrollTop;
5850 this.dependencies.document.windowSize.height
5851 }
5852 e.each(function (n, i) {
5853 var o = $(i);
5854 if ("#" === o.attr("href").slice(0, 1)) {
5855 var r = $(o.attr("href"));
5856 r.offset().top <= t - this.offset && r.offset().top + r.outerHeight() > t - this.offset ? (e.removeClass("active"), o.addClass("active")) : o.removeClass("active")
5857 }
5858 }.bind(this))
5859};
5860var app = app || {};
5861app.component = app.component || {}, app.component.ContactMap = function (e) {
5862 pb.Component.call(this, e)
5863}, extend(app.component.ContactMap, pb.Component), app.component.ContactMap.prototype.prepare = function () {
5864 this.lat = this.element.data("lat"), this.lng = this.element.data("lng"), this.zoom = this.element.data("zoom") || 16, this.markerIcon = "/common/images/layout/icon-marker.png", this.markerTitle = this.element.data("title") || "", this.mapOptions = {
5865 zoom: this.zoom,
5866 center: new google.maps.LatLng(this.lat, this.lng),
5867 scrollwheel: !1
5868 }, this.element.on("click", ".js-zoom-btn", this.handleZoomBtnClicked.bind(this)), this.initMap()
5869}, app.component.ContactMap.prototype.initMap = function () {
5870 this.map = new google.maps.Map(this.element.find(".js-map-canvas")[0], this.mapOptions);
5871 {
5872 var e = this.markerIcon, t = this.markerTitle;
5873 new google.maps.Marker({
5874 position: new google.maps.LatLng(this.lat, this.lng),
5875 map: this.map,
5876 icon: new google.maps.MarkerImage(e, new google.maps.Size(24, 34), new google.maps.Point(0, 0), new google.maps.Point(12, 34), new google.maps.Size(24, 34)),
5877 title: t
5878 })
5879 }
5880}, app.component.ContactMap.prototype.handleZoomBtnClicked = function (e) {
5881 e.preventDefault();
5882 var t = $(e.currentTarget), n = t.data("text-normal"), i = t.data("text-active");
5883 t.hasClass("active") ? (this.map.setZoom(this.zoom), this.map.panTo(new google.maps.LatLng(this.lat, this.lng)), t.removeClass("active"), t.find(".text").text(n)) : (this.map.setZoom(14), this.map.panTo(new google.maps.LatLng(this.lat, this.lng)), t.addClass("active"), t.find(".text").text(i))
5884};
5885var app = app || {};
5886app.component = app.component || {}, app.component.SocialButtons = function (e, t) {
5887 pb.Component.call(this, e), this.dependencies = {document: t.get("document"), component: t.get("component")}
5888}, extend(app.component.SocialButtons, pb.Component), app.component.SocialButtons.prototype.prepare = function () {
5889 this.element.on("click", ".js-share-link", this.handleShareLinkClicked.bind(this)).on("click", ".js-share-popup", this.handleSharePopupClicked.bind(this))
5890}, app.component.SocialButtons.prototype.handleShareLinkClicked = function (e) {
5891 e.preventDefault();
5892 var t = $(e.currentTarget), n = t.data("window-width") || 400, i = t.data("window-height") || 300,
5893 o = t.attr("title") || "", r = this.dependencies.document, s = r.windowSize.width / 2 - n / 2,
5894 a = r.windowSize.height / 2 - i / 2;
5895 window.open(t.attr("href"), o, "width=" + n + ",height=" + i + ",resizable=yes, left=" + s + ",top=" + a)
5896}, app.component.SocialButtons.prototype.handleSharePopupClicked = function (e) {
5897 e.preventDefault();
5898 var t = $(e.currentTarget), n = $(t.attr("href")), i = t.data("snap-position"), o = null,
5899 r = this.dependencies.component.get(n);
5900 switch (i) {
5901 case"center":
5902 o = pb.component.Popup.HorizontalPosition.CENTER;
5903 break;
5904 case"right":
5905 o = pb.component.Popup.HorizontalPosition.RIGHT;
5906 break;
5907 default:
5908 o = pb.component.Popup.HorizontalPosition.LEFT
5909 }
5910 n.length || warn("Nebyl nalezen popup k otevreni."), r && isInstanceOf(r, pb.component.Popup) ? (r.setCloseOnEscape(!0), r.setSnapTo(t, o, pb.component.Popup.VerticalPosition.BOTTOM), r.open(), r.element.find(".notification").remove(), r.element.find(".js-share-img").val(this.element.data("share-img"))) : warn("Element pro popup nebyl nalezen nebo neni instanci pb.component.Popup")
5911};
5912var app = app || {};
5913app.component = app.component || {}, app.component.Gallery = function (e, t) {
5914 pb.Component.call(this, e), this.dependencies = {component: t.get("component"), document: t.get("document")}
5915}, extend(app.component.Gallery, pb.Component), app.component.Gallery.prototype.prepare = function () {
5916 var e = this.element.data("all-items");
5917 if (this.twitterUrl = this.element.data("twitter-url"), this.pinterestUrl = this.element.data("pinterest-url"), this.items = [], this.mfpSettings = {
5918 type: "image",
5919 removalDelay: 300,
5920 mainClass: "mfp-fade",
5921 image: {
5922 markup: '<div class="mfp-figure"><div class="mfp-close"></div><div class="mfp-img"></div><div class="mfp-bottom-bar"><div class="mfp-counter"></div><div class="mfp-share" data-component="socialButtons"><a href="#popup-share" class="btn btn--share js-share-popup js-no-scroll" title="Send this project" data-snap-position="right"><i class="icon icon--email-share"></i></a><a href="" class="btn btn--share js-share-link js-share-twitter" title="Share on Twitter"><i class="icon icon--twitter"></i></a><a href="" class="btn btn--share js-share-link js-share-pinterest" title="Share on Pinterest"><i class="icon icon--pinterest"></i></a></div></div></div>',
5923 cursor: null
5924 },
5925 gallery: {
5926 enabled: !0,
5927 preload: [1, 3],
5928 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"><i class="icon icon--arrow-big-%dir% mfp-prevent-close"></i></button>'
5929 },
5930 closeMarkup: '<button title="%title%" class="mfp-close icon icon--cross-big"></button>'
5931 }, e)for (var t = 0; t < e.length; t++)this.items.push({src: e[t], title: ""});
5932 this.initMagnificPopup(), $(this.dependencies.document).on(app.service.Document.EventTypes.UPDATE, this.initMagnificPopup.bind(this))
5933}, app.component.Gallery.prototype.initMagnificPopup = function () {
5934 this.items.length > 0 ? this.element.find(".js-gallery-item").each(function (e, t) {
5935 var n = $(t).data("index");
5936 $.extend(this.mfpSettings, {
5937 items: this.items, index: n, callbacks: {
5938 change: function () {
5939 var e = $.magnificPopup.instance,
5940 t = this.pinterestUrl + this.application.getUrl() + e.content.find("img").attr("src");
5941 e.content.find(".mfp-share").attr("data-share-img", this.application.getUrl() + e.content.find("img").attr("src")), e.content.find(".js-share-twitter").attr("href", this.twitterUrl), e.content.find(".js-share-pinterest").attr("href", t), this.application.loadComponents(e.content), this.closePopupComponent()
5942 }.bind(this),
5943 beforeOpen: this.closePopupComponent.bind(this),
5944 beforeClose: this.closePopupComponent.bind(this)
5945 }
5946 }), $(t).magnificPopup(this.mfpSettings)
5947 }.bind(this)) : ($.extend(this.mfpSettings, {
5948 delegate: ".js-gallery-item", callbacks: {
5949 change: function () {
5950 var e = $.magnificPopup.instance,
5951 t = this.pinterestUrl + this.application.getUrl() + e.content.find("img").attr("src");
5952 e.content.find(".mfp-share").attr("data-share-img", this.application.getUrl() + e.content.find("img").attr("src")), e.content.find(".js-share-twitter").attr("href", this.twitterUrl), e.content.find(".js-share-pinterest").attr("href", t), this.application.loadComponents(e.content), this.closePopupComponent()
5953 }.bind(this),
5954 beforeOpen: this.closePopupComponent.bind(this),
5955 beforeClose: this.closePopupComponent.bind(this)
5956 }
5957 }), this.element.magnificPopup(this.mfpSettings))
5958}, app.component.Gallery.prototype.closePopupComponent = function () {
5959 var e = this.dependencies.component.get("#popup-share");
5960 e.close()
5961};
5962var app = app || {};
5963app.component = app.component || {}, app.component.StickyUp = function (e, t) {
5964 pb.Component.call(this, e), this.dependencies = {document: t.get("document")}
5965}, extend(app.component.StickyUp, pb.Component), app.component.StickyUp.prototype.prepare = function () {
5966 this.windowSize = {}, this.documentHeight = 0, this.scrollTopShow = 300, $(this.dependencies.document).on(app.service.Document.EventTypes.READY, function () {
5967 this.documentHeight = this.dependencies.document.height, this.handlePageResize(), this.handlePageScroll()
5968 }.bind(this)), $(this.dependencies.document).on(app.service.Document.EventTypes.RESIZE, this.handlePageResize.bind(this)), $(this.dependencies.document).on(app.service.Document.EventTypes.SCROLL, this.handlePageScroll.bind(this))
5969}, app.component.StickyUp.prototype.handlePageResize = function () {
5970 this.windowSize = this.dependencies.document.windowSize, this.handlePageScroll()
5971}, app.component.StickyUp.prototype.handlePageScroll = function () {
5972 this.documentHeight = this.dependencies.document.height;
5973 var e = $(".footer").height() - 60, t = this.documentHeight - e - this.windowSize.height,
5974 n = t + this.windowSize.height - this.element.height(), i = this.dependencies.document.scrollTop;
5975 return 0 >= t ? (this.element.addClass("active absolute").css("top", this.documentHeight - e - this.element.height()), void 0) : (i >= t ? this.element.addClass("active absolute").css("top", n) : i > this.scrollTopShow ? this.element.removeClass("absolute").addClass("active").css("top", "auto") : this.element.removeClass("active absolute").css("top", "auto"), void 0)
5976};
5977var app = app || {};
5978app.component = app.component || {}, app.component.CareerPositions = function (e) {
5979 pb.Component.call(this, e)
5980}, extend(app.component.CareerPositions, pb.Component), app.component.CareerPositions.prototype.prepare = function () {
5981 this.element.on("click", ".js-career-item", this.handlePositionClicked.bind(this))
5982}, app.component.CareerPositions.prototype.handlePositionClicked = function (e) {
5983 e.preventDefault();
5984 var t = $(e.currentTarget), n = t.data("position-id");
5985 this.element.find(".js-career-item").not(t).removeClass("active"), t.toggleClass("active"), this.element.find(".js-career-content").not("[data-position-id='" + n + "']").slideUp(300), this.element.find(".js-career-content[data-position-id='" + n + "']").delay(300).slideToggle(300), t.hasClass("active") ? (this.element.find(".js-form-position-id").val(t.data("position-id")), this.element.find(".js-form-position-name").val(t.text())) : (this.element.find(".js-form-position-id").val(""), this.element.find(".js-form-position-name").val(""))
5986};
5987var app = app || {};
5988app.component = app.component || {}, app.component.IntroVideo = function (e, t) {
5989 pb.Component.call(this, e), this.youTubeApi = t.get("youTubeApi")
5990}, extend(app.component.IntroVideo, pb.Component), app.component.IntroVideo.prototype.prepare = function () {
5991 this.observe(this.youTubeApi, this.youTubeApi.EVENT.API_READY, this.initVideo.bind(this)), this.youTubeApi.getApi(), this.element.find(".intro-video__close-btn").on("click", this.handleCloseVideo.bind(this))
5992}, app.component.IntroVideo.prototype.initVideo = function () {
5993 this.player = new YT.Player("introVideo", {
5994 videoId: "pLx0Ohs_VMg",
5995 events: {onReady: this.onPlayerReady.bind(this), onStateChange: this.onStateChange.bind(this)},
5996 playerVars: {controls: 0}
5997 })
5998}, app.component.IntroVideo.prototype.onPlayerReady = function (e) {
5999 e.target.playVideo()
6000}, app.component.IntroVideo.prototype.onStateChange = function (e) {
6001 0 === e.data && this.hideVideo()
6002}, app.component.IntroVideo.prototype.hideVideo = function () {
6003 this.element.fadeOut()
6004}, app.component.IntroVideo.prototype.handleCloseVideo = function (e) {
6005 e.preventDefault(), this.hideVideo(), this.player.stopVideo()
6006};
6007var app = app || {};
6008app.component = app.component || {}, app.component.Video = function (e) {
6009 pb.Component.call(this, e)
6010}, extend(app.component.Video, pb.Component), app.component.Video.prototype.prepare = function () {
6011 this.element.removeClass("js-hide"), this.initMagnificPopup()
6012}, app.component.Video.prototype.initMagnificPopup = function () {
6013 this.element.magnificPopup({
6014 disableOn: 700,
6015 type: "iframe",
6016 mainClass: "mfp-fade",
6017 removalDelay: 160,
6018 preloader: !1,
6019 iframe: {
6020 markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe></div>',
6021 cursor: null
6022 },
6023 fixedContentPos: !1,
6024 closeMarkup: '<button title="%title%" class="mfp-close icon icon--cross-big"></button>'
6025 })
6026};
6027var app = app || {};
6028!function (e, t, n, i) {
6029 t.debug = i("html").attr("debug") ? !0 : !1, t.debugTrace = !1;
6030 var o = new t.Dependencies;
6031 o.register("component", t.service.Component), o.register("document", n.service.Document), o.register("youTubeApi", n.service.YouTubeApi);
6032 var r = new t.Dependencies;
6033 r.register("overlay", t.component.Overlay), r.register("popup", t.component.Popup), r.register("popupOpener", t.component.PopupOpener), r.register("component", t.Component), r.register("paging", n.component.Paging), r.register("form", n.component.Form), r.register("header", n.component.Header), r.register("carousel", n.component.Carousel), r.register("toggle", n.component.ToggleAnimate), r.register("contactMap", n.component.ContactMap), r.register("gallery", n.component.Gallery), r.register("stickyUp", n.component.StickyUp), r.register("careerPositions", n.component.CareerPositions), r.register("introVideo", n.component.IntroVideo), r.register("sticky", n.component.Sticky), r.register("socialButtons", n.component.SocialButtons), r.register("video", n.component.Video), t.Exception.setErrorLogging("/js_error_logger.php");
6034 var s = new t.Application(r, o, n.Request, t.Template);
6035 s.setTranslator(e.translator), s.addConfig("document", {
6036 getScrollOffset: function (t) {
6037 var n = -50, o = 999;
6038 return i(".js-sticky").length > 0 && i(e).width() > o && (n -= 70), t ? t.offset().top - n / 2 : n
6039 }
6040 }), s.onStartup = function () {
6041 jQuery.validator.addMethod("time", function (e, t) {
6042 return this.optional(t) || /^([0-2][0-9]:[0-5][0-9])$/.test(e)
6043 }, this.translate("app.form.validate.error.time"))
6044 }, s.initPlugins = function (t) {
6045 t = t || i("body"), t.find(".targetblank").attr("target", "_blank"), i("a:not(.js-no-scroll)").smoothScroll({
6046 offset: s.getConfig("document").getScrollOffset(),
6047 afterScroll: function () {
6048 var t = i(this), n = t.attr("href"), o = n.substring(n.indexOf("#"));
6049 if (n && -1 !== n.indexOf("#")) {
6050 var r, s = i(o);
6051 r = s.attr("id"), s.attr("id", r + "---old"), e.location.hash = o, s.attr("id", r)
6052 }
6053 }
6054 }), t.find(".js-lightbox-gallery").each(function () {
6055 i(this).magnificPopup({
6056 delegate: ".js-gallery-item",
6057 type: "image",
6058 removalDelay: 300,
6059 mainClass: "mfp-fade",
6060 image: {
6061 markup: '<div class="mfp-figure"><div class="mfp-close"></div><div class="mfp-img"></div><div class="mfp-bottom-bar"><div class="mfp-counter"></div><div class="mfp-share"><a href="#" class="btn btn--share js-share-popup js-no-scroll" title="Send this project"><i class="icon icon--email-share"></i></a><a href="#" class="btn btn--share js-share-link" title="Share on Twitter"><i class="icon icon--twitter"></i></a><a href="#" class="btn btn--share js-share-link" title="Share on Pinterest"><i class="icon icon--pinterest"></i></a></div></div></div>',
6062 titleSrc: function (e) {
6063 var t, n = e.el.find("img");
6064 return n.length && (t = n.attr("alt") || n.attr("title")), t || e.el.attr("title") || ""
6065 },
6066 cursor: null
6067 },
6068 gallery: {
6069 enabled: !0,
6070 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"><i class="icon icon--arrow-big-%dir% mfp-prevent-close"></i></button>'
6071 },
6072 closeMarkup: '<button title="%title%" class="mfp-close icon icon--cross-big"></button>'
6073 })
6074 })
6075 }, i(function () {
6076 s.initAjax(), s.run()
6077 }), i(e).on("load", function () {
6078 e.location.hash && i.smoothScroll({
6079 scrollTarget: e.location.hash,
6080 offset: s.getConfig("document").getScrollOffset()
6081 })
6082 }), e.application = s
6083}(window, pb, app, jQuery);