/*! * jQuery Form Plugin * version: 4.3.0 * Requires jQuery v1.7.2 or later * Project repository: https://github.com/jquery-form/form * Copyright 2017 Kevin Morris * Copyright 2006 M. Alsup * Dual licensed under the LGPL-2.1+ or MIT licenses * https://github.com/jquery-form/form#license * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ !(function (r) { "function" == typeof define && define.amd ? define(["jquery"], r) : "object" == typeof module && module.exports ? (module.exports = function (e, t) { return ( void 0 === t && (t = "undefined" != typeof window ? require("jquery") : require("jquery")(e)), r(t), t ); }) : r(jQuery); })(function (q) { "use strict"; var m = /\r?\n/g, S = {}; (S.fileapi = void 0 !== q('').get(0).files), (S.formdata = void 0 !== window.FormData); var _ = !!q.fn.prop; function o(e) { var t = e.data; e.isDefaultPrevented() || (e.preventDefault(), q(e.target).closest("form").ajaxSubmit(t)); } function i(e) { var t = e.target, r = q(t); if (!r.is("[type=submit],[type=image]")) { var a = r.closest("[type=submit]"); if (0 === a.length) return; t = a[0]; } var n, o = t.form; "image" === (o.clk = t).type && (void 0 !== e.offsetX ? ((o.clk_x = e.offsetX), (o.clk_y = e.offsetY)) : "function" == typeof q.fn.offset ? ((n = r.offset()), (o.clk_x = e.pageX - n.left), (o.clk_y = e.pageY - n.top)) : ((o.clk_x = e.pageX - t.offsetLeft), (o.clk_y = e.pageY - t.offsetTop))), setTimeout(function () { o.clk = o.clk_x = o.clk_y = null; }, 100); } function N() { var e; q.fn.ajaxSubmit.debug && ((e = "[jquery.form] " + Array.prototype.join.call(arguments, "")), window.console && window.console.log ? window.console.log(e) : window.opera && window.opera.postError && window.opera.postError(e)); } (q.fn.attr2 = function () { if (!_) return this.attr.apply(this, arguments); var e = this.prop.apply(this, arguments); return (e && e.jquery) || "string" == typeof e ? e : this.attr.apply(this, arguments); }), (q.fn.ajaxSubmit = function (M, e, t, r) { if (!this.length) return ( N("ajaxSubmit: skipping submit process - no element selected"), this ); var O, a, n, o, X = this; "function" == typeof M ? (M = { success: M }) : "string" == typeof M || (!1 === M && 0 < arguments.length) ? ((M = { url: M, data: e, dataType: t }), "function" == typeof r && (M.success = r)) : void 0 === M && (M = {}), (O = M.method || M.type || this.attr2("method")), (n = (n = (n = "string" == typeof (a = M.url || this.attr2("action")) ? q.trim(a) : "") || window.location.href || "") && (n.match(/^([^#]+)/) || [])[1]), (o = /(MSIE|Trident)/.test(navigator.userAgent || "") && /^https/i.test(window.location.href || "") ? "javascript:false" : "about:blank"), (M = q.extend( !0, { url: n, success: q.ajaxSettings.success, type: O || q.ajaxSettings.type, iframeSrc: o, }, M )); var i = {}; if ((this.trigger("form-pre-serialize", [this, M, i]), i.veto)) return ( N("ajaxSubmit: submit vetoed via form-pre-serialize trigger"), this ); if (M.beforeSerialize && !1 === M.beforeSerialize(this, M)) return ( N("ajaxSubmit: submit aborted via beforeSerialize callback"), this ); var s = M.traditional; void 0 === s && (s = q.ajaxSettings.traditional); var u, c, C = [], l = this.formToArray(M.semantic, C, M.filtering); if ( (M.data && ((c = q.isFunction(M.data) ? M.data(l) : M.data), (M.extraData = c), (u = q.param(c, s))), M.beforeSubmit && !1 === M.beforeSubmit(l, this, M)) ) return N("ajaxSubmit: submit aborted via beforeSubmit callback"), this; if ((this.trigger("form-submit-validate", [l, this, M, i]), i.veto)) return ( N("ajaxSubmit: submit vetoed via form-submit-validate trigger"), this ); var f = q.param(l, s); u && (f = f ? f + "&" + u : u), "GET" === M.type.toUpperCase() ? ((M.url += (0 <= M.url.indexOf("?") ? "&" : "?") + f), (M.data = null)) : (M.data = f); var d, m, p, h = []; M.resetForm && h.push(function () { X.resetForm(); }), M.clearForm && h.push(function () { X.clearForm(M.includeHidden); }), !M.dataType && M.target ? ((d = M.success || function () {}), h.push(function (e, t, r) { var a = arguments, n = M.replaceTarget ? "replaceWith" : "html"; q(M.target) [n](e) .each(function () { d.apply(this, a); }); })) : M.success && (q.isArray(M.success) ? q.merge(h, M.success) : h.push(M.success)), (M.success = function (e, t, r) { for (var a = M.context || this, n = 0, o = h.length; n < o; n++) h[n].apply(a, [e, t, r || X, X]); }), M.error && ((m = M.error), (M.error = function (e, t, r) { var a = M.context || this; m.apply(a, [e, t, r, X]); })), M.complete && ((p = M.complete), (M.complete = function (e, t) { var r = M.context || this; p.apply(r, [e, t, X]); })); var v = 0 < q("input[type=file]:enabled", this).filter(function () { return "" !== q(this).val(); }).length, g = "multipart/form-data", x = X.attr("enctype") === g || X.attr("encoding") === g, y = S.fileapi && S.formdata; N("fileAPI :" + y); var b, T = (v || x) && !y; !1 !== M.iframe && (M.iframe || T) ? M.closeKeepAlive ? q.get(M.closeKeepAlive, function () { b = w(l); }) : (b = w(l)) : (b = (v || x) && y ? (function (e) { for (var r = new FormData(), t = 0; t < e.length; t++) r.append(e[t].name, e[t].value); if (M.extraData) { var a = (function (e) { var t, r, a = q.param(e, M.traditional).split("&"), n = a.length, o = []; for (t = 0; t < n; t++) (a[t] = a[t].replace(/\+/g, " ")), (r = a[t].split("=")), o.push([ decodeURIComponent(r[0]), decodeURIComponent(r[1]), ]); return o; })(M.extraData); for (t = 0; t < a.length; t++) a[t] && r.append(a[t][0], a[t][1]); } M.data = null; var n = q.extend(!0, {}, q.ajaxSettings, M, { contentType: !1, processData: !1, cache: !1, type: O || "POST", }); M.uploadProgress && (n.xhr = function () { var e = q.ajaxSettings.xhr(); return ( e.upload && e.upload.addEventListener( "progress", function (e) { var t = 0, r = e.loaded || e.position, a = e.total; e.lengthComputable && (t = Math.ceil((r / a) * 100)), M.uploadProgress(e, r, a, t); }, !1 ), e ); }); n.data = null; var o = n.beforeSend; return ( (n.beforeSend = function (e, t) { M.formData ? (t.data = M.formData) : (t.data = r), o && o.call(this, e, t); }), q.ajax(n) ); })(l) : q.ajax(M)), X.removeData("jqxhr").data("jqxhr", b); for (var j = 0; j < C.length; j++) C[j] = null; return this.trigger("form-submit-notify", [this, M]), this; function w(e) { var t, r, l, f, o, d, m, p, a, n, h, v, i = X[0], g = q.Deferred(); if ( ((g.abort = function (e) { p.abort(e); }), e) ) for (r = 0; r < C.length; r++) (t = q(C[r])), _ ? t.prop("disabled", !1) : t.removeAttr("disabled"); ((l = q.extend(!0, {}, q.ajaxSettings, M)).context = l.context || l), (o = "jqFormIO" + new Date().getTime()); var s = i.ownerDocument, u = X.closest("body"); if ( (l.iframeTarget ? (n = (d = q(l.iframeTarget, s)).attr2("name")) ? (o = n) : d.attr2("name", o) : (d = q( '