/** File generated by Grunt -- do not modify
* JQUERY-FORM-VALIDATOR
*
* @version 2.3.26
* @website http://formvalidator.net/
* @author Victor Jonsson, http://victorjonsson.se
* @license MIT
*/
! function(a, b) {
"function" == typeof define && define.amd ? define(["jquery"], function(a) {
return b(a)
}) : "object" == typeof exports ? module.exports = b(require("jquery")) : b(jQuery)
}(this, function(a) {
! function(a, b) {
"use strict";
function c(b) {
b && "custom" === b.errorMessagePosition && "function" == typeof b.errorMessageCustom && (a.formUtils.warn("Use of deprecated function errorMessageCustom, use config.submitErrorMessageCallback instead"), b.submitErrorMessageCallback = function(a, c) {
b.errorMessageCustom(a, b.language.errorTitle, c, b)
})
}
function d(b) {
if (b.errorMessagePosition && "object" == typeof b.errorMessagePosition) {
a.formUtils.warn("Deprecated use of config parameter errorMessagePosition, use config.submitErrorMessageCallback instead");
var c = b.errorMessagePosition;
b.errorMessagePosition = "top", b.submitErrorMessageCallback = function() {
return c
}
}
}
function e(b) {
var c = b.find("[data-validation-if-checked]");
c.length && a.formUtils.warn('Detected use of attribute "data-validation-if-checked" which is deprecated. Use "data-validation-depends-on" provided by module "logic"'), c.on("beforeValidation", function() {
var c = a(this),
d = c.valAttr("if-checked"),
e = a('input[name="' + d + '"]', b),
f = e.is(":checked"),
g = (a.formUtils.getValue(e) || "").toString(),
h = c.valAttr("if-checked-value");
(!f || h && h !== g) && c.valAttr("skipped", !0)
})
}
a.fn.validateForm = function(b, c) {
return a.formUtils.warn("Use of deprecated function $.validateForm, use $.isValid instead"), this.isValid(b, c, !0)
}, a(window).on("validatorsLoaded formValidationSetup", function(b, f, g) {
f || (f = a("form")), c(g), d(g), e(f)
})
}(a),
function(a) {
"use strict";
var b = {
resolveErrorMessage: function(a, b, c, d, e) {
var f = d.validationErrorMsgAttribute + "-" + c.replace("validate_", ""),
g = a.attr(f);
return g || (g = a.attr(d.validationErrorMsgAttribute), g || (g = "function" != typeof b.errorMessageKey ? e[b.errorMessageKey] : e[b.errorMessageKey(d)], g || (g = b.errorMessage))), g
},
getParentContainer: function(b) {
if (b.valAttr("error-msg-container")) return a(b.valAttr("error-msg-container"));
var c = b.parent();
if (!c.hasClass("form-group") && !c.closest("form").hasClass("form-horizontal")) {
var d = c.closest(".form-group");
if (d.length) return d.eq(0)
}
return c
},
applyInputErrorStyling: function(a, b) {
a.addClass(b.errorElementClass).removeClass("valid"), this.getParentContainer(a).addClass(b.inputParentClassOnError).removeClass(b.inputParentClassOnSuccess), "" !== b.borderColorOnError && a.css("border-color", b.borderColorOnError)
},
applyInputSuccessStyling: function(a, b) {
a.addClass("valid"), this.getParentContainer(a).addClass(b.inputParentClassOnSuccess)
},
removeInputStylingAndMessage: function(a, c) {
a.removeClass("valid").removeClass(c.errorElementClass).css("border-color", "");
var d = b.getParentContainer(a);
if (d.removeClass(c.inputParentClassOnError).removeClass(c.inputParentClassOnSuccess), "function" == typeof c.inlineErrorMessageCallback) {
var e = c.inlineErrorMessageCallback(a, !1, c);
e && e.html("")
} else d.find("." + c.errorMessageClass).remove()
},
removeAllMessagesAndStyling: function(c, d) {
if ("function" == typeof d.submitErrorMessageCallback) {
var e = d.submitErrorMessageCallback(c, d);
e && e.html("")
} else c.find("." + d.errorMessageClass + ".alert").remove();
c.find("." + d.errorElementClass + ",.valid").each(function() {
b.removeInputStylingAndMessage(a(this), d)
})
},
// xyzCall: function() {
// $("#order_storage_id").bind('click');
// $('.chosen-container:first').addClass('chosen-container-active chosen-with-drop');
//
// },
setInlineMessage: function(b, c, d) {
// Dynamic message
// Aurtor : Bhavin d solanki
c = c.replace(/{{field_name}}/g, b.attr("title"));
c = c.replace(/{{maxlength}}/g, b.attr("maxlength"));
c = c.replace(/{{minlength}}/g, b.attr("minlength"));
c = c.replace(/{{filetype}}/g, b.attr("filetype"));
c = c.replace(/{{file_size}}/g, b.attr("file_size"));
c = c.replace(/{{filedimenstion}}/g, b.attr("filedimenstion"));
$('form .error:first').focus();
//var dss = this.xyzCall();
//$("#order_storage_id").chosen().trigger("liszt:open");
//$('form .error:first').focus();
//$('.chosen-container').trigger('click');
//$('.chosen-container:first').addClass('chosen-container-active chosen-with-drop');
// var rs = document.getElementsByClassName('order_storage_id_chosen');
// rs.click();
this.applyInputErrorStyling(b, d);
var e, f = document.getElementById(b.attr("name") + "_err_msg"),
g = !1,
h = function(d) {
a.formUtils.$win.trigger("validationErrorDisplay", [b, d]), d.html(c)
},
i = function() {
var f = !1;
g.find("." + d.errorMessageClass).each(function() {
return this.inputReferer === b[0] ? (f = a(this), !1) : void 0
}), f ? c ? h(f) : f.remove() : "" !== c && (e = a('
'), h(e), e[0].inputReferer = b[0], g.prepend(e))
};
if (f) a.formUtils.warn("Using deprecated element reference " + f.id), g = a(f), i();
else if ("function" == typeof d.inlineErrorMessageCallback) {
if (g = d.inlineErrorMessageCallback(b, c, d), !g) return;
i()
} else {
var j = this.getParentContainer(b);
e = j.find("." + d.errorMessageClass + ".help-block"), 0 === e.length && (e = a("").addClass("help-block").addClass(d.errorMessageClass), e.appendTo(j)), h(e)
}
},
setMessageInTopOfForm: function(b, c, d, e) {
var f = '',
g = !1;
if ("function" != typeof d.submitErrorMessageCallback || (g = d.submitErrorMessageCallback(b, c, d))) {
var h = {
errorTitle: e.errorTitle,
fields: "",
errorMessageClass: d.errorMessageClass
};
a.each(c, function(a, b) {
h.fields += "" + b + ""
}), a.each(h, function(a, b) {
f = f.replace("{" + a + "}", b)
}), g ? g.html(f) : b.children().eq(0).before(a(f))
}
}
};
a.formUtils = a.extend(a.formUtils || {}, {
dialogs: b
})
}(a),
function(a, b, c) {
"use strict";
var d = 0;
a.fn.validateOnBlur = function(b, c) {
var d = this,
e = this.find("*[data-validation]");
return e.each(function() {
var e = a(this);
if (e.is("[type=radio]")) {
var f = d.find('[type=radio][name="' + e.attr("name") + '"]');
f.bind("blur.validation", function() {
e.validateInputOnBlur(b, c, !0, "blur")
}), c.validateCheckboxRadioOnClick && f.bind("click.validation", function() {
e.validateInputOnBlur(b, c, !0, "click")
})
}
}), e.bind("blur.validation", function() {
a(this).validateInputOnBlur(b, c, !0, "blur")
}), c.validateCheckboxRadioOnClick && this.find("input[type=checkbox][data-validation],input[type=radio][data-validation]").bind("click.validation", function() {
a(this).validateInputOnBlur(b, c, !0, "click")
}), this
}, a.fn.validateOnEvent = function(b, c) {
var d = "FORM" === this[0].nodeName ? this.find("*[data-validation-event]") : this;
return d.each(function() {
var d = a(this),
e = d.valAttr("event");
e && d.unbind(e + ".validation").bind(e + ".validation", function(d) {
9 !== (d || {}).keyCode && a(this).validateInputOnBlur(b, c, !0, e)
})
}), this
}, a.fn.showHelpOnFocus = function(b) {
return b || (b = "data-validation-help"), this.find(".has-help-txt").valAttr("has-keyup-event", !1).removeClass("has-help-txt"), this.find("textarea,input").each(function() {
var c = a(this),
e = "jquery_form_help_" + ++d,
f = c.attr(b);
f && c.addClass("has-help-txt").unbind("focus.help").bind("focus.help", function() {
var b = c.parent().find("." + e);
0 === b.length && (b = a("").addClass(e).addClass("help").addClass("help-block").text(f).hide(), c.after(b)), b.fadeIn()
}).unbind("blur.help").bind("blur.help", function() {
a(this).parent().find("." + e).fadeOut("slow")
})
}), this
}, a.fn.validate = function(b, c, d) {
var e = a.extend({}, a.formUtils.LANG, d || {});
this.each(function() {
var d = a(this),
f = d.closest("form").get(0).validationConfig || {};
d.one("validation", function(a, c) {
"function" == typeof b && b(c, this, a)
}), d.validateInputOnBlur(e, a.extend({}, f, c || {}), !0)
})
}, a.fn.willPostponeValidation = function() {
return (this.valAttr("suggestion-nr") || this.valAttr("postpone") || this.hasClass("hasDatepicker")) && !b.postponedValidation
}, a.fn.validateInputOnBlur = function(c, d, e, f) {
if (a.formUtils.eventType = f, this.willPostponeValidation()) {
var g = this,
h = this.valAttr("postpone") || 200;
return b.postponedValidation = function() {
g.validateInputOnBlur(c, d, e, f), b.postponedValidation = !1
}, setTimeout(function() {
b.postponedValidation && b.postponedValidation()
}, h), this
}
c = a.extend({}, a.formUtils.LANG, c || {}), a.formUtils.dialogs.removeInputStylingAndMessage(this, d);
var i = this,
j = i.closest("form"),
k = a.formUtils.validateInput(i, c, d, j, f);
return e && i.unbind("keyup.validation"), k.shouldChangeDisplay && (k.isValid ? a.formUtils.dialogs.applyInputSuccessStyling(i, d) : a.formUtils.dialogs.setInlineMessage(i, k.errorMsg, d)), !k.isValid && e && i.bind("keyup.validation", function(b) {
9 !== b.keyCode && a(this).validateInputOnBlur(c, d, !1, "keyup")
}), this
}, a.fn.valAttr = function(a, b) {
return b === c ? this.attr("data-validation-" + a) : b === !1 || null === b ? this.removeAttr("data-validation-" + a) : (a = a.length > 0 ? "-" + a : "", this.attr("data-validation" + a, b))
}, a.fn.isValid = function(b, c, d) {
if (a.formUtils.isLoadingModules) {
var e = this;
return setTimeout(function() {
e.isValid(b, c, d)
}, 200), null
}
c = a.extend({}, a.formUtils.defaultConfig(), c || {}), b = a.extend({}, a.formUtils.LANG, b || {}), d = d !== !1, a.formUtils.errorDisplayPreventedWhenHalted && (delete a.formUtils.errorDisplayPreventedWhenHalted, d = !1), a.formUtils.isValidatingEntireForm = !0, a.formUtils.haltValidation = !1;
var f = function(b, e) {
a.inArray(b, h) < 0 && h.push(b), i.push(e), e.attr("current-error", b), d && a.formUtils.dialogs.applyInputErrorStyling(e, c)
},
g = [],
h = [],
i = [],
j = this,
k = function(b, d) {
return "submit" === d || "button" === d || "reset" === d ? !0 : a.inArray(b, c.ignore || []) > -1
};
if (d && a.formUtils.dialogs.removeAllMessagesAndStyling(j, c), j.find("input,textarea,select").filter(':not([type="submit"],[type="button"])').each(function() {
var d = a(this),
e = d.attr("type"),
h = "radio" === e || "checkbox" === e,
i = d.attr("name");
if (!k(i, e) && (!h || a.inArray(i, g) < 0)) {
h && g.push(i);
var l = a.formUtils.validateInput(d, b, c, j, "submit");
l.isValid ? l.isValid && l.shouldChangeDisplay && (d.valAttr("current-error", !1), a.formUtils.dialogs.applyInputSuccessStyling(d, c)) : f(l.errorMsg, d)
}
}), "function" == typeof c.onValidate) {
var l = c.onValidate(j);
a.isArray(l) ? a.each(l, function(a, b) {
f(b.message, b.element)
}) : l && l.element && l.message && f(l.message, l.element)
}
return a.formUtils.isValidatingEntireForm = !1, !a.formUtils.haltValidation && i.length > 0 ? (d && ("top" === c.errorMessagePosition ? a.formUtils.dialogs.setMessageInTopOfForm(j, h, c, b) : a.each(i, function(b, d) {
a.formUtils.dialogs.setInlineMessage(d, d.attr("current-error"), c)
}), c.scrollToTopOnError && a.formUtils.$win.scrollTop(j.offset().top - 20)), !1) : (!d && a.formUtils.haltValidation && (a.formUtils.errorDisplayPreventedWhenHalted = !0), !a.formUtils.haltValidation)
}, a.fn.restrictLength = function(b) {
return new a.formUtils.lengthRestriction(this, b), this
}, a.fn.addSuggestions = function(b) {
var c = !1;
return this.find("input").each(function() {
var d = a(this);
c = a.split(d.attr("data-suggestions")), c.length > 0 && !d.hasClass("has-suggestions") && (a.formUtils.suggest(d, c, b), d.addClass("has-suggestions"))
}), this
}
}(a, window),
function(a) {
"use strict";
a.formUtils = a.extend(a.formUtils || {}, {
isLoadingModules: !1,
loadedModules: {},
loadModules: function(b, c, d) {
if (a.formUtils.isLoadingModules) return void setTimeout(function() {
a.formUtils.loadModules(b, c, d)
}, 10);
var e = !1,
f = function(b, c) {
var f = a.split(b),
g = f.length,
h = function() {
g--, 0 === g && (a.formUtils.isLoadingModules = !1, d && e && "function" == typeof d && d())
};
g > 0 && (a.formUtils.isLoadingModules = !0);
var i = "?_=" + (new Date).getTime(),
j = document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0];
a.each(f, function(b, d) {
if (d = a.trim(d), 0 === d.length) h();
else {
var f = c + d + (".js" === d.slice(-3) ? "" : ".js"),
g = document.createElement("SCRIPT");
f in a.formUtils.loadedModules ? h() : (a.formUtils.loadedModules[f] = 1, e = !0, g.type = "text/javascript", g.onload = h, g.src = f + (".dev.js" === f.slice(-7) ? i : ""), g.onerror = function() {
a.formUtils.warn("Unable to load form validation module " + f)
}, g.onreadystatechange = function() {
"complete" !== this.readyState && "loaded" !== this.readyState || (h(), this.onload = null, this.onreadystatechange = null)
}, j.appendChild(g))
}
})
};
if (c) f(b, c);
else {
var g = function() {
var c = !1;
return a('script[src*="form-validator"]').each(function() {
return c = this.src.substr(0, this.src.lastIndexOf("/")) + "/", "/" === c && (c = ""), !1
}), c !== !1 ? (f(b, c), !0) : !1
};
g() || a(g)
}
}
})
}(a),
function(a) {
"use strict";
a.split = function(b, c) {
if ("function" != typeof c) {
if (!b) return [];
var d = [];
return a.each(b.split(c ? c : /[,|\-\s]\s*/g), function(b, c) {
c = a.trim(c), c.length && d.push(c)
}), d
}
b && a.each(b.split(/[,|\-\s]\s*/g), function(b, d) {
return d = a.trim(d), d.length ? c(d, b) : void 0
})
}, a.validate = function(b) {
var c = a.extend(a.formUtils.defaultConfig(), {
form: "form",
validateOnEvent: !1,
validateOnBlur: !0,
validateCheckboxRadioOnClick: !0,
showHelpOnFocus: !0,
addSuggestions: !0,
modules: "",
onModulesLoaded: null,
language: !1,
onSuccess: !1,
onError: !1,
onElementValidate: !1
});
if (b = a.extend(c, b || {}), b.lang && "en" !== b.lang) {
var d = "lang/" + b.lang + ".js";
b.modules += b.modules.length ? "," + d : d
}
a(b.form).each(function(c, d) {
d.validationConfig = b;
var e = a(d);
e.trigger("formValidationSetup", [e, b]), e.find(".has-help-txt").unbind("focus.validation").unbind("blur.validation"), e.removeClass("has-validation-callback").unbind("submit.validation").unbind("reset.validation").find("input[data-validation],textarea[data-validation]").unbind("blur.validation"), e.bind("submit.validation", function(c) {
var d = a(this),
e = function() {
return c.stopImmediatePropagation(), !1
};
if (a.formUtils.haltValidation) return e();
if (a.formUtils.isLoadingModules) return setTimeout(function() {
d.trigger("submit.validation")
}, 200), e();
var f = d.isValid(b.language, b);
if (a.formUtils.haltValidation) return e();
if (!f || "function" != typeof b.onSuccess) return f || "function" != typeof b.onError ? f ? !0 : e() : (b.onError(d), e());
var g = b.onSuccess(d);
return g === !1 ? e() : void 0
}).bind("reset.validation", function() {
a.formUtils.dialogs.removeAllMessagesAndStyling(e, b)
}).addClass("has-validation-callback"), b.showHelpOnFocus && e.showHelpOnFocus(), b.addSuggestions && e.addSuggestions(), b.validateOnBlur && (e.validateOnBlur(b.language, b), e.bind("html5ValidationAttrsFound", function() {
e.validateOnBlur(b.language, b)
})), b.validateOnEvent && e.validateOnEvent(b.language, b)
}), "" !== b.modules && a.formUtils.loadModules(b.modules, !1, function() {
"function" == typeof b.onModulesLoaded && b.onModulesLoaded();
var c = "string" == typeof b.form ? a(b.form) : b.form;
a.formUtils.$win.trigger("validatorsLoaded", [c, b])
})
}
}(a),
function(a, b) {
"use strict";
var c = a(b);
a.formUtils = a.extend(a.formUtils || {}, {
$win: c,
defaultConfig: function() {
return {
ignore: [],
errorElementClass: "error",
borderColorOnError: "#b94a48",
errorMessageClass: "form-error",
validationRuleAttribute: "data-validation",
validationErrorMsgAttribute: "data-validation-error-msg",
errorMessagePosition: "inline",
errorMessageTemplate: {
container: '{messages}
',
messages: "{errorTitle}",
field: "{msg}"
},
scrollToTopOnError: !0,
dateFormat: "yyyy-mm-dd",
addValidClassOnAll: !1,
decimalSeparator: ".",
inputParentClassOnError: "has-error",
// inputParentClassOnSuccess: "has-success",
inputParentClassOnSuccess: "",
validateHiddenInputs: !1,
inlineErrorMessageCallback: !1,
submitErrorMessageCallback: !1
}
},
validators: {},
_events: {
load: [],
valid: [],
invalid: []
},
haltValidation: !1,
isValidatingEntireForm: !1,
addValidator: function(a) {
var b = 0 === a.name.indexOf("validate_") ? a.name : "validate_" + a.name;
void 0 === a.validateOnKeyUp && (a.validateOnKeyUp = !0), this.validators[b] = a
},
warn: function(a) {
"console" in b ? "function" == typeof b.console.warn ? b.console.warn(a) : "function" == typeof b.console.log && b.console.log(a) : alert(a)
},
getValue: function(a, b) {
var c = b ? b.find(a) : a;
if (c.length > 0) {
var d = c.eq(0).attr("type");
return "radio" === d || "checkbox" === d ? c.filter(":checked").val() : c.val()
}
return !1
},
validateInput: function(b, c, d, e, f) {
d = d || a.formUtils.defaultConfig(), c = c || a.formUtils.LANG;
var g = this.getValue(b);
b.valAttr("skipped", !1).one("beforeValidation", function() {
(b.attr("disabled") || !b.is(":visible") && !d.validateHiddenInputs) && b.valAttr("skipped", 1)
}).trigger("beforeValidation", [g, d, c]);
var h = "true" === b.valAttr("optional"),
i = !g && h,
j = b.attr(d.validationRuleAttribute),
k = !0,
l = "",
m = {
isValid: !0,
shouldChangeDisplay: !0,
errorMsg: ""
};
if (!j || i || b.valAttr("skipped")) return m.shouldChangeDisplay = d.addValidClassOnAll, m;
var n = b.valAttr("ignore");
return n && a.each(n.split(""), function(a, b) {
g = g.replace(new RegExp("\\" + b), "")
}), a.split(j, function(h) {
0 !== h.indexOf("validate_") && (h = "validate_" + h);
var i = a.formUtils.validators[h];
if (!i) throw new Error('Using undefined validator "' + h + '". Maybe you have forgotten to load the module that "' + h + '" belongs to?');
return "validate_checkbox_group" === h && (b = e.find('[name="' + b.attr("name") + '"]:eq(0)')), ("keyup" !== f || i.validateOnKeyUp) && (k = i.validatorFunction(g, b, d, c, e)), k ? void 0 : (l = a.formUtils.dialogs.resolveErrorMessage(b, i, h, d, c), !1)
}, " "), k === !1 ? (b.trigger("validation", !1), m.errorMsg = l, m.isValid = !1, m.shouldChangeDisplay = !0) : null === k ? m.shouldChangeDisplay = !1 : (b.trigger("validation", !0), m.shouldChangeDisplay = !0), "function" == typeof d.onElementValidate && null !== l && d.onElementValidate(m.isValid, b, e, l), b.trigger("afterValidation", [m, f]), m
},
parseDate: function(b, c, d) {
var e, f, g, h, i = c.replace(/[a-zA-Z]/gi, "").substring(0, 1),
j = "^",
k = c.split(i || null);
if (a.each(k, function(a, b) {
j += (a > 0 ? "\\" + i : "") + "(\\d{" + b.length + "})"
}), j += "$", d) {
var l = [];
a.each(b.split(i), function(a, b) {
1 === b.length && (b = "0" + b), l.push(b)
}), b = l.join(i)
}
if (e = b.match(new RegExp(j)), null === e) return !1;
var m = function(b, c, d) {
for (var e = 0; e < c.length; e++)
if (c[e].substring(0, 1) === b) return a.formUtils.parseDateInt(d[e + 1]);
return -1
};
return g = m("m", k, e), f = m("d", k, e), h = m("y", k, e), 2 === g && f > 28 && (h % 4 !== 0 || h % 100 === 0 && h % 400 !== 0) || 2 === g && f > 29 && (h % 4 === 0 || h % 100 !== 0 && h % 400 === 0) || g > 12 || 0 === g ? !1 : this.isShortMonth(g) && f > 30 || !this.isShortMonth(g) && f > 31 || 0 === f ? !1 : [h, g, f]
},
parseDateInt: function(a) {
return 0 === a.indexOf("0") && (a = a.replace("0", "")), parseInt(a, 10)
},
isShortMonth: function(a) {
return a % 2 === 0 && 7 > a || a % 2 !== 0 && a > 7
},
lengthRestriction: function(b, c) {
var d = parseInt(c.text(), 10),
e = 0,
f = function() {
var a = b.val().length;
if (a > d) {
var f = b.scrollTop();
b.val(b.val().substring(0, d)), b.scrollTop(f)
}
e = d - a, 0 > e && (e = 0), c.text(e)
};
a(b).bind("keydown keyup keypress focus blur", f).bind("cut paste", function() {
setTimeout(f, 100)
}), a(document).bind("ready", f)
},
numericRangeCheck: function(b, c) {
var d = a.split(c),
e = parseInt(c.substr(3), 10);
return 1 === d.length && -1 === c.indexOf("min") && -1 === c.indexOf("max") && (d = [c, c]), 2 === d.length && (b < parseInt(d[0], 10) || b > parseInt(d[1], 10)) ? ["out", d[0], d[1]] : 0 === c.indexOf("min") && e > b ? ["min", e] : 0 === c.indexOf("max") && b > e ? ["max", e] : ["ok"]
},
_numSuggestionElements: 0,
_selectedSuggestion: null,
_previousTypedVal: null,
suggest: function(b, d, e) {
var f = {
css: {
maxHeight: "150px",
background: "#FFF",
lineHeight: "150%",
textDecoration: "underline",
overflowX: "hidden",
overflowY: "auto",
border: "#CCC solid 1px",
borderTop: "none",
cursor: "pointer"
},
activeSuggestionCSS: {
background: "#E9E9E9"
}
},
g = function(a, b) {
var c = b.offset();
a.css({
width: b.outerWidth(),
left: c.left + "px",
top: c.top + b.outerHeight() + "px"
})
};
e && a.extend(f, e), f.css.position = "absolute", f.css["z-index"] = 9999, b.attr("autocomplete", "off"), 0 === this._numSuggestionElements && c.bind("resize", function() {
a(".jquery-form-suggestions").each(function() {
var b = a(this),
c = b.attr("data-suggest-container");
g(b, a(".suggestions-" + c).eq(0))
})
}), this._numSuggestionElements++;
var h = function(b) {
var c = b.valAttr("suggestion-nr");
a.formUtils._selectedSuggestion = null, a.formUtils._previousTypedVal = null, a(".jquery-form-suggestion-" + c).fadeOut("fast")
};
return b.data("suggestions", d).valAttr("suggestion-nr", this._numSuggestionElements).unbind("focus.suggest").bind("focus.suggest", function() {
a(this).trigger("keyup"), a.formUtils._selectedSuggestion = null
}).unbind("keyup.suggest").bind("keyup.suggest", function() {
var c = a(this),
d = [],
e = a.trim(c.val()).toLocaleLowerCase();
if (e !== a.formUtils._previousTypedVal) {
a.formUtils._previousTypedVal = e;
var i = !1,
j = c.valAttr("suggestion-nr"),
k = a(".jquery-form-suggestion-" + j);
if (k.scrollTop(0), "" !== e) {
var l = e.length > 2;
a.each(c.data("suggestions"), function(a, b) {
var c = b.toLocaleLowerCase();
return c === e ? (d.push("" + b + ""), i = !0, !1) : void((0 === c.indexOf(e) || l && c.indexOf(e) > -1) && d.push(b.replace(new RegExp(e, "gi"), "$&")))
})
}
i || 0 === d.length && k.length > 0 ? k.hide() : d.length > 0 && 0 === k.length ? (k = a("").css(f.css).appendTo("body"), b.addClass("suggestions-" + j), k.attr("data-suggest-container", j).addClass("jquery-form-suggestions").addClass("jquery-form-suggestion-" + j)) : d.length > 0 && !k.is(":visible") && k.show(), d.length > 0 && e.length !== d[0].length && (g(k, c), k.html(""), a.each(d, function(b, d) {
a("").append(d).css({
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap",
padding: "5px"
}).addClass("form-suggest-element").appendTo(k).click(function() {
c.focus(), c.val(a(this).text()), c.trigger("change"), h(c)
})
}))
}
}).unbind("keydown.validation").bind("keydown.validation", function(b) {
var c, d, e = b.keyCode ? b.keyCode : b.which,
g = a(this);
if (13 === e && null !== a.formUtils._selectedSuggestion) {
if (c = g.valAttr("suggestion-nr"), d = a(".jquery-form-suggestion-" + c), d.length > 0) {
var i = d.find("div").eq(a.formUtils._selectedSuggestion).text();
g.val(i), g.trigger("change"), h(g), b.preventDefault()
}
} else {
c = g.valAttr("suggestion-nr"), d = a(".jquery-form-suggestion-" + c);
var j = d.children();
if (j.length > 0 && a.inArray(e, [38, 40]) > -1) {
38 === e ? (null === a.formUtils._selectedSuggestion ? a.formUtils._selectedSuggestion = j.length - 1 : a.formUtils._selectedSuggestion--, a.formUtils._selectedSuggestion < 0 && (a.formUtils._selectedSuggestion = j.length - 1)) : 40 === e && (null === a.formUtils._selectedSuggestion ? a.formUtils._selectedSuggestion = 0 : a.formUtils._selectedSuggestion++, a.formUtils._selectedSuggestion > j.length - 1 && (a.formUtils._selectedSuggestion = 0));
var k = d.innerHeight(),
l = d.scrollTop(),
m = d.children().eq(0).outerHeight(),
n = m * a.formUtils._selectedSuggestion;
return (l > n || n > l + k) && d.scrollTop(n), j.removeClass("active-suggestion").css("background", "none").eq(a.formUtils._selectedSuggestion).addClass("active-suggestion").css(f.activeSuggestionCSS), b.preventDefault(), !1
}
}
}).unbind("blur.suggest").bind("blur.suggest", function() {
h(a(this))
}), b
},
LANG: {
errorTitle: "Form submission failed!",
requiredField: "This is a required field",
requiredFields: "You have not answered all required fields",
badTime: "You have not given a correct time",
badEmail: "You have not given a correct e-mail address",
badTelephone: "You have not given a correct phone number",
badSecurityAnswer: "You have not given a correct answer to the security question",
badDate: "You have not given a correct date",
lengthBadStart: "The input value must be between ",
lengthBadEnd: " characters",
lengthTooLongStart: "The input value is longer than ",
lengthTooShortStart: "The input value is shorter than ",
notConfirmed: "Input values could not be confirmed",
badDomain: "Incorrect domain value",
badUrl: "The input value is not a correct URL",
badCustomVal: "The input value is incorrect",
andSpaces: " and spaces ",
badInt: "The input value was not a correct number",
badSecurityNumber: "Your social security number was incorrect",
badUKVatAnswer: "Incorrect UK VAT Number",
badUKNin: "Incorrect UK NIN",
badUKUtr: "Incorrect UK UTR Number",
badStrength: "The password isn't strong enough",
badNumberOfSelectedOptionsStart: "You have to choose at least ",
badNumberOfSelectedOptionsEnd: " answers",
badAlphaNumeric: "The input value can only contain alphanumeric characters ",
badAlphaNumericExtra: " and ",
wrongFileSize: "The file you are trying to upload is too large (max %s)",
wrongFileType: "Only %s file type allowed.",
groupCheckedRangeStart: "Please choose between ",
groupCheckedTooFewStart: "Please choose at least ",
groupCheckedTooManyStart: "Please choose a maximum of ",
groupCheckedEnd: " item(s)",
badCreditCard: "The credit card number is not correct",
badCVV: "The CVV number was not correct",
wrongFileDim: "Incorrect image dimensions,",
imageTooTall: "the image can not be taller than",
imageTooWide: "the image can not be wider than",
imageTooSmall: "the image was too small",
min: "min",
max: "max",
imageRatioNotAccepted: "Image ratio is not be accepted",
badBrazilTelephoneAnswer: "The phone number entered is invalid",
badBrazilCEPAnswer: "The CEP entered is invalid",
badBrazilCPFAnswer: "The CPF entered is invalid",
badPlPesel: "The PESEL entered is invalid",
badPlNip: "The NIP entered is invalid",
badPlRegon: "The REGON entered is invalid",
badreCaptcha: "Please confirm that you are not a bot"
}
})
}(a, window),
function(a) {
a.formUtils.addValidator({
name: "email",
validatorFunction: function(b) {
var c = b.toLowerCase().split("@"),
d = c[0],
e = c[1];
if (d && e) {
if (0 === d.indexOf('"')) {
var f = d.length;
if (d = d.replace(/\"/g, ""), d.length !== f - 2) return !1
}
return a.formUtils.validators.validate_domain.validatorFunction(c[1]) && 0 !== d.indexOf(".") && "." !== d.substring(d.length - 1, d.length) && -1 === d.indexOf("..") && !/[^\w\+\.\-\#\-\_\~\!\$\&\'\(\)\*\+\,\;\=\:]/.test(d)
}
return !1
},
errorMessage: "",
errorMessageKey: "badEmail"
}), a.formUtils.addValidator({
name: "domain",
validatorFunction: function(a) {
return a.length > 0 && a.length <= 253 && !/[^a-zA-Z0-9]/.test(a.slice(-2)) && !/[^a-zA-Z0-9]/.test(a.substr(0, 1)) && !/[^a-zA-Z0-9\.\-]/.test(a) && 1 === a.split("..").length && a.split(".").length > 1
},
errorMessage: "",
errorMessageKey: "badDomain"
}), a.formUtils.addValidator({
name: "required",
validatorFunction: function(b, c, d, e, f) {
switch (c.attr("type")) {
case "checkbox":
return c.is(":checked");
case "radio":
return f.find('input[name="' + c.attr("name") + '"]').filter(":checked").length > 0;
default:
return "" !== a.trim(b)
}
},
errorMessage: "",
errorMessageKey: function(a) {
return "top" === a.errorMessagePosition || "function" == typeof a.errorMessagePosition ? "requiredFields" : "requiredField"
}
}), a.formUtils.addValidator({
name: "length",
validatorFunction: function(b, c, d, e) {
var f = c.valAttr("length"),
g = c.attr("type");
if (void 0 === f) return alert('Please add attribute "data-validation-length" to ' + c[0].nodeName + " named " + c.attr("name")), !0;
var h, i = "file" === g && void 0 !== c.get(0).files ? c.get(0).files.length : b.length,
j = a.formUtils.numericRangeCheck(i, f);
switch (j[0]) {
case "out":
this.errorMessage = e.lengthBadStart + f + e.lengthBadEnd, h = !1;
break;
case "min":
this.errorMessage = e.lengthTooShortStart + j[1] + e.lengthBadEnd, h = !1;
break;
case "max":
this.errorMessage = e.lengthTooLongStart + j[1] + e.lengthBadEnd, h = !1;
break;
default:
h = !0
}
return h
},
errorMessage: "",
errorMessageKey: ""
}), a.formUtils.addValidator({
name: "url",
validatorFunction: function(b) {
var c = /^(https?|ftp):\/\/((((\w|-|\.|~|[\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])(\w|-|\.|~|[\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])(\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|\[|\]|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;
if (c.test(b)) {
var d = b.split("://")[1],
e = d.indexOf("/");
return e > -1 && (d = d.substr(0, e)), a.formUtils.validators.validate_domain.validatorFunction(d)
}
return !1
},
errorMessage: "",
errorMessageKey: "badUrl"
}), a.formUtils.addValidator({
name: "number",
validatorFunction: function(a, b, c) {
if ("" !== a) {
var d, e, f = b.valAttr("allowing") || "",
g = b.valAttr("decimal-separator") || c.decimalSeparator,
h = !1,
i = b.valAttr("step") || "",
j = !1,
k = b.attr("data-sanitize") || "",
l = k.match(/(^|[\s])numberFormat([\s]|$)/i);
if (l) {
if (!window.numeral) throw new ReferenceError("The data-sanitize value numberFormat cannot be used without the numeral library. Please see Data Validation in http://www.formvalidator.net for more information.");
a.length && (a = String(numeral().unformat(a)))
}
if (-1 === f.indexOf("number") && (f += ",number"), -1 === f.indexOf("negative") && 0 === a.indexOf("-")) return !1;
if (f.indexOf("range") > -1 && (d = parseFloat(f.substring(f.indexOf("[") + 1, f.indexOf(";"))), e = parseFloat(f.substring(f.indexOf(";") + 1, f.indexOf("]"))), h = !0), "" !== i && (j = !0), "," === g) {
if (a.indexOf(".") > -1) return !1;
a = a.replace(",", ".")
}
if ("" === a.replace(/[0-9-]/g, "") && (!h || a >= d && e >= a) && (!j || a % i === 0)) return !0;
if (f.indexOf("float") > -1 && null !== a.match(new RegExp("^([0-9-]+)\\.([0-9]+)$")) && (!h || a >= d && e >= a) && (!j || a % i === 0)) return !0
}
return !1
},
errorMessage: "",
errorMessageKey: "badInt"
}), a.formUtils.addValidator({
name: "alphanumeric",
validatorFunction: function(b, c, d, e) {
var f = "^([a-zA-Z0-9",
g = "]+)$",
h = c.valAttr("allowing"),
i = "";
if (h) {
i = f + h + g;
var j = h.replace(/\\/g, "");
j.indexOf(" ") > -1 && (j = j.replace(" ", ""), j += e.andSpaces || a.formUtils.LANG.andSpaces), this.errorMessage = e.badAlphaNumeric + e.badAlphaNumericExtra + j
} else i = f + g, this.errorMessage = e.badAlphaNumeric;
return new RegExp(i).test(b)
},
errorMessage: "",
errorMessageKey: ""
}), a.formUtils.addValidator({
name: "custom",
validatorFunction: function(a, b) {
var c = new RegExp(b.valAttr("regexp"));
return c.test(a)
},
errorMessage: "",
errorMessageKey: "badCustomVal"
}), a.formUtils.addValidator({
name: "date",
validatorFunction: function(b, c, d) {
var e = c.valAttr("format") || d.dateFormat || "yyyy-mm-dd",
f = "false" === c.valAttr("require-leading-zero");
return a.formUtils.parseDate(b, e, f) !== !1
},
errorMessage: "",
errorMessageKey: "badDate"
}), a.formUtils.addValidator({
name: "checkbox_group",
validatorFunction: function(b, c, d, e, f) {
var g = !0,
h = c.attr("name"),
i = a('input[type=checkbox][name^="' + h + '"]', f),
j = i.filter(":checked").length,
k = c.valAttr("qty");
if (void 0 === k) {
var l = c.get(0).nodeName;
alert('Attribute "data-validation-qty" is missing from ' + l + " named " + c.attr("name"))
}
var m = a.formUtils.numericRangeCheck(j, k);
switch (m[0]) {
case "out":
this.errorMessage = e.groupCheckedRangeStart + k + e.groupCheckedEnd, g = !1;
break;
case "min":
this.errorMessage = e.groupCheckedTooFewStart + m[1] + e.groupCheckedEnd, g = !1;
break;
case "max":
this.errorMessage = e.groupCheckedTooManyStart + m[1] + e.groupCheckedEnd, g = !1;
break;
default:
g = !0
}
if (!g) {
var n = function() {
i.unbind("click", n), i.filter("*[data-validation]").validateInputOnBlur(e, d, !1, "blur")
};
i.bind("click", n)
}
return g
}
})
}(a)
});