X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2Fresources%2FWebUIValidation_2.0.js;h=085f08d4a248cb4ec5c7927f94636401c6732039;hb=6c035e225abc36a15501a03f574744824225350b;hp=c7cc1bf1fa7859714d130bcfb1d0ff74c3fb4002;hpb=a3ea7ceb4d4f5e2cb8ea421313e8939640fb898c;p=mono.git
diff --git a/mcs/class/System.Web/resources/WebUIValidation_2.0.js b/mcs/class/System.Web/resources/WebUIValidation_2.0.js
index c7cc1bf1fa7..085f08d4a24 100644
--- a/mcs/class/System.Web/resources/WebUIValidation_2.0.js
+++ b/mcs/class/System.Web/resources/WebUIValidation_2.0.js
@@ -1,483 +1,586 @@
-/*
- * WebUIValidation.js
- *
- * Authors:
- * Chris Toshok (toshok@ximian.com)
- *
- * (c) 2005 Novell, Inc. (http://www.novell.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-var have_validation_summaries = false;
-
-function ValidatorOnLoad ()
-{
- if (typeof (Page_ValidationSummaries) != 'undefined' && Page_ValidationSummaries != null) {
- have_validation_summaries = true;
- for (var v in Page_ValidationSummaries) {
- var vs = Page_ValidationSummaries [v];
- if (vs.getAttribute ("validationgroup") == null)
- vs.setAttribute ("validationgroup", "");
- }
- }
-
- for (var v in Page_Validators) {
- var vo = Page_Validators [v];
- var funcname = vo.getAttribute ("evaluationfunction");
-
- func = this[funcname];
-
- vo["evaluationfunction"] = func;
-
- if (vo.getAttribute ("isvalid") == null)
- vo.setAttribute ("isvalid", "true");
-
- if (vo.getAttribute ("enabled") == null)
- vo.setAttribute ("enabled", "true");
-
- if (vo.getAttribute ("validationgroup") == null)
- vo.setAttribute ("validationgroup", "");
-
- func = vo ["evaluationfunction"];
- }
-
- Page_ValidationActive = true;
-}
-
-var validation_result = true;
-
-function ValidationSummaryOnSubmit (group)
-{
- /* handle validation summaries here */
- if (validation_result == false && have_validation_summaries) {
-
- for (var vi in Page_ValidationSummaries) {
- var vs = Page_ValidationSummaries[vi];
-
- if(IsValidationGroupMatch(vs, group)) {
-
- var header = vs.getAttribute ("headertext");
- if (header == null)
- header = "";
-
- attr = vs.getAttribute ("showsummary");
- if (attr == null || attr.toLowerCase() == "true") {
- var displaymode = vs.getAttribute ("displaymode");
- if (displaymode == null) displaymode = "Bulleted";
-
- var html = "";
-
- if (displaymode == "List") {
- list_pre = "";
- list_post = "";
- item_pre = "";
- item_post = "
";
- }
- else if (displaymode == "SingleParagraph") {
- list_pre = "";
- list_post = "
";
- item_pre = "";
- item_post = " ";
- }
- else {
- list_pre = "
";
- item_pre = "\n";
- item_post = "";
- }
-
- html += header;
- html += list_pre;
- for (var v in Page_Validators) {
- var vo = Page_Validators [v];
-
- if (vo.getAttribute ("isvalid").toLowerCase() == "false") {
- var text = ValidatorGetErrorMessage (vo);
- if (text != null && text != "") {
- html += item_pre + text + item_post;
- }
- }
- }
- html += list_post;
-
- vs.innerHTML = html;
- vs.style.display = "block";
- }
-
- attr = vs.getAttribute ("showmessagebox");
- if (attr != null && attr.toLowerCase() == "true") {
- var v_contents = "";
-
- for (var v in Page_Validators) {
- var vo = Page_Validators [v];
-
- if (vo.getAttribute ("isvalid").toLowerCase() == "false") {
- var text = ValidatorGetErrorMessage (vo);
- if (text != null && text != "") {
- v_contents += "-" + text + "\n";
- }
- }
- }
-
- var alert_header = header;
- if (alert_header != "")
- alert_header += "\n";
- summary_contents = alert_header + v_contents;
- alert (summary_contents);
- }
- }
- }
- }
-}
-
-function ValidatorCommonOnSubmit ()
-{
- rv = validation_result;
- validation_result = true;
- return rv;
-}
-
-function ValidatorGetValue (controlname)
-{
- var el = GetElement (controlname);
-
- /* if the element has a 'value' attribute, return it */
- if (typeof (el.value) != 'undefined' && el.value != null) {
- return el.value;
- }
-
- /* if it's a select, loop over the options looking for the
- * selected one. */
- if (typeof (el.selectedIndex) != 'undefined') {
- return el.options[el.selectedIndex].value;
- }
-}
-
-function ValidatorTrim (s)
-{
- s = s.replace (/^\s+/g, "");
- s = s.replace (/\s+$/g, "");
-
- return s;
-}
-
-function Page_ClientValidate(group)
-{
- validation_result = true;
-
- /* clear out the existing text from all our summaries */
- if (have_validation_summaries) {
- for (var vi in Page_ValidationSummaries) {
- var vs = Page_ValidationSummaries[vi];
- vs.style.display = "none";
- vs.innerHTML = "";
- }
- }
-
- for (var v in Page_Validators) {
- var vo = Page_Validators [v];
- var evalfunc = vo["evaluationfunction"];
- var result = false;
-
- if (vo.getAttribute ("enabled").toLowerCase() == "false" || !IsValidationGroupMatch(vo, group)) {
- result = true;
- ValidatorSucceeded (vo);
- }
- else {
- result = evalfunc (vo);
- }
-
- if (!result)
- validation_result = false;
-
- vo.setAttribute("isvalid", result ? "true" : "false");
- }
- ValidationSummaryOnSubmit(group);
- return validation_result;
-}
-
-function IsValidationGroupMatch(vo, group) {
- var valGroup = vo.getAttribute ("validationgroup");
- if ((typeof(group) == "undefined") || (group == null)) {
- return (valGroup == "");
- }
- return (valGroup == group);
-}
-
-/*******************/
-/* type converters */
-
-function ToInteger (s)
-{
- if ((v = parseInt(s, 10)) != s - 0)
- return null;
- else
- return v;
-}
-
-function ToString (s)
-{
- return s;
-}
-
-function ToDouble (s)
-{
- if ((v = parseFloat(s)) != s - 0)
- return null;
- else
- return v;
-}
-
-function ToDate (s)
-{
- /* NYI */
- return null;
-}
-
-function ToCurrency (s)
-{
- /* NYI */
- return null;
-}
-
-/*******************/
-/* validators */
-
-function CompareValidatorEvaluateIsValid (validator)
-{
- var ControlToCompare = validator.getAttribute ("controltocompare");
- var ValueToCompare = validator.getAttribute ("valuetocompare");
- var Operator = validator.getAttribute ("operator").toLowerCase();
- var ControlToValidate = validator.getAttribute ("controltovalidate");
- var DataType = validator.getAttribute ("datatype");
-
- var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate));
- var compare = (ControlToCompare != null && ControlToCompare != "") ? ValidatorTrim (ValidatorGetValue (ControlToCompare)) : ValueToCompare;
-
- var left = Convert (ctrl_value, DataType);
- if (left == null) {
- ValidatorFailed (validator);
- return false;
- }
-
- var right = Convert (compare, DataType);
- if (right == null) {
- ValidatorSucceeded (validator);
- return true;
- }
-
- var result = false;
-
- if (Operator == "equal") {
- result = (left == right);
- }
- else if (Operator == "notequal") {
- result = (left != right);
- }
- else if (Operator == "lessthan") {
- result = (left < right);
- }
- else if (Operator == "lessthanequal") {
- result = (left <= right);
- }
- else if (Operator == "greaterthan") {
- result = (left > right);
- }
- else if (Operator == "greaterthanequal") {
- result = (left >= right);
- }
-
- if (result == false) {
- ValidatorFailed (validator);
- return false;
- }
- else {
- ValidatorSucceeded (validator);
- return true;
- }
-}
-
-function RangeValidatorEvaluateIsValid (validator)
-{
- var MinimumValue = parseInt (validator.getAttribute ("minimumvalue"));
- var MaximumValue = parseInt (validator.getAttribute ("maximumvalue"));
- var ControlToValidate = validator.getAttribute ("controltovalidate");
- var DataType = validator.getAttribute ("datatype");
-
- var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate));
-
- if (ctrl_value == "") {
- ValidatorSucceeded (validator);
- return true;
- }
-
- var val = Convert (ctrl_value, DataType);
- if (val == null || val < MinimumValue || val > MaximumValue) {
- ValidatorFailed (validator);
- return false;
- }
- else {
- ValidatorSucceeded (validator);
- return true;
- }
-}
-
-function RegularExpressionValidatorEvaluateIsValid (validator)
-{
- var ValidationExpression = validator.getAttribute ("validationexpression");
- var ControlToValidate = validator.getAttribute ("controltovalidate");
-
- var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate));
-
- if (ctrl_value == "") {
- ValidatorSucceeded (validator);
- return true;
- }
-
- var r = new RegExp (ValidationExpression);
- match = r.exec (ctrl_value);
- if (match == null || match[0] == "") {
- ValidatorFailed (validator);
- return false;
- }
- else {
- ValidatorSucceeded (validator);
- return true;
- }
-}
-
-function RequiredFieldValidatorEvaluateIsValid (validator)
-{
- var InitialValue = validator.getAttribute ("initialvalue");
- var ControlToValidate = validator.getAttribute ("controltovalidate");
-
- var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate));
-
- if (ctrl_value == ValidatorTrim (InitialValue)) {
- ValidatorFailed (validator);
- return false;
- }
- else {
- ValidatorSucceeded (validator);
- return true;
- }
-}
-
-function CustomValidatorEvaluateIsValid (validator)
-{
- var InitialValue = validator.getAttribute ("initialvalue");
- var ControlToValidate = validator.getAttribute ("controltovalidate");
-
- if (!ControlToValidate) {
- ValidatorSucceeded (validator);
- return true;
- }
-
- var evaluationfunc = validator.getAttribute ("clientvalidationfunction");
-
- var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate));
-
- var result = true;
-
- if (evaluationfunc && evaluationfunc != "") {
- args = {Value:ctrl_value, IsValid:false};
- eval (evaluationfunc + "(validator, args)");
- result = args.IsValid;
- }
-
- if (result) {
- ValidatorSucceeded (validator);
- return true;
- }
- else {
- ValidatorFailed (validator);
- return false;
- }
-}
-
-/*********************/
-/* utility functions */
-
-function Convert (s, ty)
-{
- var cvt = this ["To" + ty];
- if (typeof (cvt) == 'function')
- return cvt (s);
- else
- return null;
-}
-
-function ValidatorUpdateDisplay (v, valid)
-{
- var display = v.getAttribute ("display");
-
- /* for validators that aren't displayed, do nothing */
- if (display == "None") {
- return;
- }
-
- v.style.visibility = (valid ? "hidden" : "visible");
- if (display == "Dynamic") {
- v.style.display = (valid ? "none" : "inline");
- }
-}
-
-function ValidatorGetErrorMessage (v)
-{
- var text = v.getAttribute ("errormessage");
- if (text == null || text == "")
- text = v.getAttribute ("text");
- if (text == null)
- text = "";
- return text;
-}
-
-function ValidatorGetText (v)
-{
- var text = v.getAttribute ("text");
- if (text == null || text == "")
- text = v.getAttribute ("errormessage");
- if (text == null)
- text = "";
- return text;
-}
-
-function ValidatorFailed (v)
-{
- var text = ValidatorGetText (v);
- v.innerHTML = text;
-
- ValidatorUpdateDisplay (v, false);
-}
-
-function ValidatorSucceeded (v)
-{
- v.innerHTML = "";
-
- ValidatorUpdateDisplay (v, true);
-}
-
-function GetElement(id)
-{
- var x = document.getElementById ? document.getElementById (id) :
- ((document.all) ? document.all [id] : null);
- return x;
-}
+/*
+ * WebUIValidation.js
+ *
+ * Authors:
+ * Chris Toshok (toshok@ximian.com)
+ *
+ * (c) 2005 Novell, Inc. (http://www.novell.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+function WebFormValidation_Initialize(webForm) {
+
+webForm.have_validation_summaries = false;
+
+webForm.HaveRegexp = function ()
+{
+ if (window.RegExp)
+ return true;
+ return false;
+}
+
+webForm.ValidatorOnLoad = function ()
+{
+ if (typeof (webForm.Page_ValidationSummaries) != 'undefined' && webForm.Page_ValidationSummaries != null) {
+ webForm.have_validation_summaries = true;
+ }
+
+ for (var v = 0; v < webForm.Page_Validators.length; v++) {
+ var vo = webForm.Page_Validators [v];
+
+ if (typeof(vo.isvalid) == "string" && vo.isvalid == "False")
+ vo._isvalid = false;
+ else
+ vo._isvalid = true;
+
+ if (typeof(vo.enabled) == "string" && vo.enabled == "False")
+ vo._enabled = false;
+ else
+ vo._enabled = true;
+
+ if (typeof(vo.evaluationfunction) == "string")
+ vo.evaluationfunction = webForm [vo.evaluationfunction];
+ }
+
+ webForm.Page_ValidationActive = true;
+}
+
+webForm.validation_result = true;
+
+webForm.ValidationSummaryOnSubmit = function (group)
+{
+ /* handle validation summaries here */
+ if (webForm.validation_result == false && webForm.have_validation_summaries) {
+
+ for (var vi = 0; vi < webForm.Page_ValidationSummaries.length; vi++) {
+ var vs = webForm.Page_ValidationSummaries[vi];
+
+ if(webForm.IsValidationGroupMatch(vs, group)) {
+
+ var header = "";
+ if(typeof(vs.headertext)=="string")
+ header = vs.headertext;
+
+ if (vs.showsummary != "False") {
+ if (typeof(vs.displaymode) != "string")
+ vs.displaymode = "BulletList";
+
+ var html = "";
+
+ if (vs.displaymode == "List") {
+ list_pre = "";
+ list_post = "";
+ item_pre = "";
+ item_post = "
";
+ }
+ else if (vs.displaymode == "SingleParagraph") {
+ list_pre = "";
+ list_post = "
";
+ item_pre = "";
+ item_post = " ";
+ }
+ else {
+ list_pre = "";
+ item_pre = "\n";
+ item_post = "";
+ }
+
+ html += header;
+ html += list_pre;
+ for (var v = 0; v < webForm.Page_Validators.length; v++) {
+ var vo = webForm.Page_Validators [v];
+
+ if (!vo._isvalid) {
+ var text = vo.errormessage;
+ if (text != null && text != "") {
+ html += item_pre + text + item_post;
+ }
+ }
+ }
+ html += list_post;
+
+ vs.innerHTML = html;
+ vs.style.display = "block";
+ }
+
+ if (vs.showmessagebox == "True") {
+ var v_contents = "";
+
+ for (var v = 0; v < webForm.Page_Validators.length; v++) {
+ var vo = webForm.Page_Validators [v];
+
+ if (!vo._isvalid) {
+ var text = vo.errormessage;
+ if (text != null && text != "") {
+ v_contents += "-" + text + "\n";
+ }
+ }
+ }
+
+ var alert_header = header;
+ if (alert_header != "")
+ alert_header += "\n";
+ summary_contents = alert_header + v_contents;
+ alert (summary_contents);
+ }
+ }
+ }
+ }
+}
+
+webForm.ValidatorCommonOnSubmit = function ()
+{
+ var rv = webForm.validation_result;
+ webForm.validation_result = true;
+ return rv;
+}
+
+webForm.ValidatorGetValue = function (controlname)
+{
+ var el = webForm.GetElement (controlname);
+
+ /* if the element has a 'value' attribute, return it */
+ if (typeof (el.value) != 'undefined' && el.value != null) {
+ return el.value;
+ }
+
+ /* if it's a select, loop over the options looking for the
+ * selected one. */
+ if (typeof (el.selectedIndex) != 'undefined') {
+ return el.options[el.selectedIndex].value;
+ }
+
+ return webForm.ValidatorGetValueRecursive(el);
+}
+
+webForm.ValidatorGetValueRecursive = function (el)
+{
+ if (typeof(el.value) == "string") {
+ if (el.type != "radio" || el.checked == true) return el.value;
+ }
+ for (var i = 0; i 0);
+ var beginGroupSize, subsequentGroupSize;
+ var groupSizeNum = parseInt(validator.groupsize, 10);
+ if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
+ beginGroupSize = "{1," + groupSizeNum + "}";
+ subsequentGroupSize = "{" + groupSizeNum + "}";
+ }
+ else {
+ beginGroupSize = subsequentGroupSize = "+";
+ }
+ var exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + validator.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
+ + (hasDigits ? "\\" + validator.decimalchar + "?(\\d{0," + validator.digits + "})" : "")
+ + "\\s*$");
+ var m = s.match(exp);
+ if (m == null)
+ return null;
+ if (m[2].length == 0 && hasDigits && m[5].length == 0)
+ return null;
+ var cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + validator.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : "");
+ var num = parseFloat(cleanInput);
+ return (isNaN(num) ? null : num);
+}
+
+webForm.GetFullYear = function (year, maxYear)
+{
+ var twoDigitMaxYear = maxYear % 100;
+ var centure = maxYear - twoDigitMaxYear;
+ return ((year > twoDigitMaxYear) ? (centure - 100 + year) : (centure + year));
+}
+
+/*******************/
+/* validators */
+
+webForm.CompareValidatorEvaluateIsValid = function (validator)
+{
+ var Operator = validator.operator.toLowerCase();
+ var ControlToValidate = validator.controltovalidate;
+ var DataType = validator.type;
+
+ var ctrl_value = webForm.ValidatorGetValue (ControlToValidate);
+ if (webForm.ValidatorTrim (ctrl_value) == "") {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+
+ var left = webForm.Convert (ctrl_value, DataType, validator);
+ if (left == null) {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+
+ if (Operator == "datatypecheck") {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+
+ var compare = "";
+ if (typeof(validator.controltocompare) == "string" && document.getElementById(validator.controltocompare))
+ compare = webForm.ValidatorGetValue(validator.controltocompare);
+ else if (typeof(validator.valuetocompare) == "string")
+ compare = validator.valuetocompare;
+
+ var right = compare != null ? webForm.Convert (compare, DataType, validator) : null;
+ if (right == null) {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+
+ var result = false;
+
+ if (Operator == "equal") {
+ result = (left == right);
+ }
+ else if (Operator == "notequal") {
+ result = (left != right);
+ }
+ else if (Operator == "lessthan") {
+ result = (left < right);
+ }
+ else if (Operator == "lessthanequal") {
+ result = (left <= right);
+ }
+ else if (Operator == "greaterthan") {
+ result = (left > right);
+ }
+ else if (Operator == "greaterthanequal") {
+ result = (left >= right);
+ }
+
+ if (result == false) {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+ else {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+}
+
+webForm.RangeValidatorEvaluateIsValid = function (validator)
+{
+ var ControlToValidate = validator.controltovalidate;
+ var DataType = validator.type;
+
+ var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate));
+
+ if (ctrl_value == "") {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+
+ var MinimumValue = webForm.Convert (validator.minimumvalue, DataType, validator);
+ var MaximumValue = webForm.Convert (validator.maximumvalue, DataType, validator);
+ var val = webForm.Convert (ctrl_value, DataType, validator);
+ if (val == null || val < MinimumValue || val > MaximumValue) {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+ else {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+}
+
+webForm.RegularExpressionValidatorEvaluateIsValid = function (validator)
+{
+ var ValidationExpression = validator.validationexpression;
+ var ControlToValidate = validator.controltovalidate;
+
+ var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate));
+
+ if (ctrl_value == "") {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+
+ if (!webForm.HaveRegexp ())
+ return false;
+
+ var r = new RegExp (ValidationExpression);
+ match = r.exec (ctrl_value);
+ if (match == null || match[0] != ctrl_value) {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+ else {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+}
+
+webForm.RequiredFieldValidatorEvaluateIsValid = function (validator)
+{
+ var InitialValue = validator.initialvalue;
+ var ControlToValidate = validator.controltovalidate;
+
+ var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate));
+
+ if (ctrl_value == webForm.ValidatorTrim (InitialValue)) {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+ else {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+}
+
+webForm.CustomValidatorEvaluateIsValid = function (validator)
+{
+ var ControlToValidate = validator.controltovalidate;
+ var evaluationfunc = validator.clientvalidationfunction;
+ var ctrl_value;
+
+ if (ControlToValidate) {
+ ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate));
+
+ if ((ctrl_value.length == 0) && ((typeof(validator.validateemptytext) != "string") || (validator.validateemptytext != "true"))) {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+ } else
+ ctrl_value = "";
+ var result = true;
+
+ if (evaluationfunc && evaluationfunc != "") {
+ args = {Value:ctrl_value, IsValid:true};
+ eval (evaluationfunc + "(validator, args)");
+ result = args.IsValid;
+ }
+
+ if (result) {
+ webForm.ValidatorSucceeded (validator);
+ return true;
+ }
+ else {
+ webForm.ValidatorFailed (validator);
+ return false;
+ }
+}
+
+/*********************/
+/* utility functions */
+
+webForm.Convert = function (s, ty, validator)
+{
+ var cvt = this ["To" + ty];
+ if (typeof (cvt) == 'function')
+ return cvt.call (this, s, validator);
+ else
+ return null;
+}
+
+webForm.ValidatorUpdateDisplay = function (v, valid)
+{
+ var display = v.display;
+
+ /* for validators that aren't displayed, do nothing */
+ if (display == "None") {
+ return;
+ }
+
+ v.style.visibility = (valid ? "hidden" : "visible");
+ if (display == "Dynamic") {
+ v.style.display = (valid ? "none" : "inline");
+ }
+}
+
+webForm.ValidatorFailed = function (v)
+{
+ webForm.ValidatorUpdateDisplay (v, false);
+}
+
+webForm.ValidatorSucceeded = function (v)
+{
+ webForm.ValidatorUpdateDisplay (v, true);
+}
+
+webForm.GetElement = function (id)
+{
+ var x = document.getElementById ? document.getElementById (id) :
+ ((document.all) ? document.all [id] : null);
+ return x;
+}
+
+
+}