|
|
var Page_ValidationVer = "125"; var Page_IsValid = true; var Page_BlockSubmit = false; function ValidatorUpdateDisplay(val) { if (typeof(val.display) == "string") { if (val.display == "None") { return; } if (val.display == "Dynamic") { val.style.display = val.isvalid ? "none" : "inline"; return; } } val.style.visibility = val.isvalid ? "hidden" : "visible"; } function ValidatorUpdateIsValid() { var i; for (i = 0; i < Page_Validators.length; i++) { if (!Page_Validators[i].isvalid) { Page_IsValid = false; return; } } Page_IsValid = true; } function ValidatorHookupControlID(controlID, val) { if (typeof(controlID) != "string") { return; } var ctrl = document.all[controlID]; if (typeof(ctrl) != "undefined") { ValidatorHookupControl(ctrl, val); } else { val.isvalid = true; val.enabled = false; } } function ValidatorHookupControl(control, val) { if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") { var i; for (i = 0; i < control.length; i++) { var inner = control[i]; if (typeof(inner.value) == "string") { ValidatorHookupControl(inner, val); } } return; } else if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") { var i; for (i = 0; i < control.children.length; i++) { ValidatorHookupControl(control.children[i], val); } return; } else { if (typeof(control.Validators) == "undefined") { control.Validators = new Array; var ev; if (control.type == "radio") { ev = control.onclick; } else { ev = control.onchange; } if (typeof(ev) == "function" ) { ev = ev.toString(); ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); } else { ev = ""; } var func = new Function("ValidatorOnChange(); " + ev); if (control.type == "radio") { control.onclick = func; } else { control.onchange = func; } } control.Validators[control.Validators.length] = val; } } function ValidatorGetValue(id) { var control; control = document.all[id]; if (typeof(control.value) == "string") { return control.value; } if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") { var j; for (j=0; j < control.length; j++) { var inner = control[j]; if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) { return inner.value; } } } else { return ValidatorGetValueRecursive(control); } return ""; } function ValidatorGetValueRecursive(control) { if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) { return control.value; } var i, val; for (i = 0; i<control.children.length; i++) { val = ValidatorGetValueRecursive(control.children[i]); if (val != "") return val; } return ""; } function Page_ClientValidate() { var i; for (i = 0; i < Page_Validators.length; i++) { ValidatorValidate(Page_Validators[i]); } ValidatorUpdateIsValid(); ValidationSummaryOnSubmit(); Page_BlockSubmit = !Page_IsValid; return Page_IsValid; } function ValidatorCommonOnSubmit() { event.returnValue = !Page_BlockSubmit; Page_BlockSubmit = false; } function ValidatorEnable(val, enable) { val.enabled = (enable != false); ValidatorValidate(val); ValidatorUpdateIsValid(); } function ValidatorOnChange() { var vals = event.srcElement.Validators; var i; for (i = 0; i < vals.length; i++) { ValidatorValidate(vals[i]); } ValidatorUpdateIsValid(); } function ValidatorValidate(val) { val.isvalid = true; if (val.enabled != false) { if (typeof(val.evaluationfunction) == "function") { val.isvalid = val.evaluationfunction(val); } } ValidatorUpdateDisplay(val); } function ValidatorOnLoad() { if (typeof(Page_Validators) == "undefined") return; var i, val; for (i = 0; i < Page_Validators.length; i++) { val = Page_Validators[i]; if (typeof(val.evaluationfunction) == "string") { eval("val.evaluationfunction = " + val.evaluationfunction + ";"); } if (typeof(val.isvalid) == "string") { if (val.isvalid == "False") { val.isvalid = false; Page_IsValid = false; } else { val.isvalid = true; } } else { val.isvalid = true; } if (typeof(val.enabled) == "string") { val.enabled = (val.enabled != "False"); } ValidatorHookupControlID(val.controltovalidate, val); ValidatorHookupControlID(val.controlhookup, val); } Page_ValidationActive = true; } function ValidatorConvert(op, dataType, val) { function GetFullYear(year) { return (year + parseInt(val.century)) - ((year < val.cutoffyear) ? 0 : 100); } var num, cleanInput, m, exp; if (dataType == "Integer") { exp = /^\s*[-\+]?\d+\s*$/; if (op.match(exp) == null) return null; num = parseInt(op, 10); return (isNaN(num) ? null : num); } else if(dataType == "Double") { exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + val.decimalchar + "(\\d+))?\\s*$"); m = op.match(exp); if (m == null) return null; cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4]; num = parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType == "Currency") { exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + val.groupchar + ")*)(\\d+)" + ((val.digits > 0) ? "(\\" + val.decimalchar + "(\\d{1," + val.digits + "}))?" : "") + "\\s*$"); m = op.match(exp); if (m == null) return null; var intermed = m[2] + m[5] ; cleanInput = m[1] + intermed.replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((val.digits > 0) ? "." + m[7] : 0); num = parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType == "Date") { var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$"); m = op.match(yearFirstExp); var day, month, year; if (m != null && (m[2].length == 4 || val.dateorder == "ymd")) { day = m[6]; month = m[5]; year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)) } else { if (val.dateorder == "ymd"){ return null; } var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$"); m = op.match(yearLastExp); if (m == null) { return null; } if (val.dateorder == "mdy") { day = m[3]; month = m[1]; } else { day = m[1]; month = m[3]; } year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10)) } month -= 1; var date = new Date(year, month, day); return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null; } else { return op.toString(); } } function ValidatorCompare(operand1, operand2, operator, val) { var dataType = val.type; var op1, op2; if ((op1 = ValidatorConvert(operand1, dataType, val)) == null) return false; if (operator == "DataTypeCheck") return true; if ((op2 = ValidatorConvert(operand2, dataType, val)) == null) return true; switch (operator) { case "NotEqual": return (op1 != op2); case "GreaterThan": return (op1 > op2); case "GreaterThanEqual": return (op1 >= op2); case "LessThan": return (op1 < op2); case "LessThanEqual": return (op1 <= op2); default: return (op1 == op2); } } function CompareValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; var compareTo = ""; if (null == document.all[val.controltocompare]) { if (typeof(val.valuetocompare) == "string") { compareTo = val.valuetocompare; } } else { compareTo = ValidatorGetValue(val.controltocompare); } return ValidatorCompare(value, compareTo, val.operator, val); } function CustomValidatorEvaluateIsValid(val) { var value = ""; if (typeof(val.controltovalidate) == "string") { value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; } var args = { Value:value, IsValid:true }; if (typeof(val.clientvalidationfunction) == "string") { eval(val.clientvalidationfunction + "(val, args) ;"); } return args.IsValid; } function RegularExpressionValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; var rx = new RegExp(val.validationexpression); var matches = rx.exec(value); return (matches != null && value == matches[0]); } function ValidatorTrim(s) { var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); return (m == null) ? "" : m[1]; } function RequiredFieldValidatorEvaluateIsValid(val) { return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue)) } function RangeValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) && ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val)); } function ValidationSummaryOnSubmit() { if (typeof(Page_ValidationSummaries) == "undefined") return; var summary, sums, s; for (sums = 0; sums < Page_ValidationSummaries.length; sums++) { summary = Page_ValidationSummaries[sums]; summary.style.display = "none"; if (!Page_IsValid) { if (summary.showsummary != "False") { summary.style.display = ""; if (typeof(summary.displaymode) != "string") { summary.displaymode = "BulletList"; } switch (summary.displaymode) { case "List": headerSep = "<br>"; first = ""; pre = ""; post = "<br>"; final = ""; break; case "BulletList": default: headerSep = ""; first = "<ul>"; pre = "<li>"; post = "</li>"; final = "</ul>"; break; case "SingleParagraph": headerSep = " "; first = ""; pre = ""; post = " "; final = "<br>"; break; } s = ""; if (typeof(summary.headertext) == "string") { s += summary.headertext + headerSep; } s += first; for (i=0; i<Page_Validators.length; i++) { if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { s += pre + Page_Validators[i].errormessage + post; } } s += final; summary.innerHTML = s; window.scrollTo(0,0); } if (summary.showmessagebox == "True") { s = ""; if (typeof(summary.headertext) == "string") { s += summary.headertext + "<BR>"; } for (i=0; i<Page_Validators.length; i++) { if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { switch (summary.displaymode) { case "List": s += Page_Validators[i].errormessage + "<BR>"; break; case "BulletList": default: s += " - " + Page_Validators[i].errormessage + "<BR>"; break; case "SingleParagraph": s += Page_Validators[i].errormessage + " "; break; } } } span = document.createElement("SPAN"); span.innerHTML = s; s = span.innerText; alert(s); } } } }
|