1/*! 2 * BootstrapValidator (http://bootstrapvalidator.com) 3 * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3 4 * 5 * @version v0.5.3, built on 2014-11-05 9:14:18 PM 6 * @author https://twitter.com/nghuuphuoc 7 * @copyright (c) 2013 - 2014 Nguyen Huu Phuoc 8 * @license Commercial: http://bootstrapvalidator.com/license/ 9 * Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/ 10 */ 11if ("undefined" == typeof jQuery) throw new Error("BootstrapValidator requires jQuery"); 12!function (a) { 13 var b = a.fn.jquery.split(" ")[0].split("."); 14 if (+b[0] < 2 && +b[1] < 9 || 1 === +b[0] && 9 === +b[1] && +b[2] < 1) throw new Error("BootstrapValidator requires jQuery version 1.9.1 or higher") 15}(window.jQuery), function (a) { 16 var b = function (b, c) { 17 this.$form = a(b), this.options = a.extend({}, a.fn.bootstrapValidator.DEFAULT_OPTIONS, c), this.$invalidFields = a([]), this.$submitButton = null, this.$hiddenButton = null, this.STATUS_NOT_VALIDATED = "NOT_VALIDATED", this.STATUS_VALIDATING = "VALIDATING", this.STATUS_INVALID = "INVALID", this.STATUS_VALID = "VALID"; 18 var d = function () { 19 for (var a = 3, b = document.createElement("div"), c = b.all || []; b.innerHTML = "<!--[if gt IE " + ++a + "]><br><![endif]-->", c[0];) ; 20 return a > 4 ? a : !a 21 }(), e = document.createElement("div"); 22 this._changeEvent = 9 !== d && "oninput" in e ? "input" : "keyup", this._submitIfValid = null, this._cacheFields = {}, this._init() 23 }; 24 b.prototype = { 25 constructor: b, _init: function () { 26 var b = this, c = { 27 autoFocus: this.$form.attr("data-bv-autofocus"), 28 container: this.$form.attr("data-bv-container"), 29 events: { 30 formInit: this.$form.attr("data-bv-events-form-init"), 31 formError: this.$form.attr("data-bv-events-form-error"), 32 formSuccess: this.$form.attr("data-bv-events-form-success"), 33 fieldAdded: this.$form.attr("data-bv-events-field-added"), 34 fieldRemoved: this.$form.attr("data-bv-events-field-removed"), 35 fieldInit: this.$form.attr("data-bv-events-field-init"), 36 fieldError: this.$form.attr("data-bv-events-field-error"), 37 fieldSuccess: this.$form.attr("data-bv-events-field-success"), 38 fieldStatus: this.$form.attr("data-bv-events-field-status"), 39 validatorError: this.$form.attr("data-bv-events-validator-error"), 40 validatorSuccess: this.$form.attr("data-bv-events-validator-success") 41 }, 42 excluded: this.$form.attr("data-bv-excluded"), 43 feedbackIcons: { 44 valid: this.$form.attr("data-bv-feedbackicons-valid"), 45 invalid: this.$form.attr("data-bv-feedbackicons-invalid"), 46 validating: this.$form.attr("data-bv-feedbackicons-validating") 47 }, 48 group: this.$form.attr("data-bv-group"), 49 live: this.$form.attr("data-bv-live"), 50 message: this.$form.attr("data-bv-message"), 51 onError: this.$form.attr("data-bv-onerror"), 52 onSuccess: this.$form.attr("data-bv-onsuccess"), 53 submitButtons: this.$form.attr("data-bv-submitbuttons"), 54 threshold: this.$form.attr("data-bv-threshold"), 55 trigger: this.$form.attr("data-bv-trigger"), 56 verbose: this.$form.attr("data-bv-verbose"), 57 fields: {} 58 }; 59 this.$form.attr("novalidate", "novalidate").addClass(this.options.elementClass).on("submit.bv", function (a) { 60 a.preventDefault(), b.validate() 61 }).on("click.bv", this.options.submitButtons, function () { 62 b.$submitButton = a(this), b._submitIfValid = !0 63 }).find("[name], [data-bv-field]").each(function () { 64 var d = a(this), e = d.attr("name") || d.attr("data-bv-field"), f = b._parseOptions(d); 65 f && (d.attr("data-bv-field", e), c.fields[e] = a.extend({}, f, c.fields[e])) 66 }), this.options = a.extend(!0, this.options, c), this.$hiddenButton = a("<button/>").attr("type", "submit").prependTo(this.$form).addClass("bv-hidden-submit").css({ 67 display: "none", 68 width: 0, 69 height: 0 70 }), this.$form.on("click.bv", '[type="submit"]', function (c) { 71 if (!c.isDefaultPrevented()) { 72 var d = a(c.target), e = d.is('[type="submit"]') ? d.eq(0) : d.parent('[type="submit"]').eq(0); 73 !b.options.submitButtons || e.is(b.options.submitButtons) || e.is(b.$hiddenButton) || b.$form.off("submit.bv").submit() 74 } 75 }); 76 for (var d in this.options.fields) this._initField(d); 77 this.$form.trigger(a.Event(this.options.events.formInit), { 78 bv: this, 79 options: this.options 80 }), this.options.onSuccess && this.$form.on(this.options.events.formSuccess, function (c) { 81 a.fn.bootstrapValidator.helpers.call(b.options.onSuccess, [c]) 82 }), this.options.onError && this.$form.on(this.options.events.formError, function (c) { 83 a.fn.bootstrapValidator.helpers.call(b.options.onError, [c]) 84 }) 85 }, _parseOptions: function (b) { 86 var c, d, e, f, g, h, i, j, k, l = b.attr("name") || b.attr("data-bv-field"), m = {}; 87 for (d in a.fn.bootstrapValidator.validators) if (c = a.fn.bootstrapValidator.validators[d], e = "data-bv-" + d.toLowerCase(), f = b.attr(e) + "", k = "function" == typeof c.enableByHtml5 ? c.enableByHtml5(b) : null, k && "false" !== f || k !== !0 && ("" === f || "true" === f || e === f.toLowerCase())) { 88 c.html5Attributes = a.extend({}, { 89 message: "message", 90 onerror: "onError", 91 onsuccess: "onSuccess" 92 }, c.html5Attributes), m[d] = a.extend({}, k === !0 ? {} : k, m[d]); 93 for (j in c.html5Attributes) g = c.html5Attributes[j], h = "data-bv-" + d.toLowerCase() + "-" + j, i = b.attr(h), i && ("true" === i || h === i.toLowerCase() ? i = !0 : "false" === i && (i = !1), m[d][g] = i) 94 } 95 var n = { 96 autoFocus: b.attr("data-bv-autofocus"), 97 container: b.attr("data-bv-container"), 98 excluded: b.attr("data-bv-excluded"), 99 feedbackIcons: b.attr("data-bv-feedbackicons"), 100 group: b.attr("data-bv-group"), 101 message: b.attr("data-bv-message"), 102 onError: b.attr("data-bv-onerror"), 103 onStatus: b.attr("data-bv-onstatus"), 104 onSuccess: b.attr("data-bv-onsuccess"), 105 selector: b.attr("data-bv-selector"), 106 threshold: b.attr("data-bv-threshold"), 107 trigger: b.attr("data-bv-trigger"),
108 verbose: b.attr("data-bv-verbose"), 109 validators: m 110 }, o = a.isEmptyObject(n), p = a.isEmptyObject(m); 111 return !p || !o && this.options.fields && this.options.fields[l] ? (n.validators = m, n) : null 112 }, _initField: function (b) { 113 var c = a([]); 114 switch (typeof b) { 115 case"object": 116 c = b, b = b.attr("data-bv-field"); 117 break; 118 case"string": 119 c = this.getFieldElements(b), c.attr("data-bv-field", b) 120 } 121 if (0 !== c.length && null !== this.options.fields[b] && null !== this.options.fields[b].validators) { 122 var d; 123 for (d in this.options.fields[b].validators) a.fn.bootstrapValidator.validators[d] || delete this.options.fields[b].validators[d]; 124 null === this.options.fields[b].enabled && (this.options.fields[b].enabled = !0); 125 for (var e = this, f = c.length, g = c.attr("type"), h = 1 === f || "radio" === g || "checkbox" === g, i = "radio" === g || "checkbox" === g || "file" === g || "SELECT" === c.eq(0).get(0).tagName ? "change" : this._changeEvent, j = (this.options.fields[b].trigger || this.options.trigger || i).split(" "), k = a.map(j, function (a) { 126 return a + ".update.bv" 127 }).join(" "), l = 0; f > l; l++) { 128 var m = c.eq(l), n = this.options.fields[b].group || this.options.group, o = m.parents(n), 129 p = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, m, this) : this.options.fields[b].container || this.options.container, 130 q = p && "tooltip" !== p && "popover" !== p ? a(p) : this._getMessageContainer(m, n); 131 p && "tooltip" !== p && "popover" !== p && q.addClass("has-error"), q.find('.help-block[data-bv-validator][data-bv-for="' + b + '"]').remove(), o.find('i[data-bv-icon-for="' + b + '"]').remove(), m.off(k).on(k, function () { 132 e.updateStatus(a(this), e.STATUS_NOT_VALIDATED) 133 }), m.data("bv.messages", q); 134 for (d in this.options.fields[b].validators) m.data("bv.result." + d, this.STATUS_NOT_VALIDATED), h && l !== f - 1 || a("<small/>").css("display", "none").addClass("help-block").attr("data-bv-validator", d).attr("data-bv-for", b).attr("data-bv-result", this.STATUS_NOT_VALIDATED).html(this._getMessage(b, d)).appendTo(q), "function" == typeof a.fn.bootstrapValidator.validators[d].init && a.fn.bootstrapValidator.validators[d].init(this, m, this.options.fields[b].validators[d]); 135 if (this.options.fields[b].feedbackIcons !== !1 && "false" !== this.options.fields[b].feedbackIcons && this.options.feedbackIcons && this.options.feedbackIcons.validating && this.options.feedbackIcons.invalid && this.options.feedbackIcons.valid && (!h || l === f - 1)) { 136 o.addClass("has-feedback"); 137 var r = a("<i/>").css("display", "none").addClass("form-control-feedback").attr("data-bv-icon-for", b).insertAfter(m); 138 if ("checkbox" === g || "radio" === g) { 139 var s = m.parent(); 140 s.hasClass(g) ? r.insertAfter(s) : s.parent().hasClass(g) && r.insertAfter(s.parent()) 141 } 142 0 === o.find("label").length && r.addClass("bv-no-label"), 0 !== o.find(".input-group").length && r.addClass("bv-icon-input-group").insertAfter(o.find(".input-group").eq(0)), h ? l === f - 1 && c.data("bv.icon", r) : m.data("bv.icon", r), p && m.off("focus.container.bv").on("focus.container.bv", function () { 143 switch (p) { 144 case"tooltip": 145 a(this).data("bv.icon").tooltip("show"); 146 break; 147 case"popover": 148 a(this).data("bv.icon").popover("show") 149 } 150 }).off("blur.container.bv").on("blur.container.bv", function () { 151 switch (p) { 152 case"tooltip": 153 a(this).data("bv.icon").tooltip("hide"); 154 break; 155 case"popover": 156 a(this).data("bv.icon").popover("hide") 157 } 158 }) 159 } 160 } 161 switch (c.on(this.options.events.fieldSuccess, function (b, c) { 162 var d = e.getOptions(c.field, null, "onSuccess"); 163 d && a.fn.bootstrapValidator.helpers.call(d, [b,
163c]) 164 }).on(this.options.events.fieldError, function (b, c) { 165 var d = e.getOptions(c.field, null, "onError"); 166 d && a.fn.bootstrapValidator.helpers.call(d, [b, c]) 167 }).on(this.options.events.fieldStatus, function (b, c) { 168 var d = e.getOptions(c.field, null, "onStatus"); 169 d && a.fn.bootstrapValidator.helpers.call(d, [b, c]) 170 }).on(this.options.events.validatorError, function (b, c) { 171 var d = e.getOptions(c.field, c.validator, "onError"); 172 d && a.fn.bootstrapValidator.helpers.call(d, [b, c]) 173 }).on(this.options.events.validatorSuccess, function (b, c) { 174 var d = e.getOptions(c.field, c.validator, "onSuccess"); 175 d && a.fn.bootstrapValidator.helpers.call(d, [b, c]) 176 }), k = a.map(j, function (a) { 177 return a + ".live.bv" 178 }).join(" "), this.options.live) { 179 case"submitted": 180 break; 181 case"disabled": 182 c.off(k); 183 break; 184 case"enabled": 185 default: 186 c.off(k).on(k, function () { 187 e._exceedThreshold(a(this)) && e.validateField(a(this)) 188 }) 189 } 190 c.trigger(a.Event(this.options.events.fieldInit), {bv: this, field: b, element: c}) 191 } 192 }, _getMessage: function (b, c) { 193 if (!(this.options.fields[b] && a.fn.bootstrapValidator.validators[c] && this.options.fields[b].validators && this.options.fields[b].validators[c])) return ""; 194 var d = this.options.fields[b].validators[c]; 195 switch (!0) { 196 case!!d.message: 197 return d.message; 198 case!!this.options.fields[b].message: 199 return this.options.fields[b].message; 200 case!!a.fn.bootstrapValidator.i18n[c]: 201 return a.fn.bootstrapValidator.i18n[c]["default"]; 202 default: 203 return this.options.message 204 } 205 }, _getMessageContainer: function (a, b) { 206 var c = a.parent(); 207 if (c.is(b)) return c; 208 var d = c.attr("class"); 209 if (!d) return this._getMessageContainer(c, b); 210 d = d.split(" "); 211 for (var e = d.length, f = 0; e > f; f++) if (/^col-(xs|sm|md|lg)-\d+$/.test(d[f]) || /^col-(xs|sm|md|lg)-offset-\d+$/.test(d[f])) return c; 212 return this._getMessageContainer(c, b) 213 }, _submit: function () { 214 var b = this.isValid(), c = b ? this.options.events.formSuccess : this.options.events.formError, 215 d = a.Event(c); 216 this.$form.trigger(d), this.$submitButton && (b ? this._onSuccess(d) : this._onError(d)) 217 }, _isExcluded: function (b) { 218 var c = b.attr("data-bv-excluded"), d = b.attr("data-bv-field") || b.attr("name"); 219 switch (!0) { 220 case!!d && this.options.fields && this.options.fields[d] && ("true" === this.options.fields[d].excluded || this.options.fields[d].excluded === !0): 221 case"true" === c: 222 case"" === c: 223 return !0; 224 case!!d && this.options.fields && this.options.fields[d] && ("false" === this.options.fields[d].excluded || this.options.fields[d].excluded === !1): 225 case"false" === c: 226 return !1; 227 default: 228 if (this.options.excluded) { 229 "string" == typeof this.options.excluded && (this.options.excluded = a.map(this.options.excluded.split(","), function (b) { 230 return a.trim(b) 231 })); 232 for (var e = this.options.excluded.length, f = 0; e > f; f++) if ("string" == typeof this.options.excluded[f] && b.is(this.options.excluded[f]) || "function" == typeof this.options.excluded[f] && this.options.excluded[f].call(this, b, this) === !0) return !0 233 } 234 return !1 235 } 236 }, _exceedThreshold: function (b) { 237 var c = b.attr("data-bv-field"), d = this.options.fields[c].threshold || this.options.threshold; 238 if (!d) return !0; 239 var e = -1 !== a.inArray(b.attr("type"), ["button", "checkbox", "file", "hidden", "image", "radio", "reset", "submit"]); 240 return e || b.val().length >= d 241 }, _onError: function (b) { 242 if (!b.isDefaultPrevented()) { 243 if ("submitted" === this.options.live) { 244 this.options.live = "enabled"; 245 var c = this; 246 for (var d in this.options.fields) !function (b) { 247 var e = c.getFieldElements(b); 248 if (e.length) { 249 var f = a(e[0]).attr("type"), 250 g = "radio" === f || "checkbox" === f || "file" === f || "
250SELECT" === a(e[0]).get(0).tagName ? "change" : c._changeEvent, 251 h = c.options.fields[d].trigger || c.options.trigger || g, 252 i = a.map(h.split(" "), function (a) { 253 return a + ".live.bv" 254 }).join(" "); 255 e.off(i).on(i, function () { 256 c._exceedThreshold(a(this)) && c.validateField(a(this)) 257 }) 258 } 259 }(d) 260 } 261 for (var e = 0; e < this.$invalidFields.length; e++) { 262 var f = this.$invalidFields.eq(e), g = this._isOptionEnabled(f.attr("data-bv-field"), "autoFocus"); 263 if (g) { 264 var h, i = f.parents(".tab-pane"); 265 i && (h = i.attr("id")) && a('a[href="#' + h + '"][data-toggle="tab"]').tab("show"), f.focus(); 266 break 267 } 268 } 269 } 270 }, _onSuccess: function (a) { 271 a.isDefaultPrevented() || this.disableSubmitButtons(!0).defaultSubmit() 272 }, _onFieldValidated: function (b, c) { 273 var d = b.attr("data-bv-field"), e = this.options.fields[d].validators, f = {}, g = 0, 274 h = {bv: this, field: d, element: b, validator: c, result: b.data("bv.response." + c)}; 275 if (c) switch (b.data("bv.result." + c)) { 276 case this.STATUS_INVALID: 277 b.trigger(a.Event(this.options.events.validatorError), h); 278 break; 279 case this.STATUS_VALID: 280 b.trigger(a.Event(this.options.events.validatorSuccess), h) 281 } 282 f[this.STATUS_NOT_VALIDATED] = 0, f[this.STATUS_VALIDATING] = 0, f[this.STATUS_INVALID] = 0, f[this.STATUS_VALID] = 0; 283 for (var i in e) if (e[i].enabled !== !1) { 284 g++; 285 var j = b.data("bv.result." + i); 286 j && f[j]++ 287 } 288 f[this.STATUS_VALID] === g ? (this.$invalidFields = this.$invalidFields.not(b), b.trigger(a.Event(this.options.events.fieldSuccess), h)) : (0 === f[this.STATUS_NOT_VALIDATED] || !this._isOptionEnabled(d, "verbose")) && 0 === f[this.STATUS_VALIDATING] && f[this.STATUS_INVALID] > 0 && (this.$invalidFields = this.$invalidFields.add(b), b.trigger(a.Event(this.options.events.fieldError), h)) 289 }, _isOptionEnabled: function (a, b) { 290 return !this.options.fields[a] || "true" !== this.options.fields[a][b] && this.options.fields[a][b] !== !0 ? !this.options.fields[a] || "false" !== this.options.fields[a][b] && this.options.fields[a][b] !== !1 ? "true" === this.options[b] || this.options[b] === !0 : !1 : !0 291 }, getFieldElements: function (b) { 292 return this._cacheFields[b] || (this._cacheFields[b] = this.options.fields[b] && this.options.fields[b].selector ? a(this.options.fields[b].selector) : this.$form.find('[name="' + b + '"]')), this._cacheFields[b] 293 }, getOptions: function (a, b, c) { 294 if (!a) return c ? this.options[c] : this.options; 295 if ("object" == typeof a && (a = a.attr("data-bv-field")), !this.options.fields[a]) return null; 296 var d = this.options.fields[a]; 297 return b ? d.validators && d.validators[b] ? c ? d.validators[b][c] : d.validators[b] : null : c ? d[c] : d 298 }, disableSubmitButtons: function (a) { 299 return a ? "disabled" !== this.options.live && this.$form.find(this.options.submitButtons).attr("disabled", "disabled") : this.$form.find(this.options.submitButtons).removeAttr("disabled"), this 300 }, validate: function () { 301 if (!this.options.fields) return this; 302 this.disableSubmitButtons(!0), this._submitIfValid = !1; 303 for (var a in this.options.fields) this.validateField(a); 304 return this._submit(), this._submitIfValid = !0, this 305 }, validateField: function (b) { 306 var c = a([]); 307 switch (typeof b) { 308 case"object": 309 c = b, b = b.attr("data-bv-field"); 310 break; 311 case"string": 312 c = this.getFieldElements(b) 313 } 314 if (0 === c.length || !this.options.fields[b] || this.options.fields[b].enabled === !1) return this; 315 for (var d, e, f = this, g = c.attr("type"), h = "radio" === g || "checkbox" === g ? 1 : c.length, i = "radio" === g || "checkbox" === g, j = this.options.fields[b].validators, k = this._isOptionEnabled(b, "verbose"), l = 0; h > l; l++) { 316 var m = c.eq(l); 317 if (!this._isExcluded(m)) { 318 var n = !1; 319 for (d in j) { 320 if (m.data("bv.dfs." + d) && m.data("bv.dfs." + d).reject(), n) break; 321 var o = m.data("bv.result." + d); 322 if (o !== this.STATUS_VALID && o !== this.STATUS_INVALID) if (j[d].enabled !== !1) { 323 if (m.data("bv.result." + d, this.STATUS_VALIDATING), e = a.fn.bootstrapValidator.validators[d].validate(this, m, j[d]), "object" == typeof e && e.resolve) this.updateStatus(i ? b : m, this.STATUS_VALIDATING, d), m.data("bv.dfs." + d, e), e.done(function (a, b, c) { 324 a.removeData("bv.dfs." + b).data("bv.response." + b, c), c.message && f.updateMessage(
324a, b, c.message), f.updateStatus(i ? a.attr("data-bv-field") : a, c.valid ? f.STATUS_VALID : f.STATUS_INVALID, b), c.valid && f._submitIfValid === !0 ? f._submit() : c.valid || k || (n = !0) 325 }); else if ("object" == typeof e && void 0 !== e.valid && void 0 !== e.message) { 326 if (m.data("bv.response." + d, e), this.updateMessage(i ? b : m, d, e.message), this.updateStatus(i ? b : m, e.valid ? this.STATUS_VALID : this.STATUS_INVALID, d), !e.valid && !k) break 327 } else if ("boolean" == typeof e && (m.data("bv.response." + d, e), this.updateStatus(i ? b : m, e ? this.STATUS_VALID : this.STATUS_INVALID, d), !e && !k)) break 328 } else this.updateStatus(i ? b : m, this.STATUS_VALID, d); else this._onFieldValidated(m, d) 329 } 330 } 331 } 332 return this 333 }, updateMessage: function (b, c, d) { 334 var e = a([]); 335 switch (typeof b) { 336 case"object": 337 e = b, b = b.attr("data-bv-field"); 338 break; 339 case"string": 340 e = this.getFieldElements(b) 341 } 342 e.each(function () { 343 a(this).data("bv.messages").find('.help-block[data-bv-validator="' + c + '"][data-bv-for="' + b + '"]').html(d) 344 }) 345 }, updateStatus: function (b, c, d) { 346 var e = a([]); 347 switch (typeof b) { 348 case"object": 349 e = b, b = b.attr("data-bv-field"); 350 break; 351 case"string": 352 e = this.getFieldElements(b) 353 } 354 c === this.STATUS_NOT_VALIDATED && (this._submitIfValid = !1); 355 for (var f = this, g = e.attr("type"), h = this.options.fields[b].group || this.options.group, i = "radio" === g || "checkbox" === g ? 1 : e.length, j = 0; i > j; j++) { 356 var k = e.eq(j); 357 if (!this._isExcluded(k)) { 358 var l = k.parents(h), m = k.data("bv.messages"), 359 n = m.find('.help-block[data-bv-validator][data-bv-for="' + b + '"]'), 360 o = d ? n.filter('[data-bv-validator="' + d + '"]') : n, p = k.data("bv.icon"), 361 q = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, k, this) : this.options.fields[b].container || this.options.container, 362 r = null; 363 if (d) k.data("bv.result." + d, c); else for (var s in this.options.fields[b].validators) k.data("bv.result." + s, c); 364 o.attr("data-bv-result", c); 365 var t, u, v = k.parents(".tab-pane"); 366 switch (v && (t = v.attr("id")) && (u = a('a[href="#' + t + '"][data-toggle="tab"]').parent()), c) { 367 case this.STATUS_VALIDATING: 368 r = null, this.disableSubmitButtons(!0), l.removeClass("has-success").removeClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).addClass(this.options.feedbackIcons.validating).show(), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error"); 369 break; 370 case this.STATUS_INVALID: 371 r = !1, this.disableSubmitButtons(!0), l.removeClass("has-success").addClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.validating).addClass(this.options.feedbackIcons.invalid).show(), u && u.removeClass("bv-tab-success").addClass("bv-tab-error"); 372 break; 373 case this.STATUS_VALID: 374 r = 0 === n.filter('[data-bv-result="' + this.STATUS_NOT_VALIDATED + '"]').length ? n.filter('[data-bv-result="' + this.STATUS_VALID + '"]').length === n.length : null, null !== r && (this.disableSubmitButtons(this.$submitButton ? !this.isValid() : !r), p && p.removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).removeClass(this.options.feedbackIcons.valid).addClass(r ? this.options.feedbackIcons.valid : this.options.feedbackIcons.invalid).show()), l.removeClass("has-error has-success").addClass(this.isValidContainer(l) ? "has-success" : "has-error"), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error").addClass(this.isValidContainer(v) ? "bv-tab-success" : "bv-tab-error"); 375 break; 376 case this.STATUS_NOT_VALIDATED: 377 default: 378 r = null, this.disableSubmitButtons(!1), l.removeClass("has-success").removeClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).hide(), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error") 379 } 380 switch (!0) { 381 case p && "tooltip" === q: 382 r === !1 ? p.css("cursor", "pointer").tooltip("destroy").tooltip({ 383 container: "body", 384 html: !0, 385 placement: "auto top", 386 title: n.filter('[data-bv-result="' + f.STATUS_INVALID + '"]').eq(0).html() 387 }) : p.css("cursor", "").tooltip("destroy"); 388 break; 389 case p && "popover" === q: 390 r === !1 ? p.css("cursor", "pointer").popover("destroy").popover({ 391 container: "body", 392 content: n.filter('[data-bv-result="' + f.STATUS_INVALID + '"]').eq(0).html(), 393 html: !0, 394 placement: "auto top", 395 trigger: "hover click" 396 }) : p.css("cursor", "").popover("destroy"); 397 break; 398 default: 399 c === this.STATUS_INVALID ? o.show() : o.hide() 400 } 401 k.trigger(a.Event(this.options.events.fieldStatus), { 402 bv: this, 403 field: b, 404 element: k, 405 status: c 406 }), this._onFieldValidated(k, d) 407 } 408 } 409 return this 410 }, isValid: function () { 411 for (var a in this.options.fields) if (!this.isValidField(a)) return !1; 412 return !0 413 }, isValidField: function (b) { 414 var c = a([]); 415 switch (typeof b) { 416 case"object": 417 c = b, b = b.attr("data-bv-field"); 418 break; 419 case"string": 420 c = this.getFieldElements(b) 421 } 422 if (0 === c.length || !this.options.fields[b] || this.options.fields[b].enabled === !1) return !0; 423 for (var d, e, f, g = c.attr("type"), h = "radio" === g || "checkbox" === g ? 1 : c.length, i = 0; h > i; i++) if (d = c.eq(i), !this._isExcluded(d)) for (e in this.options.fields[b].validators) if (this.options.fields[b].validators[e].enabled !== !1 && (f = d.data("bv.result." + e), f !== this.STATUS_VALID)) return !1; 424 return !0 425 }, isValidContainer: function (b) { 426 var c = this, d = {}, e = "string" == typeof b ? a(b) : b; 427 if (0 === e.length) return !0; 428 e.find("[data-bv-field]").each(function () { 429 var b = a(this), e = b.attr("data-bv-field"); 430 c._isExcluded(b) || d[e] || (d[e] = b) 431 }); 432 for (var f in d) { 433 var g = d[f]; 434 if (g.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="' + f + '"]').filter('[data-bv-result="' + this.STATUS_INVALID + '"]').length > 0) return !1 435 } 436 return !0 437 }, defaultSubmit: function () { 438 this.$submitButton && a("<input/>").attr("type", "hidden").attr("data-bv-submit-hidden", "").attr("name", this.$submitButton.attr("name")).val(this.$submitButton.val()).appendTo(this.$form), this.$form.off("submit.bv").submit() 439 }, getInvalidFields: function () { 440 return this.$invalidFields 441 }, getSubmitButton: function () { 442 return this.$submitButton 443 }, getMessages: function (b, c) { 444 var d = this, e = [], f = a([]); 445 switch (!0) { 446 case b && "object" == typeof b: 447 f = b; 448 break; 449 case b && "string" == typeof b: 450 var g = this.getFieldElements(b); 451 if (g.length > 0) { 452 var h = g.attr("type"); 453 f = "radio" === h || "checkbox" === h ? g.eq(0) : g 454 } 455 break; 456 default: 457 f = this.$invalidFields 458 } 459 var i = c ? '[data-bv-validator="' + c + '"]' : ""; 460 return f.each(function () { 461 e = e.concat(a(this).data("bv.messages").find('.help-block[data-bv-for="' + a(this).attr("data-bv-field") + '"][data-bv-result="' + d.STATUS_INVALID + '"]' + i).map(function () { 462 var b = a(this).attr("data-bv-validator"), c = a(this).attr("data-bv-for"); 463 return d.options.fields[c].validators[b].enabled === !1 ? "" : a(this).html() 464 }).get()) 465 }), e 466 }, updateOption: function (a, b, c, d) { 467 return "object" == typeof a && (a = a.attr("data-bv-field")), this.options.fields[a] && this.options.fields[a].validators[b] && (this.options.fields[a].validators[b][c] = d, this.updateStatus(a, this.STATUS_NOT_VALIDATED, b)), this 468 }, addField: function (b, c) { 469 var d = a([]); 470 switch (typeof b) { 471 case"object": 472 d = b, b = b.attr("data-bv-field") || b.attr("name"); 473 break; 474 case"string": 475 delete this._cacheFields[b], d = this.getFieldElements(b) 476 } 477 d.attr("data-bv-field", b); 478 for (var e = d.attr("type"), f = "radio" === e || "checkbox" === e ? 1 : d.length, g = 0; f > g; g++) { 479 var h = d.eq(g), i = this._parseOptions(h); 480 i = null === i ? c : a.extend(!0, c, i), this.options.fields[b] = a.extend(!0, this.options.fields[b], i), this._cacheFields[b] = this._cacheFields[b] ? this._cacheFields[b].add(h) : h, this._initField("checkbox" === e || "radio" === e ? b : h) 481 } 482 return this.disableSubmitButtons(!1), this.$form.trigger(a.Event(this.options.events.fieldAdded), { 483 field: b, 484 element: d, 485 options: this.options.fields[b] 486 }), this 487 }, removeField: function (b) { 488 var c = a([]); 489 switch (typeof b) { 490 case"object": 491 c = b, b = b.attr("data-bv-field") || b.attr("name"), c.attr("data-bv-field", b); 492 break; 493 case"string": 494 c = this.getFieldElements(b) 495 } 496 if (0 === c.length) return this; 497 for (var d = c.attr("type"), e = "radio" === d || "checkbox" === d ? 1 : c.length, f = 0; e > f; f++) { 498 var g = c.eq(f); 499 this.$invalidFields = this.$invalidFields.not(g), this._cacheFields[b] = this._cacheFields[b].not(g) 500 } 501 return this._cacheFields[b] && 0 !== this._cacheFields[b].length || delete this.options.fields[b], ("checkbox" === d || "radio" === d) && this._initField(b), this.disableSubmitButtons(!1), this.$form.trigger(a.Event(this.options.events.fieldRemoved), { 502 field: b, 503 element: c 504 }), this 505 }, resetField: function (b, c) { 506 var d = a([]); 507 switch (typeof b) { 508 case"object": 509 d = b, b = b.attr("data-bv-field"); 510 break; 511 case"string": 512 d = this.getFieldElements(b) 513 } 514 var e = d.length; 515 if (this.options.fields[b]) for (var f = 0; e > f; f++) for (var g in this.options.fields[b].validators) d.eq(f).removeData("bv.dfs." + g); 516 if (this.updateStatus(b, this.STATUS_NOT_VALIDATED), c) { 517 var h = d.attr("type"); 518 "radio" === h || "checkbox" === h ? d.removeAttr("checked").removeAttr("selected") : d.val("") 519 } 520 return this 521 }, resetForm: function (b) { 522 for (var c in this.options.fields) this.resetField(c, b); 523 return this.$invalidFields = a([]), this.$submitButton = null, this.disableSubmitButtons(!1), this 524 }, revalidateField: function (a) { 525 return this.updateStatus(a, this.STATUS_NOT_VALIDATED).validateField(a), this 526 }, enableFieldValidators: function (a, b, c) { 527 var d = this.options.fields[a].validators; 528 if (c && d && d[c] && d[c].enabled !== b) this.options.fields[a].validators[c].enabled = b, this.updateStatus(a, this.STATUS_NOT_VALIDATED, c); else if (!c && this.options.fields[a].enabled !== b) { 529 this.options.fields[a].enabled = b; 530 for (var e in d) this.enableFieldValidators(a, b, e) 531 } 532 return this 533 }, getDynamicOption: function (b, c) { 534 var d = "string" == typeof b ? this.getFieldElements(b) : b, e = d.val(); 535 if ("function" == typeof c) return a.fn.bootstrapValidator.helpers.call(c, [e, this, d]); 536 if ("string" == typeof c) { 537 var f = this.getFieldElements(c); 538 return f.length ? f.val() : a.fn.bootstrapValidator.helpers.call(c, [e, this, d]) || c 539 } 540 return null 541 }, destroy: function () { 542 var b, c, d, e, f, g; 543 for (b in this.options.fields) { 544 c = this.getFieldElements(b), g = this.options.fields[b].group || this.options.group; 545 for (var h = 0; h < c.length; h++) { 546 if (d = c.eq(h), d.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="' + b + '"]').remove().end().end().removeData("bv.messages").parents(g).removeClass("has-feedback has-error has-success").end().off(".bv").removeAttr("data-bv-field"), f = d.data("bv.icon")) { 547 var i = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, d, this) : this.options.fields[b].container || this.options.container; 548 switch (i) { 549 case"tooltip": 550 f.tooltip("destroy").remove(); 551 break; 552 case"popover": 553 f.popover("destroy").remove(); 554 break; 555 default: 556 f.remove() 557 } 558 } 559 d.removeData("bv.icon"); 560 for (e in this.options.fields[b].validators) d.data("bv.dfs." + e) && d.data("bv.dfs." + e).reject(), d.removeData("bv.result." + e).removeData("bv.response." + e).removeData("bv.dfs." + e), "function" == typeof a.fn.bootstrapValidator.validators[e].destroy && a.fn.bootstrapValidator.validators[e].destroy(this, d, this.options.fields[b].validators[e]) 561 } 562 } 563 this.disableSubmitButtons(!1), this.$hiddenButton.remove(), this.$form.removeClass(this.options.elementClass).off(".bv").removeData("bootstrapValidator").find("[data-bv-submit-hidden]").remove().end().find('[type="submit"]').off("
563click.bv") 564 } 565 }, a.fn.bootstrapValidator = function (c) { 566 var d = arguments; 567 return this.each(function () { 568 var e = a(this), f = e.data("bootstrapValidator"), g = "object" == typeof c && c; 569 f || (f = new b(this, g), e.data("bootstrapValidator", f)), "string" == typeof c && f[c].apply(f, Array.prototype.slice.call(d, 1)) 570 }) 571 }, a.fn.bootstrapValidator.DEFAULT_OPTIONS = { 572 autoFocus: !0, 573 container: null, 574 elementClass: "bv-form", 575 events: { 576 formInit: "init.form.bv", 577 formError: "error.form.bv", 578 formSuccess: "success.form.bv", 579 fieldAdded: "added.field.bv", 580 fieldRemoved: "removed.field.bv", 581 fieldInit: "init.field.bv", 582 fieldError: "error.field.bv", 583 fieldSuccess: "success.field.bv", 584 fieldStatus: "status.field.bv", 585 validatorError: "error.validator.bv", 586 validatorSuccess: "success.validator.bv" 587 }, 588 excluded: [":disabled", ":hidden", ":not(:visible)"], 589 feedbackIcons: {valid: null, invalid: null, validating: null}, 590 fields: null, 591 group: ".form-group", 592 live: "enabled", 593 message: "This value is not valid", 594 submitButtons: '[type="submit"]', 595 threshold: null, 596 verbose: !0 597 }, a.fn.bootstrapValidator.validators = {}, a.fn.bootstrapValidator.i18n = {}, a.fn.bootstrapValidator.Constructor = b, a.fn.bootstrapValidator.helpers = { 598 call: function (a, b) { 599 if ("function" == typeof a) return a.apply(this, b); 600 if ("string" == typeof a) { 601 "()" === a.substring(a.length - 2) && (a = a.substring(0, a.length - 2)); 602 for (var c = a.split("."), d = c.pop(), e = window, f = 0; f < c.length; f++) e = e[c[f]]; 603 return "undefined" == typeof e[d] ? null : e[d].apply(this, b) 604 } 605 }, format: function (b, c) { 606 a.isArray(c) || (c = [c]); 607 for (var d in c) b = b.replace("%s", c[d]); 608 return b 609 }, date: function (a, b, c, d) { 610 if (isNaN(a) || isNaN(b) || isNaN(c)) return !1; 611 if (c.length > 2 || b.length > 2 || a.length > 4) return !1; 612 if (c = parseInt(c, 10), b = parseInt(b, 10), a = parseInt(a, 10), 1e3 > a || a > 9999 || 0 >= b || b > 12) return !1; 613 var e = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 614 if ((a % 400 === 0 || a % 100 !== 0 && a % 4 === 0) && (e[1] = 29), 0 >= c || c > e[b - 1]) return !1; 615 if (d === !0) { 616 var f = new Date, g = f.getFullYear(), h = f.getMonth(), i = f.getDate(); 617 return g > a || a === g && h > b - 1 || a === g && b - 1 === h && i > c 618 } 619 return !0 620 }, luhn: function (a) { 621 for (var b = a.length, c = 0, d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]], e = 0; b--;) e += d[c][parseInt(a.charAt(b), 10)], c ^= 1; 622 return e % 10 === 0 && e > 0 623 }, mod11And10: function (a) { 624 for (var b = 5, c = a.length, d = 0; c > d; d++) b = (2 * (b || 10) % 11 + parseInt(a.charAt(d), 10)) % 10; 625 return 1 === b 626 }, mod37And36: function (a, b) { 627 b = b || "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 628 for (var c = b.length, d = a.length, e = Math.floor(c / 2), f = 0; d > f; f++) e = (2 * (e || c) % (c + 1) + b.indexOf(a.charAt(f))) % c; 629 return 1 === e 630 } 631 } 632}(window.jQuery), function (a) { 633 a.fn.bootstrapValidator.i18n.base64 = a.extend(a.fn.bootstrapValidator.i18n.base64 || {}, {"default": "Please enter a valid base 64 encoded"}), a.fn.bootstrapValidator.validators.base64 = { 634 validate: function (a, b) { 635 var c = b.val(); 636 return "" === c ? !0 : /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(c) 637 } 638 } 639}(window.jQuery), function (a) { 640 a.fn.bootstrapValidator.i18n.between = a.extend(a.fn.bootstrapValidator.i18n.between || {}, { 641 "default": "Please enter a value between %s and %s", 642 notInclusive: "Please enter a value between %s and %s strictly" 643 }), a.fn.bootstrapValidator.validators.between = { 644 html5Attributes: { 645 message: "message", 646 min: "min", 647 max: "max", 648 inclusive: "inclusive" 649 }, enableByHtml5: function (a) { 650 return "range" === a.attr("type") ? {min: a.attr("min"), max: a.attr("max")}
650 : !1 651 }, validate: function (b, c, d) { 652 var e = c.val(); 653 if ("" === e) return !0; 654 if (e = this._format(e), !a.isNumeric(e)) return !1; 655 var f = a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min), 656 g = a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max), h = this._format(f), i = this._format(g); 657 return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? { 658 valid: e >= h && i >= e, 659 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.between["default"], [f, g]) 660 } : { 661 valid: e > h && i > e, 662 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.between.notInclusive, [f, g]) 663 } 664 }, _format: function (a) { 665 return (a + "").replace(",", ".") 666 } 667 } 668}(window.jQuery), function (a) { 669 a.fn.bootstrapValidator.validators.blank = { 670 validate: function () { 671 return !0 672 } 673 } 674}(window.jQuery), function (a) { 675 a.fn.bootstrapValidator.i18n.callback = a.extend(a.fn.bootstrapValidator.i18n.callback || {}, {"default": "Please enter a valid value"}), a.fn.bootstrapValidator.validators.callback = { 676 html5Attributes: { 677 message: "message", 678 callback: "callback" 679 }, validate: function (b, c, d) { 680 var e = c.val(), f = new a.Deferred, g = {valid: !0}; 681 if (d.callback) { 682 var h = a.fn.bootstrapValidator.helpers.call(d.callback, [e, b, c]); 683 g = "boolean" == typeof h ? {valid: h} : h 684 } 685 return f.resolve(c, "callback", g), f 686 } 687 } 688}(window.jQuery), function (a) { 689 a.fn.bootstrapValidator.i18n.choice = a.extend(a.fn.bootstrapValidator.i18n.choice || {}, { 690 "default": "Please enter a valid value", 691 less: "Please choose %s options at minimum", 692 more: "Please choose %s options at maximum", 693 between: "Please choose %s - %s options" 694 }), a.fn.bootstrapValidator.validators.choice = { 695 html5Attributes: {message: "message", min: "min", max: "max"}, 696 validate: function (b, c, d) { 697 var e = c.is("select") ? b.getFieldElements(c.attr("data-bv-field")).find("option").filter(":selected").length : b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length, 698 f = d.min ? a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min) : null, 699 g = d.max ? a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max) : null, h = !0, 700 i = d.message || a.fn.bootstrapValidator.i18n.choice["default"]; 701 switch ((f && e < parseInt(f, 10) || g && e > parseInt(g, 10)) && (h = !1), !0) { 702 case!!f && !!g: 703 i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.between, [parseInt(f, 10), parseInt(g, 10)]); 704 break; 705 case!!f: 706 i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.less, parseInt(f, 10)); 707 break; 708 case!!g: 709 i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.more, parseInt(g, 10)) 710 } 711 return {valid: h, message: i} 712 } 713 } 714}(window.jQuery), function (a) { 715 a.fn.bootstrapValidator.i18n.color = a.extend(a.fn.bootstrapValidator.i18n.color || {}, {"default": "Please enter a valid color"}), a.fn.bootstrapValidator.validators.color = { 716 SUPPORTED_TYPES: ["hex", "rgb", "rgba", "hsl", "hsla", "keyword"], 717 KEYWORD_COLORS: ["aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "green", "greenyellow", "grey", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "n
717avy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"], 718 validate: function (b, c, d) { 719 var e = c.val(); 720 if ("" === e) return !0; 721 var f = d.type || this.SUPPORTED_TYPES; 722 a.isArray(f) || (f = f.replace(/s/g, "").split(",")); 723 for (var g, h, i = !1, j = 0; j < f.length; j++) if (h = f[j], g = "_" + h.toLowerCase(), i = i || this[g](e)) return !0; 724 return !1 725 }, 726 _hex: function (a) { 727 return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a) 728 }, 729 _hsl: function (a) { 730 return /^hsl\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(a) 731 }, 732 _hsla: function (a) { 733 return /^hsla\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(a) 734 }, 735 _keyword: function (b) { 736 return a.inArray(b, this.KEYWORD_COLORS) >= 0 737 }, 738 _rgb: function (a) { 739 var b = /^rgb\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){2}(\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*)\)$/, 740 c = /^rgb\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/; 741 return b.test(a) || c.test(a) 742 }, 743 _rgba: function (a) { 744 var b = /^rgba\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/, 745 c = /^rgba\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/; 746 return b.test(a) || c.test(a) 747 } 748 } 749}(window.jQuery), function (a) { 750 a.fn.bootstrapValidator.i18n.creditCard = a.extend(a.fn.bootstrapValidator.i18n.creditCard || {}, {"default": "Please enter a valid credit card number"}), a.fn.bootstrapValidator.validators.creditCard = { 751 validate: function (b, c) { 752 var d = c.val(); 753 if ("" === d) return !0; 754 if (/[^0-9-\s]+/.test(d)) return !1; 755 if (d = d.replace(/\D/g, ""), !a.fn.bootstrapValidator.helpers.luhn(d)) return !1; 756 var e, f, g = { 757 AMERICAN_EXPRESS: {length: [15], prefix: ["34", "37"]}, 758 DINERS_CLUB: {length: [14], prefix: ["300", "301", "302", "303", "304", "305", "36"]}, 759 DINERS_CLUB_US: {length: [16], prefix: ["54", "55"]}, 760 DISCOVER: { 761 length: [16], 762 prefix: ["6011", "622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925", "644", "645", "646", "647", "648", "649", "65"] 763 }, 764 JCB: {length: [16], prefix: ["3528", "3529", "353", "354", "355", "356", "357", "358"]}, 765 LASER: {length: [16, 17, 18, 19], prefix: ["6304", "6706", "6771", "6709"]}, 766 MAESTRO: { 767 length: [12, 13, 14, 15, 16, 17, 18, 19], 768 prefix: ["5018", "5020", "5038", "6304", "6759", "6761", "6762", "6763", "6764", "6765", "6766"] 769 }, 770 MASTERCARD: {length: [16], prefix: ["51", "52", "53", "54", "55"]}, 771 SOLO: {length: [16, 18, 19], prefix: ["6334", "6767"]}, 772 UNIONPAY: { 773 length: [16, 17, 18, 19], 774 prefix: ["622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925"] 775 }, 776 VISA: {length: [16], prefix: ["4"]} 777 }; 778 for (e in g) for (f in g[e].prefix) if (d.substr(0, g[e].prefix[f].length) === g[e].prefix[f] && -1 !== a.inArray(d.length, g[e].length)) return !0; 779 return !1 780 } 781 } 782}(window.jQuery), function (a) { 783 a.fn.bootstrapValidator.i18n.cusip = a.extend(a.fn.bootstrapValidator.i18n.cusip || {}, {"default": "Please enter a valid CUSIP number"}), a.fn.bootstrapValidator.validators.cusip = { 784 validate: function (b, c) { 785 var d = c.val(); 786 if ("" === d) return !0; 787 if (d = d.toUpperCase(), !/^[0-9A-Z]{9}$/.test(d)) return !1; 788 for (var e = a.map(d.split(""), function (a) { 789 var b = a.charCodeAt(0); 790 return b >= "A".charCodeAt(0) && b <= "Z".charCodeAt(0) ? b - "A".charCodeAt(0) + 10 : a 791 }), f = e.length, g = 0, h = 0; f - 1 > h; h++) { 792 var i = parseInt(e[h], 10); 793 h % 2 !== 0 && (i *= 2), i > 9 && (i -= 9), g += i 794 } 795 return g = (10 - g % 10) % 10, g === e[f - 1] 796 } 797 } 798}(window.jQuery), function (a) { 799 a.fn.bootstrapValidator.i18n.cvv = a.extend(a.fn.bootstrapValidator.i18n.cvv || {}, {"default": "Please enter a valid CVV number"}), a.fn.bootstrapValidator.validators.cvv = {
vendor: 16,101 bytes, lines 800-1079
800 html5Attributes: {message: "message", ccfield: "creditCardField"}, validate: function (b, c, d) { 801 var e = c.val(); 802 if ("" === e) return !0; 803 if (!/^[0-9]{3,4}$/.test(e)) return !1; 804 if (!d.creditCardField) return !0; 805 var f = b.getFieldElements(d.creditCardField).val(); 806 if ("" === f) return !0; 807 f = f.replace(/\D/g, ""); 808 var g, h, i = { 809 AMERICAN_EXPRESS: {length: [15], prefix: ["34", "37"]}, 810 DINERS_CLUB: {length: [14], prefix: ["300", "301", "302", "303", "304", "305", "36"]}, 811 DINERS_CLUB_US: {length: [16], prefix: ["54", "55"]}, 812 DISCOVER: { 813 length: [16], 814 prefix: ["6011", "622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925", "644", "645", "646", "647", "648", "649", "65"] 815 }, 816 JCB: {length: [16], prefix: ["3528", "3529", "353", "354", "355", "356", "357", "358"]}, 817 LASER: {length: [16, 17, 18, 19], prefix: ["6304", "6706", "6771", "6709"]}, 818 MAESTRO: { 819 length: [12, 13, 14, 15, 16, 17, 18, 19], 820 prefix: ["5018", "5020", "5038", "6304", "6759", "6761", "6762", "6763", "6764", "6765", "6766"] 821 }, 822 MASTERCARD: {length: [16], prefix: ["51", "52", "53", "54", "55"]}, 823 SOLO: {length: [16, 18, 19], prefix: ["6334", "6767"]}, 824 UNIONPAY: { 825 length: [16, 17, 18, 19], 826 prefix: ["622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925"] 827 }, 828 VISA: {length: [16], prefix: ["4"]} 829 }, j = null; 830 for (g in i) for (h in i[g].prefix) if (f.substr(0, i[g].prefix[h].length) === i[g].prefix[h] && -1 !== a.inArray(f.length, i[g].length)) { 831 j = g; 832 break 833 } 834 return null === j ? !1 : "AMERICAN_EXPRESS" === j ? 4 === e.length : 3 === e.length 835 } 836 } 837}(window.jQuery), function (a) { 838 a.fn.bootstrapValidator.i18n.date = a.extend(a.fn.bootstrapValidator.i18n.date || {}, { 839 "default": "Please enter a valid date", 840 min: "Please enter a date after %s", 841 max: "Please enter a date before %s", 842 range: "Please enter a date in the range %s - %s" 843 }), a.fn.bootstrapValidator.validators.date = { 844 html5Attributes: {message: "message", format: "format", min: "min", max: "max", separator: "separator"}, 845 validate: function (b, c, d) { 846 var e = c.val(); 847 if ("" === e) return !0; 848 d.format = d.format || "MM/DD/YYYY", "date" === c.attr("type") && (d.format = "YYYY-MM-DD"); 849 var f = d.format.split(" "), g = f[0], h = f.length > 1 ? f[1] : null, i = f.length > 2 ? f[2] : null, 850 j = e.split(" "), k = j[0], l = j.length > 1 ? j[1] : null; 851 if (f.length !== j.length) return { 852 valid: !1, 853 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 854 }; 855 var m = d.separator; 856 if (m || (m = -1 !== k.indexOf("/") ? "/" : -1 !== k.indexOf("-") ? "-" : null), null === m || -1 === k.indexOf(m)) return { 857 valid: !1, 858 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 859 }; 860 if (k = k.split(m), g = g.split(m), k.length !== g.length) return { 861 valid: !1, 862 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 863 }; 864 var n = k[a.inArray("YYYY", g)], o = k[a.inArray("MM", g)], p = k[a.inArray("DD", g)]; 865 if (!n || !o || !p || 4 !== n.length) return { 866 valid: !1, 867 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 868 }; 869 var q = null, r = null, s = null; 870 if (h) { 871 if (h = h.split(":"), l = l.split(":"), h.length !== l.length) return { 872 valid: !1, 873 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 874 }; 875 if (r = l.length > 0 ? l[0] : null, q = l.length > 1 ? l[1] : null, s = l.length > 2 ? l[2] : null) { 876 if (isNaN(s) || s.length > 2) return { 877 valid: !1, 878 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 879 }; 880 if (s = parseInt(s, 10), 0 > s || s > 60) return { 881 valid: !1, 882 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 883 } 884 } 885 if (r) { 886 if (isNaN(r) || r.length > 2) return { 887 valid: !1, 888 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 889 }; 890 if (r = parseInt(r, 10), 0 > r || r >= 24 || i && r > 12) return { 891 valid: !1, 892 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 893 } 894 } 895 if (q) { 896 if (isNaN(q) || q.length > 2) return { 897 valid: !1, 898 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 899 }; 900 if (q = parseInt(q, 10), 0 > q || q > 59) return { 901 valid: !1, 902 message: d.message || a.fn.bootstrapValidator.i18n.date["default"] 903 } 904 } 905 } 906 var t = a.fn.bootstrapValidator.helpers.date(n, o, p), 907 u = d.message || a.fn.bootstrapValidator.i18n.date["default"], v = null, w = null, x = d.min, y = d.max; 908 switch (x && (isNaN(Date.parse(x)) && (x = b.getDynamicOption(c, x)), v = this._parseDate(x, g, m)), y && (isNaN(Date.parse(y)) && (y = b.getDynamicOption(c, y)), w = this._parseDate(y, g, m)), k = new Date(n, o, p, r, q, s), !0) { 909 case x && !y && t: 910 t = k.getTime() >= v.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.min, x); 911 break; 912 case y && !x && t: 913 t = k.getTime() <= w.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.max, y); 914 break; 915 case y && x && t: 916 t = k.getTime() <= w.getTime() && k.getTime() >= v.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.range, [x, y]) 917 } 918 return {valid: t, message: u} 919 }, 920 _parseDate: function (b, c, d) { 921 var e = 0, f = 0, g = 0, h = b.split(" "), i = h[0], j = h.length > 1 ? h[1] : null; 922 i = i.split(d); 923 var k = i[a.inArray("YYYY", c)], l = i[a.inArray("MM", c)], m = i[a.inArray("DD", c)]; 924 return j && (j = j.split(":"), f = j.length > 0 ? j[0] : null, e = j.length > 1 ? j[1] : null, g = j.length > 2 ? j[2] : null), new Date(k, l, m, f, e, g) 925 } 926 } 927}(window.jQuery), function (a) { 928 a.fn.bootstrapValidator.i18n.different = a.extend(a.fn.bootstrapValidator.i18n.different || {}, {"default": "Please enter a different value"}), a.fn.bootstrapValidator.validators.different = { 929 html5Attributes: { 930 message: "message", 931 field: "field" 932 }, validate: function (a, b, c) { 933 var d = b.val(); 934 if ("" === d) return !0; 935 for (var e = c.field.split(","), f = !0, g = 0; g < e.length; g++) { 936 var h = a.getFieldElements(e[g]); 937 if (null != h && 0 !== h.length) { 938 var i = h.val(); 939 d === i ? f = !1 : "" !== i && a.updateStatus(h, a.STATUS_VALID, "different") 940 } 941 } 942 return f 943 } 944 } 945}(window.jQuery), function (a) { 946 a.fn.bootstrapValidator.i18n.digits = a.extend(a.fn.bootstrapValidator.i18n.digits || {}, {"default": "Please enter only digits"}), a.fn.bootstrapValidator.validators.digits = { 947 validate: function (a, b) { 948 var c = b.val(); 949 return "" === c ? !0 : /^\d+$/.test(c) 950 } 951 } 952}(window.jQuery), function (a) { 953 a.fn.bootstrapValidator.i18n.ean = a.extend(a.fn.bootstrapValidator.i18n.ean || {}, {"default": "Please enter a valid EAN number"}), a.fn.bootstrapValidator.validators.ean = { 954 validate: function (a, b) { 955 var c = b.val(); 956 if ("" === c) return !0; 957 if (!/^(\d{8}|\d{12}|\d{13})$/.test(c)) return !1; 958 for (var d = c.length, e = 0, f = 8 === d ? [3, 1] : [1, 3], g = 0; d - 1 > g; g++) e += parseInt(c.charAt(g), 10) * f[g % 2]; 959 return e = (10 - e % 10) % 10, e + "" === c.charAt(d - 1) 960 } 961 } 962}(window.jQuery), function (a) { 963 a.fn.bootstrapValidator.i18n.emailAddress = a.extend(a.fn.bootstrapValidator.i18n.emailAddress || {}, {"default": "Please enter a valid email address"}), a.fn.bootstrapValidator.validators.emailAddress = { 964 html5Attributes: { 965 message: "message", 966 multiple: "multiple", 967 separator: "separator" 968 }, enableByHtml5: function (a) { 969 return "email" === a.attr("type") 970 }, validate: function (a, b, c) { 971 var d = b.val(); 972 if ("" === d) return !0; 973 var e = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[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])?)*$/, 974 f = c.multiple === !0 || "true" === c.multiple; 975 if (f) { 976 for (var g = c.separator || /[,;]/, h = this._splitEmailAddresses(d, g), i = 0; i < h.length; i++) if (!e.test(h[i])) return !1; 977 return !0 978 } 979 return e.test(d) 980 }, _splitEmailAddresses: function (a, b) { 981 for (var c = a.split(/"/), d = c.length, e = [], f = "", g = 0; d > g; g++) if (g % 2 === 0) { 982 var h = c[g].split(b), i = h.length; 983 if (1 === i) f += h[0]; else { 984 e.push(f + h[0]); 985 for (var j = 1; i - 1 > j; j++) e.push(h[j]); 986 f = h[i - 1] 987 } 988 } else f += '"' + c[g], d - 1 > g && (f += '"'); 989 return e.push(f), e 990 } 991 } 992}(window.jQuery), function (a) { 993 a.fn.bootstrapValidator.i18n.file = a.extend(a.fn.bootstrapValidator.i18n.file || {}, {"default": "Please choose a valid file"}), a.fn.bootstrapValidator.validators.file = { 994 html5Attributes: { 995 extension: "extension", 996 maxfiles: "maxFiles", 997 minfiles: "minFiles", 998 maxsize: "maxSize", 999 minsize: "minSize", 1000 maxtotalsize: "maxTotalSize", 1001 mintotalsize: "minTotalSize", 1002 message: "message", 1003 type: "type" 1004 }, validate: function (b, c, d) { 1005 var e = c.val(); 1006 if ("" === e) return !0; 1007 var f, g = d.extension ? d.extension.toLowerCase().split(",") : null, 1008 h = d.type ? d.type.toLowerCase().split(",") : null, 1009 i = window.File && window.FileList && window.FileReader; 1010 if (i) { 1011 var j = c.get(0).files, k = j.length, l = 0; 1012 if (d.maxFiles && k > parseInt(d.maxFiles, 10) || d.minFiles && k < parseInt(d.minFiles, 10)) return !1; 1013 for (var m = 0; k > m; m++) if (l += j[m].size, f = j[m].name.substr(j[m].name.lastIndexOf(".") + 1), d.minSize && j[m].size < parseInt(d.minSize, 10) || d.maxSize && j[m].size > parseInt(d.maxSize, 10) || g && -1 === a.inArray(f.toLowerCase(), g) || j[m].type && h && -1 === a.inArray(j[m].type.toLowerCase(), h)) return !1; 1014 if (d.maxTotalSize && l > parseInt(d.maxTotalSize, 10) || d.minTotalSize && l < parseInt(d.minTotalSize, 10)) return !1 1015 } else if (f = e.substr(e.lastIndexOf(".") + 1), g && -1 === a.inArray(f.toLowerCase(), g)) return !1; 1016 return !0 1017 } 1018 } 1019}(window.jQuery), function (a) { 1020 a.fn.bootstrapValidator.i18n.greaterThan = a.extend(a.fn.bootstrapValidator.i18n.greaterThan || {}, { 1021 "default": "Please enter a value greater than or equal to %s", 1022 notInclusive: "Please enter a value greater than %s" 1023 }), a.fn.bootstrapValidator.validators.greaterThan = { 1024 html5Attributes: { 1025 message: "message", 1026 value: "value", 1027 inclusive: "inclusive" 1028 }, enableByHtml5: function (a) { 1029 var b = a.attr("type"), c = a.attr("min"); 1030 return c && "date" !== b ? {value: c} : !1 1031 }, validate: function (b, c, d) { 1032 var e = c.val(); 1033 if ("" === e) return !0; 1034 if (e = this._format(e), !a.isNumeric(e)) return !1; 1035 var f = a.isNumeric(d.value) ? d.value : b.getDynamicOption(c, d.value), g = this._format(f); 1036 return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? { 1037 valid: e >= g, 1038 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.greaterThan["default"], f) 1039 } : { 1040 valid: e > g, 1041 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.greaterThan.notInclusive, f) 1042 } 1043 }, _format: function (a) { 1044 return (a + "").replace(",", ".") 1045 } 1046 } 1047}(window.jQuery), function (a) { 1048 a.fn.bootstrapValidator.i18n.grid = a.extend(a.fn.bootstrapValidator.i18n.grid || {}, {"default": "Please enter a valid GRId number"}), a.fn.bootstrapValidator.validators.grid = { 1049 validate: function (b, c) { 1050 var d = c.val(); 1051 return "" === d ? !0 : (d = d.toUpperCase(), /^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(d) ? (d = d.replace(/\s/g, "").replace(/-/g, ""), "GRID:" === d.substr(0, 5) && (d = d.substr(5)), a.fn.bootstrapValidator.helpers.mod37And36(d)) : !1) 1052 } 1053 } 1054}(window.jQuery), function (a) { 1055 a.fn.bootstrapValidator.i18n.hex = a.extend(a.fn.bootstrapValidator.i18n.hex || {}, {"default": "Please enter a valid hexadecimal number"}), a.fn.bootstrapValidator.validators.hex = { 1056 validate: function (a, b) { 1057 var c = b.val(); 1058 return "" === c ? !0 : /^[0-9a-fA-F]+$/.test(c) 1059 } 1060 } 1061}(window.jQuery), function (a) { 1062 a.fn.bootstrapValidator.i18n.hexColor = a.extend(a.fn.bootstrapValidator.i18n.hexColor || {}, {"default": "Please enter a valid hex color"}), a.fn.bootstrapValidator.validators.hexColor = { 1063 enableByHtml5: function (a) { 1064 return "color" === a.attr("type") 1065 }, validate: function (a, b) { 1066 var c = b.val(); 1067 return "" === c ? !0 : "color" === b.attr("type") ? /^#[0-9A-F]{6}$/i.test(c) : /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c) 1068 } 1069 } 1070}(window.jQuery), function (a) { 1071 a.fn.bootstrapValidator.i18n.iban = a.extend(a.fn.bootstrapValidator.i18n.iban || {}, { 1072 "default": "Please enter a valid IBAN number", 1073 countryNotSupported: "The country code %s is not supported", 1074 country: "Please enter a valid IBAN number in %s", 1075 countries: { 1076 AD: "Andorra", 1077 AE: "United Arab Emirates", 1078 AL: "Albania", 1079 AO: "Angola",
1080 AT: "Austria", 1081 AZ: "Azerbaijan", 1082 BA: "Bosnia and Herzegovina", 1083 BE: "Belgium", 1084 BF: "Burkina Faso", 1085 BG: "Bulgaria", 1086 BH: "Bahrain", 1087 BI: "Burundi", 1088 BJ: "Benin", 1089 BR: "Brazil", 1090 CH: "Switzerland", 1091 CI: "Ivory Coast", 1092 CM: "Cameroon", 1093 CR: "Costa Rica", 1094 CV: "Cape Verde", 1095 CY: "Cyprus", 1096 CZ: "Czech Republic", 1097 DE: "Germany", 1098 DK: "Denmark", 1099 DO: "Dominican Republic", 1100 DZ: "Algeria", 1101 EE: "Estonia", 1102 ES: "Spain", 1103 FI: "Finland", 1104 FO: "Faroe Islands", 1105 FR: "France", 1106 GB: "United Kingdom", 1107 GE: "Georgia", 1108 GI: "Gibraltar", 1109 GL: "Greenland", 1110 GR: "Greece", 1111 GT: "Guatemala", 1112 HR: "Croatia", 1113 HU: "Hungary", 1114 IE: "Ireland", 1115 IL: "Israel", 1116 IR: "Iran", 1117 IS: "Iceland", 1118 IT: "Italy", 1119 JO: "Jordan", 1120 KW: "Kuwait", 1121 KZ: "Kazakhstan", 1122 LB: "Lebanon", 1123 LI: "Liechtenstein", 1124 LT: "Lithuania", 1125 LU: "Luxembourg", 1126 LV: "Latvia", 1127 MC: "Monaco", 1128 MD: "Moldova", 1129 ME: "Montenegro", 1130 MG: "Madagascar", 1131 MK: "Macedonia", 1132 ML: "Mali", 1133 MR: "Mauritania", 1134 MT: "Malta", 1135 MU: "Mauritius", 1136 MZ: "Mozambique", 1137 NL: "Netherlands", 1138 NO: "Norway", 1139 PK: "Pakistan", 1140 PL: "Poland", 1141 PS: "Palestine", 1142 PT: "Portugal", 1143 QA: "Qatar", 1144 RO: "Romania", 1145 RS: "Serbia", 1146 SA: "Saudi Arabia", 1147 SE: "Sweden", 1148 SI: "Slovenia", 1149 SK: "Slovakia", 1150 SM: "San Marino", 1151 SN: "Senegal", 1152 TN: "Tunisia", 1153 TR: "Turkey", 1154 VG: "Virgin Islands, British" 1155 } 1156 }), a.fn.bootstrapValidator.validators.iban = { 1157 html5Attributes: {message: "message", country: "country"}, REGEX: { 1158 AD: "AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}", 1159 AE: "AE[0-9]{2}[0-9]{3}[0-9]{16}", 1160 AL: "AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}", 1161 AO: "AO[0-9]{2}[0-9]{21}", 1162 AT: "AT[0-9]{2}[0-9]{5}[0-9]{11}", 1163 AZ: "AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}", 1164 BA: "BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}", 1165 BE: "BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}", 1166 BF: "BF[0-9]{2}[0-9]{23}", 1167 BG: "BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}", 1168 BH: "BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}", 1169 BI: "BI[0-9]{2}[0-9]{12}", 1170 BJ: "BJ[0-9]{2}[A-Z]{1}[0-9]{23}", 1171 BR: "BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]", 1172 CH: "CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}", 1173 CI: "CI[0-9]{2}[A-Z]{1}[0-9]{23}", 1174 CM: "CM[0-9]{2}[0-9]{23}", 1175 CR: "CR[0-9]{2}[0-9]{3}[0-9]{14}", 1176 CV: "CV[0-9]{2}[0-9]{21}", 1177 CY: "CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}", 1178 CZ: "CZ[0-9]{2}[0-9]{20}", 1179 DE: "DE[0-9]{2}[0-9]{8}[0-9]{10}", 1180 DK: "DK[0-9]{2}[0-9]{14}", 1181 DO: "DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}", 1182 DZ: "DZ[0-9]{2}[0-9]{20}", 1183 EE: "EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}", 1184 ES: "ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}", 1185 FI: "FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}", 1186 FO: "FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", 1187 FR: "FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", 1188 GB: "GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", 1189 GE: "GE[0-9]{2}[A-Z]{2}[0-9]{16}", 1190 GI: "GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}", 1191 GL: "GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", 1192 GR: "GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}", 1193 GT: "GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}", 1194 HR: "HR[0-9]{2}[0-9]{7}
1194[0-9]{10}", 1195 HU: "HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}", 1196 IE: "IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", 1197 IL: "IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}", 1198 IR: "IR[0-9]{2}[0-9]{22}", 1199 IS: "IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}", 1200 IT: "IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", 1201 JO: "JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}", 1202 KW: "KW[0-9]{2}[A-Z]{4}[0-9]{22}", 1203 KZ: "KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}", 1204 LB: "LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}", 1205 LI: "LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}", 1206 LT: "LT[0-9]{2}[0-9]{5}[0-9]{11}", 1207 LU: "LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}", 1208 LV: "LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}", 1209 MC: "MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", 1210 MD: "MD[0-9]{2}[A-Z0-9]{20}", 1211 ME: "ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 1212 MG: "MG[0-9]{2}[0-9]{23}", 1213 MK: "MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}", 1214 ML: "ML[0-9]{2}[A-Z]{1}[0-9]{23}", 1215 MR: "MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}", 1216 MT: "MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}", 1217 MU: "MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}", 1218 MZ: "MZ[0-9]{2}[0-9]{21}", 1219 NL: "NL[0-9]{2}[A-Z]{4}[0-9]{10}", 1220 NO: "NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}", 1221 PK: "PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", 1222 PL: "PL[0-9]{2}[0-9]{8}[0-9]{16}", 1223 PS: "PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", 1224 PT: "PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}", 1225 QA: "QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", 1226 RO: "RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", 1227 RS: "RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 1228 SA: "SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}", 1229 SE: "SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}", 1230 SI: "SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}", 1231 SK: "SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}", 1232 SM: "SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", 1233 SN: "SN[0-9]{2}[A-Z]{1}[0-9]{23}", 1234 TN: "TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 1235 TR: "TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}", 1236 VG: "VG[0-9]{2}[A-Z]{4}[0-9]{16}" 1237 }, validate: function (b, c, d) { 1238 var e = c.val(); 1239 if ("" === e) return !0; 1240 e = e.replace(/[^a-zA-Z0-9]/g, "").toUpperCase(); 1241 var f = d.country; 1242 if (f ? "string" == typeof f && this.REGEX[f] || (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), !this.REGEX[f]) return { 1243 valid: !1, 1244 message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.iban.countryNotSupported, f) 1245 }; 1246 if (!new RegExp("^" + this.REGEX[f] + "$").test(e)) return { 1247 valid: !1, 1248 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.iban.country, a.fn.bootstrapValidator.i18n.iban.countries[f]) 1249 }; 1250 e = e.substr(4) + e.substr(0, 4), e = a.map(e.split(""), function (a) { 1251 var b = a.charCodeAt(0); 1252 return b >= "A".charCodeAt(0) && b <= "Z".charCodeAt(0) ? b - "A".charCodeAt(0) + 10 : a 1253 }), e = e.join(""); 1254 for (var g = parseInt(e.substr(0, 1), 10), h = e.length, i = 1; h > i; ++i) g = (10 * g + parseInt(e.substr(i, 1), 10)) % 97; 1255 return { 1256 valid: 1 === g, 1257 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.iban.country, a.fn.bootstrapValidator.i18n.iban.countries[f]) 1258 } 1259 } 1260 } 1261}(window.jQuery), function (a) { 1262 a.fn.bootstrapValidator.i18n.id = a.extend(a.fn.bootstrapValidator.i18n.id || {}, { 1263 "default": "Please enter a valid identification number", 1264 countryNotSupported: "The country code %s is not supported", 1265 country: "Please enter a valid identification number in %s", 1266 countries: { 1267 BA: "Bosnia and Herzegovina", 1268 BG: "Bulgaria", 1269 BR: "Brazil", 1270 CH: "Switzerland", 1271 CL: "Chile", 1272 CN: "China", 1273 CZ: "Czech Republic", 1274 DK: "Denmark", 1275 EE: "Estonia", 1276 ES: "Spain", 1277 FI: "Finland", 1278 HR: "Croatia", 1279 IE: "Ireland", 1280 IS: "Iceland", 1281 LT: "Lithuania", 1282 LV: "Latvia", 1283 ME: "Montenegro", 1284 MK: "Macedonia", 1285 NL: "Netherlands", 1286 RO: "Romania", 1287 RS: "Serbia", 1288 SE: "Sweden", 1289 SI: "Slovenia", 1290 SK: "Slovakia", 1291 SM: "San Marino", 1292 TH: "Thailand", 1293 ZA: "South Africa" 1294 } 1295 }), a.fn.bootstrapValidator.validators.id = { 1296 html5Attributes: {message: "message", country: "country"}, 1297 COUNTRY_CODES: ["BA", "BG", "BR", "CH", "CL", "CN", "CZ", "DK", "EE", "ES", "FI", "HR", "IE", "IS", "LT", "LV", "ME", "MK", "NL", "RO", "RS", "SE", "SI", "SK", "SM", "TH", "ZA"], 1298 validate: function (b, c, d) { 1299 var e = c.val(); 1300 if ("" === e) return !0; 1301 var f = d.country; 1302 if (f ? ("string" != typeof f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), -1 === a.inArray(f, this.COUNTRY_CODES)) return { 1303 valid: !1, 1304 message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.id.countryNotSupported, f) 1305 }; 1306 var g = ["_", f.toLowerCase()].join(""); 1307 return this[g](e) ? !0 : { 1308 valid: !1, 1309 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.id.country, a.fn.bootstrapValidator.i18n.id.countries[f.toUpperCase()]) 1310 } 1311 }, 1312 _validateJMBG: function (a, b) { 1313 if (!/^\d{13}$/.test(a)) return !1; 1314 var c = parseInt(a.substr(0, 2), 10), d = parseInt(a.substr(2, 2), 10), 1315 e = (parseInt(a.substr(4, 3), 10), parseInt(a.substr(7, 2), 10)), f = parseInt(a.substr(12, 1), 10); 1316 if (c > 31 || d > 12) return !1; 1317 for (var g = 0, h = 0; 6 > h; h++) g += (7 - h) * (parseInt(a.charAt(h), 10) + parseInt(a.charAt(h + 6), 10)); 1318 if (g = 11 - g % 11, (10 === g || 11 === g) && (g = 0), g !== f) return !1; 1319 switch (b.toUpperCase()) { 1320 case"BA": 1321 return e >= 10 && 19 >= e; 1322 case"MK": 1323 return e >= 41 && 49 >= e; 1324 case"ME": 1325 return e >= 20 && 29 >= e; 1326 case"RS": 1327 return e >= 70 && 99 >= e; 1328 case"SI": 1329 return e >= 50 && 59 >= e; 1330 default: 1331 return !0 1332 } 1333 }, 1334 _ba: function (a) {
vendor: 38,013 bytes, lines 1335-2089
1335 return this._validateJMBG(a, "BA") 1336 }, 1337 _mk: function (a) { 1338 return this._validateJMBG(a, "MK") 1339 }, 1340 _me: function (a) { 1341 return this._validateJMBG(a, "ME") 1342 }, 1343 _rs: function (a) { 1344 return this._validateJMBG(a, "RS") 1345 }, 1346 _si: function (a) { 1347 return this._validateJMBG(a, "SI") 1348 }, 1349 _bg: function (b) { 1350 if (!/^\d{10}$/.test(b) && !/^\d{6}\s\d{3}\s\d{1}$/.test(b)) return !1; 1351 b = b.replace(/\s/g, ""); 1352 var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10), 1353 e = parseInt(b.substr(4, 2), 10); 1354 if (d > 40 ? (c += 100, d -= 40) : d > 20 && (c -= 100, d -= 20), !a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1; 1355 for (var f = 0, g = [2, 4, 8, 5, 10, 9, 7, 3, 6], h = 0; 9 > h; h++) f += parseInt(b.charAt(h), 10) * g[h]; 1356 return f = f % 11 % 10, f + "" === b.substr(9, 1) 1357 }, 1358 _br: function (a) { 1359 if (/^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(a)) return !1; 1360 if (!/^\d{11}$/.test(a) && !/^\d{3}\.\d{3}\.\d{3}-\d{2}$/.test(a)) return !1; 1361 a = a.replace(/\./g, "").replace(/-/g, ""); 1362 for (var b = 0, c = 0; 9 > c; c++) b += (10 - c) * parseInt(a.charAt(c), 10); 1363 if (b = 11 - b % 11, (10 === b || 11 === b) && (b = 0), b + "" !== a.charAt(9)) return !1; 1364 var d = 0; 1365 for (c = 0; 10 > c; c++) d += (11 - c) * parseInt(a.charAt(c), 10); 1366 return d = 11 - d % 11, (10 === d || 11 === d) && (d = 0), d + "" === a.charAt(10) 1367 }, 1368 _ch: function (a) { 1369 if (!/^756[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{2}$/.test(a)) return !1; 1370 a = a.replace(/\D/g, "").substr(3); 1371 for (var b = a.length, c = 0, d = 8 === b ? [3, 1] : [1, 3], e = 0; b - 1 > e; e++) c += parseInt(a.charAt(e), 10) * d[e % 2]; 1372 return c = 10 - c % 10, c + "" === a.charAt(b - 1) 1373 }, 1374 _cl: function (a) { 1375 if (!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(a)) return !1; 1376 for (a = a.replace(/\-/g, ""); a.length < 9;) a = "0" + a; 1377 for (var b = 0, c = [3, 2, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 1378 return b = 11 - b % 11, 11 === b ? b = 0 : 10 === b && (b = "K"), b + "" === a.charAt(8).toUpperCase() 1379 }, 1380 _cn: function (b) { 1381 if (b = b.trim(), !/^\d{15}$/.test(b) && !/^\d{17}[\dXx]{1}$/.test(b)) return !1; 1382 var c = { 1383 11: {0: [0], 1: [[0, 9], [11, 17]], 2: [0, 28, 29]}, 1384 12: {0: [0], 1: [[0, 16]], 2: [0, 21, 23, 25]}, 1385 13: { 1386 0: [0], 1387 1: [[0, 5], 7, 8, 21, [23, 33], [81, 85]], 1388 2: [[0, 5], [7, 9], [23, 25], 27, 29, 30, 81, 83], 1389 3: [[0, 4], [21, 24]], 1390 4: [[0, 4], 6, 21, [23, 35], 81], 1391 5: [[0, 3], [21, 35], 81, 82], 1392 6: [[0, 4], [21, 38], [81, 84]], 1393 7: [[0, 3], 5, 6, [21, 33]], 1394 8: [[0, 4], [21, 28]], 1395 9: [[0, 3], [21, 30], [81, 84]], 1396 10: [[0, 3], [22, 26], 28, 81, 82], 1397 11: [[0, 2], [21, 28], 81, 82] 1398 }, 1399 14: { 1400 0: [0], 1401 1: [0, 1, [5, 10], [21, 23], 81], 1402 2: [[0, 3], 11, 12, [21, 27]], 1403 3: [[0, 3], 11, 21, 22], 1404 4: [[0, 2], 11, 21, [23, 31], 81], 1405 5: [[0, 2], 21, 22, 24, 25, 81], 1406 6: [[0, 3], [21, 24]], 1407 7: [[0, 2], [21, 29], 81], 1408 8: [[0, 2], [21, 30], 81, 82], 1409 9: [[0, 2], [21, 32], 81], 1410 10: [[0, 2], [21, 34], 81, 82], 1411 11: [[0, 2], [21, 30], 81, 82], 1412 23: [[0, 3], 22, 23, [25, 30], 32, 33] 1413 }, 1414 15: { 1415 0: [0], 1416 1: [[0, 5], [21, 25]], 1417 2: [[0, 7], [21, 23]], 1418 3: [[0, 4]], 1419 4: [[0, 4], [21, 26], [28, 30]], 1420 5: [[0, 2], [21, 26], 81], 1421 6: [[0, 2], [21, 27]], 1422 7: [[0, 3], [21, 27], [81, 85]], 1423 8: [[0, 2], [21, 26]], 1424 9: [[0, 2], [21, 29], 81], 1425 22: [[0, 2], [21, 24]], 1426 25: [[0, 2], [22, 31]], 1427 26: [[0, 2], [24, 27], [29, 32], 34], 1428 28: [0, 1, [22, 27]], 1429 29: [0, [21, 23]] 1430 }, 1431 21: { 1432 0: [0], 1433 1: [[0, 6], [11, 14], [22, 24], 81], 1434 2: [[0, 4], [11, 13], 24, [81, 83]], 1435 3: [[0, 4], 11, 21, 23, 81], 1436 4: [[0, 4], 11, [21, 23]], 1437 5: [[0, 5], 21, 22], 1438 6: [[0, 4], 24, 81, 82], 1439 7: [[0, 3], 11, 26, 27, 81, 82], 1440 8: [[0, 4], 11, 81, 82], 1441 9: [[0, 5], 11, 21, 22], 1442 10: [[0, 5], 11, 21, 81], 1443 11: [[0, 3], 21, 22], 1444 12: [[0, 2], 4, 21, 23, 24, 81, 82], 1445 13: [[0, 3], 21, 22, 24, 81, 82], 1446 14: [[0, 4], 21, 22, 81] 1447 }, 1448 22: { 1449 0: [0], 1450 1: [[0, 6], 12, 22, [81, 83]], 1451 2: [[0, 4], 11, 21, [81, 84]], 1452 3: [[0, 3], 22, 23, 81, 82], 1453 4: [[0, 3], 21, 22], 1454 5: [[0, 3], 21, 23, 24, 81, 82], 1455 6: [[0, 2], 4, 5, [21, 23], 25, 81], 1456 7: [[0, 2], [21, 24], 81], 1457 8: [[0, 2], 21, 22, 81, 82], 1458 24: [[0, 6], 24, 26] 1459 }, 1460 23: { 1461 0: [0], 1462 1: [[0, 12], 21, [23, 29], [81, 84]], 1463 2: [[0, 8], 21, [23, 25], 27, [29, 31], 81], 1464 3: [[0, 7], 21, 81, 82], 1465 4: [[0, 7], 21, 22], 1466 5: [[0, 3], 5, 6, [21, 24]], 1467 6: [[0, 6], [21, 24]], 1468 7: [[0, 16], 22, 81], 1469 8: [[0, 5], 11, 22, 26, 28, 33, 81, 82], 1470 9: [[0, 4], 21], 1471 10: [[0, 5], 24, 25, 81, [83, 85]], 1472 11: [[0, 2], 21, 23, 24, 81, 82], 1473 12: [[0, 2], [21, 26], [81, 83]], 1474 27: [[0, 4], [21, 23]] 1475 }, 1476 31: {0: [0], 1: [0, 1, [3, 10], [12, 20]], 2: [0, 30]}, 1477 32: { 1478 0: [0], 1479 1: [[0, 7], 11, [13, 18], 24, 25], 1480 2: [[0, 6], 11, 81, 82], 1481 3: [[0, 5], 11, 12, [21, 24], 81, 82], 1482 4: [[0, 2], 4, 5, 11, 12, 81, 82], 1483 5: [[0, 9], [81, 85]], 1484 6: [[0, 2], 11, 12, 21, 23, [81, 84]], 1485 7: [0, 1, 3, 5, 6, [21, 24]], 1486 8: [[0, 4], 11, 26, [29, 31]], 1487 9: [[0, 3], [21, 25], 28, 81, 82], 1488 10: [[0, 3], 11, 12, 23, 81, 84, 88], 1489 11: [[0, 2], 11, 12, [81, 83]], 1490 12: [[0, 4], [81, 84]], 1491 13: [[0, 2], 11, [21, 24]] 1492 }, 1493 33: { 1494 0: [0], 1495 1: [[0, 6], [8, 10], 22, 27, 82, 83, 85], 1496 2: [0, 1, [3, 6], 11, 12, 25, 26, [81, 83]], 1497 3: [[0, 4], 22, 24, [26, 29], 81, 82], 1498 4: [[0, 2], 11, 21, 24, [81, 83]], 1499 5: [[0, 3], [21, 23]], 1500 6: [[0, 2], 21, 24, [81, 83]], 1501 7: [[0, 3], 23, 26, 27, [81, 84]], 1502 8: [[0, 3], 22, 24, 25, 81], 1503 9: [[0, 3], 21, 22], 1504 10: [[0, 4], [21, 24], 81, 82], 1505 11: [[0, 2], [21, 27], 81] 1506 }, 1507 34: { 1508 0: [0], 1509 1: [[0, 4], 11, [21, 24], 81], 1510 2: [[0, 4], 7, 8, [21, 23], 25], 1511 3: [[0, 4], 11, [21, 23]], 1512 4: [[0, 6], 21], 1513 5: [[0, 4], 6, [21, 23]], 1514 6: [[0, 4], 21], 1515 7: [[0, 3], 11, 21], 1516 8: [[0, 3], 11, [22, 28], 81], 1517 10: [[0, 4], [21, 24]], 1518 11: [[0, 3], 22, [24, 26], 81, 82], 1519 12: [[0, 4], 21, 22, 25, 26, 82], 1520 13: [[0, 2], [21, 24]], 1521 14: [[0, 2], [21, 24]], 1522 15: [[0, 3], [21, 25]], 1523 16: [[0, 2], [21, 23]], 1524 17: [[0, 2], [21, 23]], 1525 18: [[0, 2], [21, 25], 81] 1526 }, 1527 35: { 1528 0: [0], 1529 1: [[0, 5], 11, [21, 25], 28, 81, 82], 1530 2: [[0, 6], [11, 13]], 1531 3: [[0, 5], 22], 1532 4: [[0, 3], 21, [23, 30], 81], 1533 5: [[0, 5], 21, [24, 27], [81, 83]], 1534 6: [[0, 3], [22, 29], 81], 1535 7: [[0, 2], [21, 25], [81, 84]], 1536 8: [[0, 2], [21, 25], 81], 1537 9: [[0, 2], [21, 26], 81, 82] 1538 }, 1539 36: { 1540 0: [0], 1541 1: [[0, 5], 11, [21, 24]], 1542 2: [[0, 3], 22, 81], 1543 3: [[0, 2], 13, [21, 23]], 1544 4: [[0, 3], 21, [23, 30], 81, 82], 1545 5: [[0, 2], 21], 1546 6: [[0, 2], 22, 81], 1547 7: [[0, 2], [21, 35], 81, 82], 1548 8: [[0, 3], [21, 30], 81], 1549 9: [[0, 2], [21, 26], [81, 83]], 1550 10: [[0, 2], [21, 30]], 1551 11: [[0, 2], [21, 30], 81] 1552 }, 1553 37: { 1554 0: [0], 1555 1: [[0, 5], 12, 13, [24, 26], 81], 1556 2: [[0, 3], 5, [11, 14], [81, 85]], 1557 3: [[0, 6], [21, 23]], 1558 4: [[0, 6], 81], 1559 5: [[0, 3], [21, 23]], 1560 6: [[0, 2], [11, 13], 34, [81, 87]], 1561 7: [[0, 5], 24, 25, [81, 86]], 1562 8: [[0, 2], 11, [26, 32], [81, 83]], 1563 9: [[0, 3], 11, 21, 23, 82, 83], 1564 10: [[0, 2], [81, 83]], 1565 11: [[0, 3], 21, 22], 1566 12: [[0, 3]], 1567 13: [[0, 2], 11, 12, [21, 29]], 1568 14: [[0, 2], [21, 28], 81, 82], 1569 15: [[0, 2], [21, 26], 81], 1570 16: [[0, 2], [21, 26]], 1571 17: [[0, 2], [21, 28]] 1572 }, 1573 41: { 1574 0: [0], 1575 1: [[0, 6], 8, 22, [81, 85]], 1576 2: [[0, 5], 11, [21, 25]], 1577 3: [[0, 7], 11, [22, 29], 81], 1578 4: [[0, 4], 11, [21, 23], 25, 81, 82], 1579 5: [[0, 3], 5, 6, 22, 23, 26, 27, 81], 1580 6: [[0, 3], 11, 21, 22], 1581 7: [[0, 4], 11, 21, [24, 28], 81, 82], 1582 8: [[0, 4], 11, [21, 23], 25, [81, 83]], 1583 9: [[0, 2], 22, 23, [26, 28]], 1584 10: [[0, 2], [23, 25], 81, 82], 1585 11: [[0, 4], [21, 23]], 1586 12: [[0, 2], 21, 22, 24, 81, 82], 1587 13: [[0, 3], [21, 30], 81], 1588 14: [[0, 3], [21, 26], 81], 1589 15: [[0, 3], [21, 28]], 1590 16: [[0, 2], [21, 28], 81], 1591 17: [[0, 2], [21, 29]], 1592 90: [0, 1] 1593 }, 1594 42: { 1595 0: [0], 1596 1: [[0, 7], [11, 17]], 1597 2: [[0, 5], 22, 81], 1598 3: [[0, 3], [21, 25], 81], 1599 5: [[0, 6], [25, 29], [81, 83]], 1600 6: [[0, 2], 6, 7, [24, 26], [82, 84]], 1601 7: [[0, 4]], 1602 8: [[0, 2], 4, 21, 22, 81], 1603 9: [[0, 2], [21, 23], 81, 82, 84], 1604 10: [[0, 3], [22, 24], 81, 83, 87], 1605 11: [[0, 2], [21, 27], 81, 82], 1606 12: [[0, 2], [21, 24], 81], 1607 13: [[0, 3], 21, 81], 1608 28: [[0, 2], 22, 23, [25, 28]], 1609 90: [0, [4, 6], 21] 1610 }, 1611 43: { 1612 0: [0], 1613 1: [[0, 5], 11, 12, 21, 22, 24, 81], 1614 2: [[0, 4], 11, 21, [23, 25], 81], 1615 3: [[0, 2], 4, 21, 81, 82], 1616 4: [0, 1, [5, 8], 12, [21, 24], 26, 81, 82], 1617 5: [[0, 3], 11, [21, 25], [27, 29], 81], 1618 6: [[0, 3], 11, 21, 23, 24, 26, 81, 82], 1619 7: [[0, 3], [21, 26], 81], 1620 8: [[0, 2], 11, 21, 22], 1621 9: [[0, 3], [21, 23], 81], 1622 10: [[0, 3], [21, 28], 81], 1623 11: [[0, 3], [21, 29]], 1624 12: [[0, 2], [21, 30], 81], 1625 13: [[0, 2], 21, 22, 81, 82], 1626 31: [0, 1, [22, 27], 30] 1627 }, 1628 44: { 1629 0: [0], 1630 1: [[0, 7], [11, 16], 83, 84], 1631 2: [[0, 5], 21, 22, 24, 29, 32, 33, 81, 82], 1632 3: [0, 1, [3, 8]], 1633 4: [[0, 4]], 1634 5: [0, 1, [6, 15], 23, 82, 83], 1635 6: [0, 1, [4, 8]], 1636 7: [0, 1, [3, 5], 81, [83, 85]], 1637 8: [[0, 4], 11, 23, 25, [81, 83]], 1638 9: [[0, 3], 23, [81, 83]], 1639 12: [[0, 3], [23, 26], 83, 84], 1640 13: [[0, 3], [22, 24], 81], 1641 14: [[0, 2], [21, 24], 26, 27, 81], 1642 15: [[0, 2], 21, 23, 81], 1643 16: [[0, 2], [21, 25]], 1644 17: [[0, 2], 21, 23, 81], 1645 18: [[0, 3], 21, 23, [25, 27], 81, 82], 1646 19: [0], 1647 20: [0], 1648 51: [[0, 3], 21, 22], 1649 52: [[0, 3], 21, 22, 24, 81], 1650 53: [[0, 2], [21, 23], 81] 1651 }, 1652 45: { 1653 0: [0], 1654 1: [[0, 9], [21, 27]], 1655 2: [[0, 5], [21, 26]], 1656 3: [[0, 5], 11, 12, [21, 32]], 1657 4: [0, 1, [3, 6], 11, [21, 23], 81], 1658 5: [[0, 3], 12, 21], 1659 6: [[0, 3], 21, 81], 1660 7: [[0, 3], 21, 22], 1661 8: [[0, 4], 21, 81], 1662 9: [[0, 3], [21, 24], 81], 1663 10: [[0, 2], [21, 31]], 1664 11: [[0, 2], [21, 23]], 1665 12: [[0, 2], [21, 29], 81], 1666 13: [[0, 2], [21, 24], 81], 1667 14: [[0, 2], [21, 25], 81] 1668 }, 1669 46: {0: [0], 1: [0, 1, [5, 8]], 2: [0, 1], 3: [0, [21, 23]], 90: [[0, 3], [5, 7], [21, 39]]}, 1670 50: {0: [0], 1: [[0, 19]], 2: [0, [22, 38], [40, 43]], 3: [0, [81, 84]]}, 1671 51: { 1672 0: [0], 1673 1: [0, 1, [4, 8], [12, 15], [21, 24], 29, 31, 32, [81, 84]], 1674 3: [[0, 4], 11, 21, 22], 1675 4: [[0, 3], 11, 21, 22], 1676 5: [[0, 4], 21, 22, 24, 25], 1677 6: [0, 1, 3, 23, 26, [81, 83]], 1678 7: [0, 1, 3, 4, [22, 27], 81], 1679 8: [[0, 2], 11, 12, [21, 24]], 1680 9: [[0, 4], [21, 23]], 1681 10: [[0, 2], 11, 24, 25, 28], 1682 11: [[0, 2], [11, 13], 23, 24, 26, 29, 32, 33, 81], 1683 13: [[0, 4], [21, 25], 81], 1684 14: [[0, 2], [21, 25]], 1685 15: [[0, 3], [21, 29]], 1686 16: [[0, 3], [21, 23], 81], 1687 17: [[0, 3], [21, 25], 81], 1688 18: [[0, 3], [21, 27]], 1689 19: [[0, 3], [21, 23]], 1690 20: [[0, 2], 21, 22, 81], 1691 32: [0, [21, 33]], 1692 33: [0, [21, 38]], 1693 34: [0, 1, [22, 37]] 1694 }, 1695 52: { 1696 0: [0], 1697 1: [[0, 3], [11, 15], [21, 23], 81], 1698 2: [0, 1, 3, 21, 22], 1699 3: [[0, 3], [21, 30], 81, 82], 1700 4: [[0, 2], [21, 25]], 1701 5: [[0, 2], [21, 27]], 1702 6: [[0, 3], [21, 28]], 1703 22: [0, 1, [22, 30]], 1704 23: [0, 1, [22, 28]], 1705 24: [0, 1, [22, 28]], 1706 26: [0, 1, [22, 36]], 1707 27: [[0, 2], 22, 23, [25, 32]] 1708 }, 1709 53: { 1710 0: [0], 1711 1: [[0, 3], [11, 14], 21, 22, [24, 29], 81], 1712 3: [[0, 2], [21, 26], 28, 81], 1713 4: [[0, 2], [21, 28]], 1714 5: [[0, 2], [21, 24]], 1715 6: [[0, 2], [21, 30]], 1716 7: [[0, 2], [21, 24]], 1717 8: [[0, 2], [21, 29]], 1718 9: [[0, 2], [21, 27]], 1719 23: [0, 1, [22, 29], 31], 1720 25: [[0, 4], [22, 32]], 1721 26: [0, 1, [21, 28]], 1722 27: [0, 1, [22, 30]], 1723 28: [0, 1, 22, 23], 1724 29: [0, 1, [22, 32]], 1725 31: [0, 2, 3, [22, 24]], 1726 34: [0, [21, 23]], 1727 33: [0, 21, [23, 25]], 1728 35: [0, [21, 28]] 1729 }, 1730 54: { 1731 0: [0], 1732 1: [[0, 2], [21, 27]], 1733 21: [0, [21, 29], 32, 33], 1734 22: [0, [21, 29], [31, 33]], 1735 23: [0, 1, [22, 38]], 1736 24: [0, [21, 31]], 1737 25: [0, [21, 27]], 1738 26: [0, [21, 27]] 1739 }, 1740 61: { 1741 0: [0], 1742 1: [[0, 4], [11, 16], 22, [24, 26]], 1743 2: [[0, 4], 22], 1744 3: [[0, 4], [21, 24], [26, 31]], 1745 4: [[0, 4], [22, 31], 81], 1746 5: [[0, 2], [21, 28], 81, 82], 1747 6: [[0, 2], [21, 32]], 1748 7: [[0, 2], [21, 30]], 1749 8: [[0, 2], [21, 31]], 1750 9: [[0, 2], [21, 29]], 1751 10: [[0, 2], [21, 26]] 1752 }, 1753 62: { 1754 0: [0], 1755 1: [[0, 5], 11, [21, 23]], 1756 2: [0, 1], 1757 3: [[0, 2], 21], 1758 4: [[0, 3], [21, 23]], 1759 5: [[0, 3], [21, 25]], 1760 6: [[0, 2], [21, 23]], 1761 7: [[0, 2], [21, 25]], 1762 8: [[0, 2], [21, 26]], 1763 9: [[0, 2], [21, 24], 81, 82], 1764 10: [[0, 2], [21, 27]], 1765 11: [[0, 2], [21, 26]], 1766 12: [[0, 2], [21, 28]], 1767 24: [0, 21, [24, 29]], 1768 26: [0, 21, [23, 30]], 1769 29: [0, 1, [21, 27]], 1770 30: [0, 1, [21, 27]] 1771 }, 1772 63: { 1773 0: [0], 1774 1: [[0, 5], [21, 23]], 1775 2: [0, 2, [21, 25]], 1776 21: [0, [21, 23], [26, 28]], 1777 22: [0, [21, 24]], 1778 23: [0, [21, 24]], 1779 25: [0, [21, 25]], 1780 26: [0, [21, 26]], 1781 27: [0, 1, [21, 26]], 1782 28: [[0, 2], [21, 23]] 1783 }, 1784 64: { 1785 0: [0], 1786 1: [0, 1, [4, 6], 21, 22, 81], 1787 2: [[0, 3], 5, [21, 23]], 1788 3: [[0, 3], [21, 24], 81], 1789 4: [[0, 2], [21, 25]], 1790 5: [[0, 2], 21, 22] 1791 }, 1792 65: { 1793 0: [0], 1794 1: [[0, 9], 21], 1795 2: [[0, 5]], 1796 21: [0, 1, 22, 23], 1797 22: [0, 1, 22, 23], 1798 23: [[0, 3], [23, 25], 27, 28], 1799 28: [0, 1, [22, 29]], 1800 29: [0, 1, [22, 29]], 1801 30: [0, 1, [22, 24]], 1802 31: [0, 1, [21, 31]], 1803 32: [0, 1, [21, 27]], 1804 40: [0, 2, 3, [21, 28]], 1805 42: [[0, 2], 21, [23, 26]], 1806 43: [0, 1, [21, 26]], 1807 90: [[0, 4]], 1808 27: [[0, 2], 22, 23] 1809 }, 1810 71: {0: [0]}, 1811 81: {0: [0]}, 1812 82: {0: [0]} 1813 }, d = parseInt(b.substr(0, 2), 10), e = parseInt(b.substr(2, 2), 10), f = parseInt(b.substr(4, 2), 10); 1814 if (!c[d] || !c[d][e]) return !1; 1815 for (var g = !1, h = c[d][e], i = 0; i < h.length; i++) if (a.isArray(h[i]) && h[i][0] <= f && f <= h[i][1] || !a.isArray(h[i]) && f === h[i]) { 1816 g = !0; 1817 break 1818 } 1819 if (!g) return !1; 1820 var j; 1821 j = 18 === b.length ? b.substr(6, 8) : "19" + b.substr(6, 6); 1822 var k = parseInt(j.substr(0, 4), 10), l = parseInt(j.substr(4, 2), 10), m = parseInt(j.substr(6, 2), 10); 1823 if (!a.fn.bootstrapValidator.helpers.date(k, l, m)) return !1; 1824 if (18 === b.length) { 1825 var n = 0, o = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; 1826 for (i = 0; 17 > i; i++) n += parseInt(b.charAt(i), 10) * o[i]; 1827 n = (12 - n % 11) % 11; 1828 var p = "X" !== b.charAt(17).toUpperCase() ? parseInt(b.charAt(17), 10) : 10; 1829 return p === n 1830 } 1831 return !0 1832 }, 1833 _cz: function (b) { 1834 if (!/^\d{9,10}$/.test(b)) return !1; 1835 var c = 1900 + parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10) % 50 % 20, 1836 e = parseInt(b.substr(4, 2), 10); 1837 if (9 === b.length) { 1838 if (c >= 1980 && (c -= 100), c > 1953) return !1 1839 } else 1954 > c && (c += 100); 1840 if (!a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1; 1841 if (10 === b.length) { 1842 var f = parseInt(b.substr(0, 9), 10) % 11; 1843 return 1985 > c && (f %= 10), f + "" === b.substr(9, 1) 1844 } 1845 return !0 1846 }, 1847 _dk: function (b) { 1848 if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b)) return !1; 1849 b = b.replace(/-/g, ""); 1850 var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10); 1851 switch (!0) { 1852 case-1 !== "5678".indexOf(b.charAt(6)) && e >= 58: 1853 e += 1800; 1854 break; 1855 case-1 !== "0123".indexOf(b.charAt(6)): 1856 case-1 !== "49".indexOf(b.charAt(6)) && e >= 37: 1857 e += 1900; 1858 break; 1859 default: 1860 e += 2e3 1861 } 1862 return a.fn.bootstrapValidator.helpers.date(e, d, c) 1863 }, 1864 _ee: function (a) { 1865 return this._lt(a) 1866 }, 1867 _es: function (a) { 1868 if (!/^[0-9A-Z]{8}[-]{0,1}[0-9A-Z]$/.test(a) && !/^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-Z]$/.test(a)) return !1; 1869 a = a.replace(/-/g, ""); 1870 var b = "XYZ".indexOf(a.charAt(0)); 1871 -1 !== b && (a = b + a.substr(1) + ""); 1872 var c = parseInt(a.substr(0, 8), 10); 1873 return c = "TRWAGMYFPDXBNJZSQVHLCKE"[c % 23], c === a.substr(8, 1) 1874 }, 1875 _fi: function (b) { 1876 if (!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(b)) return !1; 1877 var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10), 1878 f = {"+": 1800, "-": 1900, A: 2e3}; 1879 if (e = f[b.charAt(6)] + e, !a.fn.bootstrapValidator.helpers.date(e, d, c)) return !1; 1880 var g = parseInt(b.substr(7, 3), 10); 1881 if (2 > g) return !1; 1882 var h = b.substr(0, 6) + b.substr(7, 3) + ""; 1883 return h = parseInt(h, 10), "0123456789ABCDEFHJKLMNPRSTUVWXY".charAt(h % 31) === b.charAt(10) 1884 }, 1885 _hr: function (b) { 1886 return /^[0-9]{11}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1 1887 }, 1888 _ie: function (a) { 1889 if (!/^\d{7}[A-W][AHWTX]?$/.test(a)) return !1; 1890 var b = function (a) { 1891 for (; a.length < 7;) a = "0" + a; 1892 for (var b = "WABCDEFGHIJKLMNOPQRSTUV", c = 0, d = 0; 7 > d; d++) c += parseInt(a.charAt(d), 10) * (8 - d); 1893 return c += 9 * b.indexOf(a.substr(7)), b[c % 23] 1894 }; 1895 return 9 !== a.length || "A" !== a.charAt(8) && "H" !== a.charAt(8) ? a.charAt(7) === b(a.substr(0, 7)) : a.charAt(7) === b(a.substr(0, 7) + a.substr(8) + "") 1896 }, 1897 _is: function (b) { 1898 if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b)) return !1; 1899 b = b.replace(/-/g, ""); 1900 var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10), 1901 f = parseInt(b.charAt(9), 10); 1902 if (e = 9 === f ? 1900 + e : 100 * (20 + f) + e, !a.fn.bootstrapValidator.helpers.date(e, d, c, !0)) return !1; 1903 for (var g = 0, h = [3, 2, 7, 6, 5, 4, 3, 2], i = 0; 8 > i; i++) g += parseInt(b.charAt(i), 10) * h[i]; 1904 return g = 11 - g % 11, g + "" === b.charAt(8) 1905 }, 1906 _lt: function (b) { 1907 if (!/^[0-9]{11}$/.test(b)) return !1; 1908 var c = parseInt(b.charAt(0), 10), d = parseInt(b.substr(1, 2), 10), e = parseInt(b.substr(3, 2), 10), 1909 f = parseInt(b.substr(5, 2), 10), g = c % 2 === 0 ? 17 + c / 2 : 17 + (c + 1) / 2; 1910 if (d = 100 * g + d, !a.fn.bootstrapValidator.helpers.date(d, e, f, !0)) return !1; 1911 for (var h = 0, i = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1], j = 0; 10 > j; j++) h += parseInt(b.charAt(j), 10) * i[j]; 1912 if (h %= 11, 10 !== h) return h + "" === b.charAt(10); 1913 for (h = 0, i = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3], j = 0; 10 > j; j++) h += parseInt(b.charAt(j), 10) * i[j]; 1914 return h %= 11, 10 === h && (h = 0), h + "" === b.charAt(10) 1915 }, 1916 _lv: function (b) { 1917 if (!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(b)) return !1; 1918 b = b.replace(/\D/g, ""); 1919 var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10); 1920 if (e = e + 1800 + 100 * parseInt(b.charAt(6), 10), !a.fn.bootstrapValidator.helpers.date(e, d, c, !0)) return !1; 1921 for (var f = 0, g = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9], h = 0; 10 > h; h++) f += parseInt(b.charAt(h), 10) * g[h]; 1922 return f = (f + 1) % 11 % 10, f + "" === b.charAt(10) 1923 }, 1924 _nl: function (a) { 1925 for (; a.length < 9;) a = "0" + a; 1926 if (!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(a)) return !1; 1927 if (a = a.replace(/\./g, ""), 0 === parseInt(a, 10)) return !1; 1928 for (var b = 0, c = a.length, d = 0; c - 1 > d; d++) b += (9 - d) * parseInt(a.charAt(d), 10); 1929 return b %= 11, 10 === b && (b = 0), b + "" === a.charAt(c - 1) 1930 }, 1931 _ro: function (b) { 1932 if (!/^[0-9]{13}$/.test(b)) return !1; 1933 var c = parseInt(b.charAt(0), 10); 1934 if (0 === c || 7 === c || 8 === c) return !1; 1935 var d = parseInt(b.substr(1, 2), 10), e = parseInt(b.substr(3, 2), 10), f = parseInt(b.substr(5, 2), 10), 1936 g = {1: 1900, 2: 1900, 3: 1800, 4: 1800, 5: 2e3, 6: 2e3}; 1937 if (f > 31 && e > 12) return !1; 1938 if (9 !== c && (d = g[c + ""] + d, !a.fn.bootstrapValidator.helpers.date(d, e, f))) return !1; 1939 for (var h = 0, i = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9], j = b.length, k = 0; j - 1 > k; k++) h += parseInt(b.charAt(k), 10) * i[k]; 1940 return h %= 11, 10 === h && (h = 1), h + "" === b.charAt(j - 1) 1941 }, 1942 _se: function (b) { 1943 if (!/^[0-9]{10}$/.test(b) && !/^[0-9]{6}[-|+][0-9]{4}$/.test(b)) return !1; 1944 b = b.replace(/[^0-9]/g, ""); 1945 var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10), 1946 e = parseInt(b.substr(4, 2), 10); 1947 return a.fn.bootstrapValidator.helpers.date(c, d, e) ? a.fn.bootstrapValidator.helpers.luhn(b) : !1 1948 }, 1949 _sk: function (a) { 1950 return this._cz(a) 1951 }, 1952 _sm: function (a) { 1953 return /^\d{5}$/.test(a) 1954 }, 1955 _th: function (a) { 1956 if (13 !== a.length) return !1; 1957 for (var b = 0, c = 0; 12 > c; c++) b += parseInt(a.charAt(c), 10) * (13 - c); 1958 return (11 - b % 11) % 10 === parseInt(a.charAt(12), 10) 1959 }, 1960 _za: function (b) { 1961 if (!/^[0-9]{10}[0|1][8|9][0-9]$/.test(b)) return !1; 1962 var c = parseInt(b.substr(0, 2), 10), d = (new Date).getFullYear() % 100, e = parseInt(b.substr(2, 2), 10), 1963 f = parseInt(b.substr(4, 2), 10); 1964 return c = c >= d ? c + 1900 : c + 2e3, a.fn.bootstrapValidator.helpers.date(c, e, f) ? a.fn.bootstrapValidator.helpers.luhn(b) : !1 1965 } 1966 } 1967}(window.jQuery), function (a) { 1968 a.fn.bootstrapValidator.i18n.identical = a.extend(a.fn.bootstrapValidator.i18n.identical || {}, {"default": "Please enter the same value"}), a.fn.bootstrapValidator.validators.identical = { 1969 html5Attributes: { 1970 message: "message", 1971 field: "field" 1972 }, validate: function (a, b, c) { 1973 var d = b.val(); 1974 if ("" === d) return !0; 1975 var e = a.getFieldElements(c.field); 1976 return null === e || 0 === e.length ? !0 : d === e.val() ? (a.updateStatus(c.field, a.STATUS_VALID, "identical"), !0) : !1 1977 } 1978 } 1979}(window.jQuery), function (a) { 1980 a.fn.bootstrapValidator.i18n.imei = a.extend(a.fn.bootstrapValidator.i18n.imei || {}, {"default": "Please enter a valid IMEI number"}), a.fn.bootstrapValidator.validators.imei = { 1981 validate: function (b, c) { 1982 var d = c.val(); 1983 if ("" === d) return !0; 1984 switch (!0) { 1985 case/^\d{15}$/.test(d): 1986 case/^\d{2}-\d{6}-\d{6}-\d{1}$/.test(d): 1987 case/^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(d): 1988 return d = d.replace(/[^0-9]/g, ""), a.fn.bootstrapValidator.helpers.luhn(d); 1989 case/^\d{14}$/.test(d): 1990 case/^\d{16}$/.test(d): 1991 case/^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(d): 1992 case/^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(d): 1993 return !0; 1994 default: 1995 return !1 1996 } 1997 } 1998 } 1999}(window.jQuery), function (a) { 2000 a.fn.bootstrapValidator.i18n.imo = a.extend(a.fn.bootstrapValidator.i18n.imo || {}, {"default": "Please enter a valid IMO number"}), a.fn.bootstrapValidator.validators.imo = { 2001 validate: function (a, b) { 2002 var c = b.val(); 2003 if ("" === c) return !0; 2004 if (!/^IMO \d{7}$/i.test(c)) return !1; 2005 for (var d = 0, e = c.replace(/^.*(\d{7})$/, "$1"), f = 6; f >= 1; f--) d += e.slice(6 - f, -f) * (f + 1); 2006 return d % 10 === parseInt(e.charAt(6), 10) 2007 } 2008 } 2009}(window.jQuery), function (a) { 2010 a.fn.bootstrapValidator.i18n.integer = a.extend(a.fn.bootstrapValidator.i18n.integer || {}, {"default": "Please enter a valid number"}), a.fn.bootstrapValidator.validators.integer = { 2011 enableByHtml5: function (a) { 2012 return "number" === a.attr("type") && (void 0 === a.attr("step") || a.attr("step") % 1 === 0) 2013 }, validate: function (a, b) { 2014 if (this.enableByHtml5(b) && b.get(0).validity && b.get(0).validity.badInput === !0) return !1; 2015 var c = b.val(); 2016 return "" === c ? !0 : /^(?:-?(?:0|[1-9][0-9]*))$/.test(c) 2017 } 2018 } 2019}(window.jQuery), function (a) { 2020 a.fn.bootstrapValidator.i18n.ip = a.extend(a.fn.bootstrapValidator.i18n.ip || {}, { 2021 "default": "Please enter a valid IP address", 2022 ipv4: "Please enter a valid IPv4 address", 2023 ipv6: "Please enter a valid IPv6 address" 2024 }), a.fn.bootstrapValidator.validators.ip = { 2025 html5Attributes: {message: "message", ipv4: "ipv4", ipv6: "ipv6"}, validate: function (b, c, d) { 2026 var e = c.val(); 2027 if ("" === e) return !0; 2028 d = a.extend({}, {ipv4: !0, ipv6: !0}, d); 2029 var f, g = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, 2030 h = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/, 2031 i = !1; 2032 switch (!0) { 2033 case d.ipv4 && !d.ipv6: 2034 i = g.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip.ipv4; 2035 break; 2036 case!d.ipv4 && d.ipv6: 2037 i = h.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip.ipv6; 2038 break; 2039 case d.ipv4 && d.ipv6: 2040 default: 2041 i = g.test(e) || h.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip["default"] 2042 } 2043 return {valid: i, message: f} 2044 } 2045 } 2046}(window.jQuery), function (a) { 2047 a.fn.bootstrapValidator.i18n.isbn = a.extend(a.fn.bootstrapValidator.i18n.isbn || {}, {"default": "Please enter a valid ISBN number"}), a.fn.bootstrapValidator.validators.isbn = { 2048 validate: function (a, b) { 2049 var c = b.val(); 2050 if ("" === c) return !0; 2051 var d; 2052 switch (!0) { 2053 case/^\d{9}[\dX]$/.test(c): 2054 case 13 === c.length && /^(\d+)-(\d+)-(\d+)-([\dX])$/.test(c): 2055 case 13 === c.length && /^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c): 2056 d = "ISBN10"; 2057 break; 2058 case/^(978|979)\d{9}[\dX]$/.test(c): 2059 case 17 === c.length && /^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(c): 2060 case 17 === c.length && /^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c): 2061 d = "ISBN13"; 2062 break; 2063 default: 2064 return !1 2065 } 2066 c = c.replace(/[^0-9X]/gi, ""); 2067 var e, f, g = c.split(""), h = g.length, i = 0; 2068 switch (d) { 2069 case"ISBN10": 2070 for (i = 0, e = 0; h - 1 > e; e++) i += parseInt(g[e], 10) * (10 - e); 2071 return f = 11 - i % 11, 11 === f ? f = 0 : 10 === f && (f = "X"), f + "" === g[h - 1]; 2072 case"ISBN13": 2073 for (i = 0, e = 0; h - 1 > e; e++) i += e % 2 === 0 ? parseInt(g[e], 10) : 3 * parseInt(g[e], 10); 2074 return f = 10 - i % 10, 10 === f && (f = "0"), f + "" === g[h - 1]; 2075 default: 2076 return !1 2077 } 2078 } 2079 } 2080}(window.jQuery), function (a) { 2081 a.fn.bootstrapValidator.i18n.isin = a.extend(a.fn.bootstrapValidator.i18n.isin || {}, {"default": "Please enter a valid ISIN number"}), a.fn.bootstrapValidator.validators.isin = { 2082 COUNTRY_CODES: "AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW", 2083 validate: function (a, b) { 2084 var c = b.val(); 2085 if ("" === c) return !0; 2086 c = c.toUpperCase(); 2087 var d = new RegExp("^(" + this.COUNTRY_CODES + ")[0-9A-Z]{10}$"); 2088 if (!d.test(c)) return !1; 2089 for (var e = "", f = c.length, g = 0; f - 1 > g; g++) {
2090 var h = c.charCodeAt(g); 2091 e += h > 57 ? (h - 55).toString() : c.charAt(g) 2092 } 2093 var i = "", j = e.length, k = j % 2 !== 0 ? 0 : 1; 2094 for (g = 0; j > g; g++) i += parseInt(e[g], 10) * (g % 2 === k ? 2 : 1) + ""; 2095 var l = 0; 2096 for (g = 0; g < i.length; g++) l += parseInt(i.charAt(g), 10); 2097 return l = (10 - l % 10) % 10, l + "" === c.charAt(f - 1) 2098 } 2099 } 2100}(window.jQuery), function (a) { 2101 a.fn.bootstrapValidator.i18n.ismn = a.extend(a.fn.bootstrapValidator.i18n.ismn || {}, {"default": "Please enter a valid ISMN number"}), a.fn.bootstrapValidator.validators.ismn = { 2102 validate: function (a, b) { 2103 var c = b.val(); 2104 if ("" === c) return !0; 2105 var d; 2106 switch (!0) { 2107 case/^M\d{9}$/.test(c): 2108 case/^M-\d{4}-\d{4}-\d{1}$/.test(c): 2109 case/^M\s\d{4}\s\d{4}\s\d{1}$/.test(c): 2110 d = "ISMN10"; 2111 break; 2112 case/^9790\d{9}$/.test(c): 2113 case/^979-0-\d{4}-\d{4}-\d{1}$/.test(c): 2114 case/^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(c): 2115 d = "ISMN13"; 2116 break; 2117 default: 2118 return !1 2119 } 2120 "ISMN10" === d && (c = "9790" + c.substr(1)), c = c.replace(/[^0-9]/gi, ""); 2121 for (var e = c.length, f = 0, g = [1, 3], h = 0; e - 1 > h; h++) f += parseInt(c.charAt(h), 10) * g[h % 2]; 2122 return f = 10 - f % 10, f + "" === c.charAt(e - 1) 2123 } 2124 } 2125}(window.jQuery), function (a) { 2126 a.fn.bootstrapValidator.i18n.issn = a.extend(a.fn.bootstrapValidator.i18n.issn || {}, {"default": "Please enter a valid ISSN number"}), a.fn.bootstrapValidator.validators.issn = { 2127 validate: function (a, b) { 2128 var c = b.val(); 2129 if ("" === c) return !0; 2130 if (!/^\d{4}\-\d{3}[\dX]$/.test(c)) return !1; 2131 c = c.replace(/[^0-9X]/gi, ""); 2132 var d = c.split(""), e = d.length, f = 0; 2133 "X" === d[7] && (d[7] = 10); 2134 for (var g = 0; e > g; g++) f += parseInt(d[g], 10) * (8 - g); 2135 return f % 11 === 0 2136 } 2137 } 2138}(window.jQuery), function (a) { 2139 a.fn.bootstrapValidator.i18n.lessThan = a.extend(a.fn.bootstrapValidator.i18n.lessThan || {}, { 2140 "default": "Please enter a value less than or equal to %s", 2141 notInclusive: "Please enter a value less than %s" 2142 }), a.fn.bootstrapValidator.validators.lessThan = { 2143 html5Attributes: { 2144 message: "message", 2145 value: "value", 2146 inclusive: "inclusive" 2147 }, enableByHtml5: function (a) { 2148 var b = a.attr("type"), c = a.attr("max"); 2149 return c && "date" !== b ? {value: c} : !1 2150 }, validate: function (b, c, d) { 2151 var e = c.val(); 2152 if ("" === e) return !0; 2153 if (e = this._format(e), !a.isNumeric(e)) return !1; 2154 var f = a.isNumeric(d.value) ? d.value : b.getDynamicOption(c, d.value), g = this._format(f); 2155 return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? { 2156 valid: g >= e, 2157 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.lessThan["default"], f) 2158 } : { 2159 valid: g > e, 2160 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.lessThan.notInclusive, f) 2161 } 2162 }, _format: function (a) { 2163 return (a + "").replace(",", ".") 2164 } 2165 } 2166}(window.jQuery), function (a) { 2167 a.fn.bootstrapValidator.i18n.mac = a.extend(a.fn.bootstrapValidator.i18n.mac || {}, {"default": "Please enter a valid MAC address"}), a.fn.bootstrapValidator.validators.mac = { 2168 validate: function (a, b) { 2169 var c = b.val(); 2170 return "" === c ? !0 : /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/.test(c) 2171 } 2172 } 2173}(window.jQuery), function (a) { 2174 a.fn.bootstrapValidator.i18n.meid = a.extend(a.fn.bootstrapValidator.i18n.meid || {}, {"default": "Please enter a valid MEID number"}), a.fn.bootstrapValidator.validators.meid = { 2175 validate: function (b, c) { 2176 var d = c.val(); 2177 if ("" === d) return !0; 2178 switch (!0) { 2179 case/^[0-9A-F]{15}$/i.test(d): 2180 case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(d): 2181 case/^\d{19}$/.test(d): 2182 case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(d): 2183 var e = d.charAt(d.length - 1); 2184 if (d = d.replace(/[- ]/g, ""), d.match(/^\d*$/i)) return a.fn.bootstrapValidator.helpers.luhn(d); 2185 d = d.slice(0, -1); 2186 for (var f = "", g = 1; 13 >= g; g += 2) f += (2 * parseInt(d.charAt(g), 16)).toString(16); 2187 var h = 0; 2188 for (g = 0; g < f.length; g++) h += parseInt(f.charAt(g), 16); 2189 return h % 10 === 0 ? "0" === e : e === (2 * (10 * Math.floor((h + 10) / 10) - h)).toString(16); 2190 case/^[0-9A-F]{14}$/i.test(d): 2191 case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(d): 2192 case/^\d{18}$/.test(d): 2193 case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(d): 2194 return !0; 2195 default: 2196 return !1 2197 } 2198 } 2199 } 2200}(window.jQuery), function (a) { 2201 a.fn.bootstrapValidator.i18n.notEmpty = a.extend(a.fn.bootstrapValidator.i18n.notEmpty || {}, {"default": "Please enter a value"}), a.fn.bootstrapValidator.validators.notEmpty = { 2202 enableByHtml5: function (a) { 2203 var b = a.attr("required") + ""; 2204 return "required" === b || "true" === b 2205 }, validate: function (b, c) { 2206 var d = c.attr("type"); 2207 return "radio" === d || "checkbox" === d ? b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length > 0 : "number" === d && c.get(0).validity && c.get(0).validity.badInput === !0 ? !0 : "" !== a.trim(c.val()) 2208 } 2209 } 2210}(window.jQuery), function (a) { 2211 a.fn.bootstrapValidator.i18n.numeric = a.extend(a.fn.bootstrapValidator.i18n.numeric || {}, {"default": "Please enter a valid float number"}), a.fn.bootstrapValidator.validators.numeric = { 2212 html5Attributes: { 2213 message: "message", 2214 separator: "separator" 2215 }, enableByHtml5: function (a) { 2216 return "number" === a.attr("type") && void 0 !== a.attr("step") && a.attr("step") % 1 !== 0 2217 }, validate: function (a, b, c) { 2218 if (this.enableByHtml5(b) && b.get(0).validity && b.get(0).validity.badInput === !0) return !1; 2219 var d = b.val(); 2220 if ("" === d) return !0; 2221 var e = c.separator || "."; 2222 return "." !== e && (d = d.replace(e, ".")), !isNaN(parseFloat(d)) && isFinite(d) 2223 } 2224 } 2225}(window.jQuery), function (a) { 2226 a.fn.bootstrapValidator.i18n.phone = a.extend(a.fn.bootstrapValidator.i18n.phone || {}, { 2227 "default": "Please enter a valid phone number", 2228 countryNotSupported: "The country code %s is not supported", 2229 country: "Please enter a valid phone number in %s", 2230 countries: { 2231 BR: "Brazil", 2232 CN: "China", 2233 CZ: "Czech Republic", 2234 DE: "Germany", 2235 DK: "Denmark", 2236 ES: "Spain", 2237 FR: "France", 2238 GB: "United Kingdom", 2239 MA: "Morocco", 2240 PK: "Pakistan", 2241 RO: "Romania", 2242 RU: "Russia", 2243 SK: "Slovakia", 2244 TH: "Thailand", 2245 US: "USA", 2246 VE: "Venezuela" 2247 } 2248 }), a.fn.bootstrapValidator.validators.phone = { 2249 html5Attributes: {message: "message", country: "country"}, 2250 COUNTRY_CODES: ["BR", "CN", "CZ", "DE", "DK", "ES", "FR", "GB", "MA", "PK", "RO", "RU", "SK", "TH", "US", "VE"], 2251 validate: function (b, c, d) { 2252 var e = c.val(); 2253 if ("" === e) return !0; 2254 var f = d.country;
2255 if (("string" != typeof f || -1 === a.inArray(f, this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)), !f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) return { 2256 valid: !1, 2257 message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.phone.countryNotSupported, f) 2258 }; 2259 var g = !0; 2260 switch (f.toUpperCase()) { 2261 case"BR": 2262 e = a.trim(e), g = /^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(e); 2263 break; 2264 case"CN": 2265 e = a.trim(e), g = /^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(e); 2266 break; 2267 case"CZ": 2268 g = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e); 2269 break; 2270 case"DE": 2271 e = a.trim(e), g = /^(((((((00|\+)49[ \-/]?)|0)[1-9][0-9]{1,4})[ \-/]?)|((((00|\+)49\()|\(0)[1-9][0-9]{1,4}\)[ \-/]?))[0-9]{1,7}([ \-/]?[0-9]{1,5})?)$/.test(e); 2272 break; 2273 case"DK": 2274 e = a.trim(e), g = /^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(e); 2275 break; 2276 case"ES": 2277 e = a.trim(e), g = /^(?:(?:(?:\+|00)34\D?))?(?:9|6)(?:\d\D?){8}$/.test(e); 2278 break; 2279 case"FR": 2280 e = a.trim(e), g = /^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(e); 2281 break; 2282 case"GB": 2283 e = a.trim(e), g = /^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/.test(e); 2284 break; 2285 case"MA": 2286 e = a.trim(e), g = /^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(e); 2287 break; 2288 case"PK": 2289 e = a.trim(e), g = /^0?3[0-9]{2}[0-9]{7}$/.test(e); 2290 break; 2291 case"RO": 2292 g = /^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|\-)?([0-9]{3}(\s|\.|\-|)){2}$/g.test(e); 2293 break; 2294 case"RU": 2295 g = /^((8|\+7|007)[\-\.\/ ]?)?([\(\/\.]?\d{3}[\)\/\.]?[\-\.\/ ]?)?[\d\-\.\/ ]{7,10}$/g.test(e); 2296 break; 2297 case"SK": 2298 g = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e); 2299 break; 2300 case"TH": 2301 g = /^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(e); 2302 break; 2303 case"VE": 2304 e = a.trim(e), g = /^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(e); 2305 break; 2306 case"US": 2307 default: 2308 e = e.replace(/\D/g, ""), g = /^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/.test(e) && 10 === e.length 2309 } 2310 return { 2311 valid: g, 2312 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.phone.country, a.fn.bootstrapValidator.i18n.phone.countries[f]) 2313 } 2314 } 2315 } 2316}(window.jQuery), function (a) { 2317 a.fn.bootstrapValidator.i18n.regexp = a.extend(a.fn.bootstrapValidator.i18n.regexp || {}, {"default": "Please enter a value matching the pattern"}), a.fn.bootstrapValidator.validators.regexp = { 2318 html5Attributes: { 2319 message: "message", 2320 regexp: "regexp" 2321 }, enableByHtml5: function (a) { 2322 var b = a.attr("pattern"); 2323 return b ? {regexp: b} : !1 2324 }, validate: function (a, b, c) { 2325 var d = b.val(); 2326 if ("" === d) return !0; 2327 var e = "string" == typeof c.regexp ? new RegExp(c.regexp) : c.regexp; 2328 return e.test(d) 2329 } 2330 } 2331}(window.jQuery), function (a) { 2332 a.fn.bootstrapValidator.i18n.remote = a.extend(a.fn.bootstrapValidator.i18n.remote || {}, {"default": "Please enter a valid value"}), a.fn.bootstrapValidator.validators.remote = { 2333 html5Attributes: { 2334 message: "message", 2335 name: "name", 2336 type: "type", 2337 url: "url", 2338 data: "data", 2339 delay: "delay" 2340 }, destroy: function (a, b) { 2341 b.data("bv.remote.timer") && (clearTimeout(b.data("bv.remote.timer")), b.removeData("bv.remote.timer")) 2342 }, validate: function (b, c, d) { 2343 function e() { 2344 var b = a.ajax({type: k, headers: l, url: j, dataType: "json", data: i}); 2345 return b.then(function (a) { 2346 a.valid = a.valid === !0 || "true" === a.valid, g.resolve(c, "remote", a) 2347 }), g.fail(function () { 2348 b.abort() 2349 }), g 2350 } 2351 2352 var f = c.val(), g = new a.Deferred; 2353 if ("" === f) return g.resolve(c, "remote", {valid: !0}), g; 2354 var h = c.attr("data-bv-field"), i = d.data || {}, j = d.url, k = d.type || "GET", l = d.headers || {}; 2355 return "function" == typeof i && (i = i.call(this, b)), "string" == typeof i && (i = JSON.parse(i)), "function" == typeof j && (j = j.call(this, b)), i[d.name || h] = f, d.delay ? (c.data("bv.remote.timer") && clearTimeout(c.data("bv.remote.timer")), c.data("bv.remote.timer", setTimeout(e, d.delay)), g) : e() 2356 } 2357 } 2358}(window.jQuery), function (a) { 2359 a.fn.bootstrapValidator.i18n.rtn = a.extend(a.fn.bootstrapValidator.i18n.rtn || {}, {"default": "Please enter a valid RTN number"}), a.fn.bootstrapValidator.validators.rtn = { 2360 validate: function (a, b) { 2361 var c = b.val(); 2362 if ("" === c) return !0; 2363 if (!/^\d{9}$/.test(c)) return !1; 2364 for (var d = 0, e = 0; e < c.length; e += 3) d += 3 * parseInt(c.charAt(e), 10) + 7 * parseInt(c.charAt(e + 1), 10) + parseInt(c.charAt(e + 2), 10); 2365 return 0 !== d && d % 10 === 0 2366 } 2367 } 2368}(window.jQuery), function (a) { 2369 a.fn.bootstrapValidator.i18n.sedol = a.extend(a.fn.bootstrapValidator.i18n.sedol || {}, {"default": "Please enter a valid SEDOL number"}), a.fn.bootstrapValidator.validators.sedol = { 2370 validate: function (a, b) { 2371 var c = b.val(); 2372 if ("" === c) return !0; 2373 if (c = c.toUpperCase(), !/^[0-9A-Z]{7}$/.test(c)) return !1; 2374 for (var d = 0, e = [1, 3, 1, 7, 3, 9, 1], f = c.length, g = 0; f - 1 > g; g++) d += e[g] * parseInt(c.charAt(g), 36); 2375 return d = (10 - d % 10) % 10, d + "" === c.charAt(f - 1) 2376 } 2377 } 2378}(window.jQuery), function (a) { 2379 a.fn.bootstrapValidator.i18n.siren = a.extend(a.fn.bootstrapValidator.i18n.siren || {}, {"default": "Please enter a valid SIREN number"}), a.fn.bootstrapValidator.validators.siren = { 2380 validate: function (b, c) { 2381 var d = c.val(); 2382 return "" === d ? !0 : /^\d{9}$/.test(d) ? a.fn.bootstrapValidator.helpers.luhn(d) : !1 2383 } 2384 } 2385}(window.jQuery), function (a) { 2386 a.fn.bootstrapValidator.i18n.siret = a.extend(a.fn.bootstrapValidator.i18n.siret || {}, {"default": "Please enter a valid SIRET number"}), a.fn.bootstrapValidator.validators.siret = { 2387 validate: function (a, b) { 2388 var c = b.val(); 2389 if ("" === c) return !0; 2390 for (var d, e = 0, f = c.length, g = 0; f > g; g++) d = parseInt(c.charAt(g), 10), g % 2 === 0 && (d = 2 * d, d > 9 && (d -= 9)), e += d; 2391 return e % 10 === 0 2392 } 2393 } 2394}(window.jQuery), function (a) { 2395 a.fn.bootstrapValidator.i18n.step = a.extend(a.fn.bootstrapValidator.i18n.step || {}, {"default": "Please enter a valid step of %s"}), a.fn.bootstrapValidator.validators.step = { 2396 html5Attributes: { 2397 message: "message", 2398 base: "baseValue", 2399 step: "step" 2400 }, validate: function (b, c, d) { 2401 var e = c.val(); 2402 if ("" === e) return !0; 2403 if (d = a.extend({}, {baseValue: 0, step: 1}
2403, d), e = parseFloat(e), !a.isNumeric(e)) return !1; 2404 var f = function (a, b) { 2405 var c = Math.pow(10, b); 2406 a *= c; 2407 var d = a > 0 | -(0 > a), e = a % 1 === .5 * d; 2408 return e ? (Math.floor(a) + (d > 0)) / c : Math.round(a) / c 2409 }, g = function (a, b) { 2410 if (0 === b) return 1; 2411 var c = (a + "").split("."), d = (b + "").split("."), 2412 e = (1 === c.length ? 0 : c[1].length) + (1 === d.length ? 0 : d[1].length); 2413 return f(a - b * Math.floor(a / b), e) 2414 }, h = g(e - d.baseValue, d.step); 2415 return { 2416 valid: 0 === h || h === d.step, 2417 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.step["default"], [d.step]) 2418 } 2419 } 2420 } 2421}(window.jQuery), function (a) { 2422 a.fn.bootstrapValidator.i18n.stringCase = a.extend(a.fn.bootstrapValidator.i18n.stringCase || {}, { 2423 "default": "Please enter only lowercase characters", 2424 upper: "Please enter only uppercase characters" 2425 }), a.fn.bootstrapValidator.validators.stringCase = { 2426 html5Attributes: {message: "message", "case": "case"}, 2427 validate: function (b, c, d) { 2428 var e = c.val(); 2429 if ("" === e) return !0; 2430 var f = (d["case"] || "lower").toLowerCase(); 2431 return { 2432 valid: "upper" === f ? e === e.toUpperCase() : e === e.toLowerCase(), 2433 message: d.message || ("upper" === f ? a.fn.bootstrapValidator.i18n.stringCase.upper : a.fn.bootstrapValidator.i18n.stringCase["default"]) 2434 } 2435 } 2436 } 2437}(window.jQuery), function (a) { 2438 a.fn.bootstrapValidator.i18n.stringLength = a.extend(a.fn.bootstrapValidator.i18n.stringLength || {}, { 2439 "default": "Please enter a value with valid length", 2440 less: "Please enter less than %s characters", 2441 more: "Please enter more than %s characters", 2442 between: "Please enter value between %s and %s characters long" 2443 }), a.fn.bootstrapValidator.validators.stringLength = { 2444 html5Attributes: {message: "message", min: "min", max: "max", trim: "trim", utf8bytes: "utf8Bytes"}, 2445 enableByHtml5: function (b) { 2446 var c = {}, d = b.attr("maxlength"), e = b.attr("minlength"); 2447 return d && (c.max = parseInt(d, 10)), e && (c.min = parseInt(e, 10)), a.isEmptyObject(c) ? !1 : c 2448 }, 2449 validate: function (b, c, d) { 2450 var e = c.val(); 2451 if ((d.trim === !0 || "true" === d.trim) && (e = a.trim(e)), "" === e) return !0; 2452 var f = a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min), 2453 g = a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max), h = function (a) { 2454 for (var b = a.length, c = a.length - 1; c >= 0; c--) { 2455 var d = a.charCodeAt(c); 2456 d > 127 && 2047 >= d ? b++ : d > 2047 && 65535 >= d && (b += 2), d >= 56320 && 57343 >= d && c-- 2457 } 2458 return b 2459 }, i = d.utf8Bytes ? h(e) : e.length, j = !0, 2460 k = d.message || a.fn.bootstrapValidator.i18n.stringLength["default"]; 2461 switch ((f && i < parseInt(f, 10) || g && i > parseInt(g, 10)) && (j = !1), !0) { 2462 case!!f && !!g: 2463 k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.between, [parseInt(f, 10), parseInt(g, 10)]); 2464 break; 2465 case!!f: 2466 k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.more, parseInt(f, 10)); 2467 break; 2468 case!!g: 2469 k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.less, parseInt(g, 10)) 2470 } 2471 return {valid: j, message: k} 2472 } 2473 } 2474}(window.jQuery), function (a) { 2475 a.fn.bootstrapValidator.i18n.uri = a.extend(a.fn.bootstrapValidator.i18n.uri || {}, {"default": "Please enter a valid URI"}), a.fn.bootstrapValidator.validators.uri = { 2476 html5Attributes: { 2477 message: "message", 2478 allowlocal: "allowLocal", 2479 protocol: "protocol" 2480 }, enableByHtml5: function (a) { 2481 return "url" === a.attr("type") 2482 }, validate: function (a, b, c) { 2483 var d = b.val(); 2484 if ("" === d) return !0; 2485 var e = c.allowLocal === !0 || "true" === c.allowLocal, 2486 f = (c.protocol || "http, https, ftp").split(",").join("|").replace(/\s/g, ""), 2487 g = new RegExp("^(?:(?:" + f + ")://)(?:\\S+(?::\\S*)?@)?(?:" + (e ? "" : "(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})") + "(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" + (e ? "?" : "") + ")(?::\\d{2,5})?(?:/[^\\s]*)?$", "i"); 2488 return g.test(d) 2489 } 2490 } 2491}(window.jQuery), function (a) { 2492 a.fn.bootstrapValidator.i18n.uuid = a.extend(a.fn.bootstrapValidator.i18n.uuid || {}, { 2493 "default": "Please enter a valid UUID number", 2494 version: "Please enter a valid UUID version %s number" 2495 }), a.fn.bootstrapValidator.validators.uuid = { 2496 html5Attributes: {message: "message", version: "version"}, 2497 validate: function (b, c, d) { 2498 var e = c.val(); 2499 if ("" === e) return !0; 2500 var f = { 2501 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, 2502 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, 2503 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, 2504 all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i 2505 }, g = d.version ? d.version + "" : "all"; 2506 return { 2507 valid: null === f[g] ? !0 : f[g].test(e), 2508 message: d.version ? a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.uuid.version, d.version) : d.message || a.fn.bootstrapValidator.i18n.uuid["default"] 2509 } 2510 } 2511 } 2512}(window.jQuery), function (a) { 2513 a.fn.bootstrapValidator.i18n.vat = a.extend(a.fn.bootstrapValidator.i18n.vat || {}, { 2514 "default": "Please enter a valid VAT number", 2515 countryNotSupported: "The country code %s is not supported", 2516 country: "Please enter a valid VAT number in %s", 2517 countries: {
vendor: 22,247 bytes, lines 2518-2907
2518 AT: "Austria", 2519 BE: "Belgium", 2520 BG: "Bulgaria", 2521 BR: "Brazil", 2522 CH: "Switzerland", 2523 CY: "Cyprus", 2524 CZ: "Czech Republic", 2525 DE: "Germany", 2526 DK: "Denmark", 2527 EE: "Estonia", 2528 ES: "Spain", 2529 FI: "Finland", 2530 FR: "France", 2531 GB: "United Kingdom", 2532 GR: "Greek", 2533 EL: "Greek", 2534 HU: "Hungary", 2535 HR: "Croatia", 2536 IE: "Ireland", 2537 IS: "Iceland", 2538 IT: "Italy", 2539 LT: "Lithuania", 2540 LU: "Luxembourg", 2541 LV: "Latvia", 2542 MT: "Malta", 2543 NL: "Netherlands", 2544 NO: "Norway", 2545 PL: "Poland", 2546 PT: "Portugal", 2547 RO: "Romania", 2548 RU: "Russia", 2549 RS: "Serbia", 2550 SE: "Sweden", 2551 SI: "Slovenia", 2552 SK: "Slovakia", 2553 VE: "Venezuela", 2554 ZA: "South Africa" 2555 } 2556 }), a.fn.bootstrapValidator.validators.vat = { 2557 html5Attributes: {message: "message", country: "country"}, 2558 COUNTRY_CODES: ["AT", "BE", "BG", "BR", "CH", "CY", "CZ", "DE", "DK", "EE", "EL", "ES", "FI", "FR", "GB", "GR", "HR", "HU", "IE", "IS", "IT", "LT", "LU", "LV", "MT", "NL", "NO", "PL", "PT", "RO", "RU", "RS", "SE", "SK", "SI", "VE", "ZA"], 2559 validate: function (b, c, d) { 2560 var e = c.val(); 2561 if ("" === e) return !0; 2562 var f = d.country; 2563 if (f ? ("string" != typeof f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), -1 === a.inArray(f, this.COUNTRY_CODES)) return { 2564 valid: !1, 2565 message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.vat.countryNotSupported, f) 2566 }; 2567 var g = ["_", f.toLowerCase()].join(""); 2568 return this[g](e) ? !0 : { 2569 valid: !1, 2570 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.vat.country, a.fn.bootstrapValidator.i18n.vat.countries[f.toUpperCase()]) 2571 } 2572 }, 2573 _at: function (a) { 2574 if (/^ATU[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^U[0-9]{8}$/.test(a)) return !1; 2575 a = a.substr(1); 2576 for (var b = 0, c = [1, 2, 1, 2, 1, 2, 1], d = 0, e = 0; 7 > e; e++) d = parseInt(a.charAt(e), 10) * c[e], d > 9 && (d = Math.floor(d / 10) + d % 10), b += d; 2577 return b = 10 - (b + 4) % 10, 10 === b && (b = 0), b + "" === a.substr(7, 1) 2578 }, 2579 _be: function (a) { 2580 if (/^BE[0]{0,1}[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0]{0,1}[0-9]{9}$/.test(a)) return !1; 2581 if (9 === a.length && (a = "0" + a), "0" === a.substr(1, 1)) return !1; 2582 var b = parseInt(a.substr(0, 8), 10) + parseInt(a.substr(8, 2), 10); 2583 return b % 97 === 0 2584 }, 2585 _bg: function (b) { 2586 if (/^BG[0-9]{9,10}$/.test(b) && (b = b.substr(2)), !/^[0-9]{9,10}$/.test(b)) return !1; 2587 var c = 0, d = 0; 2588 if (9 === b.length) { 2589 for (d = 0; 8 > d; d++) c += parseInt(b.charAt(d), 10) * (d + 1); 2590 if (c %= 11, 10 === c) for (c = 0, d = 0; 8 > d; d++) c += parseInt(b.charAt(d), 10) * (d + 3); 2591 return c %= 10, c + "" === b.substr(8) 2592 } 2593 if (10 === b.length) { 2594 var e = function (b) { 2595 var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10), 2596 e = parseInt(b.substr(4, 2), 10); 2597 if (d > 40 ? (c += 100, d -= 40) : d > 20 && (c -= 100, d -= 20), !a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1; 2598 for (var f = 0, g = [2, 4, 8, 5, 10, 9, 7, 3, 6], h = 0; 9 > h; h++) f += parseInt(b.charAt(h), 10) * g[h]; 2599 return f = f % 11 % 10, f + "" === b.substr(9, 1) 2600 }, f = function (a) { 2601 for (var b = 0, c = [21, 19, 17, 13, 11, 9, 7, 3, 1], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2602 return b %= 10, b + "" === a.substr(9, 1) 2603 }, g = function (a) { 2604 for (var b = 0, c = [4, 3, 2, 7, 6, 5, 4, 3, 2], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2605 return b = 11 - b % 11, 10 === b ? !1 : (11 === b && (b = 0), b + "" === a.substr(9, 1)) 2606 }; 2607 return e(b) || f(b) || g(b) 2608 } 2609 return !1 2610 }, 2611 _br: function (a) { 2612 if ("" === a) return !0; 2613 var b = a.replace(/[^\d]+/g, ""); 2614 if ("" === b || 14 !== b.length) return !1; 2615 if ("00000000000000" === b || "11111111111111" === b || "22222222222222" === b || "33333333333333" === b || "44444444444444" === b || "55555555555555" === b || "66666666666666" === b || "77777777777777" === b || "88888888888888" === b || "99999999999999" === b) return !1; 2616 for (var c = b.length - 2, d = b.substring(0, c), e = b.substring(c), f = 0, g = c - 7, h = c; h >= 1; h--) f += parseInt(d.charAt(c - h), 10) * g--, 2 > g && (g = 9); 2617 var i = 2 > f % 11 ? 0 : 11 - f % 11; 2618 if (i !== parseInt(e.charAt(0), 10)) return !1; 2619 for (c += 1, d = b.substring(0, c), f = 0, g = c - 7, h = c; h >= 1; h--) f += parseInt(d.charAt(c - h), 10) * g--, 2 > g && (g = 9); 2620 return i = 2 > f % 11 ? 0 : 11 - f % 11, i === parseInt(e.charAt(1), 10) 2621 }, 2622 _ch: function (a) { 2623 if (/^CHE[0-9]{9}(MWST)?$/.test(a) && (a = a.substr(2)), !/^E[0-9]{9}(MWST)?$/.test(a)) return !1; 2624 a = a.substr(1); 2625 for (var b = 0, c = [5, 4, 3, 2, 7, 6, 5, 4], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2626 return b = 11 - b % 11, 10 === b ? !1 : (11 === b && (b = 0), b + "" === a.substr(8, 1)) 2627 }, 2628 _cy: function (a) { 2629 if (/^CY[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a) && (a = a.substr(2)), !/^[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a)) return !1; 2630 if ("12" === a.substr(0, 2)) return !1; 2631 for (var b = 0, c = {0: 1, 1: 0, 2: 5, 3: 7, 4: 9, 5: 13, 6: 15, 7: 17, 8: 19, 9: 21}, d = 0; 8 > d; d++) { 2632 var e = parseInt(a.charAt(d), 10); 2633 d % 2 === 0 && (e = c[e + ""]), b += e 2634 } 2635 return b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[b % 26], b + "" === a.substr(8, 1) 2636 }, 2637 _cz: function (b) { 2638 if (/^CZ[0-9]{8,10}$/.test(b) && (b = b.substr(2)), !/^[0-9]{8,10}$/.test(b)) return !1; 2639 var c = 0, d = 0; 2640 if (8 === b.length) { 2641 if (b.charAt(0) + "" == "9") return !1; 2642 for (c = 0, d = 0; 7 > d; d++) c += parseInt(b.charAt(d), 10) * (8 - d); 2643 return c = 11 - c % 11, 10 === c && (c = 0), 11 === c && (c = 1), c + "" === b.substr(7, 1) 2644 } 2645 if (9 === b.length && b.charAt(0) + "" == "6") { 2646 for (c = 0, d = 0; 7 > d; d++) c += parseInt(b.charAt(d + 1), 10) * (8 - d); 2647 return c = 11 - c % 11, 10 === c && (c = 0), 11 === c && (c = 1), c = [8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 10][c - 1], c + "" === b.substr(8, 1) 2648 } 2649 if (9 === b.length || 10 === b.length) { 2650 var e = 1900 + parseInt(b.substr(0, 2), 10), f = parseInt(b.substr(2, 2), 10) % 50 % 20, 2651 g = parseInt(b.substr(4, 2), 10); 2652 if (9 === b.length) { 2653 if (e >= 1980 && (e -= 100), e > 1953) return !1 2654 } else 1954 > e && (e += 100); 2655 if (!a.fn.bootstrapValidator.helpers.date(e, f, g)) return !1; 2656 if (10 === b.length) { 2657 var h = parseInt(b.substr(0, 9), 10) % 11; 2658 return 1985 > e && (h %= 10), h + "" === b.substr(9, 1) 2659 } 2660 return !0 2661 } 2662 return !1 2663 }, 2664 _de: function (b) { 2665 return /^DE[0-9]{9}$/.test(b) && (b = b.substr(2)), /^[0-9]{9}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1 2666 }, 2667 _dk: function (a) { 2668 if (/^DK[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1; 2669 for (var b = 0, c = [2, 7, 6, 5, 4, 3, 2, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2670 return b % 11 === 0 2671 }, 2672 _ee: function (a) { 2673 if (/^EE[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1; 2674 for (var b = 0, c = [3, 7, 1, 3, 7, 1, 3, 7, 1], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2675 return b % 10 === 0 2676 }, 2677 _es: function (a) { 2678 if (/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a) && (a = a.substr(2)), !/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a)) return !1; 2679 var b = function (a) { 2680 var b = parseInt(a.substr(0, 8), 10); 2681 return b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1) 2682 }, c = function (a) { 2683 var b = ["XYZ".indexOf(a.charAt(0)), a.substr(1)].join(""); 2684 return b = parseInt(b, 10), b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1) 2685 }, d = function (a) { 2686 var b, c = a.charAt(0); 2687 if (-1 !== "KLM".indexOf(c)) return b = parseInt(a.substr(1, 8), 10), b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1); 2688 if (-1 !== "ABCDEFGHJNPQRSUVW".indexOf(c)) { 2689 for (var d = 0, e = [2, 1, 2, 1, 2, 1, 2], f = 0, g = 0; 7 > g; g++) f = parseInt(a.charAt(g + 1), 10) * e[g], f > 9 && (f = Math.floor(f / 10) + f % 10), d += f; 2690 return d = 10 - d % 10, d + "" === a.substr(8, 1) || "JABCDEFGHI"[d] === a.substr(8, 1) 2691 } 2692 return !1 2693 }, e = a.charAt(0); 2694 return /^[0-9]$/.test(e) ? b(a) : /^[XYZ]$/.test(e) ? c(a) : d(a) 2695 }, 2696 _fi: function (a) { 2697 if (/^FI[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1; 2698 for (var b = 0, c = [7, 9, 10, 5, 8, 4, 2, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2699 return b % 11 === 0 2700 }, 2701 _fr: function (b) { 2702 if (/^FR[0-9A-Z]{2}[0-9]{9}$/.test(b) && (b = b.substr(2)), !/^[0-9A-Z]{2}[0-9]{9}$/.test(b)) return !1; 2703 if (!a.fn.bootstrapValidator.helpers.luhn(b.substr(2))) return !1; 2704 if (/^[0-9]{2}$/.test(b.substr(0, 2))) return b.substr(0, 2) === parseInt(b.substr(2) + "12", 10) % 97 + ""; 2705 var c, d = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; 2706 return c = /^[0-9]{1}$/.test(b.charAt(0)) ? 24 * d.indexOf(b.charAt(0)) + d.indexOf(b.charAt(1)) - 10 : 34 * d.indexOf(b.charAt(0)) + d.indexOf(b.charAt(1)) - 100, (parseInt(b.substr(2), 10) + 1 + Math.floor(c / 11)) % 11 === c % 11 2707 }, 2708 _gb: function (a) { 2709 if ((/^GB[0-9]{9}$/.test(a) || /^GB[0-9]{12}$/.test(a) || /^GBGD[0-9]{3}$/.test(a) || /^GBHA[0-9]{3}$/.test(a) || /^GB(GD|HA)8888[0-9]{5}$/.test(a)) && (a = a.substr(2)), !(/^[0-9]{9}$/.test(a) || /^[0-9]{12}$/.test(a) || /^GD[0-9]{3}$/.test(a) || /^HA[0-9]{3}$/.test(a) || /^(GD|HA)8888[0-9]{5}$/.test(a))) return !1; 2710 var b = a.length; 2711 if (5 === b) { 2712 var c = a.substr(0, 2), d = parseInt(a.substr(2), 10); 2713 return "GD" === c && 500 > d || "HA" === c && d >= 500 2714 } 2715 if (11 === b && ("GD8888" === a.substr(0, 6) || "HA8888" === a.substr(0, 6))) return "GD" === a.substr(0, 2) && parseInt(a.substr(6, 3), 10) >= 500 || "HA" === a.substr(0, 2) && parseInt(a.substr(6, 3), 10) < 500 ? !1 : parseInt(a.substr(6, 3), 10) % 97 === parseInt(a.substr(9, 2), 10); 2716 if (9 === b || 12 === b) { 2717 for (var e = 0, f = [8, 7, 6, 5, 4, 3, 2, 10, 1], g = 0; 9 > g; g++) e += parseInt(a.charAt(g), 10) * f[g]; 2718 return e %= 97, parseInt(a.substr(0, 3), 10) >= 100 ? 0 === e || 42 === e || 55 === e : 0 === e 2719 } 2720 return !0 2721 }, 2722 _gr: function (a) { 2723 if (/^(GR|EL)[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1; 2724 8 === a.length && (a = "0" + a); 2725 for (var b = 0, c = [256, 128, 64, 32, 16, 8, 4, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2726 return b = b % 11 % 10, b + "" === a.substr(8, 1) 2727 }, 2728 _el: function (a) { 2729 return this._gr(a) 2730 }, 2731 _hu: function (a) { 2732 if (/^HU[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1; 2733 for (var b = 0, c = [9, 7, 3, 1, 9, 7, 3, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2734 return b % 10 === 0 2735 }, 2736 _hr: function (b) { 2737 return /^HR[0-9]{11}$/.test(b) && (b = b.substr(2)), /^[0-9]{11}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1 2738 }, 2739 _ie: function (a) { 2740 if (/^IE[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a) && (a = a.substr(2)), !/^[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a)) return !1; 2741 var b = function (a) { 2742 for (; a.length < 7;) a = "0" + a; 2743 for (var b = "WABCDEFGHIJKLMNOPQRSTUV", c = 0, d = 0; 7 > d; d++) c += parseInt(a.charAt(d), 10) * (8 - d); 2744 return c += 9 * b.indexOf(a.substr(7)), b[c % 23] 2745 }; 2746 return /^[0-9]+$/.test(a.substr(0, 7)) ? a.charAt(7) === b(a.substr(0, 7) + a.substr(8) + "") : -1 !== "ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".indexOf(a.charAt(1)) ? a.charAt(7) === b(a.substr(2, 5) + a.substr(0, 1) + "") : !0 2747 }, 2748 _is: function (a) { 2749 return /^IS[0-9]{5,6}$/.test(a) && (a = a.substr(2)), /^[0-9]{5,6}$/.test(a) 2750 }, 2751 _it: function (b) { 2752 if (/^IT[0-9]{11}$/.test(b) && (b = b.substr(2)), !/^[0-9]{11}$/.test(b)) return !1; 2753 if (0 === parseInt(b.substr(0, 7), 10)) return !1; 2754 var c = parseInt(b.substr(7, 3), 10); 2755 return 1 > c || c > 201 && 999 !== c && 888 !== c ? !1 : a.fn.bootstrapValidator.helpers.luhn(b) 2756 }, 2757 _lt: function (a) { 2758 if (/^LT([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a) && (a = a.substr(2)), !/^([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a)) return !1; 2759 var b, c = a.length, d = 0; 2760 for (b = 0; c - 1 > b; b++) d += parseInt(a.charAt(b), 10) * (1 + b % 9); 2761 var e = d % 11; 2762 if (10 === e) for (d = 0, b = 0; c - 1 > b; b++) d += parseInt(a.charAt(b), 10) * (1 + (b + 2) % 9); 2763 return e = e % 11 % 10, e + "" === a.charAt(c - 1) 2764 }, 2765 _lu: function (a) { 2766 return /^LU[0-9]{8}$/.test(a) && (a = a.substr(2)), /^[0-9]{8}$/.test(a) ? parseInt(a.substr(0, 6), 10) % 89 + "" === a.substr(6, 2) : !1 2767 }, 2768 _lv: function (b) { 2769 if (/^LV[0-9]{11}$/.test(b) && (b = b.substr(2)), !/^[0-9]{11}$/.test(b)) return !1; 2770 var c, d = parseInt(b.charAt(0), 10), e = 0, f = [], g = b.length; 2771 if (d > 3) { 2772 for (e = 0, f = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1], c = 0; g > c; c++) e += parseInt(b.charAt(c), 10) * f[c]; 2773 return e %= 11, 3 === e 2774 } 2775 var h = parseInt(b.substr(0, 2), 10), i = parseInt(b.substr(2, 2), 10), j = parseInt(b.substr(4, 2), 10); 2776 if (j = j + 1800 + 100 * parseInt(b.charAt(6), 10), !a.fn.bootstrapValidator.helpers.date(j, i, h)) return !1; 2777 for (e = 0, f = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9], c = 0; g - 1 > c; c++) e += parseInt(b.charAt(c), 10) * f[c]; 2778 return e = (e + 1) % 11 % 10, e + "" === b.charAt(g - 1) 2779 }, 2780 _mt: function (a) { 2781 if (/^MT[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1; 2782 for (var b = 0, c = [3, 4, 6, 7, 8, 9, 10, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2783 return b % 37 === 0 2784 }, 2785 _nl: function (a) { 2786 if (/^NL[0-9]{9}B[0-9]{2}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}B[0-9]{2}$/.test(a)) return !1; 2787 for (var b = 0, c = [9, 8, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2788 return b %= 11, b > 9 && (b = 0), b + "" === a.substr(8, 1) 2789 }, 2790 _no: function (a) { 2791 if (/^NO[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1; 2792 for (var b = 0, c = [3, 2, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2793 return b = 11 - b % 11, 11 === b && (b = 0), b + "" === a.substr(8, 1) 2794 }, 2795 _pl: function (a) { 2796 if (/^PL[0-9]{10}$/.test(a) && (a = a.substr(2)), !/^[0-9]{10}$/.test(a)) return !1; 2797 for (var b = 0, c = [6, 5, 7, 2, 3, 4, 5, 6, 7, -1], d = 0; 10 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2798 return b % 11 === 0 2799 }, 2800 _pt: function (a) { 2801 if (/^PT[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1; 2802 for (var b = 0, c = [9, 8, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2803 return b = 11 - b % 11, b > 9 && (b = 0), b + "" === a.substr(8, 1) 2804 }, 2805 _ro: function (a) { 2806 if (/^RO[1-9][0-9]{1,9}$/.test(a) && (a = a.substr(2)), !/^[1-9][0-9]{1,9}$/.test(a)) return !1; 2807 for (var b = a.length, c = [7, 5, 3, 2, 1, 7, 5, 3, 2].slice(10 - b), d = 0, e = 0; b - 1 > e; e++) d += parseInt(a.charAt(e), 10) * c[e]; 2808 return d = 10 * d % 11 % 10, d + "" === a.substr(b - 1, 1) 2809 }, 2810 _ru: function (a) { 2811 if (/^RU([0-9]{10}|[0-9]{12})$/.test(a) && (a = a.substr(2)), !/^([0-9]{10}|[0-9]{12})$/.test(a)) return !1; 2812 var b = 0; 2813 if (10 === a.length) { 2814 var c = 0, d = [2, 4, 10, 3, 5, 9, 4, 6, 8, 0]; 2815 for (b = 0; 10 > b; b++) c += parseInt(a.charAt(b), 10) * d[b]; 2816 return c %= 11, c > 9 && (c %= 10), c + "" === a.substr(9, 1) 2817 } 2818 if (12 === a.length) { 2819 var e = 0, f = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0], g = 0, h = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0]; 2820 for (b = 0; 11 > b; b++) e += parseInt(a.charAt(b), 10) * f[b], g += parseInt(a.charAt(b), 10) * h[b]; 2821 return e %= 11, e > 9 && (e %= 10), g %= 11, g > 9 && (g %= 10), e + "" === a.substr(10, 1) && g + "" === a.substr(11, 1) 2822 } 2823 return !1 2824 }, 2825 _rs: function (a) { 2826 if (/^RS[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1; 2827 for (var b = 10, c = 0, d = 0; 8 > d; d++) c = (parseInt(a.charAt(d), 10) + b) % 10, 0 === c && (c = 10), b = 2 * c % 11; 2828 return (b + parseInt(a.substr(8, 1), 10)) % 10 === 1 2829 }, 2830 _se: function (b) { 2831 return /^SE[0-9]{10}01$/.test(b) && (b = b.substr(2)), /^[0-9]{10}01$/.test(b) ? (b = b.substr(0, 10), a.fn.bootstrapValidator.helpers.luhn(b)) : !1 2832 }, 2833 _si: function (a) { 2834 if (/^SI[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1; 2835 for (var b = 0, c = [8, 7, 6, 5, 4, 3, 2], d = 0; 7 > d; d++) b += parseInt(a.charAt(d), 10) * c[d]; 2836 return b = 11 - b % 11, 10 === b && (b = 0), b + "" === a.substr(7, 1) 2837 }, 2838 _sk: function (a) { 2839 return /^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a) && (a = a.substr(2)), /^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a) ? parseInt(a, 10) % 11 === 0 : !1 2840 }, 2841 _ve: function (a) { 2842 if (/^VE[VEJPG][0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[VEJPG][0-9]{9}$/.test(a)) return !1; 2843 for (var b = { 2844 V: 4, 2845 E: 8, 2846 J: 12, 2847 P: 16, 2848 G: 20 2849 }, c = b[a.charAt(0)], d = [3, 2, 7, 6, 5, 4, 3, 2], e = 0; 8 > e; e++) c += parseInt(a.charAt(e + 1), 10) * d[e]; 2850 return c = 11 - c % 11, (11 === c || 10 === c) && (c = 0), c + "" === a.substr(9, 1) 2851 }, 2852 _za: function (a) { 2853 return /^ZA4[0-9]{9}$/.test(a) && (a = a.substr(2)), /^4[0-9]{9}$/.test(a) 2854 } 2855 } 2856}(window.jQuery), function (a) { 2857 a.fn.bootstrapValidator.i18n.vin = a.extend(a.fn.bootstrapValidator.i18n.vin || {}, {"default": "Please enter a valid VIN number"}), a.fn.bootstrapValidator.validators.vin = { 2858 validate: function (a, b) { 2859 var c = b.val(); 2860 if ("" === c) return !0; 2861 if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(c)) return !1; 2862 c = c.toUpperCase(); 2863 for (var d = { 2864 A: 1, 2865 B: 2, 2866 C: 3, 2867 D: 4, 2868 E: 5, 2869 F: 6, 2870 G: 7, 2871 H: 8, 2872 J: 1, 2873 K: 2, 2874 L: 3, 2875 M: 4, 2876 N: 5, 2877 P: 7, 2878 R: 9, 2879 S: 2, 2880 T: 3, 2881 U: 4, 2882 V: 5, 2883 W: 6, 2884 X: 7, 2885 Y: 8, 2886 Z: 9, 2887 1: 1, 2888 2: 2, 2889 3: 3, 2890 4: 4, 2891 5: 5, 2892 6: 6, 2893 7: 7, 2894 8: 8, 2895 9: 9, 2896 0: 0 2897 }, e = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2], f = 0, g = c.length, h = 0; g > h; h++) f += d[c.charAt(h) + ""] * e[h]; 2898 var i = f % 11; 2899 return 10 === i && (i = "X"), i + "" === c.charAt(8) 2900 } 2901 } 2902}(window.jQuery), function (a) { 2903 a.fn.bootstrapValidator.i18n.zipCode = a.extend(a.fn.bootstrapValidator.i18n.zipCode || {}, { 2904 "default": "Please enter a valid postal code", 2905 countryNotSupported: "The country code %s is not supported", 2906 country: "Please enter a valid postal code in %s", 2907 countries: {
2908 AT: "Austria", 2909 BR: "Brazil", 2910 CA: "Canada", 2911 CH: "Switzerland", 2912 CZ: "Czech Republic", 2913 DE: "Germany", 2914 DK: "Denmark", 2915 FR: "France", 2916 GB: "United Kingdom", 2917 IE: "Ireland", 2918 IT: "Italy", 2919 MA: "Morocco", 2920 NL: "Netherlands", 2921 PT: "Portugal", 2922 RO: "Romania", 2923 RU: "Russia", 2924 SE: "Sweden", 2925 SG: "Singapore", 2926 SK: "Slovakia", 2927 US: "USA" 2928 } 2929 }), a.fn.bootstrapValidator.validators.zipCode = { 2930 html5Attributes: {message: "message", country: "country"}, 2931 COUNTRY_CODES: ["AT", "BR", "CA", "CH", "CZ", "DE", "DK", "FR", "GB", "IE", "IT", "MA", "NL", "PT", "RO", "RU", "SE", "SG", "SK", "US"], 2932 validate: function (b, c, d) { 2933 var e = c.val(); 2934 if ("" === e || !d.country) return !0; 2935 var f = d.country; 2936 if (("string" != typeof f || -1 === a.inArray(f, this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)), !f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) return { 2937 valid: !1, 2938 message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.zipCode.countryNotSupported, f) 2939 }; 2940 var g = !1; 2941 switch (f = f.toUpperCase()) { 2942 case"AT": 2943 g = /^([1-9]{1})(\d{3})$/.test(e); 2944 break; 2945 case"BR": 2946 g = /^(\d{2})([\.]?)(\d{3})([\-]?)(\d{3})$/.test(e); 2947 break; 2948 case"CA": 2949 g = /^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(e); 2950 break; 2951 case"CH": 2952 g = /^([1-9]{1})(\d{3})$/.test(e); 2953 break; 2954 case"CZ": 2955 g = /^(\d{3})([ ]?)(\d{2})$/.test(e); 2956 break; 2957 case"DE": 2958 g = /^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(e); 2959 break; 2960 case"DK": 2961 g = /^(DK(-|\s)?)?\d{4}$/i.test(e); 2962 break; 2963 case"FR": 2964 g = /^[0-9]{5}$/i.test(e); 2965 break; 2966 case"GB": 2967 g = this._gb(e); 2968 break; 2969 case"IE": 2970 g = /^(D6W|[ACDEFHKNPRTVWXY]\d{2})\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(e); 2971 break; 2972 case"IT": 2973 g = /^(I-|IT-)?\d{5}$/i.test(e); 2974 break; 2975 case"MA": 2976 g = /^[1-9][0-9]{4}$/i.test(e); 2977 break; 2978 case"NL": 2979 g = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(e); 2980 break; 2981 case"PT": 2982 g = /^[1-9]\d{3}-\d{3}$/.test(e); 2983 break; 2984 case"RO": 2985 g = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(e); 2986 break; 2987 case"RU": 2988 g = /^[0-9]{6}$/i.test(e); 2989 break; 2990 case"SE": 2991 g = /^(S-)?\d{3}\s?\d{2}$/i.test(e); 2992 break; 2993 case"SG": 2994 g = /^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(e); 2995 break; 2996 case"SK": 2997 g = /^(\d{3})([ ]?)(\d{2})$/.test(e); 2998 break; 2999 case"US": 3000 default: 3001 g = /^\d{4,5}([\-]?\d{4})?$/.test(e) 3002 } 3003 return { 3004 valid: g, 3005 message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.zipCode.country, a.fn.bootstrapValidator.i18n.zipCode.countries[f]) 3006 } 3007 }, 3008 _gb: function (a) { 3009 for (var b = "[ABCDEFGHIJKLMNOPRSTUWYZ]", c = "[ABCDEFGHKLMNOPQRSTUVWXY]", d = "[ABCDEFGHJKPMNRSTUVWXY]", e = "[ABEHMNPRVWXY]", f = "[ABDEFGHJLNPQRSTUWXYZ]", g = [new RegExp("^(" + b + "{1}" + c + "?[0-9]{1,2})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(" + b + "{1}[0-9]{1}" + d + "{1})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(" + b + "{1}" + c + "{1}?[0-9]{1}" + e + "{1})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$", "i"), /^(GIR)(\s*)(0AA)$/i, /^(BFPO)(\s*)([0-9]{1,4}
3009)$/i, /^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i, /^([A-Z]{4})(\s*)(1ZZ)$/i, /^(AI-2640)$/i], h = 0; h < g.length; h++) if (g[h].test(a)) return !0; 3010 return !1 3011 } 3012 } 3013}(window.jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.