/* Validform version 5.3.2 By sean during April 7, 2010 - March 26, 2013 For more information, please visit http://validform.rjboy.cn Validform is available under the terms of the MIT license. */ (function(d, f, b) { var g = null, j = null, i = true; var e = { tit: "", w: { "*": "不能为空!", "*6-16": "请填写6到16位任意字符!", "n": "请填写数字!", "n6-16": "请填写6到16位数字!", "s": "不能输入特殊字符!", "s6-18": "请填写6到18位字符!", "p": "请填写邮政编码!", "m": "请填写手机号码!", "e": "邮箱地址格式不对!", "url": "请填写网址!" }, def: "请填写正确信息!", undef: "datatype未定义!", reck: "两次输入的内容不一致!", r: "", c: "", s: "请{填写|选择}{0|信息}!", v: "所填信息没有经过验证,请稍后…", p: "正在加载中,请稍后..." }; d.Tipmsg = e; var a = function(l, n, k) { var n = d.extend({}, a.defaults, n); n.datatype && d.extend(a.util.dataType, n.datatype); var m = this; m.tipmsg = { w: {} }; m.forms = l; m.objects = []; if (k === true) { return false } l.each(function() { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; var p = this; p.settings = d.extend({}, n); var o = d(p); p.validform_status = "normal"; o.data("tipmsg", m.tipmsg); o.delegate("[datatype]", "blur", function() { var q = arguments[1]; a.util.check.call(this, o, q) }); o.delegate(":text", "keypress", function(q) { if (q.keyCode == 13 && o.find(":submit").length == 0) { console.log('Submit click'); o.dblclick(); ////o.submit() } }); a.util.enhance.call(o, p.settings.tiptype, p.settings.usePlugin, p.settings.tipSweep); p.settings.btnSubmit && o.find(p.settings.btnSubmit).bind("click", function() { console.log('Submit click'); o.dblclick(); return false }); o.dblclick(function() { var q = a.util.submitForm.call(o, p.settings); q === b && (q = true); return q }); o.submit(function() { var q = a.util.submitForm.call(o, p.settings); q === b && (q = true); return q }); o.find("[type='reset']").add(o.find(p.settings.btnReset)).bind("click", function() { a.util.resetForm.call(o) }) }); if (n.tiptype == 1 || (n.tiptype == 2 || n.tiptype == 3) && n.ajaxPost) { c() } }; a.defaults = { tiptype: 1, tipSweep: false, showAllError: false, postonce: false, ajaxPost: false }; a.util = { dataType: { "*": /[\w\W]+/, "*6-16": /^[\w\W]{6,16}$/, n: /^\d+$/, "n6-16": /^\d{6,16}$/, s: /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/, "s6-18": /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/, p: /^[0-9]{6}$/, m: /^1[0-9]{10}$/, e: /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, url: /^(\w+:\/\/)?\w+(\.\w+)+.*$/ }, toString: Object.prototype.toString, isEmpty: function(k) { return k === "" || k === d.trim(this.attr("tip")) }, getValue: function(m) { var l, k = this; if (m.is(":radio")) { l = k.find(":radio[name='" + m.attr("name") + "']:checked").val(); l = l === b ? "": l } else { if (m.is(":checkbox")) { l = ""; k.find(":checkbox[name='" + m.attr("name") + "']:checked").each(function() { l += d(this).val() + "," }); l = l === b ? "": l } else { l = m.val() } } l = d.trim(l); return a.util.isEmpty.call(m, l) ? "": l }, enhance: function(l, m, n, k) { var o = this; o.find("[datatype]").each(function() { if (l == 2) { if (d(this).parent().next().find(".Validform_checktip").length == 0) { d(this).parent().next().append(""); d(this).siblings(".Validform_checktip").remove() } } else { if (l == 3 || l == 4) { if (d(this).siblings(".Validform_checktip").length == 0) { d(this).parent().append(""); d(this).parent().next().find(".Validform_checktip").remove() } } } }); o.find("input[recheck]").each(function() { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; var q = d(this); var p = o.find("input[name='" + d(this).attr("recheck") + "']"); p.bind("keyup", function() { if (p.val() == q.val() && p.val() != "") { if (p.attr("tip")) { if (p.attr("tip") == p.val()) { return false } } q.trigger("blur") } }).bind("blur", function() { if (p.val() != q.val() && q.val() != "") { if (q.attr("tip")) { if (q.attr("tip") == q.val()) { return false } } q.trigger("blur") } }) }); o.find("[tip]").each(function() { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; var q = d(this).attr("tip"); var p = d(this).attr("altercss"); d(this).focus(function() { if (d(this).val() == q) { d(this).val(""); if (p) { d(this).removeClass(p) } } }).blur(function() { if (d.trim(d(this).val()) === "") { d(this).val(q); if (p) { d(this).addClass(p) } } }) }); o.find(":checkbox[datatype],:radio[datatype]").each(function() { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; var q = d(this); var p = q.attr("name"); o.find("[name='" + p + "']").filter(":checkbox,:radio").bind("click", function() { setTimeout(function() { q.trigger("blur") }, 0) }) }); o.find("select[datatype][multiple]").bind("click", function() { var p = d(this); setTimeout(function() { p.trigger("blur") }, 0) }); a.util.usePlugin.call(o, m, l, n, k) }, usePlugin: function(o, l, n, r) { var s = this, o = o || {}; if (s.find("input[plugin='swfupload']").length && typeof(swfuploadhandler) != "undefined") { var k = { custom_settings: { form: s, showmsg: function(v, t, u) { a.util.showmsg.call(s, v, l, { obj: s.find("input[plugin='swfupload']"), type: t, sweep: n }) } } }; k = d.extend(true, {}, o.swfupload, k); s.find("input[plugin='swfupload']").each(function(t) { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; d(this).val(""); swfuploadhandler.init(k, t) }) } if (s.find("input[plugin='datepicker']").length && d.fn.datePicker) { o.datepicker = o.datepicker || {}; if (o.datepicker.format) { Date.format = o.datepicker.format; delete o.datepicker.format } if (o.datepicker.firstDayOfWeek) { Date.firstDayOfWeek = o.datepicker.firstDayOfWeek; delete o.datepicker.firstDayOfWeek } s.find("input[plugin='datepicker']").each(function(t) { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; o.datepicker.callback && d(this).bind("dateSelected", function() { var u = new Date(d.event._dpCache[this._dpId].getSelected()[0]).asString(Date.format); o.datepicker.callback(u, this) }); d(this).datePicker(o.datepicker) }) } if (s.find("input[plugin*='passwordStrength']").length && d.fn.passwordStrength) { o.passwordstrength = o.passwordstrength || {}; o.passwordstrength.showmsg = function(u, v, t) { a.util.showmsg.call(s, v, l, { obj: u, type: t, sweep: n }) }; s.find("input[plugin='passwordStrength']").each(function(t) { if (this.validform_inited == "inited") { return true } this.validform_inited = "inited"; d(this).passwordStrength(o.passwordstrength) }) } if (r != "addRule" && o.jqtransform && d.fn.jqTransSelect) { if (s[0].jqTransSelected == "true") { return } s[0].jqTransSelected = "true"; var m = function(t) { var u = d(".jqTransformSelectWrapper ul:visible"); u.each(function() { var v = d(this).parents(".jqTransformSelectWrapper:first").find("select").get(0); if (! (t && v.oLabel && v.oLabel.get(0) == t.get(0))) { d(this).hide() } }) }; var p = function(t) { if (d(t.target).parents(".jqTransformSelectWrapper").length === 0) { m(d(t.target)) } }; var q = function() { d(document).mousedown(p) }; if (o.jqtransform.selector) { s.find(o.jqtransform.selector).filter('input:submit, input:reset, input[type="button"]').jqTransInputButton(); s.find(o.jqtransform.selector).filter("input:text, input:password").jqTransInputText(); s.find(o.jqtransform.selector).filter("input:checkbox").jqTransCheckBox(); s.find(o.jqtransform.selector).filter("input:radio").jqTransRadio(); s.find(o.jqtransform.selector).filter("textarea").jqTransTextarea(); if (s.find(o.jqtransform.selector).filter("select").length > 0) { s.find(o.jqtransform.selector).filter("select").jqTransSelect(); q() } } else { s.jqTransform() } s.find(".jqTransformSelectWrapper").find("li a").click(function() { d(this).parents(".jqTransformSelectWrapper").find("select").trigger("blur") }) } }, getNullmsg: function(o) { var n = this; var m = /[\u4E00-\u9FA5\uf900-\ufa2da-zA-Z\s]+/g; var k; var l = o[0].settings.label || ".Validform_label"; l = n.siblings(l).eq(0).text() || n.siblings().find(l).eq(0).text() || n.parent().siblings(l).eq(0).text() || n.parent().siblings().find(l).eq(0).text(); l = l.replace(/\s(?![a-zA-Z])/g, "").match(m); l = l ? l.join("") : [""]; m = /\{(.+)\|(.+)\}/; k = o.data("tipmsg").s || e.s; if (l != "") { k = k.replace(/\{0\|(.+)\}/, l); if (n.attr("recheck")) { k = k.replace(/\{(.+)\}/, ""); n.attr("nullmsg", k); return k } } else { k = n.is(":checkbox,:radio,select") ? k.replace(/\{0\|(.+)\}/, "") : k.replace(/\{0\|(.+)\}/, "$1") } k = n.is(":checkbox,:radio,select") ? k.replace(m, "$2") : k.replace(m, "$1"); n.attr("nullmsg", k); return k }, getErrormsg: function(s, n, u) { var o = /^(.+?)((\d+)-(\d+))?$/, m = /^(.+?)(\d+)-(\d+)$/, l = /(.*?)\d+(.+?)\d+(.*)/, q = n.match(o), t, r; if (u == "recheck") { r = s.data("tipmsg").reck || e.reck; return r } var p = d.extend({}, e.w, s.data("tipmsg").w); if (q[0] in p) { return s.data("tipmsg").w[q[0]] || e.w[q[0]] } for (var k in p) { if (k.indexOf(q[1]) != -1 && m.test(k)) { r = (s.data("tipmsg").w[k] || e.w[k]).replace(l, "$1" + q[3] + "$2" + q[4] + "$3"); s.data("tipmsg").w[q[0]] = r; return r } } return s.data("tipmsg").def || e.def }, _regcheck: function(t, n, u, A) { var A = A, y = null, v = false, o = /\/.+\//g, k = /^(.+?)(\d+)-(\d+)$/, l = 3; if (o.test(t)) { var s = t.match(o)[0].slice(1, -1); var r = t.replace(o, ""); var q = RegExp(s, r); v = q.test(n) } else { if (a.util.toString.call(a.util.dataType[t]) == "[object Function]") { v = a.util.dataType[t](n, u, A, a.util.dataType); if (v === true || v === b) { v = true } else { y = v; v = false } } else { if (! (t in a.util.dataType)) { var m = t.match(k), z; if (!m) { v = false; y = A.data("tipmsg").undef || e.undef } else { for (var B in a.util.dataType) { z = B.match(k); if (!z) { continue } if (m[1] === z[1]) { var w = a.util.dataType[B].toString(), r = w.match(/\/[mgi]*/g)[1].replace("/", ""), x = new RegExp("\\{" + z[2] + "," + z[3] + "\\}", "g"); w = w.replace(/\/[mgi]*/g, "/").replace(x, "{" + m[2] + "," + m[3] + "}").replace(/^\//, "").replace(/\/$/, ""); a.util.dataType[t] = new RegExp(w, r); break } } } } if (a.util.toString.call(a.util.dataType[t]) == "[object RegExp]") { v = a.util.dataType[t].test(n) } } } if (v) { l = 2; y = u.attr("sucmsg") || A.data("tipmsg").r || e.r; if (u.attr("recheck")) { var p = A.find("input[name='" + u.attr("recheck") + "']:first"); if (n != p.val()) { v = false; l = 3; y = u.attr("errormsg") || a.util.getErrormsg.call(u, A, t, "recheck") } } } else { y = y || u.attr("errormsg") || a.util.getErrormsg.call(u, A, t); if (a.util.isEmpty.call(u, n)) { y = u.attr("nullmsg") || a.util.getNullmsg.call(u, A) } } return { passed: v, type: l, info: y } }, regcheck: function(n, s, m) { var t = this, k = null, l = false, r = 3; if (m.attr("ignore") === "ignore" && a.util.isEmpty.call(m, s)) { if (m.data("cked")) { k = "" } return { passed: true, type: 4, info: k } } m.data("cked", "cked"); var u = a.util.parseDatatype(n); var q; for (var p = 0; p < u.length; p++) { for (var o = 0; o < u[p].length; o++) { q = a.util._regcheck(u[p][o], s, m, t); if (!q.passed) { break } } if (q.passed) { break } } return q }, parseDatatype: function(r) { var q = /\/.+?\/[mgi]*(?=(,|$|\||\s))|[\w\*-]+/g, o = r.match(q), p = r.replace(q, "").replace(/\s*/g, "").split(""), l = [], k = 0; l[0] = []; l[0].push(o[0]); for (var s = 0; s < p.length; s++) { if (p[s] == "|") { k++; l[k] = [] } l[k].push(o[s + 1]) } return l }, showmsg: function(n, l, m, k) { if (n == b) { return } if (k == "bycheck" && m.sweep && (m.obj && !m.obj.is(".Validform_error") || typeof l == "function")) { return } d.extend(m, { curform: this }); if (typeof l == "function") { l(n, m, a.util.cssctl); return } if (l == 1 || k == "byajax" && l != 4) { j.find(".Validform_info").html(n) } if (l == 1 && k != "bycheck" && m.type != 2 || k == "byajax" && l != 4) { i = false; j.find(".iframe").css("height", j.outerHeight()); j.show(); h(j, 100) } if (l == 2 && m.obj) { m.obj.parent().next().find(".Validform_checktip").html(n); a.util.cssctl(m.obj.parent().next().find(".Validform_checktip"), m.type) } if ((l == 3 || l == 4) && m.obj) { m.obj.siblings(".Validform_checktip").html(n); a.util.cssctl(m.obj.siblings(".Validform_checktip"), m.type) } }, cssctl: function(l, k) { switch (k) { case 1: l.removeClass("Validform_right Validform_wrong").addClass("Validform_checktip Validform_loading"); break; case 2: l.removeClass("Validform_wrong Validform_loading").addClass("Validform_checktip Validform_right"); break; case 4: l.removeClass("Validform_right Validform_wrong Validform_loading").addClass("Validform_checktip"); break; default: l.removeClass("Validform_right Validform_loading").addClass("Validform_checktip Validform_wrong") } }, check: function(v, t, n) { var o = v[0].settings; var t = t || ""; var k = a.util.getValue.call(v, d(this)); if (o.ignoreHidden && d(this).is(":hidden") || d(this).data("dataIgnore") === "dataIgnore") { return true } if (o.dragonfly && !d(this).data("cked") && a.util.isEmpty.call(d(this), k) && d(this).attr("ignore") != "ignore") { return false } var s = a.util.regcheck.call(v, d(this).attr("datatype"), k, d(this)); if (k == this.validform_lastval && !d(this).attr("recheck") && t == "") { return s.passed ? true: false } this.validform_lastval = k; var r; g = r = d(this); if (!s.passed) { a.util.abort.call(r[0]); if (!n) { a.util.showmsg.call(v, s.info, o.tiptype, { obj: d(this), type: s.type, sweep: o.tipSweep }, "bycheck"); ! o.tipSweep && r.addClass("Validform_error") } return false } var q = d(this).attr("ajaxurl"); if (q && !a.util.isEmpty.call(d(this), k) && !n) { var m = d(this); if (t == "postform") { m[0].validform_subpost = "postform" } else { m[0].validform_subpost = "" } if (m[0].validform_valid === "posting" && k == m[0].validform_ckvalue) { return "ajax" } m[0].validform_valid = "posting"; m[0].validform_ckvalue = k; a.util.showmsg.call(v, v.data("tipmsg").c || e.c, o.tiptype, { obj: m, type: 1, sweep: o.tipSweep }, "bycheck"); a.util.abort.call(r[0]); var u = d.extend(true, {}, o.ajaxurl || {}); var p = { type: "POST", cache: false, url: q, data: "param=" + encodeURIComponent(k) + "&name=" + encodeURIComponent(d(this).attr("name")), success: function(x) { if (d.trim(x.status) === "y") { m[0].validform_valid = "true"; x.info && m.attr("sucmsg", x.info); a.util.showmsg.call(v, m.attr("sucmsg") || v.data("tipmsg").r || e.r, o.tiptype, { obj: m, type: 2, sweep: o.tipSweep }, "bycheck"); r.removeClass("Validform_error"); g = null; if (m[0].validform_subpost == "postform") { v.trigger("submit") } } else { m[0].validform_valid = x.info; a.util.showmsg.call(v, x.info, o.tiptype, { obj: m, type: 3, sweep: o.tipSweep }); r.addClass("Validform_error") } r[0].validform_ajax = null }, error: function(x) { if (x.status == "200") { if (x.responseText == "y") { u.success({ status: "y" }) } else { u.success({ status: "n", info: x.responseText }) } return false } if (x.statusText !== "abort") { var y = "status: " + x.status + "; statusText: " + x.statusText; a.util.showmsg.call(v, y, o.tiptype, { obj: m, type: 3, sweep: o.tipSweep }); r.addClass("Validform_error") } m[0].validform_valid = x.statusText; r[0].validform_ajax = null; return true } }; if (u.success) { var w = u.success; u.success = function(x) { p.success(x); w(x, m) } } if (u.error) { var l = u.error; u.error = function(x) { p.error(x) && l(x, m) } } u = d.extend({}, p, u, { dataType: "json" }); r[0].validform_ajax = d.ajax(u); return "ajax" } else { if (q && a.util.isEmpty.call(d(this), k)) { a.util.abort.call(r[0]); r[0].validform_valid = "true" } } if (!n) { a.util.showmsg.call(v, s.info, o.tiptype, { obj: d(this), type: s.type, sweep: o.tipSweep }, "bycheck"); r.removeClass("Validform_error") } g = null; return true }, submitForm: function(o, l, k, r, t) { var w = this; if (w[0].validform_status === "posting") { return false } if (o.postonce && w[0].validform_status === "posted") { return false } var v = o.beforeCheck && o.beforeCheck(w); if (v === false) { return false } var s = true, n; w.find("[datatype]").each(function() { if (l) { return false } if (o.ignoreHidden && d(this).is(":hidden") || d(this).data("dataIgnore") === "dataIgnore") { return true } var z = a.util.getValue.call(w, d(this)), A; g = A = d(this); n = a.util.regcheck.call(w, d(this).attr("datatype"), z, d(this)); if (!n.passed) { a.util.showmsg.call(w, n.info, o.tiptype, { obj: d(this), type: n.type, sweep: o.tipSweep }); A.addClass("Validform_error"); if (!o.showAllError) { A.focus(); s = false; return false } s && (s = false); return true } if (d(this).attr("ajaxurl") && !a.util.isEmpty.call(d(this), z)) { if (this.validform_valid !== "true") { var y = d(this); a.util.showmsg.call(w, w.data("tipmsg").v || e.v, o.tiptype, { obj: y, type: 3, sweep: o.tipSweep }); A.addClass("Validform_error"); y.trigger("blur", ["postform"]); if (!o.showAllError) { s = false; return false } s && (s = false); return true } } else { if (d(this).attr("ajaxurl") && a.util.isEmpty.call(d(this), z)) { a.util.abort.call(this); this.validform_valid = "true" } } a.util.showmsg.call(w, n.info, o.tiptype, { obj: d(this), type: n.type, sweep: o.tipSweep }); A.removeClass("Validform_error"); g = null }); if (o.showAllError) { w.find(".Validform_error:first").focus() } if (s) { var q = o.beforeSubmit && o.beforeSubmit(w); if (q === false) { return false } w[0].validform_status = "posting"; if (o.ajaxPost || r === "ajaxPost") { var u = d.extend(true, {}, o.ajaxpost || {}); u.url = k || u.url || o.url || w.attr("action"); a.util.showmsg.call(w, w.data("tipmsg").p || e.p, o.tiptype, { obj: w, type: 1, sweep: o.tipSweep }, "byajax"); if (t) { u.async = false } else { if (t === false) { u.async = true } } if (u.success) { var x = u.success; u.success = function(y) { o.callback && o.callback(y); w[0].validform_ajax = null; if (d.trim(y.status) === "y") { w[0].validform_status = "posted" } else { w[0].validform_status = "normal" } x(y, w) } } if (u.error) { var m = u.error; u.error = function(y) { o.callback && o.callback(y); w[0].validform_status = "normal"; w[0].validform_ajax = null; m(y, w) } } var p = { type: "POST", async: true, data: w.serializeArray(), success: function(y) { if (d.trim(y.status) === "y") { w[0].validform_status = "posted"; a.util.showmsg.call(w, y.info, o.tiptype, { obj: w, type: 2, sweep: o.tipSweep }, "byajax") } else { w[0].validform_status = "normal"; a.util.showmsg.call(w, y.info, o.tiptype, { obj: w, type: 3, sweep: o.tipSweep }, "byajax") } o.callback && o.callback(y); w[0].validform_ajax = null }, error: function(y) { var z = "status: " + y.status + "; statusText: " + y.statusText; a.util.showmsg.call(w, z, o.tiptype, { obj: w, type: 3, sweep: o.tipSweep }, "byajax"); o.callback && o.callback(y); w[0].validform_status = "normal"; w[0].validform_ajax = null } }; u = d.extend({}, p, u, { dataType: "json" }); w[0].validform_ajax = d.ajax(u) } else { if (!o.postonce) { w[0].validform_status = "normal" } var k = k || o.url; if (k) { w.attr("action", k) } return o.callback && o.callback(w) } } return false }, resetForm: function() { var k = this; k.each(function() { this.reset && this.reset(); this.validform_status = "normal" }); k.find(".Validform_right").text(""); k.find(".passwordStrength").children().removeClass("bgStrength"); k.find(".Validform_checktip").removeClass("Validform_wrong Validform_right Validform_loading"); k.find(".Validform_error").removeClass("Validform_error"); k.find("[datatype]").removeData("cked").removeData("dataIgnore").each(function() { this.validform_lastval = null }); k.eq(0).find("input:first").focus() }, abort: function() { if (this.validform_ajax) { this.validform_ajax.abort() } } }; d.Datatype = a.util.dataType; a.prototype = { dataType: a.util.dataType, eq: function(l) { var k = this; if (l >= k.forms.length) { return null } if (! (l in k.objects)) { k.objects[l] = new a(d(k.forms[l]).get(), {}, true) } return k.objects[l] }, resetStatus: function() { var k = this; d(k.forms).each(function() { this.validform_status = "normal" }); return this }, setStatus: function(k) { var l = this; d(l.forms).each(function() { this.validform_status = k || "posting" }); return this }, getStatus: function() { var l = this; var k = d(l.forms)[0].validform_status; return k }, ignore: function(k) { var l = this; var k = k || "[datatype]"; d(l.forms).find(k).each(function() { d(this).data("dataIgnore", "dataIgnore").removeClass("Validform_error") }); return this }, unignore: function(k) { var l = this; var k = k || "[datatype]"; d(l.forms).find(k).each(function() { d(this).removeData("dataIgnore") }); return this }, addRule: function(n) { var m = this; var n = n || []; for (var l = 0; l < n.length; l++) { var p = d(m.forms).find(n[l].ele); for (var k in n[l]) { k !== "ele" && p.attr(k, n[l][k]) } } d(m.forms).each(function() { var o = d(this); a.util.enhance.call(o, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep, "addRule") }); return this }, ajaxPost: function(k, m, l) { var n = this; d(n.forms).each(function() { if (this.settings.tiptype == 1 || this.settings.tiptype == 2 || this.settings.tiptype == 3) { c() } a.util.submitForm.call(d(n.forms[0]), this.settings, k, l, "ajaxPost", m) }); return this }, submitForm: function(k, l) { var m = this; d(m.forms).each(function() { var n = a.util.submitForm.call(d(this), this.settings, k, l); n === b && (n = true); if (n === true) { this.submit() } }); return this }, resetForm: function() { var k = this; a.util.resetForm.call(d(k.forms)); return this }, abort: function() { var k = this; d(k.forms).each(function() { a.util.abort.call(this) }); return this }, check: function(m, k) { var k = k || "[datatype]", o = this, n = d(o.forms), l = true; n.find(k).each(function() { a.util.check.call(this, n, "", m) || (l = false) }); return l }, config: function(k) { var l = this; k = k || {}; d(l.forms).each(function() { var m = d(this); this.settings = d.extend(true, this.settings, k); a.util.enhance.call(m, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep) }); return this } }; d.fn.Validform = function(k) { return new a(this, k) }; function h(n, m) { var l = (d(window).width() - n.outerWidth()) / 2, k = (d(window).height() - n.outerHeight()) / 2, k = (document.documentElement.scrollTop ? document.documentElement.scrollTop: document.body.scrollTop) + (k > 0 ? k: 0); n.css({ left: l }).animate({ top: k }, { duration: m, queue: false }) } function c() { if (d("#Validform_msg").length !== 0) { return false } j = d('
').appendTo("body"); j.find("a.Validform_close").click(function() { j.hide(); i = true; if (g) { g.focus().addClass("Validform_error") } return false }).focus(function() { this.blur() }); d(window).bind("scroll resize", function() { ! i && h(j, 400) }) } d.Showmsg = function(k) { c(); a.util.showmsg.call(f, k, 1, {}) }; d.Hidemsg = function() { j.hide(); i = true } })(jQuery, window);