function isMissing(obj) { return null == obj || "undefined" == typeof obj || !jQuery.isValidString(obj); } function InputValidator(validateTag, displayElementId, autoInit) { this.validateTag = validateTag ? validateTag : InputValidator.ValidateTag, this.displayControl = document.getElementById(displayElementId), this.inputs = new Array(), autoInit && this.init(); } function _setNewInputGroup(validateTag, displayElementId) { this.validateTag = validateTag, exists(displayElementId) && (this.displayControl = document.getElementById(displayElementId)), this.init(); } function _getInputs() { return this.inputs; } function _getInput(id) { for (var i = 0; i < this.inputs.length; i++) if (this.inputs[i].element.id == id) return this.inputs[i]; return !1; } function _getFirstInvalidInput() { for (var i = 0; i < this.inputs.length; i++) if (!this.inputs[i].hasValidInput()) return this.inputs[i].element; return null; } function _autoFocus() { var elem = this.getFirstInvalidInput(); if (elem) try { elem.focus(), elem.select(); } catch (err) {} } function _removeInput(id, useHTML) { for (var i = 0; i < this.inputs.length; i++) this.inputs[i].element.id == id && (this.displayControl ? (this.inputs.splice(i, 1), this.updateMessages(useHTML)) : (this.inputs[i].hideMessages(), this.inputs.splice(i, 1))); } function _init() { var elems = document.getElementsByTagName("*"); this.inputs = new Array(); for (var i = 0; i < elems.length; i++) if ("true" == elems[i].getAttribute(this.validateTag)) { var newInput = new ValidatedInput(elems[i]); newInput.init(), this.inputs[this.inputs.length] = newInput; } } function _attachKeyListeners(callback) { for (var i = 0; i < this.inputs.length; i++) this.inputs[i].element.attachEvent ? this.inputs[i].element.attachEvent("onkeyup", callback) : this.inputs[i].element.onkeyup = callback; } function _allInputsValidate() { for (var i = 0; i < this.inputs.length; i++) if (!this.inputs[i].hasValidInput()) return !1; return !0; } function _allInputsAreClean() { for (var i = 0; i < this.inputs.length; i++) if (!this.inputs[i].isClean()) return !1; return !0; } function _singleInputValidates(id) { for (var i = 0; i < this.inputs.length; i++) if (this.inputs[i].element.id == id) return this.inputs[i].hasValidInput(); return !1; } function _updateMessages(useHTML) { var i; if (this.displayControl) { if (iLOGlobal.features.alt_mode_en) { var errMsg = this.getRulesBroken(useHTML); $(this.displayControl).displayError(errMsg); } else $(this.displayControl).displayError({ text: this.getRulesBroken(useHTML) }); this.displayControl.style.display = "block"; } else for (i = 0; i < this.inputs.length; i++) this.inputs[i].hasValidInput() ? this.inputs[i].hideMessages() : this.inputs[i].showMessages(useHTML); } function _updateFirstMessage(useHTML) { this.clearMessages(), this.displayControl && (this.displayControl.innerHTML = this.getFirstRuleBroken(useHTML), this.displayControl.style.display = "block"); } function _clearMessages() { if (this.displayControl) this.displayControl.innerHTML = "", this.displayControl.style.display = "none"; else for (var i = 0; i < this.inputs.length; i++) this.inputs[i].hideMessages(); } function _getFirstRuleBroken(useHTML) { for (var i = 0; i < this.inputs.length; i++) if (0 == this.inputs[i].hasValidInput()) return this.inputs[i].getRulesBroken(useHTML); return !1; } function _getFirstRuleBrokenType() { for (var i = 0; i < this.inputs.length; i++) if (0 == this.inputs[i].hasValidInput()) return this.inputs[i].getFirstRuleBrokenType(); return -1; } function _getAllRulesBroken(useHTML) { for (var errors = "", i = 0; i < this.inputs.length; i++) 0 == this.inputs[i].hasValidInput() && (errors += this.inputs[i].getRulesBroken(useHTML)); return errors; } function ValidatedInput(elem) { this.element = "undefined" == elem.tagName ? null : elem, this.cleanValue = this.element.value, this.formIdentifier = "", this.linkedErrorLabel = null, this.invalidList = null, this.regExp = null, this.fieldName = "", this.optional = !1, this.optionElement = null, this.useCustomMessage = !1, this.rules = new Array(), this.relatives = new Array(), this.relativeNames = new Array(), this.range = new Object(), this.range.min = null, this.range.max = null, this.errorFormatFunction = null, this.validationFunction = null; } function _initInput() { var names = null, msg = ""; try { var captionElemId = this.element.getAttribute(InputValidator.CaptionTag); if (captionElemId) { var fieldCaption = document.getElementById(captionElemId).innerHTML; jQuery.isValidString(fieldCaption) ? -1 != fieldCaption.indexOf(":") ? this.fieldName = fieldCaption.split(":")[0] : this.fieldName = fieldCaption : this.captionElement = null; } if (this.element.getAttribute(InputValidator.FormIdTag) && (this.formIdentifier = " " + this.element.getAttribute(InputValidator.FormIdTag)), this.element.getAttribute(InputValidator.OptionTag) && (this.optionElement = document.getElementById(this.element.getAttribute(InputValidator.OptionTag))), this.element.getAttribute(InputValidator.RelativesTag)) { names = this.element.getAttribute(InputValidator.RelativesTag), names = names.split(";"); for (var i = 0; i < names.length; i++) this.relatives[this.relatives.length] = document.getElementById(names[i]); } if (this.element.getAttribute(InputValidator.RelatedCaptionTag)) { names = this.element.getAttribute(InputValidator.RelatedCaptionTag), names = names.split(";"); for (var n = 0; n < names.length; n++) this.relativeNames[this.relativeNames.length] = getLabelText(names[n]); } if (this.element.getAttribute(InputValidator.InvalidTag) && (this.invalidList = this.element.getAttribute(InputValidator.InvalidTag)), this.element.getAttribute(InputValidator.RegExpTag) && (this.regExp = new RegExp(this.element.getAttribute(InputValidator.RegExpTag))), this.element.getAttribute(InputValidator.RangeTag)) { var range = this.element.getAttribute(InputValidator.RangeTag); range = range.split(";"), range.length >= 2 && (range[0] = parseInt(range[0], 10), range[1] = parseInt(range[1], 10), this.range.min = range[0] < range[1] ? range[0] : range[1], this.range.max = range[0] > range[1] ? range[0] : range[1]); } if (null != this.element.getAttribute(InputValidator.CustomTag) && (this.validationFunction = eval(this.element.getAttribute(InputValidator.CustomTag))), null != this.element.getAttribute(InputValidator.RulesTag)) { var rules = this.element.getAttribute(InputValidator.RulesTag); rules = rules.split(";"); for (var j = 0; j < rules.length; j++) null != this.element.getAttribute(InputValidator.MessageTag) ? 0 == this.useCustomMessage && (msg = this.getInputString(this.element.getAttribute(InputValidator.MessageTag)), this.useCustomMessage = !0) : msg = this.getInputString(this.getStringKey(rules[j])), rules[j] == ValidationRule.Optional ? this.optional = !0 : this.addRule(rules[j], msg); } else this.addRule(ValidationRule.Required, this.getInputString(this.getStringKey(ValidationRule.Required))); if (null != this.element.getAttribute(InputValidator.LabelTag)) { var labelElement = document.getElementById(this.element.getAttribute(InputValidator.LabelTag)); labelElement && (this.linkedErrorLabel = labelElement, this.errorFormatFunction = _errorFomatter); } } catch (e) { alert("error in init: " + e.message); } } function _getRule(type) { for (var i = 0; i < this.rules.length; i++) if (this.rules[i].type == type) return this.rules[i]; return null; } function _addRule(type, msg) { return isNaN(type) ? void 0 : this.rules.push(new ValidationRule(type, msg)); } function _removeRule(type) { if (!isNaN(type)) for (var i = 0; i < this.rules.length; i++) this.rules[i].type == type && (this.rules.splice(i, 1), this.linkedErrorLabel && jQuery.isValidString(this.linkedErrorLabel.innerHTML) && this.showMessages()); } function _isClean() { return this.element.value == this.cleanValue; } function _hasValidInput() { for (var i = 0; i < this.rules.length; i++) if (this.rules[i].isRuleBroken(this, this.relatives, this.range, this.optional)) return !1; return !0; } function getFirstRuleBrokenType() { for (var i = 0; i < this.rules.length; i++) if (this.rules[i].isRuleBroken(this, this.relatives, this.range, this.optional)) return this.rules[i].type; return -1; } function _getRulesBroken(useHTML) { var i, errMsg = "", lineBreak = useHTML ? "
" : "\n"; if (1 == this.useCustomMessage) { for (i = 0; i < this.rules.length; i++) if (this.rules[i].isRuleBroken(this, this.relatives, this.range, this.optional)) { errMsg = this.rules[i].msg + this.formIdentifier + lineBreak; break; } } else for (i = 0; i < this.rules.length; i++) this.rules[i].isRuleBroken(this, this.relatives, this.range, this.optional) && (errMsg += this.rules[i].msg + this.formIdentifier + lineBreak); return errMsg; } function _showMessages(useHTML) { this.linkedErrorLabel && (this.linkedErrorLabel.innerHTML = this.getRulesBroken(useHTML), this.errorFormatFunction && this.errorFormatFunction(this.element, !0)); } function _hideMessages() { this.linkedErrorLabel && (this.linkedErrorLabel.innerHTML = "", this.errorFormatFunction && this.errorFormatFunction(this.element, !1)); } function _getInputString(type) { var regexp = null; if (jQuery.isValidString(type)) { var localString = "unknown type: " + type, langKey = "inputValidator." + type; switch (type) { case "fieldInvalid": localString = iLO.translateString(langKey, "{%1} is invalid."); break; case "fieldMatch": localString = iLO.translateString(langKey, "{%1} Confirm must match {%1}."); break; case "fieldRequired": localString = iLO.translateString(langKey, "{%1} is a required field."); break; case "fieldString": localString = iLO.translateString(langKey, "{%1} must contain a text value."); break; case "fieldStringLength": localString = iLO.translateString(langKey, "{%1} must contain exactly {%min} characters."); break; case "fieldStringRange": localString = iLO.translateString(langKey, "{%1} must contain {%min} to {%max} characters."); break; case "fieldNumber": localString = iLO.translateString(langKey, "{%1} must contain a numeric value."); break; case "fieldNumberRange": localString = iLO.translateString(langKey, "{%1} must contain a numeric value between {%min} and {%max}."); break; case "fieldInteger": localString = iLO.translateString(langKey, "{%1} must contain an integer."); break; case "fieldIntRange": localString = iLO.translateString(langKey, "{%1} must contain an integer between {%min} and {%max}."); break; case "fieldEmail": localString = iLO.translateString(langKey, "{%1} must contain a valid email address."); break; case "fieldDate": localString = iLO.translateString(langKey, "{%1} must contain a valid date."); break; case "fieldIp": localString = iLO.translateString(langKey, "{%1} must contain a valid IP address."); break; case "fieldIpv6": localString = iLO.translateString(langKey, "{%1} must contain a valid IPv6 address."); break; case "fieldIpv6Prefix": localString = iLO.translateString(langKey, "{%1} must contain a valid Prefix Length value."); break; case "fieldNoSpaces": localString = iLO.translateString(langKey, "{%1} must not contain spaces."); break; case "fieldRegex": localString = iLO.translateString(langKey, "{%1} must contain {%custom-string}"); break; case "fieldChars": localString = iLO.translateString(langKey, "{%1} must not contain any of these characters: {%char-list}"); break; case "fieldUnique": localString = iLO.translateString(langKey, "{%1} must be unique."); break; case "fieldDependent": localString = iLO.translateString(langKey, "{%1} requires {%2} to be supplied first."); break; case "fieldIpOrHost": localString = iLO.translateString(langKey, "{%1} must contain a valid IP address, hostname or FQDN."); break; case "fieldIpv4SubnetMask": localString = iLO.translateString(langKey, "{%1} must contain a valid subnet mask."); break; default: localString = iLO.translateString(type); } if (jQuery.isValidString(localString)) { if (this.fieldName.length > 0 && (regexp = new RegExp("{%1}", "g"), localString = localString.replace(regexp, this.fieldName)), this.relativeNames.length > 0) { var names = ""; for (i = 0; i < this.relativeNames.length; i++) names += (i > 0 ? ", " : "") + this.relativeNames[i]; regexp = new RegExp("{%2}", "g"), localString = localString.replace(regexp, names); } if (0 != this.range.min && null == this.range.min || 0 != this.range.max && null == this.range.max || (regexp = new RegExp("{%min}", "g"), localString = localString.replace(regexp, this.range.min), regexp = new RegExp("{%max}", "g"), localString = localString.replace(regexp, this.range.max)), null != this.invalidList && "" != this.invalidList) { var charList = ""; for (i = 0; i < this.invalidList.length; i++) charList += this.invalidList.charAt(i) + " "; regexp = new RegExp("{%char-list}"), localString = localString.replace(regexp, charList); } if (this.element.getAttribute(InputValidator.MsgInsertTag)) { var msg = this.element.getAttribute(InputValidator.MsgInsertTag); regexp = new RegExp("{%custom-string}"), localString = localString.replace(regexp, iLO.translateString("inputValidator." + msg, msg)); } } return "" == localString ? "[not found]" : localString; } } function _getStringKey(type) { var szValue = "", useExKey = this.fieldName.length > 0; switch (parseInt(type, 10)) { case ValidationRule.IpAddress: szValue = useExKey ? ValidatedInput.IpRequiredKeyEx : ValidatedInput.IpRequiredKey; break; case ValidationRule.Ipv6Address: szValue = useExKey ? ValidatedInput.Ipv6RequiredKeyEx : ValidatedInput.Ipv6RequiredKey; break; case ValidationRule.Ipv6AddressPrefOp: szValue = useExKey ? ValidatedInput.Ipv6PRequiredKeyEx : ValidatedInput.Ipv6PRequiredKey; break; case ValidationRule.EmailAddress: szValue = useExKey ? ValidatedInput.EmailRequiredKeyEx : ValidatedInput.EmailRequiredKey; break; case ValidationRule.Number: szValue = null != this.range.min && null != this.range.max ? useExKey ? ValidatedInput.NumberRangeKeyEx : ValidatedInput.NumberRangeKey : useExKey ? ValidatedInput.NumberRequiredKeyEx : ValidatedInput.NumberRequiredKey; break; case ValidationRule.Integer: szValue = null != this.range.min && null != this.range.max ? useExKey ? ValidatedInput.IntegerRangeKeyEx : ValidatedInput.IntegerRangeKey : useExKey ? ValidatedInput.IntegerRequiredKeyEx : ValidatedInput.IntegerRequiredKey; break; case ValidationRule.String: szValue = null != this.range.min && null != this.range.max ? this.range.min == this.range.max && useExKey ? ValidatedInput.StringLengthKeyEx : useExKey ? ValidatedInput.StringRangeKeyEx : ValidatedInput.StringRangeKey : useExKey ? ValidatedInput.StringRequiredKeyEx : ValidatedInput.StringRequiredKey; break; case ValidationRule.Date: szValue = useExKey ? ValidatedInput.DateRequiredKeyEx : ValidatedInput.DateRequiredKey; break; case ValidationRule.Mirror: szValue = useExKey ? ValidatedInput.InputMatchKeyEx : ValidatedInput.InputMatchKey; break; case ValidationRule.NoSpaces: szValue = useExKey ? ValidatedInput.NoSpacesKeyEx : ValidatedInput.NoSpacesKey; break; case ValidationRule.RegExp: szValue = useExKey ? ValidatedInput.RegexKeyEx : ValidatedInput.RegexKey; break; case ValidationRule.InvalidChars: szValue = useExKey ? ValidatedInput.InvalidCharsKeyEx : ValidatedInput.InvalidCharsKey; break; case ValidationRule.Unique: szValue = useExKey ? ValidatedInput.UniqueKeyEx : ValidatedInput.UniqueKey; break; case ValidationRule.Dependent: szValue = useExKey ? ValidatedInput.DependentKeyEx : ValidatedInput.DependentKey; break; case ValidationRule.IpOrHost: szValue = useExKey ? ValidatedInput.IpOrHostKeyEx : ValidatedInput.IpOrHostRequiredKey; break; case ValidationRule.Ipv4SubnetMask: szValue = useExKey ? ValidatedInput.Ipv4SubnetMaskKeyEx : ValidatedInput.Ipv4SubnetMaskRequiredKey; break; case ValidationRule.Required: default: szValue = useExKey ? ValidatedInput.FieldRequiredKeyEx : ValidatedInput.FieldRequiredKey; } return szValue; } function ValidationRule(type, msg) { this.type = isNumber(type) ? parseInt(type, 10) : null, this.msg = jQuery.isValidString(msg) ? msg : ""; } function _isRuleBroken(validatedInput, obj, range, optional) { var broken, i, elem = validatedInput.element, value = elem.value; if (validatedInput.optionElement && 0 == validatedInput.optionElement.checked) return !1; if (isMissing(value) && optional) return !1; switch (this.type) { case ValidationRule.Required: broken = isMissing(value), null != range.min && 0 == range.min && (broken = !1); break; case ValidationRule.IpAddress: broken = !isValidIPAddress(value), broken || optional || "0.0.0.0" != value.trim() || (broken = !0); break; case ValidationRule.Ipv6Address: broken = !isValidIPv6Address(value); break; case ValidationRule.Ipv6AddressPrefOp: broken = !isValidIPv6AddressPrefix(value); break; case ValidationRule.EmailAddress: broken = !isEmailAddress(value); break; case ValidationRule.Date: broken = !isDate(value); break; case ValidationRule.Number: broken = !isNumber(value), broken || null == range.min || null == range.max || (broken = !(parseFloat(value) >= parseFloat(range.min) && parseFloat(value) <= parseFloat(range.max))); break; case ValidationRule.Integer: broken = !isInteger(value), broken || null == range.min || null == range.max || (broken = !(parseInt(value, 10) >= parseInt(range.min, 10) && parseInt(value, 10) <= parseInt(range.max, 10))); break; case ValidationRule.String: broken = !jQuery.isValidString(value) && 0 !== range.min, broken || null == range.min || null == range.max || (broken = !(value.length >= parseInt(range.min, 10) && value.length <= parseInt(range.max, 10))); break; case ValidationRule.Mirror: if (Array.isArray(obj)) for (i = 0; i < obj.length; i++) if ((jQuery.isValidString(obj[i].value) || jQuery.isValidString(value) && "true" == obj[i].getAttribute("mirror-controlled")) && !valuesMatch(value, obj[i].value)) return !0; broken = !1; break; case ValidationRule.NoSpaces: broken = hasSpaces(value); break; case ValidationRule.RegExp: broken = validatedInput.regExp.test(value); break; case ValidationRule.InvalidChars: broken = containsChars(value, validatedInput.invalidList); break; case ValidationRule.Unique: if (Array.isArray(obj)) for (i = 0; i < obj.length; i++) if (jQuery.isValidString(obj[i].value) && valuesMatch(value, obj[i].value)) return !0; broken = !1; break; case ValidationRule.Dependent: if (Array.isArray(obj)) for (i = 0; i < obj.length; i++) if (!jQuery.isValidString(obj[i].value) && jQuery.isValidString(value)) return !0; broken = !1; break; case ValidationRule.IpOrHost: broken = !isValidIpOrHost(value); break; case ValidationRule.Ipv4SubnetMask: broken = !isValidIpv4SubnetMask(value); break; case ValidationRule.IpOrHostMultiTarget: broken = !isValidIpOrHostMultiTarget(value); break; case ValidationRule.Custom: broken = !validatedInput.validationFunction(value); break; default: broken = !1; } return broken; } function getLabelText(id) { var fieldCaption = document.getElementById(id).innerHTML; return jQuery.isValidString(fieldCaption) ? -1 != fieldCaption.indexOf(":") ? fieldCaption.split(":")[0] : fieldCaption : id; } function valuesMatch(obj1, obj2) { return isMissing(obj1) || isMissing(obj2) ? !1 : obj1 == obj2; } function containsChars(value, charList) { for (var i = 0; i < charList.length; i++) { var regExp = new RegExp(/[a-z0-9]/i), esc = regExp.test(charList.charAt(i)) ? "" : "\\"; if (regExp = new RegExp(esc + charList.charAt(i)), regExp.test(value)) return !0; } return !1; } function isEmailAddress(obj) { if (jQuery.isValidString(obj) && obj.length <= 64) { var regExpEmail = new RegExp(/^([\w\-\.\+\_])+@([a-zA-Z0-9]([\-a-zA-Z0-9])?)+((\.?)+([a-zA-Z0-9]([\-][a-zA-Z0-9])?))*$/); if (regExpEmail.test(obj)) return !0; } return !1; } function isDate(obj) { var aDate = new Date(obj); return "NaN" != aDate.toDateString() && "Invalid Date" != aDate.toDateString(); } function isNumber(obj) { return null != obj && !isNaN(obj); } function isInteger(obj) { return isNumber(obj) ? parseInt(obj, 10) == parseFloat(obj) : !1; } function hasSpaces(obj) { if (jQuery.isValidString(obj)) for (var i = 0; i < obj.length; i++) if (" " == obj.charAt(i)) return !0; return !1; } function fileSizeExceeded(filePath, maxBytes) { try { var fso = new ActiveXObject("Scripting.FileSystemObject"), img = new Image(); img.src = filePath; var file = fso.GetFile(img.src); if (file.Size > maxBytes) return !0; } catch (err) { return alert(err.message), "error"; } return !1; } function isValidIpOrHost(obj) { var i, tokens, invalid_chars = new RegExp(/(^-|-$|[\u0001-\u002c]|\u002e|\u002f|[\u003a-\u0040]|[\u005b-\u005e]|\u0060|[\u007b-\u007f])/); if (isValidIPAddress(obj) || isValidIPv6Address(obj)) return !0; if (obj.length > 255) return !1; if (tokens = obj.split("."), tokens.length > 1) { for (i = 0; i < tokens.length; i++) if (!jQuery.isValidString(tokens[i]) || tokens[i].length > 63 || invalid_chars.test(tokens[i])) return !1; return !0; } return !1; } function isValidIpOrHostMultiTarget(obj) { var i, n, targets, tokens, invalid_chars = new RegExp(/(^-|-$|[\u0001-\u001f]|[\u0021-\u002c]|\u002e|\u002f|[\u003c-\u0040]|[\u005b-\u005e]|\u0060|[\u007b-\u007f])/); if (obj.length > 255) return !1; for (targets = obj.split(";"), n = 0; n < targets.length; n++) if (!isValidIPAddress(targets[n].trim()) && !isValidIPv6Address(targets[n].trim())) for (tokens = targets[n].split("."), i = 0; i < tokens.length; i++) if (!jQuery.isValidString(tokens[i].trim()) || tokens[i].length > 63 || invalid_chars.test(tokens[i])) return !1; return !0; } function isValidIpv4SubnetMask(obj) { var re = /^(255.255.255.(25[542]|24[80]|224|192|128|0)|255.255.(25[42]|24[80]|224|192|128|0).0|255.(25[42]|24[80]|224|192|128|0).0.0|(25[42]|24[80]|224|192|128|0).0.0.0)$/; return re.test(obj); } function _errorFomatter(elem, isError) { elem && (isError ? $(elem).closest("div.form-field").addClass("form-field--error") : $(elem).closest("div.form-field").removeClass("form-field--error")); } InputValidator.ValidateTag = "validate-me", InputValidator.LabelTag = "linked-error", InputValidator.MessageTag = "msg-key", InputValidator.MsgInsertTag = "msg-insert-key", InputValidator.RulesTag = "rule-list", InputValidator.CaptionTag = "caption-label", InputValidator.RelativesTag = "related-inputs", InputValidator.RangeTag = "range", InputValidator.InvalidTag = "invalid-list", InputValidator.RegExpTag = "reg-exp", InputValidator.FormIdTag = "unique-id", InputValidator.RelatedCaptionTag = "related-labels", InputValidator.OptionTag = "option-id", InputValidator.CustomTag = "custom-func", ValidatedInput.InputInvalidKey = "inputInvalid", ValidatedInput.InputMatchKey = "inputMatch", ValidatedInput.FieldRequiredKey = "inputRequired", ValidatedInput.NumberRequiredKey = "inputNumber", ValidatedInput.NumberRangeKey = "inputNumberRange", ValidatedInput.IntegerRequiredKey = "inputInteger", ValidatedInput.IntegerRangeKey = "inputIntegerRange", ValidatedInput.StringRequiredKey = "inputString", ValidatedInput.StringRangeKey = "inputStringRange", ValidatedInput.DateRequiredKey = "inputDate", ValidatedInput.EmailRequiredKey = "inputEmail", ValidatedInput.IpRequiredKey = "inputIp", ValidatedInput.Ipv6RequiredKey = "inputIpv6", ValidatedInput.Ipv6PRequiredKey = "inputIpv6Prefix", ValidatedInput.NoSpacesKey = "inputNoSpaces", ValidatedInput.InvalidCharsKey = "inputChars", ValidatedInput.RegexKey = "inputRegex", ValidatedInput.UniqueKey = "inputUnique", ValidatedInput.DependentKey = "inputDependent", ValidatedInput.IpOrHostRequiredKey = "inputIpOrHost", ValidatedInput.Ipv4SubnetMaskRequiredKey = "inputIpv4SubnetMask", ValidatedInput.InputInvalidKeyEx = "fieldInvalid", ValidatedInput.InputMatchKeyEx = "fieldMatch", ValidatedInput.FieldRequiredKeyEx = "fieldRequired", ValidatedInput.NumberRequiredKeyEx = "fieldNumber", ValidatedInput.NumberRangeKeyEx = "fieldNumberRange", ValidatedInput.IntegerRequiredKeyEx = "fieldInteger", ValidatedInput.IntegerRangeKeyEx = "fieldIntRange", ValidatedInput.StringRequiredKeyEx = "fieldString", ValidatedInput.StringLengthKeyEx = "fieldStringLength", ValidatedInput.StringRangeKeyEx = "fieldStringRange", ValidatedInput.DateRequiredKeyEx = "fieldDate", ValidatedInput.EmailRequiredKeyEx = "fieldEmail", ValidatedInput.IpRequiredKeyEx = "fieldIp", ValidatedInput.Ipv6RequiredKeyEx = "fieldIpv6", ValidatedInput.Ipv6PRequiredKeyEx = "fieldIpv6Prefix", ValidatedInput.NoSpacesKeyEx = "fieldNoSpaces", ValidatedInput.InvalidCharsKeyEx = "fieldChars", ValidatedInput.RegexKeyEx = "fieldRegex", ValidatedInput.IpOrHostKeyEx = "fieldIpOrHost", ValidatedInput.Ipv4SubnetMaskKeyEx = "fieldIpv4SubnetMask", ValidationRule.Optional = 0, ValidationRule.Required = 1, ValidationRule.IpAddress = 2, ValidationRule.EmailAddress = 3, ValidationRule.Date = 4, ValidationRule.Number = 5, ValidationRule.String = 6, ValidationRule.Mirror = 7, ValidationRule.NoSpaces = 8, ValidationRule.Integer = 9, ValidationRule.RegExp = 10, ValidationRule.InvalidChars = 11, ValidationRule.Exclusive = 12, ValidationRule.Dependent = 13, ValidationRule.Ipv6Address = 14, ValidationRule.Ipv6AddressPrefOp = 15, ValidationRule.Unique = 16, ValidationRule.IpOrHost = 17, ValidationRule.Ipv4SubnetMask = 18, ValidationRule.IpOrHostMultiTarget = 19, ValidationRule.Custom = 99, InputValidator.prototype.init = _init, InputValidator.prototype.attachKeyListeners = _attachKeyListeners, InputValidator.prototype.setNewInputGroup = _setNewInputGroup, InputValidator.prototype.getInputs = _getInputs, InputValidator.prototype.getInput = _getInput, InputValidator.prototype.getFirstInvalidInput = _getFirstInvalidInput, InputValidator.prototype.getFirstRuleBrokenType = _getFirstRuleBrokenType, InputValidator.prototype.autoFocus = _autoFocus, InputValidator.prototype.removeInput = _removeInput, InputValidator.prototype.allInputsValidate = _allInputsValidate, InputValidator.prototype.allInputsAreClean = _allInputsAreClean, InputValidator.prototype.singleInputValidates = _singleInputValidates, InputValidator.prototype.getFirstRuleBroken = _getFirstRuleBroken, InputValidator.prototype.getRulesBroken = _getAllRulesBroken, InputValidator.prototype.updateMessages = _updateMessages, InputValidator.prototype.updateFirstMessage = _updateFirstMessage, InputValidator.prototype.clearMessages = _clearMessages, ValidatedInput.prototype.init = _initInput, ValidatedInput.prototype.addRule = _addRule, ValidatedInput.prototype.getRule = _getRule, ValidatedInput.prototype.removeRule = _removeRule, ValidatedInput.prototype.isClean = _isClean, ValidatedInput.prototype.hasValidInput = _hasValidInput, ValidatedInput.prototype.getFirstRuleBrokenType = getFirstRuleBrokenType, ValidatedInput.prototype.getRulesBroken = _getRulesBroken, ValidatedInput.prototype.showMessages = _showMessages, ValidatedInput.prototype.hideMessages = _hideMessages, ValidatedInput.prototype.getInputString = _getInputString, ValidatedInput.prototype.getStringKey = _getStringKey, ValidationRule.prototype.isRuleBroken = _isRuleBroken;