").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using" in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length){return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)})}var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f){return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d}},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position")){a=a.offsetParent}return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void (f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
/* jQuery Validation Plugin*/
!function (A) { "function" == typeof define && define.amd ? define(["jquery"], A) : A(jQuery) }(function (C) { C.extend(C.fn, { validate: function (D) { if (!this.length) { return void (D && D.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing.")) } var E = C.data(this[0], "validator"); return E ? E : (this.attr("novalidate", "novalidate"), E = new C.validator(D, this[0]), C.data(this[0], "validator", E), E.settings.onsubmit && (this.validateDelegate(":submit", "click", function (F) { E.settings.submitHandler && (E.submitButton = F.target), C(F.target).hasClass("cancel") && (E.cancelSubmit = !0), void 0 !== C(F.target).attr("formnovalidate") && (E.cancelSubmit = !0) }), this.submit(function (G) { function F() { var H; return E.settings.submitHandler ? (E.submitButton && (H = C("
").attr("name", E.submitButton.name).val(C(E.submitButton).val()).appendTo(E.currentForm)), E.settings.submitHandler.call(E, E.currentForm, G), E.submitButton && H.remove(), !1) : !0 } return E.settings.debug && G.preventDefault(), E.cancelSubmit ? (E.cancelSubmit = !1, F()) : E.form() ? E.pendingRequest ? (E.formSubmitted = !0, !1) : F() : (E.focusInvalid(), !1) })), E) }, valid: function () { var D, E; return C(this[0]).is("form") ? D = this.validate().form() : (D = !0, E = C(this[0].form).validate(), this.each(function () { D = E.element(this) && D })), D }, removeAttrs: function (E) { var F = {}, D = this; return C.each(E.split(/\s/), function (H, G) { F[G] = D.attr(G), D.removeAttr(G) }), F }, rules: function (H, I) { var L, D, J, K, F, G, E = this[0]; if (H) { switch (L = C.data(E.form, "validator").settings, D = L.rules, J = C.validator.staticRules(E), H) { case "add": C.extend(J, C.validator.normalizeRule(I)), delete J.messages, D[E.name] = J, I.messages && (L.messages[E.name] = C.extend(L.messages[E.name], I.messages)); break; case "remove": return I ? (G = {}, C.each(I.split(/\s/), function (M, N) { G[N] = J[N], delete J[N], "required" === N && C(E).removeAttr("aria-required") }), G) : (delete D[E.name], J) } } return K = C.validator.normalizeRules(C.extend({}, C.validator.classRules(E), C.validator.attributeRules(E), C.validator.dataRules(E), C.validator.staticRules(E)), E), K.required && (F = K.required, delete K.required, K = C.extend({ required: F }, K), C(E).attr("aria-required", "true")), K.remote && (F = K.remote, delete K.remote, K = C.extend(K, { remote: F })), K } }), C.extend(C.expr[":"], { blank: function (D) { return !C.trim("" + C(D).val()) }, filled: function (D) { return !!C.trim("" + C(D).val()) }, unchecked: function (D) { return !C(D).prop("checked") } }), C.validator = function (D, E) { this.settings = C.extend(!0, {}, C.validator.defaults, D), this.currentForm = E, this.init() }, C.validator.format = function (D, E) { return 1 === arguments.length ? function () { var F = C.makeArray(arguments); return F.unshift(D), C.validator.format.apply(this, F) } : (arguments.length > 2 && E.constructor !== Array && (E = C.makeArray(arguments).slice(1)), E.constructor !== Array && (E = [E]), C.each(E, function (G, F) { D = D.replace(new RegExp("\\{" + G + "\\}", "g"), function () { return F }) }), D) }, C.extend(C.validator, { defaults: { messages: {}, groups: {}, rules: {}, errorClass: "error", validClass: "valid", errorElement: "label", focusInvalid: !0, errorContainer: C([]), errorLabelContainer: C([]), onsubmit: !0, ignore: ":hidden", ignoreTitle: !1, onfocusin: function (D) { this.lastActive = D, this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, D, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(D))) }, onfocusout: function (D) { this.checkable(D) || !(D.name in this.submitted) && this.optional(D) || this.element(D) }, onkeyup: function (E, D) { (9 !== D.which || "" !== this.elementValue(E)) && (E.name in this.submitted || E === this.lastElement) && this.element(E) }, onclick: function (D) { D.name in this.submitted ? this.element(D) : D.parentNode.name in this.submitted && this.element(D.parentNode) }, highlight: function (E, F, D) { "radio" === E.type ? this.findByName(E.name).addClass(F).removeClass(D) : C(E).addClass(F).removeClass(D) }, unhighlight: function (E, F, D) { "radio" === E.type ? this.findByName(E.name).removeClass(F).addClass(D) : C(E).removeClass(F).addClass(D) } }, setDefaults: function (D) { C.extend(C.validator.defaults, D) }, messages: { required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.", url: "Please enter a valid URL.", date: "Please enter a valid date.", dateISO: "Please enter a valid date ( ISO ).", number: "Please enter a valid number.", digits: "Please enter only digits.", creditcard: "Please enter a valid credit card number.", equalTo: "Please enter the same value again.", maxlength: C.validator.format("请输入少于 {0} 个字符."), minlength: C.validator.format("Please enter at least {0} characters."), rangelength: C.validator.format("Please enter a value between {0} and {1} characters long."), range: C.validator.format("Please enter a value between {0} and {1}."), max: C.validator.format("Please enter a value less than or equal to {0}."), min: C.validator.format("Please enter a value greater than or equal to {0}.") }, autoCreateRanges: !1, prototype: { init: function () { function E(I) { var J = C.data(this[0].form, "validator"), G = "on" + I.type.replace(/^validate/, ""), H = J.settings; H[G] && !this.is(H.ignore) && H[G].call(J, this[0], I) } this.labelContainer = C(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || C(this.currentForm), this.containers = C(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset(); var F, D = this.groups = {}; C.each(this.settings.groups, function (G, H) { "string" == typeof H && (H = H.split(/\s/)), C.each(H, function (J, I) { D[I] = G }) }), F = this.settings.rules, C.each(F, function (H, G) { F[H] = C.validator.normalizeRule(G) }), C(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'], [type='radio'], [type='checkbox']", "focusin focusout keyup", E).validateDelegate("select, option, [type='radio'], [type='checkbox']", "click", E), this.settings.invalidHandler && C(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler), C(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true") }, form: function () { return this.checkForm(), C.extend(this.submitted, this.errorMap), this.invalid = C.extend({}, this.errorMap), this.valid() || C(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid() }, checkForm: function () { this.prepareForm(); for (var E = 0, D = this.currentElements = this.elements() ; D[E]; E++) { this.check(D[E]) } return this.valid() }, element: function (F) { var G = this.clean(F), D = this.validationTargetFor(G), E = !0; return this.lastElement = D, void 0 === D ? delete this.invalid[G.name] : (this.prepareElement(D), this.currentElements = C(D), E = this.check(D) !== !1, E ? delete this.invalid[D.name] : this.invalid[D.name] = !0), C(F).attr("aria-invalid", !E), this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), E }, showErrors: function (D) { if (D) { C.extend(this.errorMap, D), this.errorList = []; for (var E in D) { this.errorList.push({ message: D[E], element: this.findByName(E)[0] }) } this.successList = C.grep(this.successList, function (F) { return !(F.name in D) }) } this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors() }, resetForm: function () { C.fn.resetForm && C(this.currentForm).resetForm(), this.submitted = {}, this.lastElement = null, this.prepareForm(), this.hideErrors(), this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid") }, numberOfInvalids: function () { return this.objectLength(this.invalid) }, objectLength: function (F) { var D, E = 0; for (D in F) { E++ } return E }, hideErrors: function () { this.hideThese(this.toHide) }, hideThese: function (D) { D.not(this.containers).text(""), this.addWrapper(D).hide() }, valid: function () { return 0 === this.size() }, size: function () { return this.errorList.length }, focusInvalid: function () { if (this.settings.focusInvalid) { try { C(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin") } catch (D) { } } }, findLastActive: function () { var D = this.lastActive; return D && 1 === C.grep(this.errorList, function (E) { return E.element.name === D.name }).length && D }, elements: function () { var D = this, E = {}; return C(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function () { return !this.name && D.settings.debug && window.console && console.error("%o has no name assigned", this), this.name in E || !D.objectLength(C(this).rules()) ? !1 : (E[this.name] = !0, !0) }) }, clean: function (D) { return C(D)[0] }, errors: function () { var D = this.settings.errorClass.split(" ").join("."); return C(this.settings.errorElement + "." + D, this.errorContext) }, reset: function () { this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = C([]), this.toHide = C([]), this.currentElements = C([]) }, prepareForm: function () { this.reset(), this.toHide = this.errors().add(this.containers) }, prepareElement: function (D) { this.reset(), this.toHide = this.errorsFor(D) }, elementValue: function (F) { var G, D = C(F), E = F.type; return "radio" === E || "checkbox" === E ? C("input[name='" + F.name + "']:checked").val() : "number" === E && "undefined" != typeof F.validity ? F.validity.badInput ? !1 : D.val() : (G = D.val(), "string" == typeof G ? G.replace(/\r/g, "") : G) }, check: function (H) { H = this.validationTargetFor(this.clean(H)); var I, L, D, J = C(H).rules(), K = C.map(J, function (N, M) { return M }).length, F = !1, G = this.elementValue(H); for (L in J) { D = { method: L, parameters: J[L] }; try { if (I = C.validator.methods[L].call(this, G, H, D.parameters), "dependency-mismatch" === I && 1 === K) { F = !0; continue } if (F = !1, "pending" === I) { return void (this.toHide = this.toHide.not(this.errorsFor(H))) } if (!I) { return this.formatAndAdd(H, D), !1 } } catch (E) { throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + H.id + ", check the '" + D.method + "' method.", E), E } } if (!F) { return this.objectLength(J) && this.successList.push(H), !0 } }, customDataMessage: function (D, E) { return C(D).data("msg" + E.charAt(0).toUpperCase() + E.substring(1).toLowerCase()) || C(D).data("msg") }, customMessage: function (F, D) { var E = this.settings.messages[F]; return E && (E.constructor === String ? E : E[D]) }, findDefined: function () { for (var D = 0; D < arguments.length; D++) { if (void 0 !== arguments[D]) { return arguments[D] } } return void 0 }, defaultMessage: function (D, E) { return this.findDefined(this.customMessage(D.name, E), this.customDataMessage(D, E), !this.settings.ignoreTitle && D.title || void 0, C.validator.messages[E], "
Warning: No message defined for " + D.name + " ") }, formatAndAdd: function (F, G) { var D = this.defaultMessage(F, G.method), E = /\$?\{(\d+)\}/g; "function" == typeof D ? D = D.call(this, G.parameters, F) : E.test(D) && (D = C.validator.format(D.replace(E, "{$1}"), G.parameters)), this.errorList.push({ message: D, element: F, method: G.method }), this.errorMap[F.name] = D, this.submitted[F.name] = D }, addWrapper: function (D) { return this.settings.wrapper && (D = D.add(D.parent(this.settings.wrapper))), D }, defaultShowErrors: function () { var F, D, E; for (F = 0; this.errorList[F]; F++) { E = this.errorList[F], this.settings.highlight && this.settings.highlight.call(this, E.element, this.settings.errorClass, this.settings.validClass), this.showLabel(E.element, E.message) } if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success) { for (F = 0; this.successList[F]; F++) { this.showLabel(this.successList[F]) } } if (this.settings.unhighlight) { for (F = 0, D = this.validElements() ; D[F]; F++) { this.settings.unhighlight.call(this, D[F], this.settings.errorClass, this.settings.validClass) } } this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show() }, validElements: function () { return this.currentElements.not(this.invalidElements()) }, invalidElements: function () { return C(this.errorList).map(function () { return this.element }) }, showLabel: function (G, H) { var K, D, I, J = this.errorsFor(G), E = this.idOrName(G), F = C(G).attr("aria-describedby"); J.length ? (J.removeClass(this.settings.validClass).addClass(this.settings.errorClass), J.html(H)) : (J = C("<" + this.settings.errorElement + ">").attr("id", E + "-error").addClass(this.settings.errorClass).html(H || ""), K = J, this.settings.wrapper && (K = J.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(K) : this.settings.errorPlacement ? this.settings.errorPlacement(K, C(G)) : K.insertAfter(G), J.is("label") ? J.attr("for", E) : 0 === J.parents("label[for='" + E + "']").length && (I = J.attr("id"), F ? F.match(new RegExp("\b" + I + "\b")) || (F += " " + I) : F = I, C(G).attr("aria-describedby", F), D = this.groups[G.name], D && C.each(this.groups, function (L, M) { M === D && C("[name='" + L + "']", this.currentForm).attr("aria-describedby", J.attr("id")) }))), !H && this.settings.success && (J.text(""), "string" == typeof this.settings.success ? J.addClass(this.settings.success) : this.settings.success(J, G)), this.toShow = this.toShow.add(J) }, errorsFor: function (F) { var G = this.idOrName(F), D = C(F).attr("aria-describedby"), E = "label[for='" + G + "'], label[for='" + G + "'] *"; return D && (E = E + ", #" + D.replace(/\s+/g, ", #")), this.errors().filter(E) }, idOrName: function (D) { return this.groups[D.name] || (this.checkable(D) ? D.name : D.id || D.name) }, validationTargetFor: function (D) { return this.checkable(D) && (D = this.findByName(D.name).not(this.settings.ignore)[0]), D }, checkable: function (D) { return /radio|checkbox/i.test(D.type) }, findByName: function (D) { return C(this.currentForm).find("[name='" + D + "']") }, getLength: function (D, E) { switch (E.nodeName.toLowerCase()) { case "select": return C("option:selected", E).length; case "input": if (this.checkable(E)) { return this.findByName(E.name).filter(":checked").length } } return D.length }, depend: function (E, D) { return this.dependTypes[typeof E] ? this.dependTypes[typeof E](E, D) : !0 }, dependTypes: { "boolean": function (D) { return D }, string: function (D, E) { return !!C(D, E.form).length }, "function": function (E, D) { return E(D) } }, optional: function (D) { var E = this.elementValue(D); return !C.validator.methods.required.call(this, E, D) && "dependency-mismatch" }, startRequest: function (D) { this.pending[D.name] || (this.pendingRequest++, this.pending[D.name] = !0) }, stopRequest: function (D, E) { this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[D.name], E && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (C(this.currentForm).submit(), this.formSubmitted = !1) : !E && 0 === this.pendingRequest && this.formSubmitted && (C(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1) }, previousValue: function (D) { return C.data(D, "previousValue") || C.data(D, "previousValue", { old: null, valid: !0, message: this.defaultMessage(D, "remote") }) } }, classRuleSettings: { required: { required: !0 }, email: { email: !0 }, url: { url: !0 }, date: { date: !0 }, dateISO: { dateISO: !0 }, number: { number: !0 }, digits: { digits: !0 }, creditcard: { creditcard: !0 } }, addClassRules: function (D, E) { D.constructor === String ? this.classRuleSettings[D] = E : C.extend(this.classRuleSettings, D) }, classRules: function (E) { var F = {}, D = C(E).attr("class"); return D && C.each(D.split(" "), function () { this in C.validator.classRuleSettings && C.extend(F, C.validator.classRuleSettings[this]) }), F }, attributeRules: function (G) { var H, E, F = {}, I = C(G), D = G.getAttribute("type"); for (H in C.validator.methods) { "required" === H ? (E = G.getAttribute(H), "" === E && (E = !0), E = !!E) : E = I.attr(H), /min|max/.test(H) && (null === D || /number|range|text/.test(D)) && (E = Number(E)), E || 0 === E ? F[H] = E : D === H && "range" !== D && (F[H] = !0) } return F.maxlength && /-1|2147483647|524288/.test(F.maxlength) && delete F.maxlength, F }, dataRules: function (F) { var G, D, E = {}, H = C(F); for (G in C.validator.methods) { D = H.data("rule" + G.charAt(0).toUpperCase() + G.substring(1).toLowerCase()), void 0 !== D && (E[G] = D) } return E }, staticRules: function (E) { var F = {}, D = C.data(E.form, "validator"); return D.settings.rules && (F = C.validator.normalizeRule(D.settings.rules[E.name]) || {}), F }, normalizeRules: function (D, E) { return C.each(D, function (F, G) { if (G === !1) { return void delete D[F] } if (G.param || G.depends) { var H = !0; switch (typeof G.depends) { case "string": H = !!C(G.depends, E.form).length; break; case "function": H = G.depends.call(E, E) } H ? D[F] = void 0 !== G.param ? G.param : !0 : delete D[F] } }), C.each(D, function (F, G) { D[F] = C.isFunction(G) ? G(E) : G }), C.each(["minlength", "maxlength"], function () { D[this] && (D[this] = Number(D[this])) }), C.each(["rangelength", "range"], function () { var F; D[this] && (C.isArray(D[this]) ? D[this] = [Number(D[this][0]), Number(D[this][1])] : "string" == typeof D[this] && (F = D[this].replace(/[\[\]]/g, "").split(/[\s,]+/), D[this] = [Number(F[0]), Number(F[1])])) }), C.validator.autoCreateRanges && (D.min && D.max && (D.range = [D.min, D.max], delete D.min, delete D.max), D.minlength && D.maxlength && (D.rangelength = [D.minlength, D.maxlength], delete D.minlength, delete D.maxlength)), D }, normalizeRule: function (D) { if ("string" == typeof D) { var E = {}; C.each(D.split(/\s/), function () { E[this] = !0 }), D = E } return D }, addMethod: function (E, F, D) { C.validator.methods[E] = F, C.validator.messages[E] = void 0 !== D ? D : C.validator.messages[E], F.length < 3 && C.validator.addClassRules(E, C.validator.normalizeRule(E)) }, methods: { required: function (F, G, D) { if (!this.depend(D, G)) { return "dependency-mismatch" } if ("select" === G.nodeName.toLowerCase()) { var E = C(G).val(); return E && E.length > 0 } return this.checkable(G) ? this.getLength(F, G) > 0 : C.trim(F).length > 0 }, email: function (E, D) { return this.optional(D) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(E) }, url: function (E, D) { return this.optional(D) || /^(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) }, date: function (E, D) { return this.optional(D) || !/Invalid|NaN/.test(new Date(E).toString()) }, dateISO: function (E, D) { return this.optional(D) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(E) }, number: function (E, D) { return this.optional(D) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(E) }, digits: function (E, D) { return this.optional(D) || /^\d+$/.test(E) }, creditcard: function (I, G) { if (this.optional(G)) { return "dependency-mismatch" } if (/[^0-9 \-]+/.test(I)) { return !1 } var H, E, F = 0, J = 0, D = !1; if (I = I.replace(/\D/g, ""), I.length < 13 || I.length > 19) { return !1 } for (H = I.length - 1; H >= 0; H--) { E = I.charAt(H), J = parseInt(E, 10), D && (J *= 2) > 9 && (J -= 9), F += J, D = !D } return F % 10 === 0 }, minlength: function (F, G, D) { var E = C.isArray(F) ? F.length : this.getLength(C.trim(F), G); return this.optional(G) || E >= D }, maxlength: function (F, G, D) { var E = C.isArray(F) ? F.length : this.getLength(C.trim(F), G); return this.optional(G) || D >= E }, rangelength: function (F, G, D) { var E = C.isArray(F) ? F.length : this.getLength(C.trim(F), G); return this.optional(G) || E >= D[0] && E <= D[1] }, min: function (F, D, E) { return this.optional(D) || F >= E }, max: function (F, D, E) { return this.optional(D) || E >= F }, range: function (F, D, E) { return this.optional(D) || F >= E[0] && F <= E[1] }, equalTo: function (F, G, D) { var E = C(D); return this.settings.onfocusout && E.unbind(".validate-equalTo").bind("blur.validate-equalTo", function () { C(G).valid() }), F === E.val() }, remote: function (G, H, E) { if (this.optional(H)) { return "dependency-mismatch" } var F, I, D = this.previousValue(H); return this.settings.messages[H.name] || (this.settings.messages[H.name] = {}), D.originalMessage = this.settings.messages[H.name].remote, this.settings.messages[H.name].remote = D.message, E = "string" == typeof E && { url: E } || E, D.old === G ? D.valid : (D.old = G, F = this, this.startRequest(H), I = {}, I[H.name] = G, C.ajax(C.extend(!0, { url: E, mode: "abort", port: "validate" + H.name, dataType: "json", data: I, context: F.currentForm, success: function (K) { var N, J, L, M = K === !0 || "true" === K; F.settings.messages[H.name].remote = D.originalMessage, M ? (L = F.formSubmitted, F.prepareElement(H), F.formSubmitted = L, F.successList.push(H), delete F.invalid[H.name], F.showErrors()) : (N = {}, J = K || F.defaultMessage(H, "remote"), N[H.name] = D.message = C.isFunction(J) ? J(G) : J, F.invalid[H.name] = !0, F.showErrors(N)), D.valid = M, F.stopRequest(H, M) } }, E)), "pending") } } }); var A, B = {}; C.ajaxPrefilter ? C.ajaxPrefilter(function (G, F, D) { var E = G.port; "abort" === G.mode && (B[E] && B[E].abort(), B[E] = D) }) : (A = C.ajax, C.ajax = function (D) { var E = ("mode" in D ? D : C.ajaxSettings).mode, F = ("port" in D ? D : C.ajaxSettings).port; return "abort" === E ? (B[F] && B[F].abort(), B[F] = A.apply(this, arguments), B[F]) : A.apply(this, arguments) }), C.extend(C.fn, { validateDelegate: function (E, F, D) { return this.bind(F, function (H) { var G = C(H.target); return G.is(E) ? D.apply(G, arguments) : void 0 }) } }) }); (function (K) { var N = K.validator, I, A = "unobtrusivevalsidation"; function J(Q, O, P) { Q.rules[O] = P; if (Q.message) { Q.messages[O] = Q.message } } function B(O) { return O.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g) } function L(O) { return O.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1") } function D(O) { return O.substr(0, O.lastIndexOf(".") + 1) } function M(P, O) { if (P.indexOf("*.") === 0) { P = P.replace("*.", O) } return P } function H(S, Q) { var R = K(this).find("[data-valmsg-for='" + L(Q[0].name) + "']"), P = R.attr("data-valmsg-replace"), O = P ? K.parseJSON(P) !== false : null; R.removeClass("field-validation-valid").addClass("field-validation-error"); S.data("unobtrusiveContainer", R); if (O) { R.empty(); S.removeClass("input-validation-error").appendTo(R) } else { S.hide() } } function G(P, O) { var R = K(this).find("[data-valmsg-summary=true]"), Q = R.find("ul"); if (Q && Q.length && O.errorList.length) { Q.empty(); R.addClass("validation-summary-errors").removeClass("validation-summary-valid"); K.each(O.errorList, function () { K("
").html(this.message).appendTo(Q) }) } } function C(O) { var Q = O.data("unobtrusiveContainer"), R = Q.attr("data-valmsg-replace"), P = R ? K.parseJSON(R) : null; if (Q) { Q.addClass("field-validation-valid").removeClass("field-validation-error"); O.removeData("unobtrusiveContainer"); P && Q.empty() } } function F() { var O = K(this); O.data("validator").resetForm(); O.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"); O.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer") } function E(R) { var S = K(R), T = S.data(A), P = K.proxy(F, R), O = N.unobtrusive.options || {}, Q = function (V, U) { var W = O[V]; W && K.isFunction(W) && W.apply(R, U) }; if (!T) { T = { options: { errorClass: O.errorClass || "input-validation-error", errorElement: O.errorElement || "span", errorPlacement: function () { H.apply(R, arguments); Q("errorPlacement", arguments) }, invalidHandler: function () { G.apply(R, arguments); Q("invalidHandler", arguments) }, messages: {}, rules: {}, success: function () { C.apply(R, arguments); Q("success", arguments) } }, attachValidation: function () { S.off("reset." + A, P).on("reset." + A, P).validate(this.options) }, validate: function () { S.validate(); return S.valid() } }; S.data(A, T) } return T } N.unobtrusive = { adapters: [], parseElement: function (S, O) { var P = K(S), U = P.parents("form")[0], T, Q, R; if (!U) { return } T = E(U); T.options.rules[S.name] = Q = {}; T.options.messages[S.name] = R = {}; K.each(this.adapters, function () { var X = "data-val-" + this.name, W = P.attr(X), V = {}; if (W !== undefined) { X += "-"; K.each(this.params, function () { V[this] = P.attr(X + this) }); this.adapt({ element: S, form: U, message: W, params: V, rules: Q, messages: R }) } }); K.extend(Q, { __dummy__: true }); !O && T.attachValidation() }, parse: function (Q) { var P = K(Q), O = P.parents().addBack().filter("form").add(P.find("form")).has("[data-val=true]"); P.find("[data-val=true]").each(function () { N.unobtrusive.parseElement(this, true) }); O.each(function () { var R = E(this); R && R.attachValidation() }) } }; I = N.unobtrusive.adapters; I.add = function (P, Q, O) { if (!O) { O = Q; Q = [] } this.push({ name: P, params: Q, adapt: O }); return this }; I.addBool = function (P, O) { return this.add(P, function (Q) { J(Q, O || P, true) }) }; I.addMinMax = function (Q, O, T, S, P, R) { return this.add(Q, [P || "min", R || "max"], function (W) { var V = W.params.min, U = W.params.max; if (V && U) { J(W, S, [V, U]) } else { if (V) { J(W, O, V) } else { U && J(W, T, U) } } }) }; I.addSinglevals = function (Q, P, O) { return this.add(Q, [P || "val"], function (R) { J(R, O || Q, R.params[P]) }) }; N.addMethod("__dummy__", function () { return true }); N.addMethod("regex", function (P, Q, O) { var R; if (this.optional(Q)) { return true } R = (new RegExp(O)).exec(P); return R && R.index === 0 && R[0].length === P.length }); N.addMethod("nonalphamin", function (Q, O, P) { var R; if (P) { R = Q.match(/\W/g); R = R && R.length >= P } return R }); if (N.methods.extension) { I.addSinglevals("accept", "mimtype"); I.addSinglevals("extension", "extension") } else { I.addSinglevals("extension", "extension", "accept") } I.addSinglevals("regex", "pattern"); I.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"); I.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"); I.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength"); I.add("equalto", ["other"], function (R) { var O = D(R.element.name), S = R.params.other, Q = M(S, O), P = K(R.form).find(":input").filter("[name='" + L(Q) + "']")[0]; J(R, "equalTo", P) }); I.add("required", function (O) { (O.element.tagName.toUpperCase() !== "INPUT" || O.element.type.toUpperCase() !== "CHECKBOX") && J(O, "required", true) }); I.add("remote", ["url", "type", "additionalfields"], function (Q) { var O = { url: Q.params.url, type: Q.params.type || "GET", data: {} }, P = D(Q.element.name); K.each(B(Q.params.additionalfields || Q.element.name), function (S, R) { var T = M(R, P); O.data[T] = function () { return K(Q.form).find(":input").filter("[name='" + L(T) + "']").val() } }); J(Q, "remote", O) }); I.add("password", ["min", "nonalphamin", "regex"], function (O) { O.params.min && J(O, "minlength", O.params.min); O.params.nonalphamin && J(O, "nonalphamin", O.params.nonalphamin); O.params.regex && J(O, "regex", O.params.regex) }); K(function () { N.unobtrusive.parse(document) }) })(jQuery); (function (G) { var E = "unobtrusiveAjaxClick", J = "unobtrusiveAjaxClickTarget", C = "unobtrusivevalsidation"; function F(K, L) { var N = window, M = (K || "").split("."); while (N && M.length) { N = N[M.shift()] } if (typeof N === "function") { return N } L.push(K); return Function.constructor.apply(null, L) } function A(K) { return K === "GET" || K === "POST" } function I(K, L) { !A(L) && K.setRequestHeader("X-HTTP-Method-Override", L) } function D(N, M, L) { var K; if (L.indexOf("application/x-javascript") !== -1) { return } K = (N.getAttribute("data-ajax-mode") || "").toUpperCase(); G(N.getAttribute("data-ajax-update")).each(function (Q, P) { var O; switch (K) { case "BEFORE": O = P.firstChild; G("
").html(M).contents().each(function () { P.insertBefore(this, O) }); break; case "AFTER": G("
").html(M).contents().each(function () { P.appendChild(this) }); break; case "REPLACE-WITH": G(P).replaceWith(M); break; default: G(P).html(M) } }) } function H(N, L) { var O, P, M, K; O = N.getAttribute("data-ajax-confirm"); if (O && !window.confirm(O)) { return } P = G(N.getAttribute("data-ajax-loading")); K = parseInt(N.getAttribute("data-ajax-loading-duration"), 10) || 0; G.extend(L, { type: N.getAttribute("data-ajax-method") || undefined, url: N.getAttribute("data-ajax-url") || undefined, cache: !!N.getAttribute("data-ajax-cache"), beforeSend: function (Q) { var R; I(Q, M); R = F(N.getAttribute("data-ajax-begin"), ["xhr"]).apply(N, arguments); R !== false && P.show(K); return R }, complete: function () { P.hide(K); F(N.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(N, arguments) }, success: function (S, R, Q) { D(N, S, Q.getResponseHeader("Content-Type") || "text/html"); F(N.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(N, arguments) }, error: function () { F(N.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]).apply(N, arguments) } }); L.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" }); M = L.type.toUpperCase(); if (!A(M)) { L.type = "POST"; L.data.push({ name: "X-HTTP-Method-Override", value: M }) } G.ajax(L) } function B(L) { var K = G(L).data(C); return !K || !K.validate || K.validate() } G(document).on("click", "a[data-ajax=true]", function (K) { K.preventDefault(); H(this, { url: this.href, type: "GET", data: [] }) }); G(document).on("click", "form[data-ajax=true] input[type=image]", function (N) { var K = N.target.name, M = G(N.target), O = G(M.parents("form")[0]), L = M.offset(); O.data(E, [{ name: K + ".x", value: Math.round(N.pageX - L.left) }, { name: K + ".y", value: Math.round(N.pageY - L.top) }]); setTimeout(function () { O.removeData(E) }, 0) }); G(document).on("click", "form[data-ajax=true] :submit", function (L) { var K = L.currentTarget.name, N = G(L.target), M = G(N.parents("form")[0]); M.data(E, K ? [{ name: K, value: L.currentTarget.value }] : []); M.data(J, N); setTimeout(function () { M.removeData(E); M.removeData(J) }, 0) }); G(document).on("submit", "form[data-ajax=true]", function (K) { var L = G(this).data(E) || [], N = G(this).data(J), M = N && N.hasClass("cancel"); K.preventDefault(); if (!M && !B(this)) { return } H(this, { url: this.action, type: this.method || "GET", data: L.concat(G(this).serializeArray()) }) }) })(jQuery);
(function(A,B){if(typeof define==="function"&&define.amd){define(B)}else{if(typeof exports==="object"){module.exports=B()}else{A.NProgress=B()}}})(this,function(){var F={};F.version="0.1.6";var L=F.settings={minimum:0.08,easing:"ease",positionUsing:"",speed:200,trickle:true,trickleRate:0.02,trickleSpeed:800,showSpinner:true,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};F.configure=function(N){var M,O;for(M in N){O=N[M];if(O!==undefined&&N.hasOwnProperty(M)){L[M]=O}}return this};F.status=null;F.set=function(N){var O=F.isStarted();N=K(N,L.minimum,1);F.status=(N===1?null:N);var P=F.render(!O),Q=P.querySelector(L.barSelector),M=L.speed,R=L.easing;P.offsetWidth;D(function(S){if(L.positionUsing===""){L.positionUsing=F.getPositioningCSS()}C(Q,B(N,M,R));if(N===1){C(P,{transition:"none",opacity:1});P.offsetWidth;setTimeout(function(){C(P,{transition:"all "+M+"ms linear",opacity:0});setTimeout(function(){F.remove();S()},M)},M)}else{setTimeout(S,M)}});return this};F.isStarted=function(){return typeof F.status==="number"};F.start=function(){if(!F.status){F.set(0)}var M=function(){setTimeout(function(){if(!F.status){return}F.trickle();M()},L.trickleSpeed)};if(L.trickle){M()}return this};F.done=function(M){if(!M&&!F.status){return this}return F.inc(0.3+0.5*Math.random()).set(1)};F.inc=function(N){var M=F.status;if(!M){return F.start()}else{if(typeof N!=="number"){N=(1-M)*K(Math.random()*M,0.1,0.95)}M=K(M+N,0,0.994);return F.set(M)}};F.trickle=function(){return F.inc(Math.random()*L.trickleRate)};(function(){var M=0,N=0;F.promise=function(O){if(!O||O.state()=="resolved"){return this}if(N==0){F.start()}M++;N++;O.always(function(){N--;if(N==0){M=0;F.done()}else{F.set((M-N)/M)}});return this}})();F.render=function(N){if(F.isRendered()){return document.getElementById("nprogress")}I(document.documentElement,"nprogress-busy");var O=document.createElement("div");O.id="nprogress";O.innerHTML=L.template;var P=O.querySelector(L.barSelector),M=N?"-100":G(F.status||0),R=document.querySelector(L.parent),Q;C(P,{transition:"all 0 linear",transform:"translate3d("+M+"%,0,0)"});if(!L.showSpinner){Q=O.querySelector(L.spinnerSelector);Q&&J(Q)}if(R!=document.body){I(R,"nprogress-custom-parent")}R.appendChild(O);return O};F.remove=function(){E(document.documentElement,"nprogress-busy");E(document.querySelector(L.parent),"nprogress-custom-parent");var M=document.getElementById("nprogress");M&&J(M)};F.isRendered=function(){return !!document.getElementById("nprogress")};F.getPositioningCSS=function(){var N=document.body.style;var M=("WebkitTransform" in N)?"Webkit":("MozTransform" in N)?"Moz":("msTransform" in N)?"ms":("OTransform" in N)?"O":"";if(M+"Perspective" in N){return"translate3d"}else{if(M+"Transform" in N){return"translate"}else{return"margin"}}};function K(N,M,O){if(N
O){return O}return N}function G(M){return(-1+M)*100}function B(N,M,O){var P;if(L.positionUsing==="translate3d"){P={transform:"translate3d("+G(N)+"%,0,0)"}}else{if(L.positionUsing==="translate"){P={transform:"translate("+G(N)+"%,0)"}}else{P={"margin-left":G(N)+"%"}}}P.transition="all "+M+"ms "+O;return P}var D=(function(){var N=[];function M(){var O=N.shift();if(O){O(M)}}return function(O){N.push(O);if(N.length==1){M()}}})();var C=(function(){var O=["Webkit","O","Moz","ms"],M={};function P(S){return S.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(T,U){return U.toUpperCase()})}function N(U){var V=document.body.style;if(U in V){return U}var T=O.length,W=U.charAt(0).toUpperCase()+U.slice(1),S;while(T--){S=O[T]+W;if(S in V){return S}}return U}function R(S){S=P(S);return M[S]||(M[S]=N(S))}function Q(U,S,T){S=R(S);U.style[S]=T}return function(V,S){var W=arguments,T,U;if(W.length==2){for(T in S){U=S[T];if(U!==undefined&&S.hasOwnProperty(T)){Q(V,T,U)}}}else{Q(V,W[1],W[2])}}})();function H(O,M){var N=typeof O=="string"?O:A(O);return N.indexOf(" "+M+" ")>=0}function I(O,N){var P=A(O),M=P+N;if(H(P,N)){return}O.className=M.substring(1)}function E(O,N){var P=A(O),M;if(!H(O,N)){return}M=P.replace(" "+N+" "," ");O.className=M.substring(1,M.length-1)}function A(M){return(" "+(M.className||"")+" ").replace(/\s+/gi," ")}function J(M){M&&M.parentNode&&M.parentNode.removeChild(M)}return F});function iColorShow(E,B){var G=jQuery("#"+B).position();jQuery("#iColorPicker").css({"top":G.top+(jQuery("#"+E).outerHeight())+"px","left":(G.left)+"px","position":"absolute"}).fadeIn("fast");var H=jQuery("#"+E).val();jQuery("#colorPreview span").text(H);jQuery("#colorPreview").css("background",H);jQuery("#color").val(H);var C=jQuery("#iColorPicker");for(i=0;i