You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ws...@apache.org on 2005/10/03 06:59:53 UTC

svn commit: r293241 - in /struts/shale/trunk/use-cases: ./ src/systest/org/apache/shale/usecases/systest/ src/test/org/apache/shale/usecases/locale/ src/test/org/apache/shale/usecases/lookup/ src/test/org/apache/shale/usecases/remote/ src/test/org/apac...

Author: wsmoak
Date: Sun Oct  2 21:59:39 2005
New Revision: 293241

URL: http://svn.apache.org/viewcvs?rev=293241&view=rev
Log:
Added missing svn props, fixed line endings.

Modified:
    struts/shale/trunk/use-cases/build.xml   (contents, props changed)
    struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/AbstractTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/JndiTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/SubviewTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/UseCasesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/locale/SelectTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListCategoriesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListLocalesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListCategoriesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListLocalesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListStateNamesTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/rolodex/RolodexTestCase.java   (props changed)
    struts/shale/trunk/use-cases/src/web/WEB-INF/applicationContext.xml   (props changed)
    struts/shale/trunk/use-cases/src/web/WEB-INF/daoContext.xml   (props changed)
    struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml   (contents, props changed)
    struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml   (props changed)
    struts/shale/trunk/use-cases/src/web/rolodex/address.html   (props changed)
    struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml   (contents, props changed)
    struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html   (contents, props changed)
    struts/shale/trunk/use-cases/xdocs/navigation.xml   (props changed)

Modified: struts/shale/trunk/use-cases/build.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/build.xml?rev=293241&r1=293240&r2=293241&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/build.xml (original)
+++ struts/shale/trunk/use-cases/build.xml Sun Oct  2 21:59:39 2005
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 
- $Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $
+ $Id$
 
 -->
 

Propchange: struts/shale/trunk/use-cases/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/build.xml
------------------------------------------------------------------------------
    svn:keywords = author date id

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/AbstractTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/AbstractTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/JndiTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/JndiTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/SubviewTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/SubviewTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/UseCasesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/systest/org/apache/shale/usecases/systest/UseCasesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/locale/SelectTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/locale/SelectTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListCategoriesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListCategoriesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListLocalesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/lookup/ListLocalesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListCategoriesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListCategoriesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListLocalesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListLocalesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListStateNamesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/remote/ListStateNamesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/rolodex/RolodexTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/test/org/apache/shale/usecases/rolodex/RolodexTestCase.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/daoContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml?rev=293241&r1=293240&r2=293241&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml (original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml Sun Oct  2 21:59:39 2005
@@ -1,896 +1,896 @@
-<!DOCTYPE form-validation PUBLIC
-          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
-          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
-<form-validation>
-
-   <global>
-
-      <validator name="required"
-            classname="org.apache.shale.validator.CommonsValidator"
-               method="isSupplied"
-         methodParams="java.lang.String"
-                  msg="errors.required">
-
-         <javascript><![CDATA[
-            function validateRequired(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oRequired = new required();
-                for (x in oRequired) {
-                   var field = form[oRequired[x][0]];
-                   
-                    if (field.type == 'text' ||
-                        field.type == 'textarea' ||
-                        field.type == 'file' ||
-                        field.type == 'select-one' ||
-                        field.type == 'radio' ||
-                        field.type == 'password') {
-                        
-                        var value = '';
-                  // get field's value
-                  if (field.type == "select-one") {
-                     var si = field.selectedIndex;
-                     if (si >= 0) {
-                        value = field.options[si].value;
-                     }
-                  } else {
-                     value = field.value;
-                  }
-                        
-                        if (trim(value).length == 0) {
-                        
-                           if (i == 0) {
-                               focusField = field;
-                           }
-                           fields[i++] = oRequired[x][1];
-                           isValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return isValid;
-            }
-            
-            // Trim whitespace from left and right sides of s.
-            function trim(s) {
-                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
-            }
-            
-            ]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="minlength"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="minLength"
-         methodParams="java.lang.String,int"
-              depends=""
-                  msg="errors.minlength">
-
-         <javascript><![CDATA[
-            function validateMinLength(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oMinLength = new minlength();
-                for (x in oMinLength) {
-                    var field = form[oMinLength[x][0]];
-                    
-                    if (field.type == 'text' ||
-                        field.type == 'textarea') {
-                        
-                        var iMin = parseInt(oMinLength[x][2]("minlength"));
-                        if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
-                            if (i == 0) {
-                                focusField = field;
-                            }
-                            fields[i++] = oMinLength[x][1];
-                            isValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return isValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="maxlength"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="maxLength"
-         methodParams="java.lang.String,int"
-              depends=""
-                  msg="errors.maxlength">
-
-         <javascript><![CDATA[
-            function validateMaxLength(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oMaxLength = new maxlength();
-                for (x in oMaxLength) {
-                    var field = form[oMaxLength[x][0]];
-                    
-                    if (field.type == 'text' ||
-                        field.type == 'textarea') {
-                        
-                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));
-                        if (field.value.length > iMax) {
-                            if (i == 0) {
-                                focusField = field;
-                            }
-                            fields[i++] = oMaxLength[x][1];
-                            isValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return isValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="mask"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="matchRegexp"
-         methodParams="java.lang.String,java.lang.String"
-              depends=""
-                  msg="errors.invalid">
-
-         <javascript><![CDATA[
-            function validateMask(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oMasked = new mask();
-                for (x in oMasked) {
-                    var field = form[oMasked[x][0]];
-                    
-                    if ((field.type == 'text' || 
-                         field.type == 'textarea') && 
-                         (field.value.length > 0)) {
-                        
-                        if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
-                            if (i == 0) {
-                                focusField = field;
-                            }
-                            fields[i++] = oMasked[x][1];
-                            isValid = false;
-                        }
-                    }
-                }
-                
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return isValid;
-            }
-
-            function matchPattern(value, mask) {
-               return mask.exec(value);
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="byte"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isByte"
-         methodParams="java.lang.String"
-              depends=""
-                  msg="errors.byte"
-       jsFunctionName="ByteValidations">
-
-         <javascript><![CDATA[
-            function validateByte(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oByte = new ByteValidations();
-                for (x in oByte) {
-                   var field = form[oByte[x][0]];
-                   
-                    if (field.type == 'text' ||
-                        field.type == 'textarea' ||
-                        field.type == 'select-one' ||
-                  field.type == 'radio') {
-
-                  var value = '';
-                  // get field's value
-                  if (field.type == "select-one") {
-                     var si = field.selectedIndex;
-                     if (si >= 0) {
-                        value = field.options[si].value;
-                     }
-                  } else {
-                     value = field.value;
-                  }
-                        
-                        if (value.length > 0) {
-                            if (!isAllDigits(value)) {
-                                bValid = false;
-                                if (i == 0) {
-                                    focusField = field;
-                                }
-                                fields[i++] = oByte[x][1];
-
-                            } else {
-
-                               var iValue = parseInt(value);
-                               if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
-                                   if (i == 0) {
-                                       focusField = field;
-                                   }
-                                   fields[i++] = oByte[x][1];
-                                   bValid = false;
-                               }
-                            }
-                  }
-                  
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return bValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="short"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isShort"
-         methodParams="java.lang.String"
-              depends=""
-                  msg="errors.short"
-       jsFunctionName="ShortValidations">
-
-         <javascript><![CDATA[
-            function validateShort(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oShort = new ShortValidations();
-                for (x in oShort) {
-                   var field = form[oShort[x][0]];
-                   
-                    if (field.type == 'text' ||
-                        field.type == 'textarea' ||
-                        field.type == 'select-one' ||
-                        field.type == 'radio') {
-                        
-                        var value = '';
-                  // get field's value
-                  if (field.type == "select-one") {
-                     var si = field.selectedIndex;
-                     if (si >= 0) {
-                        value = field.options[si].value;
-                     }
-                  } else {
-                     value = field.value;
-                  }
-                        
-                        if (value.length > 0) {
-                            if (!isAllDigits(value)) {
-                                bValid = false;
-                                if (i == 0) {
-                                    focusField = field;
-                                }
-                                fields[i++] = oShort[x][1];
-
-                            } else {
-                        
-                               var iValue = parseInt(value);
-                               if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
-                                   if (i == 0) {
-                                       focusField = field;
-                                   }
-                                   fields[i++] = oShort[x][1];
-                                   bValid = false;
-                               }
-                          }
-                       }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return bValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="integer"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isInt"
-         methodParams="java.lang.String"
-              depends=""
-                  msg="errors.integer"
-       jsFunctionName="IntegerValidations">
-
-         <javascript><![CDATA[
-            function validateInteger(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oInteger = new IntegerValidations();
-                for (x in oInteger) {
-                   var field = form[oInteger[x][0]];
-
-                    if (field.type == 'text' ||
-                        field.type == 'textarea' ||
-                        field.type == 'select-one' ||
-                        field.type == 'radio') {
-                        
-                        var value = '';
-                  // get field's value
-                  if (field.type == "select-one") {
-                     var si = field.selectedIndex;
-                      if (si >= 0) {
-                         value = field.options[si].value;
-                      }
-                  } else {
-                     value = field.value;
-                  }
-                        
-                        if (value.length > 0) {
-                        
-                            if (!isAllDigits(value)) {
-                                bValid = false;
-                                if (i == 0) {
-                                   focusField = field;
-                               }
-                          fields[i++] = oInteger[x][1];
-                          
-                            } else {
-                               var iValue = parseInt(value);
-                               if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
-                                   if (i == 0) {
-                                       focusField = field;
-                                   }
-                                   fields[i++] = oInteger[x][1];
-                                   bValid = false;
-                              }
-                           }
-                       }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return bValid;
-            }
-
-            function isAllDigits(argvalue) {
-                argvalue = argvalue.toString();
-                var validChars = "0123456789";
-                var startFrom = 0;
-                if (argvalue.substring(0, 2) == "0x") {
-                   validChars = "0123456789abcdefABCDEF";
-                   startFrom = 2;
-                } else if (argvalue.charAt(0) == "0") {
-                   validChars = "01234567";
-                   startFrom = 1;
-                } else if (argvalue.charAt(0) == "-") {
-                    startFrom = 1;
-                }
-                
-                for (var n = startFrom; n < argvalue.length; n++) {
-                    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
-                }
-                return true;
-            }]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="float"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isDouble"
-         methodParams="double"
-              depends=""
-                  msg="errors.float"
-       jsFunctionName="FloatValidations">
-
-         <javascript><![CDATA[
-            function validateFloat(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oFloat = new FloatValidations();
-                for (x in oFloat) {
-                   var field = form[oFloat[x][0]];
-                   
-                    if (field.type == 'text' ||
-                        field.type == 'textarea' ||
-                        field.type == 'select-one' ||
-                        field.type == 'radio') {
-                        
-                       var value = '';
-                  // get field's value
-                  if (field.type == "select-one") {
-                     var si = field.selectedIndex;
-                     if (si >= 0) {
-                         value = field.options[si].value;
-                     }
-                  } else {
-                     value = field.value;
-                  }
-                        
-                        if (value.length > 0) {
-                            // remove '.' before checking digits
-                            var tempArray = value.split('.');
-                            var joinedString= tempArray.join('');
-
-                            if (!isAllDigits(joinedString)) {
-                                bValid = false;
-                                if (i == 0) {
-                                    focusField = field;
-                                }
-                                fields[i++] = oFloat[x][1];
-
-                            } else {
-                               var iValue = parseFloat(value);
-                               if (isNaN(iValue)) {
-                                   if (i == 0) {
-                                       focusField = field;
-                                   }
-                                   fields[i++] = oFloat[x][1];
-                                   bValid = false;
-                               }
-                            }
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                   focusField.focus();
-                   alert(fields.join('\n'));
-                }
-                return bValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="date"
-            classname="org.apache.shale.validator.CommonsValidator"
-               method="isDate"
-         methodParams="java.lang.String,java.lang.String"
-              depends=""
-                  msg="errors.date"
-       jsFunctionName="DateValidations">
-
-         <javascript><![CDATA[
-            function validateDate(form) {
-               var bValid = true;
-               var focusField = null;
-               var i = 0;
-               var fields = new Array();
-               oDate = new DateValidations();
-               for (x in oDate) {
-                   var value = form[oDate[x][0]].value;
-                   var datePattern = oDate[x][2]("datePatternStrict");
-                   if ((form[oDate[x][0]].type == 'text' ||
-                        form[oDate[x][0]].type == 'textarea') &&
-                       (value.length > 0) &&
-                       (datePattern.length > 0)) {
-                     var MONTH = "MM";
-                     var DAY = "dd";
-                     var YEAR = "yyyy";
-                     var orderMonth = datePattern.indexOf(MONTH);
-                     var orderDay = datePattern.indexOf(DAY);
-                     var orderYear = datePattern.indexOf(YEAR);
-                     if ((orderDay < orderYear && orderDay > orderMonth)) {
-                         var iDelim1 = orderMonth + MONTH.length;
-                         var iDelim2 = orderDay + DAY.length;
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
-                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
-                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
-                         } else if (iDelim1 == orderDay) {
-                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
-                         } else if (iDelim2 == orderYear) {
-                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
-                         } else {
-                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
-                         }
-                         var matched = dateRegexp.exec(value);
-                         if(matched != null) {
-                            if (!isValidDate(matched[2], matched[1], matched[3])) {
-                               if (i == 0) {
-                                   focusField = form[oDate[x][0]];
-                               }
-                               fields[i++] = oDate[x][1];
-                               bValid =  false;
-                            }
-                         } else {
-                            if (i == 0) {
-                                focusField = form[oDate[x][0]];
-                            }
-                            fields[i++] = oDate[x][1];
-                            bValid =  false;
-                         }
-                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
-                         var iDelim1 = orderDay + DAY.length;
-                         var iDelim2 = orderMonth + MONTH.length;
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
-                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
-                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
-                         } else if (iDelim1 == orderMonth) {
-                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
-                         } else if (iDelim2 == orderYear) {
-                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
-                         } else {
-                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
-                         }
-                         var matched = dateRegexp.exec(value);
-                         if(matched != null) {
-                             if (!isValidDate(matched[1], matched[2], matched[3])) {
-                                 if (i == 0) {
-                                     focusField = form[oDate[x][0]];
-                                 }
-                                 fields[i++] = oDate[x][1];
-                                 bValid =  false;
-                              }
-                         } else {
-                             if (i == 0) {
-                                 focusField = form[oDate[x][0]];
-                             }
-                             fields[i++] = oDate[x][1];
-                             bValid =  false;
-                         }
-                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
-                         var iDelim1 = orderYear + YEAR.length;
-                         var iDelim2 = orderMonth + MONTH.length;
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
-                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
-                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
-                         } else if (iDelim1 == orderMonth) {
-                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
-                         } else if (iDelim2 == orderDay) {
-                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
-                         } else {
-                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
-                         }
-                         var matched = dateRegexp.exec(value);
-                         if(matched != null) {
-                             if (!isValidDate(matched[3], matched[2], matched[1])) {
-                                 if (i == 0) {
-                                     focusField = form[oDate[x][0]];
-                                  }
-                                  fields[i++] = oDate[x][1];
-                                  bValid =  false;
-                              }
-                          } else {
-                              if (i == 0) {
-                                  focusField = form[oDate[x][0]];
-                              }
-                              fields[i++] = oDate[x][1];
-                              bValid =  false;
-                          }
-                     } else {
-                         if (i == 0) {
-                             focusField = form[oDate[x][0]];
-                         }
-                         fields[i++] = oDate[x][1];
-                         bValid =  false;
-                     }
-                  }
-               }
-               if (fields.length > 0) {
-                  focusField.focus();
-                  alert(fields.join('\n'));
-               }
-               return bValid;
-            }
-
-       function isValidDate(day, month, year) {
-           if (month < 1 || month > 12) {
-                    return false;
-                }
-                if (day < 1 || day > 31) {
-                    return false;
-                }
-                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
-                    (day == 31)) {
-                    return false;
-                }
-                if (month == 2) {
-                    var leap = (year % 4 == 0 &&
-                               (year % 100 != 0 || year % 400 == 0));
-                    if (day>29 || (day == 29 && !leap)) {
-                        return false;
-                    }
-                }
-                return true;
-            }]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="intRange"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isInRange"
-         methodParams="int,int,int"
-              depends="integer"
-                  msg="errors.range">
-
-         <javascript><![CDATA[
-            function validateIntRange(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oRange = new intRange();
-                for (x in oRange) {
-                    var field = form[oRange[x][0]];
-                    
-                    if ((field.type == 'text' ||
-                         field.type == 'textarea') &&
-                        (field.value.length > 0)) {
-                        
-                        var iMin = parseInt(oRange[x][2]("min"));
-                        var iMax = parseInt(oRange[x][2]("max"));
-                        var iValue = parseInt(field.value);
-                        if (!(iValue >= iMin && iValue <= iMax)) {
-                            if (i == 0) {
-                                focusField = field;
-                            }
-                            fields[i++] = oRange[x][1];
-                            isValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                    focusField.focus();
-                    alert(fields.join('\n'));
-                }
-                return isValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="floatRange"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isInRange"
-         methodParams="double,double,double"
-              depends="float"
-                  msg="errors.range">
-
-         <javascript><![CDATA[
-            function validateFloatRange(form) {
-                var isValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oRange = new floatRange();
-                for (x in oRange) {
-                    var field = form[oRange[x][0]];
-                    
-                    if ((field.type == 'text' ||
-                         field.type == 'textarea') &&
-                        (field.value.length > 0)) {
-                        
-                        var fMin = parseFloat(oRange[x][2]("min"));
-                        var fMax = parseFloat(oRange[x][2]("max"));
-                        var fValue = parseFloat(field.value);
-                        if (!(fValue >= fMin && fValue <= fMax)) {
-                            if (i == 0) {
-                                focusField = field;
-                            }
-                            fields[i++] = oRange[x][1];
-                            isValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                    focusField.focus();
-                    alert(fields.join('\n'));
-                }
-                return isValid;
-            }]]>
-         </javascript>
-
-      </validator>
-
-      <validator name="creditCard"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isCreditCard"
-         methodParams="java.lang.String"
-              depends=""
-                  msg="errors.creditcard">
-
-         <javascript><![CDATA[
-            function validateCreditCard(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oCreditCard = new creditCard();
-                for (x in oCreditCard) {
-                    if ((form[oCreditCard[x][0]].type == 'text' ||
-                         form[oCreditCard[x][0]].type == 'textarea') &&
-                        (form[oCreditCard[x][0]].value.length > 0)) {
-                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {
-                            if (i == 0) {
-                                focusField = form[oCreditCard[x][0]];
-                            }
-                            fields[i++] = oCreditCard[x][1];
-                            bValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                    focusField.focus();
-                    alert(fields.join('\n'));
-                }
-                return bValid;
-            }
-
-            /**
-             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
-             */
-            function luhnCheck(cardNumber) {
-                if (isLuhnNum(cardNumber)) {
-                    var no_digit = cardNumber.length;
-                    var oddoeven = no_digit & 1;
-                    var sum = 0;
-                    for (var count = 0; count < no_digit; count++) {
-                        var digit = parseInt(cardNumber.charAt(count));
-                        if (!((count & 1) ^ oddoeven)) {
-                            digit *= 2;
-                            if (digit > 9) digit -= 9;
-                        };
-                        sum += digit;
-                    };
-                    if (sum == 0) return false;
-                    if (sum % 10 == 0) return true;
-                };
-                return false;
-            }
-
-            function isLuhnNum(argvalue) {
-                argvalue = argvalue.toString();
-                if (argvalue.length == 0) {
-                    return false;
-                }
-                for (var n = 0; n < argvalue.length; n++) {
-                    if ((argvalue.substring(n, n+1) < "0") ||
-                        (argvalue.substring(n,n+1) > "9")) {
-                        return false;
-                    }
-                }
-                return true;
-            }]]>
-         </javascript>
-
-      </validator>
-
-
-      <validator name="email"
-            classname="org.apache.commons.validator.GenericValidator"
-               method="isEmail"
-         methodParams="java.lang.String"
-              depends=""
-                  msg="errors.email">
-
-         <javascript><![CDATA[
-            function validateEmail(form) {
-                var bValid = true;
-                var focusField = null;
-                var i = 0;
-                var fields = new Array();
-                oEmail = new email();
-                for (x in oEmail) {
-                    if ((form[oEmail[x][0]].type == 'text' ||
-                         form[oEmail[x][0]].type == 'textarea') &&
-                        (form[oEmail[x][0]].value.length > 0)) {
-                        if (!checkEmail(form[oEmail[x][0]].value)) {
-                            if (i == 0) {
-                                focusField = form[oEmail[x][0]];
-                            }
-                            fields[i++] = oEmail[x][1];
-                            bValid = false;
-                        }
-                    }
-                }
-                if (fields.length > 0) {
-                    focusField.focus();
-                    alert(fields.join('\n'));
-                }
-                return bValid;
-            }
-
-            /**
-             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
-             * http://javascript.internet.com
-             */
-            function checkEmail(emailStr) {
-               if (emailStr.length == 0) {
-                   return true;
-               }
-               var emailPat=/^(.+)@(.+)$/;
-               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
-               var validChars="\[^\\s" + specialChars + "\]";
-               var quotedUser="(\"[^\"]*\")";
-               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
-               var atom=validChars + '+';
-               var word="(" + atom + "|" + quotedUser + ")";
-               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
-               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
-               var matchArray=emailStr.match(emailPat);
-               if (matchArray == null) {
-                   return false;
-               }
-               var user=matchArray[1];
-               var domain=matchArray[2];
-               if (user.match(userPat) == null) {
-                   return false;
-               }
-               var IPArray = domain.match(ipDomainPat);
-               if (IPArray != null) {
-                   for (var i = 1; i <= 4; i++) {
-                      if (IPArray[i] > 255) {
-                         return false;
-                      }
-                   }
-                   return true;
-               }
-               var domainArray=domain.match(domainPat);
-               if (domainArray == null) {
-                   return false;
-               }
-               var atomPat=new RegExp(atom,"g");
-               var domArr=domain.match(atomPat);
-               var len=domArr.length;
-               if ((domArr[domArr.length-1].length < 2) ||
-                   (domArr[domArr.length-1].length > 3)) {
-                   return false;
-               }
-               if (len < 2) {
-                   return false;
-               }
-               return true;
-            }]]>
-         </javascript>
-
-      </validator>
-
-   </global>
-
-</form-validation>
+<!DOCTYPE form-validation PUBLIC
+          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
+          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
+<form-validation>
+
+   <global>
+
+      <validator name="required"
+            classname="org.apache.shale.validator.CommonsValidator"
+               method="isSupplied"
+         methodParams="java.lang.String"
+                  msg="errors.required">
+
+         <javascript><![CDATA[
+            function validateRequired(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oRequired = new required();
+                for (x in oRequired) {
+                   var field = form[oRequired[x][0]];
+                   
+                    if (field.type == 'text' ||
+                        field.type == 'textarea' ||
+                        field.type == 'file' ||
+                        field.type == 'select-one' ||
+                        field.type == 'radio' ||
+                        field.type == 'password') {
+                        
+                        var value = '';
+                  // get field's value
+                  if (field.type == "select-one") {
+                     var si = field.selectedIndex;
+                     if (si >= 0) {
+                        value = field.options[si].value;
+                     }
+                  } else {
+                     value = field.value;
+                  }
+                        
+                        if (trim(value).length == 0) {
+                        
+                           if (i == 0) {
+                               focusField = field;
+                           }
+                           fields[i++] = oRequired[x][1];
+                           isValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return isValid;
+            }
+            
+            // Trim whitespace from left and right sides of s.
+            function trim(s) {
+                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
+            }
+            
+            ]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="minlength"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="minLength"
+         methodParams="java.lang.String,int"
+              depends=""
+                  msg="errors.minlength">
+
+         <javascript><![CDATA[
+            function validateMinLength(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oMinLength = new minlength();
+                for (x in oMinLength) {
+                    var field = form[oMinLength[x][0]];
+                    
+                    if (field.type == 'text' ||
+                        field.type == 'textarea') {
+                        
+                        var iMin = parseInt(oMinLength[x][2]("minlength"));
+                        if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
+                            if (i == 0) {
+                                focusField = field;
+                            }
+                            fields[i++] = oMinLength[x][1];
+                            isValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return isValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="maxlength"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="maxLength"
+         methodParams="java.lang.String,int"
+              depends=""
+                  msg="errors.maxlength">
+
+         <javascript><![CDATA[
+            function validateMaxLength(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oMaxLength = new maxlength();
+                for (x in oMaxLength) {
+                    var field = form[oMaxLength[x][0]];
+                    
+                    if (field.type == 'text' ||
+                        field.type == 'textarea') {
+                        
+                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));
+                        if (field.value.length > iMax) {
+                            if (i == 0) {
+                                focusField = field;
+                            }
+                            fields[i++] = oMaxLength[x][1];
+                            isValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return isValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="mask"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="matchRegexp"
+         methodParams="java.lang.String,java.lang.String"
+              depends=""
+                  msg="errors.invalid">
+
+         <javascript><![CDATA[
+            function validateMask(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oMasked = new mask();
+                for (x in oMasked) {
+                    var field = form[oMasked[x][0]];
+                    
+                    if ((field.type == 'text' || 
+                         field.type == 'textarea') && 
+                         (field.value.length > 0)) {
+                        
+                        if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
+                            if (i == 0) {
+                                focusField = field;
+                            }
+                            fields[i++] = oMasked[x][1];
+                            isValid = false;
+                        }
+                    }
+                }
+                
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return isValid;
+            }
+
+            function matchPattern(value, mask) {
+               return mask.exec(value);
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="byte"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isByte"
+         methodParams="java.lang.String"
+              depends=""
+                  msg="errors.byte"
+       jsFunctionName="ByteValidations">
+
+         <javascript><![CDATA[
+            function validateByte(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oByte = new ByteValidations();
+                for (x in oByte) {
+                   var field = form[oByte[x][0]];
+                   
+                    if (field.type == 'text' ||
+                        field.type == 'textarea' ||
+                        field.type == 'select-one' ||
+                  field.type == 'radio') {
+
+                  var value = '';
+                  // get field's value
+                  if (field.type == "select-one") {
+                     var si = field.selectedIndex;
+                     if (si >= 0) {
+                        value = field.options[si].value;
+                     }
+                  } else {
+                     value = field.value;
+                  }
+                        
+                        if (value.length > 0) {
+                            if (!isAllDigits(value)) {
+                                bValid = false;
+                                if (i == 0) {
+                                    focusField = field;
+                                }
+                                fields[i++] = oByte[x][1];
+
+                            } else {
+
+                               var iValue = parseInt(value);
+                               if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
+                                   if (i == 0) {
+                                       focusField = field;
+                                   }
+                                   fields[i++] = oByte[x][1];
+                                   bValid = false;
+                               }
+                            }
+                  }
+                  
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return bValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="short"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isShort"
+         methodParams="java.lang.String"
+              depends=""
+                  msg="errors.short"
+       jsFunctionName="ShortValidations">
+
+         <javascript><![CDATA[
+            function validateShort(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oShort = new ShortValidations();
+                for (x in oShort) {
+                   var field = form[oShort[x][0]];
+                   
+                    if (field.type == 'text' ||
+                        field.type == 'textarea' ||
+                        field.type == 'select-one' ||
+                        field.type == 'radio') {
+                        
+                        var value = '';
+                  // get field's value
+                  if (field.type == "select-one") {
+                     var si = field.selectedIndex;
+                     if (si >= 0) {
+                        value = field.options[si].value;
+                     }
+                  } else {
+                     value = field.value;
+                  }
+                        
+                        if (value.length > 0) {
+                            if (!isAllDigits(value)) {
+                                bValid = false;
+                                if (i == 0) {
+                                    focusField = field;
+                                }
+                                fields[i++] = oShort[x][1];
+
+                            } else {
+                        
+                               var iValue = parseInt(value);
+                               if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
+                                   if (i == 0) {
+                                       focusField = field;
+                                   }
+                                   fields[i++] = oShort[x][1];
+                                   bValid = false;
+                               }
+                          }
+                       }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return bValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="integer"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isInt"
+         methodParams="java.lang.String"
+              depends=""
+                  msg="errors.integer"
+       jsFunctionName="IntegerValidations">
+
+         <javascript><![CDATA[
+            function validateInteger(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oInteger = new IntegerValidations();
+                for (x in oInteger) {
+                   var field = form[oInteger[x][0]];
+
+                    if (field.type == 'text' ||
+                        field.type == 'textarea' ||
+                        field.type == 'select-one' ||
+                        field.type == 'radio') {
+                        
+                        var value = '';
+                  // get field's value
+                  if (field.type == "select-one") {
+                     var si = field.selectedIndex;
+                      if (si >= 0) {
+                         value = field.options[si].value;
+                      }
+                  } else {
+                     value = field.value;
+                  }
+                        
+                        if (value.length > 0) {
+                        
+                            if (!isAllDigits(value)) {
+                                bValid = false;
+                                if (i == 0) {
+                                   focusField = field;
+                               }
+                          fields[i++] = oInteger[x][1];
+                          
+                            } else {
+                               var iValue = parseInt(value);
+                               if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
+                                   if (i == 0) {
+                                       focusField = field;
+                                   }
+                                   fields[i++] = oInteger[x][1];
+                                   bValid = false;
+                              }
+                           }
+                       }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return bValid;
+            }
+
+            function isAllDigits(argvalue) {
+                argvalue = argvalue.toString();
+                var validChars = "0123456789";
+                var startFrom = 0;
+                if (argvalue.substring(0, 2) == "0x") {
+                   validChars = "0123456789abcdefABCDEF";
+                   startFrom = 2;
+                } else if (argvalue.charAt(0) == "0") {
+                   validChars = "01234567";
+                   startFrom = 1;
+                } else if (argvalue.charAt(0) == "-") {
+                    startFrom = 1;
+                }
+                
+                for (var n = startFrom; n < argvalue.length; n++) {
+                    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
+                }
+                return true;
+            }]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="float"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isDouble"
+         methodParams="double"
+              depends=""
+                  msg="errors.float"
+       jsFunctionName="FloatValidations">
+
+         <javascript><![CDATA[
+            function validateFloat(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oFloat = new FloatValidations();
+                for (x in oFloat) {
+                   var field = form[oFloat[x][0]];
+                   
+                    if (field.type == 'text' ||
+                        field.type == 'textarea' ||
+                        field.type == 'select-one' ||
+                        field.type == 'radio') {
+                        
+                       var value = '';
+                  // get field's value
+                  if (field.type == "select-one") {
+                     var si = field.selectedIndex;
+                     if (si >= 0) {
+                         value = field.options[si].value;
+                     }
+                  } else {
+                     value = field.value;
+                  }
+                        
+                        if (value.length > 0) {
+                            // remove '.' before checking digits
+                            var tempArray = value.split('.');
+                            var joinedString= tempArray.join('');
+
+                            if (!isAllDigits(joinedString)) {
+                                bValid = false;
+                                if (i == 0) {
+                                    focusField = field;
+                                }
+                                fields[i++] = oFloat[x][1];
+
+                            } else {
+                               var iValue = parseFloat(value);
+                               if (isNaN(iValue)) {
+                                   if (i == 0) {
+                                       focusField = field;
+                                   }
+                                   fields[i++] = oFloat[x][1];
+                                   bValid = false;
+                               }
+                            }
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                   focusField.focus();
+                   alert(fields.join('\n'));
+                }
+                return bValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="date"
+            classname="org.apache.shale.validator.CommonsValidator"
+               method="isDate"
+         methodParams="java.lang.String,java.lang.String"
+              depends=""
+                  msg="errors.date"
+       jsFunctionName="DateValidations">
+
+         <javascript><![CDATA[
+            function validateDate(form) {
+               var bValid = true;
+               var focusField = null;
+               var i = 0;
+               var fields = new Array();
+               oDate = new DateValidations();
+               for (x in oDate) {
+                   var value = form[oDate[x][0]].value;
+                   var datePattern = oDate[x][2]("datePatternStrict");
+                   if ((form[oDate[x][0]].type == 'text' ||
+                        form[oDate[x][0]].type == 'textarea') &&
+                       (value.length > 0) &&
+                       (datePattern.length > 0)) {
+                     var MONTH = "MM";
+                     var DAY = "dd";
+                     var YEAR = "yyyy";
+                     var orderMonth = datePattern.indexOf(MONTH);
+                     var orderDay = datePattern.indexOf(DAY);
+                     var orderYear = datePattern.indexOf(YEAR);
+                     if ((orderDay < orderYear && orderDay > orderMonth)) {
+                         var iDelim1 = orderMonth + MONTH.length;
+                         var iDelim2 = orderDay + DAY.length;
+                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
+                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
+                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
+                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
+                         } else if (iDelim1 == orderDay) {
+                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
+                         } else if (iDelim2 == orderYear) {
+                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
+                         } else {
+                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
+                         }
+                         var matched = dateRegexp.exec(value);
+                         if(matched != null) {
+                            if (!isValidDate(matched[2], matched[1], matched[3])) {
+                               if (i == 0) {
+                                   focusField = form[oDate[x][0]];
+                               }
+                               fields[i++] = oDate[x][1];
+                               bValid =  false;
+                            }
+                         } else {
+                            if (i == 0) {
+                                focusField = form[oDate[x][0]];
+                            }
+                            fields[i++] = oDate[x][1];
+                            bValid =  false;
+                         }
+                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
+                         var iDelim1 = orderDay + DAY.length;
+                         var iDelim2 = orderMonth + MONTH.length;
+                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
+                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
+                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
+                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
+                         } else if (iDelim1 == orderMonth) {
+                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
+                         } else if (iDelim2 == orderYear) {
+                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
+                         } else {
+                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
+                         }
+                         var matched = dateRegexp.exec(value);
+                         if(matched != null) {
+                             if (!isValidDate(matched[1], matched[2], matched[3])) {
+                                 if (i == 0) {
+                                     focusField = form[oDate[x][0]];
+                                 }
+                                 fields[i++] = oDate[x][1];
+                                 bValid =  false;
+                              }
+                         } else {
+                             if (i == 0) {
+                                 focusField = form[oDate[x][0]];
+                             }
+                             fields[i++] = oDate[x][1];
+                             bValid =  false;
+                         }
+                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
+                         var iDelim1 = orderYear + YEAR.length;
+                         var iDelim2 = orderMonth + MONTH.length;
+                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
+                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
+                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
+                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
+                         } else if (iDelim1 == orderMonth) {
+                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
+                         } else if (iDelim2 == orderDay) {
+                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
+                         } else {
+                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
+                         }
+                         var matched = dateRegexp.exec(value);
+                         if(matched != null) {
+                             if (!isValidDate(matched[3], matched[2], matched[1])) {
+                                 if (i == 0) {
+                                     focusField = form[oDate[x][0]];
+                                  }
+                                  fields[i++] = oDate[x][1];
+                                  bValid =  false;
+                              }
+                          } else {
+                              if (i == 0) {
+                                  focusField = form[oDate[x][0]];
+                              }
+                              fields[i++] = oDate[x][1];
+                              bValid =  false;
+                          }
+                     } else {
+                         if (i == 0) {
+                             focusField = form[oDate[x][0]];
+                         }
+                         fields[i++] = oDate[x][1];
+                         bValid =  false;
+                     }
+                  }
+               }
+               if (fields.length > 0) {
+                  focusField.focus();
+                  alert(fields.join('\n'));
+               }
+               return bValid;
+            }
+
+       function isValidDate(day, month, year) {
+           if (month < 1 || month > 12) {
+                    return false;
+                }
+                if (day < 1 || day > 31) {
+                    return false;
+                }
+                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
+                    (day == 31)) {
+                    return false;
+                }
+                if (month == 2) {
+                    var leap = (year % 4 == 0 &&
+                               (year % 100 != 0 || year % 400 == 0));
+                    if (day>29 || (day == 29 && !leap)) {
+                        return false;
+                    }
+                }
+                return true;
+            }]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="intRange"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isInRange"
+         methodParams="int,int,int"
+              depends="integer"
+                  msg="errors.range">
+
+         <javascript><![CDATA[
+            function validateIntRange(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oRange = new intRange();
+                for (x in oRange) {
+                    var field = form[oRange[x][0]];
+                    
+                    if ((field.type == 'text' ||
+                         field.type == 'textarea') &&
+                        (field.value.length > 0)) {
+                        
+                        var iMin = parseInt(oRange[x][2]("min"));
+                        var iMax = parseInt(oRange[x][2]("max"));
+                        var iValue = parseInt(field.value);
+                        if (!(iValue >= iMin && iValue <= iMax)) {
+                            if (i == 0) {
+                                focusField = field;
+                            }
+                            fields[i++] = oRange[x][1];
+                            isValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                    focusField.focus();
+                    alert(fields.join('\n'));
+                }
+                return isValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="floatRange"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isInRange"
+         methodParams="double,double,double"
+              depends="float"
+                  msg="errors.range">
+
+         <javascript><![CDATA[
+            function validateFloatRange(form) {
+                var isValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oRange = new floatRange();
+                for (x in oRange) {
+                    var field = form[oRange[x][0]];
+                    
+                    if ((field.type == 'text' ||
+                         field.type == 'textarea') &&
+                        (field.value.length > 0)) {
+                        
+                        var fMin = parseFloat(oRange[x][2]("min"));
+                        var fMax = parseFloat(oRange[x][2]("max"));
+                        var fValue = parseFloat(field.value);
+                        if (!(fValue >= fMin && fValue <= fMax)) {
+                            if (i == 0) {
+                                focusField = field;
+                            }
+                            fields[i++] = oRange[x][1];
+                            isValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                    focusField.focus();
+                    alert(fields.join('\n'));
+                }
+                return isValid;
+            }]]>
+         </javascript>
+
+      </validator>
+
+      <validator name="creditCard"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isCreditCard"
+         methodParams="java.lang.String"
+              depends=""
+                  msg="errors.creditcard">
+
+         <javascript><![CDATA[
+            function validateCreditCard(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oCreditCard = new creditCard();
+                for (x in oCreditCard) {
+                    if ((form[oCreditCard[x][0]].type == 'text' ||
+                         form[oCreditCard[x][0]].type == 'textarea') &&
+                        (form[oCreditCard[x][0]].value.length > 0)) {
+                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {
+                            if (i == 0) {
+                                focusField = form[oCreditCard[x][0]];
+                            }
+                            fields[i++] = oCreditCard[x][1];
+                            bValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                    focusField.focus();
+                    alert(fields.join('\n'));
+                }
+                return bValid;
+            }
+
+            /**
+             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
+             */
+            function luhnCheck(cardNumber) {
+                if (isLuhnNum(cardNumber)) {
+                    var no_digit = cardNumber.length;
+                    var oddoeven = no_digit & 1;
+                    var sum = 0;
+                    for (var count = 0; count < no_digit; count++) {
+                        var digit = parseInt(cardNumber.charAt(count));
+                        if (!((count & 1) ^ oddoeven)) {
+                            digit *= 2;
+                            if (digit > 9) digit -= 9;
+                        };
+                        sum += digit;
+                    };
+                    if (sum == 0) return false;
+                    if (sum % 10 == 0) return true;
+                };
+                return false;
+            }
+
+            function isLuhnNum(argvalue) {
+                argvalue = argvalue.toString();
+                if (argvalue.length == 0) {
+                    return false;
+                }
+                for (var n = 0; n < argvalue.length; n++) {
+                    if ((argvalue.substring(n, n+1) < "0") ||
+                        (argvalue.substring(n,n+1) > "9")) {
+                        return false;
+                    }
+                }
+                return true;
+            }]]>
+         </javascript>
+
+      </validator>
+
+
+      <validator name="email"
+            classname="org.apache.commons.validator.GenericValidator"
+               method="isEmail"
+         methodParams="java.lang.String"
+              depends=""
+                  msg="errors.email">
+
+         <javascript><![CDATA[
+            function validateEmail(form) {
+                var bValid = true;
+                var focusField = null;
+                var i = 0;
+                var fields = new Array();
+                oEmail = new email();
+                for (x in oEmail) {
+                    if ((form[oEmail[x][0]].type == 'text' ||
+                         form[oEmail[x][0]].type == 'textarea') &&
+                        (form[oEmail[x][0]].value.length > 0)) {
+                        if (!checkEmail(form[oEmail[x][0]].value)) {
+                            if (i == 0) {
+                                focusField = form[oEmail[x][0]];
+                            }
+                            fields[i++] = oEmail[x][1];
+                            bValid = false;
+                        }
+                    }
+                }
+                if (fields.length > 0) {
+                    focusField.focus();
+                    alert(fields.join('\n'));
+                }
+                return bValid;
+            }
+
+            /**
+             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
+             * http://javascript.internet.com
+             */
+            function checkEmail(emailStr) {
+               if (emailStr.length == 0) {
+                   return true;
+               }
+               var emailPat=/^(.+)@(.+)$/;
+               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
+               var validChars="\[^\\s" + specialChars + "\]";
+               var quotedUser="(\"[^\"]*\")";
+               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
+               var atom=validChars + '+';
+               var word="(" + atom + "|" + quotedUser + ")";
+               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
+               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
+               var matchArray=emailStr.match(emailPat);
+               if (matchArray == null) {
+                   return false;
+               }
+               var user=matchArray[1];
+               var domain=matchArray[2];
+               if (user.match(userPat) == null) {
+                   return false;
+               }
+               var IPArray = domain.match(ipDomainPat);
+               if (IPArray != null) {
+                   for (var i = 1; i <= 4; i++) {
+                      if (IPArray[i] > 255) {
+                         return false;
+                      }
+                   }
+                   return true;
+               }
+               var domainArray=domain.match(domainPat);
+               if (domainArray == null) {
+                   return false;
+               }
+               var atomPat=new RegExp(atom,"g");
+               var domArr=domain.match(atomPat);
+               var len=domArr.length;
+               if ((domArr[domArr.length-1].length < 2) ||
+                   (domArr[domArr.length-1].length > 3)) {
+                   return false;
+               }
+               if (len < 2) {
+                   return false;
+               }
+               return true;
+            }]]>
+         </javascript>
+
+      </validator>
+
+   </global>
+
+</form-validation>

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/validator-rules.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/rolodex/address.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml?rev=293241&r1=293240&r2=293241&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml (original)
+++ struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml Sun Oct  2 21:59:39 2005
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-
- Copyright 2004-2005 The Apache Software Foundation.
- 
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- 
-      http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-
-  <!DOCTYPE view PUBLIC
-      "-//Apache Software Foundation//DTD Shale Clay View Configuration 1.0//EN"
-      "http://struts.apache.org/dtds/shale-clay-config-1_0.dtd">
-
-<view>
-    <component jsfid="/rolodex/rolodex.xml" extends="clay">
-       <attributes>
-           <set name="clayJsfid" value="/rolodex/xhrolodex.html" />
-           <set name="managedBeanName" value="rolodex$xhrolodex" />
-       </attributes>
-    </component>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+ Copyright 2004-2005 The Apache Software Foundation.
+ 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ 
+      http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+  <!DOCTYPE view PUBLIC
+      "-//Apache Software Foundation//DTD Shale Clay View Configuration 1.0//EN"
+      "http://struts.apache.org/dtds/shale-clay-config-1_0.dtd">
+
+<view>
+    <component jsfid="/rolodex/rolodex.xml" extends="clay">
+       <attributes>
+           <set name="clayJsfid" value="/rolodex/xhrolodex.html" />
+           <set name="managedBeanName" value="rolodex$xhrolodex" />
+       </attributes>
+    </component>
 </view>

Propchange: struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/rolodex/rolodex.xml
------------------------------------------------------------------------------
    svn:keywords = author date id

Modified: struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html?rev=293241&r1=293240&r2=293241&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html (original)
+++ struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html Sun Oct  2 21:59:39 2005
@@ -1,10 +1,10 @@
-<html>
-<head><title>View Rolodex Example Source ("#{param['url']})</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-</head>
-<body>
-<h1>#{param['url']}</h1><a value="usecases.faces">Back</a>
-<hr><br>
-<pre><span jsfid="clayImport" url="#{param['url']}" escapeXml="true"/></pre>
-</body>
-</html>  
+<html>
+<head><title>View Rolodex Example Source ("#{param['url']})</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+</head>
+<body>
+<h1>#{param['url']}</h1><a value="usecases.faces">Back</a>
+<hr><br>
+<pre><span jsfid="clayImport" url="#{param['url']}" escapeXml="true"/></pre>
+</body>
+</html>  

Propchange: struts/shale/trunk/use-cases/src/web/rolodex/viewsource.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/xdocs/navigation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/xdocs/navigation.xml
------------------------------------------------------------------------------
    svn:keywords = author date id



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org