craigmcc    2002/07/13 18:33:03

  Modified:    conf/share validator-rules.xml
  Log:
  Cosmetic changes only (line endings, spacing, code formatting to standards,
  and so on) -- there should be no functional changes.
  
  Revision  Changes    Path
  1.4       +1 -1      jakarta-struts/conf/share/validator-rules.xml
  
  Index: validator-rules.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/conf/share/validator-rules.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- validator-rules.xml       25 Jun 2002 01:01:13 -0000      1.3
  +++ validator-rules.xml       14 Jul 2002 01:33:03 -0000      1.4
  @@ -1 +1 @@
  -<!--

   This file contains the default Struts Validator pluggable validator 

   
definitions.  It should be placed somewhere under /WEB-INF and 

   referenced in the 
struts-config.xml under the plug-in element 

   for the ValidatorPlugIn.



      
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

        
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
               
                                    /WEB-INF/validation.xml"/>

      </plug-in>

   

   These are the default error messages associated with        

   each validator 
defined in this file.  They should be        

   added to your projects 
ApplicationResources.properties      

   file or you can associate new ones by 
modifying the         

   pluggable validators msg attributes in this file.           


   

   # Struts Validator Error Messages

   errors.required={0} is required.

   
errors.minlength={0} can not be less than {1} characters.

   errors.maxlength={0} can 
not be greater than {1} characters.

   errors.invalid={0} is invalid.

   

   
errors.byte={0} must be an byte.

   errors.short={0} must be an short.

   
errors.integer={0} must be an integer.

   errors.long={0} must be an long.

   
errors.float={0} must be an float.

   errors.double={0} must be an double.

   

   
errors.date={0} is not a date.

   errors.range={0} is not in the range {1} through 
{2}.

   errors.creditcard={0} is not a valid credit card number.

   errors.email={0} 
is an invalid e-mail address.



-->

<form-validation>

   <global>

      <validator 
name="required"

                 classname="org.apache.struts.util.StrutsValidator"

 
                method="validateRequired"

                 
methodParams="java.lang.Object,

                               
org.apache.commons.validator.ValidatorAction,

                               
org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 msg="errors.required">

      
   <javascript><![CDATA[

            function validateRequired(form) {                
                                                       

                var bValid = 
true;

                var focusField = null;

                var i = 0;              
                                                                            

         
       var fields = new Array();                                                       
                    

                oRequired = new required();                      
                                                   

                                  
                                                                                  

   
             for (x in oRequired) {                                                    
                          

                    if ((form[oRequired[x][0]].type == 
'text' || form[oRequired[x][0]].type == 'textarea' || form[oRequired[x][0]].type == 
'select-one' || form[oRequired[x][0]].type == 'radio' || form[oRequired[x][0]].type == 
'password') && form[oRequired[x][0]].value == '') {

                       if (i == 
0)

                          focusField = form[oRequired[x][0]]; 

                   
       

                       fields[i++] = oRequired[x][1];

                       
 

                       bValid = false;                                              
                               

                    }                                 
                                                              

                }      
                                                                                       
      

                                                                               
                                    

                if (fields.length > 0) {

       
            focusField.focus();

                   alert(fields.join('\n'));          
                                                            

                }        
                                                                                       
    

                                                                                 
                                  

                return bValid;                     
                                                                 

            }]]>

  
       </javascript>

      </validator>



      <validator name="minlength"

        
         classname="org.apache.struts.util.StrutsValidator"

                 
method="validateMinLength"

                 methodParams="java.lang.Object,

         
                      org.apache.commons.validator.ValidatorAction,

                  
             org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       msg="errors.minlength">

         <javascript><![CDATA[

            function 
validateMinLength(form) {                                                              
                                      

                var bValid = true;

           
     var focusField = null;

                var i = 0;                                
                                                                                    

 
               var fields = new Array();                                               
                                                      

                oMinLength = 
new minlength();                                                                       
                                 

                                                    
                                                                                       
   

                for (x in oMinLength) {                                           
                                                               

                    
if (form[oMinLength[x][0]].type == 'text' || form[oMinLength[x][0]].type == 
'textarea') {   

                       var iMin = 
parseInt(oMinLength[x][2]("minlength"));

            

                       if 
(!(form[oMinLength[x][0]].value.length >= iMin)) {

                          if (i == 
0)

                             focusField = form[oMinLength[x][0]]; 

            

 
                         fields[i++] = oMinLength[x][1];

            

               
           bValid = false;                                                             
                                        

                       }                     
                                                                                       
          

                    }                                                      
                                                                   

                } 
                                                                                       
                                     

                                                
                                                                                       
       

                if (fields.length > 0) {

                   
focusField.focus();

                   alert(fields.join('\n'));                      
                                                                            

         
       }                                                                               
                                              

                                       
                                                                                       
                

                return bValid;                                       
                                                                         

            
}]]>

         </javascript>

      </validator>



      <validator name="maxlength"

                 classname="org.apache.struts.util.StrutsValidator"

                 
method="validateMaxLength"

                 methodParams="java.lang.Object,

         
                      org.apache.commons.validator.ValidatorAction,

                  
             org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       msg="errors.maxlength">

         <javascript><![CDATA[

            function 
validateMaxLength(form) {                                                              
                                      

                var bValid = true;

           
     var focusField = null;

                var i = 0;                                
                                                                                    

 
               var fields = new Array();                                               
                                                      

                oMaxLength = 
new maxlength();                                                                       
                                 

                                                    
                                                                                       
   

                for (x in oMaxLength) {                                           
                                                               

                    
if (form[oMaxLength[x][0]].type == 'text' || form[oMaxLength[x][0]].type == 
'textarea') {   

                       var iMax = 
parseInt(oMaxLength[x][2]("maxlength"));

            

                       if 
(!(form[oMaxLength[x][0]].value.length <= iMax)) {

                          if (i == 
0)

                             focusField = form[oMaxLength[x][0]]; 

            

 
                         fields[i++] = oMaxLength[x][1];

            

               
           bValid = false;                                                             
                                        

                       }                     
                                                                                       
          

                    }                                                      
                                                                   

                } 
                                                                                       
                                     

                                                
                                                                                       
       

                if (fields.length > 0) {

                   
focusField.focus();

                   alert(fields.join('\n'));                      
                                                                            

         
       }                                                                               
                                              

                                       
                                                                                       
                

                return bValid;                                       
                                                                         

            
}]]>

         </javascript>

      </validator>



      <validator name="mask"

     
            classname="org.apache.struts.util.StrutsValidator"

                 
method="validateMask"

                 methodParams="java.lang.Object,

              
                 org.apache.commons.validator.ValidatorAction,

                       
        org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       msg="errors.invalid">

         <javascript><![CDATA[

            function 
validateMask(form) {                                                                   
                                 

                var bValid = true;

                
var focusField = null;

                var i = 0;                                     
                                                                               

      
          var fields = new Array();                                                    
                                                 

                oMasked = new 
mask();                                                                                
                        

                                                             
                                                                                 

    
            for (x in oMasked) {                                                       
                                                   

                    if 
((form[oMasked[x][0]].type == 'text' || form[oMasked[x][0]].type == 'textarea' || 
form[oMasked[x][0]].type == 'password') && form[oMasked[x][0]].value.length > 0) {   

                       if (!matchPattern(form[oMasked[x][0]].value, 
oMasked[x][2]("mask"))) {

                          if (i == 0)

                     
        focusField = form[oMasked[x][0]]; 

            

                          
fields[i++] = oMasked[x][1];

                          bValid = false;                
                                                                                     

                       }                                                               
                                                       

                    }         
                                                                                       
                         

                }                                           
                                                                                  

   
                                                                                       
                                                    

                if 
(fields.length > 0) {

                   focusField.focus();

                   
alert(fields.join('\n'));                                                              
                                    

                }                                
                                                                                       
      

                                                                               
                                                               

                
return bValid;                                                                         
                                       

            }                                 
                                                                                       
         

                                                                            
                                                                  

            
function matchPattern(value, mask) {

               var bMatched = mask.exec(value);

                                                                                       
                                                       

               if(!bMatched) 
{                                                                                      
                          

                  return false;                            
                                                                                   

  
             }                                                                         
                                                     

                                
                                                                                       
                       

               return true;                                   
                                                                                

     
       }]]>

         </javascript>

      </validator>



      <validator 
name="byte"

                 classname="org.apache.struts.util.StrutsValidator"

     
            method="validateByte"

                 methodParams="java.lang.Object,

  
                             org.apache.commons.validator.ValidatorAction,

           
                    org.apache.commons.validator.Field,

                              
 org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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) {                                                             
                 

                    if ((form[oByte[x][0]].type == 'text' || 
form[oByte[x][0]].type == 'textarea' || form[oByte[x][0]].type == 'select-one' || 
form[oByte[x][0]].type == 'radio') && form[oByte[x][0]].value.length > 0) {   

       
                var iValue = parseInt(form[oByte[x][0]].value);

            

        
               if (!iValue || !(iValue >= -128 && iValue <= 127)) {

                  
        if (i == 0)

                             focusField = form[oByte[x][0]]; 

   
                          

                          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.struts.util.StrutsValidator"

                 
method="validateShort"

                 methodParams="java.lang.Object,

             
                  org.apache.commons.validator.ValidatorAction,

                      
         org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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) {                                                      
                        

                    if ((form[oShort[x][0]].type == 'text' 
|| form[oShort[x][0]].type == 'textarea' || form[oShort[x][0]].type == 'select-one' || 
form[oShort[x][0]].type == 'radio') && form[oShort[x][0]].value.length > 0) {   

     
                  var iValue = parseInt(form[oShort[x][0]].value);

            

     
                  if (!iValue || !(iValue >= -32768 && iValue <= 32767)) {

           
               if (i == 0)

                             focusField = 
form[oShort[x][0]]; 

                             

                          
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.struts.util.StrutsValidator"

                 
method="validateInteger"

                 methodParams="java.lang.Object,

           
                    org.apache.commons.validator.ValidatorAction,

                    
           org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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) {                           
                                                   

                    if 
((form[oInteger[x][0]].type == 'text' || form[oInteger[x][0]].type == 'textarea' || 
form[oInteger[x][0]].type == 'select-one' || form[oInteger[x][0]].type == 'radio') && 
form[oInteger[x][0]].value.length > 0) {   

                       var iValue = 
parseInt(form[oInteger[x][0]].value);

            

                       if 
(!iValue || !(iValue >= -2147483648 && iValue <= 2147483647)) {

                      
    if (i == 0)

                             focusField = form[oInteger[x][0]]; 

    
                         

                          fields[i++] = oInteger[x][1];

   
                        

                          bValid = false;

                  
     }

                    }                                                          
                                     

                }                               
                                                                    

            

   
             if (fields.length > 0) {

                   focusField.focus();

        
           alert(fields.join('\n'));                                                   
                   

                }                                                 
                                                  

                                   
                                                                                

     
           return bValid;                                                              
                        

            }]]>

         </javascript>

      </validator>

      

      <validator name="long"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateLong"

                 methodParams="java.lang.Object,

              
                 org.apache.commons.validator.ValidatorAction,

                       
        org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       msg="errors.long"

      />

      <validator name="float"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateFloat"

                 methodParams="java.lang.Object,

             
                  org.apache.commons.validator.ValidatorAction,

                      
         org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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) {                                                      
                        

                    if ((form[oFloat[x][0]].type == 'text' 
|| form[oFloat[x][0]].type == 'textarea' || form[oFloat[x][0]].type == 'select-one' || 
form[oFloat[x][0]].type == 'radio') && form[oFloat[x][0]].value.length > 0) {   

     
                  var iValue = parseFloat(form[oFloat[x][0]].value);

            

   
                    if (!iValue) {

                          if (i == 0)

            
                 focusField = form[oFloat[x][0]]; 

                             

    
                      fields[i++] = oFloat[x][1];

                           

       
                   bValid = false;

                       }

                    }    
                                                                                       
    

                }                                                                
                                   

            

                if (fields.length > 
0) {

                   focusField.focus();

                   
alert(fields.join('\n'));                                                              
        

                }                                                            
                                       

                                              
                                                                     

                
return bValid;                                                                         
             

            }]]>

         </javascript>

      </validator>



      
<validator name="double"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateDouble"

                 methodParams="java.lang.Object,

            
                   org.apache.commons.validator.ValidatorAction,

                     
          org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       msg="errors.double"/>



      <validator name="date"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateDate"

                 methodParams="java.lang.Object,

              
                 org.apache.commons.validator.ValidatorAction,

                       
        org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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="range"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateRange"

                 methodParams="java.lang.Object,

             
                  org.apache.commons.validator.ValidatorAction,

                      
         org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required,integer"

  
               msg="errors.range">

         <javascript><![CDATA[

            
function validateRange(form) {                                                         
                                           

                var bValid = true;

      
          var focusField = null;

                var i = 0;                           
                                                                                       
  

                var fields = new Array();                                          
                                                           

                oRange = 
new range();                                                                           
                             

                                                        
                                                                                      

                for (x in oRange) {                                                   
                                                       

                    if 
((form[oRange[x][0]].type == 'text' || form[oRange[x][0]].type == 'textarea') && 
form[oRange[x][0]].value.length > 0) {   

                       var iMin = 
parseInt(oRange[x][2]("min"));

                       var iMax = 
parseInt(oRange[x][2]("max"));

                       var iValue = 
parseInt(form[oRange[x][0]].value);

            

                       if (!(iValue 
>= iMin && iValue <= iMax)) {

                          if (i == 0)

                 
            focusField = form[oRange[x][0]]; 

            

                          
fields[i++] = oRange[x][1];

            

                          bValid = false;   
                                                                                       
           

                       }                                                  
                                                                    

                 
   }                                                                                   
                                      

                }                              
                                                                                       
        

                                                                             
                                                                 

                if 
(fields.length > 0) {

                   focusField.focus();

                   
alert(fields.join('\n'));                                                              
                                    

                }                                
                                                                                       
      

                                                                               
                                                               

                
return bValid;                                                                         
                                       

            }]]>

         </javascript>

    
  </validator>



      <validator name="creditCard"

                 
classname="org.apache.struts.util.StrutsValidator"

                 
method="validateCreditCard"

                 methodParams="java.lang.Object,

        
                       org.apache.commons.validator.ValidatorAction,

                 
              org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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.struts.util.StrutsValidator"

                 
method="validateEmail"

                 methodParams="java.lang.Object,

             
                  org.apache.commons.validator.ValidatorAction,

                      
         org.apache.commons.validator.Field,

                               
org.apache.struts.action.ActionErrors,

                               
javax.servlet.http.HttpServletRequest"

                 depends="required"

          
       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 ([EMAIL PROTECTED]), 

             * 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>

  \ No newline at end of file
  +<!--

   This file contains the default Struts Validator pluggable validator 
   
definitions.  It should be placed somewhere under /WEB-INF and 
   referenced in the 
struts-config.xml under the plug-in element 
   for the ValidatorPlugIn.

      
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
               
                                   /WEB-INF/validation.xml"/>
      </plug-in>

   
These are the default error messages associated with        
   each validator defined 
in this file.  They should be        
   added to your projects 
ApplicationResources.properties      
   file or you can associate new ones by 
modifying the         
   pluggable validators msg attributes in this file.           
   
   # Struts Validator Error Messages
   errors.required={0} is required.
   
errors.minlength={0} can not be less than {1} characters.
   errors.maxlength={0} can 
not be greater than {1} characters.
   errors.invalid={0} is invalid.
   
   
errors.byte={0} must be an byte.
   errors.short={0} must be an short.
   
errors.integer={0} must be an integer.
   errors.long={0} must be an long.
   
errors.float={0} must be an float.
   errors.double={0} must be an double.
   
   
errors.date={0} is not a date.
   errors.range={0} is not in the range {1} through 
{2}.
   errors.creditcard={0} is not a valid credit card number.
   errors.email={0} 
is an invalid e-mail address.

-->

<form-validation>

   <global>

      <validator 
name="required"
            classname="org.apache.struts.util.StrutsValidator"
        
       method="validateRequired"
         methodParams="java.lang.Object,
             
          org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
                  msg="errors.required">

      
   <javascript><![CDATA[
            function validateRequired(form) {
                
var bValid = true;
                var focusField = null;
                var i = 0;
  
              var fields = new Array();
                oRequired = new required();
   
             for (x in oRequired) {
                    if 
((form[oRequired[x][0]].type == 'text' ||
                         
form[oRequired[x][0]].type == 'textarea' ||
                         
form[oRequired[x][0]].type == 'select-one' ||
                         
form[oRequired[x][0]].type == 'radio' ||
                         
form[oRequired[x][0]].type == 'password') &&
                        
(form[oRequired[x][0]].value == '')) {
                        if (i == 0) {
          
                  focusField = form[oRequired[x][0]];
                        }
       
                 fields[i++] = oRequired[x][1];
                        bValid = 
false;
                    }
                }
                if (fields.length > 0) 
{
                   focusField.focus();
                   alert(fields.join('\n'));
 
               }
                return bValid;
            }]]>
         
</javascript>

      </validator>


      <validator name="minlength"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateMinLength"
         methodParams="java.lang.Object,
                   
    org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   msg="errors.minlength">

         <javascript><![CDATA[
            function 
validateMinLength(form) {
                var bValid = true;
                var 
focusField = null;
                var i = 0;
                var fields = new 
Array();
                oMinLength = new minlength();
                for (x in 
oMinLength) {
                    if (form[oMinLength[x][0]].type == 'text' ||
        
                form[oMinLength[x][0]].type == 'textarea') {
                        
var iMin = parseInt(oMinLength[x][2]("minlength"));
                        if 
(!(form[oMinLength[x][0]].value.length >= iMin)) {
                            if (i 
== 0) {
                                focusField = form[oMinLength[x][0]];
          
                  }
                            fields[i++] = oMinLength[x][1];
       
                     bValid = false;
                        }
                    }
  
              }
                if (fields.length > 0) {
                   
focusField.focus();
                   alert(fields.join('\n'));
                }
    
            return bValid;
            }]]>
         </javascript>

      </validator>


      <validator name="maxlength"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateMaxLength"
         methodParams="java.lang.Object,
                   
    org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   msg="errors.maxlength">

         <javascript><![CDATA[
            function 
validateMaxLength(form) {
                var bValid = true;
                var 
focusField = null;
                var i = 0;
                var fields = new 
Array();
                oMaxLength = new maxlength();
                for (x in 
oMaxLength) {
                    if (form[oMaxLength[x][0]].type == 'text' ||
        
                form[oMaxLength[x][0]].type == 'textarea') {
                        
var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                        if 
(!(form[oMaxLength[x][0]].value.length <= iMax)) {
                            if (i 
== 0) {
                                focusField = form[oMaxLength[x][0]];
          
                  }
                            fields[i++] = oMaxLength[x][1];
       
                     bValid = false;
                        }
                    }
  
              }
                if (fields.length > 0) {
                   
focusField.focus();
                   alert(fields.join('\n'));
                }
    
            return bValid;
            }]]>
         </javascript>

      </validator>


      <validator name="mask"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateMask"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   msg="errors.invalid">

         <javascript><![CDATA[
            function 
validateMask(form) {
                var bValid = true;
                var focusField 
= null;
                var i = 0;
                var fields = new Array();
          
      oMasked = new mask();
                for (x in oMasked) {
                    
if ((form[oMasked[x][0]].type == 'text' ||
                         
form[oMasked[x][0]].type == 'textarea' ||
                         
form[oMasked[x][0]].type == 'password') &&
                        
(form[oMasked[x][0]].value.length > 0)) {
                        if 
(!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
                   
         if (i == 0) {
                                focusField = 
form[oMasked[x][0]];
                            }
                            
fields[i++] = oMasked[x][1];
                            bValid = false;
              
          }
                    }
                }
                if (fields.length 
> 0) {
                   focusField.focus();
                   
alert(fields.join('\n'));
                }
                return bValid;
            
}

            function matchPattern(value, mask) {
               var bMatched = 
mask.exec(value);
               if (!bMatched) {
                   return false;
    
           }
               return true;
            }]]>
         </javascript>

     
 </validator>


      <validator name="byte"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateByte"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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) {
                    if ((form[oByte[x][0]].type == 
'text' ||
                         form[oByte[x][0]].type == 'textarea' ||
            
             form[oByte[x][0]].type == 'select-one' ||
                         
form[oByte[x][0]].type == 'radio') &&
                        
(form[oByte[x][0]].value.length > 0)) {
                        var iValue = 
parseInt(form[oByte[x][0]].value);
                        if (!iValue || !(iValue >= 
-128 && iValue <= 127)) {
                            if (i == 0)
                     
           focusField = form[oByte[x][0]]; 
                            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.struts.util.StrutsValidator"
               
method="validateShort"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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) {
                    if ((form[oShort[x][0]].type == 
'text' ||
                         form[oShort[x][0]].type == 'textarea' ||
           
              form[oShort[x][0]].type == 'select-one' ||
                         
form[oShort[x][0]].type == 'radio') &&
                        
(form[oShort[x][0]].value.length > 0)) {   
                        var iValue = 
parseInt(form[oShort[x][0]].value);
                        if (!iValue || !(iValue >= 
-32768 && iValue <= 32767)) {
                            if (i == 0) {
               
                 focusField = form[oShort[x][0]];
                            }
       
                     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.struts.util.StrutsValidator"
               
method="validateInteger"
         methodParams="java.lang.Object,
                     
  org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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) {
                    if 
((form[oInteger[x][0]].type == 'text' ||
                         
form[oInteger[x][0]].type == 'textarea' ||
                         
form[oInteger[x][0]].type == 'select-one' ||
                         
form[oInteger[x][0]].type == 'radio') &&
                        
(form[oInteger[x][0]].value.length > 0)) {
                        var iValue = 
parseInt(form[oInteger[x][0]].value);
                        if (!iValue || !(iValue 
>= -2147483648 && iValue <= 2147483647)) {
                            if (i == 0) {
  
                              focusField = form[oInteger[x][0]];
                      
      }
                            fields[i++] = oInteger[x][1];
                     
       bValid = false;
                       }
                    }
                
}
                if (fields.length > 0) {
                   focusField.focus();
     
              alert(fields.join('\n'));
                }
                return 
bValid;
            }]]>
         </javascript>

      </validator>


      <validator 
name="long"
            classname="org.apache.struts.util.StrutsValidator"
            
   method="validateLong"
         methodParams="java.lang.Object,
                     
  org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   msg="errors.long"/>


      <validator name="float"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateFloat"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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) {
                    if ((form[oFloat[x][0]].type == 
'text' ||
                         form[oFloat[x][0]].type == 'textarea' ||
           
              form[oFloat[x][0]].type == 'select-one' ||
                         
form[oFloat[x][0]].type == 'radio') &&
                        
(form[oFloat[x][0]].value.length > 0)) {   
                        var iValue = 
parseFloat(form[oFloat[x][0]].value);
                        if (!iValue) {
          
                  if (i == 0) {
                                focusField = 
form[oFloat[x][0]];
                            }
                            
fields[i++] = oFloat[x][1];
                            bValid = false;
               
         }
                    }
                }
                if (fields.length > 
0) {
                   focusField.focus();
                   
alert(fields.join('\n'));
                }
                return bValid;
            
}]]>
         </javascript>

      </validator>


      <validator name="double"
      
      classname="org.apache.struts.util.StrutsValidator"
               
method="validateDouble"
         methodParams="java.lang.Object,
                      
 org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   msg="errors.double"/>


      <validator name="date"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateDate"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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="range"
            
classname="org.apache.struts.util.StrutsValidator"
               
method="validateRange"
         methodParams="java.lang.Object,
                       
org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required,integer"
       
           msg="errors.range">

         <javascript><![CDATA[
            function 
validateRange(form) {
                var bValid = true;
                var 
focusField = null;
                var i = 0;
                var fields = new 
Array();
                oRange = new range();
                for (x in oRange) {
    
                if ((form[oRange[x][0]].type == 'text' ||
                         
form[oRange[x][0]].type == 'textarea') &&
                        
(form[oRange[x][0]].value.length > 0)) {
                        var iMin = 
parseInt(oRange[x][2]("min"));
                        var iMax = 
parseInt(oRange[x][2]("max"));
                        var iValue = 
parseInt(form[oRange[x][0]].value);
                        if (!(iValue >= iMin && 
iValue <= iMax)) {
                            if (i == 0) {
                          
      focusField = form[oRange[x][0]];
                            }
                  
          fields[i++] = oRange[x][1];
                            bValid = false;
     
                   }
                    }
                }
                if 
(fields.length > 0) {
                    focusField.focus();
                    
alert(fields.join('\n'));
                }
                return bValid;
            
}]]>
         </javascript>

      </validator>


      <validator name="creditCard"
  
          classname="org.apache.struts.util.StrutsValidator"
               
method="validateCreditCard"
         methodParams="java.lang.Object,
                  
     org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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.struts.util.StrutsValidator"
           
    method="validateEmail"
         methodParams="java.lang.Object,
                   
    org.apache.commons.validator.ValidatorAction,
                       
org.apache.commons.validator.Field,
                       
org.apache.struts.action.ActionErrors,
                       
javax.servlet.http.HttpServletRequest"
              depends="required"
               
   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 
([EMAIL PROTECTED]),
             * 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>

  \ No newline at end of file
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to