<!-- Begin -->
var lt_zero_mask = /^[^\-]*$/;
var prodcode_mask = /^[a-zA-Z_0-9\-]*$/;
var phone_mask = /^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$/;
var telphone_mask = /(^[0-9]{2}-[0-9]{8}$)|(^[0-9]{3}-[0-9]{6}$)|(^[0-9]{2}-[0-9]{7}$)|(^[0-9]{9,10}$)|(^[0-9]{2}-[0-9]{8}#[0-9]{2,5}$)|(^[0-9]{3}-[0-9]{6}#[0-9]{2,5}$)|(^[0-9]{2}-[0-9]{7}#[0-9]{2,5}$)|(^[0-9]{9,10}#[0-9]{2,5}$)/;
var zipcode_mask = /^\d{5}\d*$/;
var date_pattern = "yyyy/MM/dd/";
var chr_mask = /^[a-zA-Z0-9]{4,16}$/;
var chr_maskc = /^[\u4e00-\u9fa5]{2,60}$/;
var chr_maskc1= /^[\u4e00-\u9fa5]{4,60}$/;
var chr_mask1 = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
var chr_mask2 =	/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
var comphone = /^[0-9\-]{8,20}$/;
var phone_pre=/^\d{2}\d*$/;
var phone=/^\d{5}\d*$/;
var u_mask = /^[\u4E00-\u9FA5\sa-zA-Z]{2,30}$/;

var bCancel = false;

function checkValidateByAction(form,paramChkAry){
	if(validateThisFormByAction(form,paramChkAry)){
		form.submit();
	}else{
		return true;
	}
}


function validateThisFormByAction(form,paramChkAry) {                                                                   
    if (bCancel) {
		return true; 
    }else{ 
		var formValidationResult = validate(form,paramChkAry); 
		if(trim(formValidationResult) == ""){
			return true;
		}else{
			alert(formValidationResult);
		}
 	}
}  

function checkValidate(form){
	if(validateThisForm(form)){
		form.submit();
	}else{
		return true;
	}
}


function validateThisForm(form) {                                                                   
    if (bCancel) {
		return true; 
    }else{ 
		var formValidationResult = validate(form,chkArray); 
		if(trim(formValidationResult) == ""){
			return true;
		}else{
			alert(formValidationResult);
		}
 	}
}      

function validate(form,chkArray){
	var errMsg = "";
	if(chkArray.length<=0){
		errMsg = "chkArray didn't set";
		return errMsg;
	}
	
	for(i=0; i<chkArray.length; i++){
		var chkValue = chkArray[i];
		var execString = 'validate' + chkValue + '(form);';
		errMsg += eval(execString) + "\n";
		/*
		swicth (chkValue){
			case "FloatRange" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Byte" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "MaxLength" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Required" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Integer" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Range" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "CreditCard" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Date" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "IntRange" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Short" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Float" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Email" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "MinLength" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Mask" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			case "Number" :
				errMsg += eval("new validate" + chkValue + "(" + form + ")");
				break;
			default:
				break;	
		}
		*/
	}
	return errMsg;
}

function validateFloatRangeItem(field,fieldMsg,minFloat,maxFloat){

                var errMsg = "";
	            if ((field.type == 'text' ||
	                 field.type == 'textarea') &&
	                (field.value.length > 0)) {
	                
	                var fMin = parseFloat(minFloat);
	                var fMax = parseFloat(maxFloat);
	                var fValue = parseFloat(field.value);
	                if (!(fValue >= fMin && fValue <= fMax)) {
	                    errMsg = fieldMsg;
	                }
	            }

	            return errMsg;
}

function validateFloatRange(form) {
                var bValid = true;
                var focusField = null;
                var fields = new Array();
                var i = 0;
                oRange = new FloatRangeSets();
                var msg = "";
                for (x in oRange) {
                    var field = form[oRange[x][0]];
                    var fieldMsg = oRange[x][1];
                    var minFloat = oRange[x][2]("min");
                    var maxFloat = oRange[x][2]("max");
                    
                    var errMsg = validateFloatRangeItem(field,fieldMsg,minFloat,maxFloat);
                    if (errMsg != "") {
                        if (i == 0) {
                                focusField = field;
                        }
                        fields[i++] = errMsg;
                        isValid = false;
                    }
                }
                
                if (fields.length > 0) {
                    focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue =  msg;
                
                return rtValue;
            }
function validateByteItem(field,fieldMsg){

				var errMsg = "";
				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)) {
                            errMsg = fieldMsg;

                        } else {

                            var iValue = parseInt(value);
                            if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                                errMsg = fieldMsg;
                            }
                        }
					}
					
                }
	            
	            return errMsg;
}            
            
function validateByte(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oByte = new ByteSets();
                var msg = "";
                for (x in oByte) {
                	var field = form[oByte[x][0]];
                	var fieldMsg = oByte[x][1];
                	
                	var errMsg = validateByteItem(field,fieldMsg);
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        isValid = false;
                    }                	
                }                
                
                if (fields.length > 0) {
                   focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }
            
function validateMaxLengthItem(field,fieldMsg,maxLength){
				var errMsg = "";
                if (field.type == 'text' ||
                    field.type == 'textarea') {
                    
                    var iMax = parseInt(maxLength);
                    if (field.value.length > iMax) {
                        errMsg = fieldMsg;
                    }
                }
                return errMsg;
}            
function validateMaxLength(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMaxLength = new MaxLengthSets();
                var msg = "";
                for (x in oMaxLength) {
                    var field = form[oMaxLength[x][0]];
                    var fieldMsg = oMaxLength[x][1];
                    var maxLength = oMaxLength[x][2]("maxlength");
                    
                    var errMsg = validateMaxLengthItem(field,fieldMsg,maxLength);
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        isValid = false;
                    }    
                }
                
                if (fields.length > 0) {
                   focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }
function validateRequiredItem(field,fieldMsg) {
				var errMsg = "";
                if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'file' ||
                        field.type == 'select-one' ||
                        field.type == 'radio' ||
                        field.type == 'checkbox' ||
                        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 if (field.type == 'checkbox' || field.type == 'radio') {
      					    if (field.checked == true) {
              					value = "checked";
          					}else{
          						value = '';
          					}
                     	} else {
							value = field.value;
						}
                        
                        if (trim(value).length == 0) {
	                        errMsg = fieldMsg;
                        }
                } else if (field.type == "select-multiple") {
                         var numOptions = field.options.length;
                         lastSelected=-1;
                         for(loop=numOptions-1;loop>=0;loop--) {
                             if(field.options[loop].selected) {
                                 lastSelected = loop;
                                 value = field.options[loop].value;
                                 break;
                             }
                         }
                         if(lastSelected < 0 || trim(value).length == 0){
                         	errMsg = fieldMsg;
                         }    
            	} else if ((field.length > 0) && 
                		   (field[0].type == 'radio' || 
                		    field[0].type == 'checkbox')) {
	                    var value = '';
		                 isChecked=-1;
		                 for (loop=0;loop < field.length;loop++) {
		                     if (field[loop].checked) {
		                         isChecked=loop;
		                         break; // only one needs to be checked
		                     }
		                 }
		                 if (isChecked < 0) {
		                     errMsg = fieldMsg;
		                 }   
	           }
             return errMsg;
}            
            
function validateRequired(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new RequiredSets();
                var msg = "";
                for (x in oRequired) {
                	var field = form[oRequired[x][0]];
                	var fieldMsg = oRequired[x][1];
                	var errMsg = "";
                	
                	if(field.length > 0){
	                	if((field[0].type == 'checkbox' || field[0].type == 'radio' || field.type == 'select-one')){
	                		errMsg = validateRequiredItem(field,fieldMsg);
	                	}else{
	                		for(loop=0; loop<field.length; loop++){
	                			errMsg = validateRequiredItem(field[loop],fieldMsg);
	                			if(errMsg != ""){
	                				break;
	                			}
	                		}
                		}
                	}else{
                		errMsg = validateRequiredItem(field,fieldMsg);
                	}
                	
                    if (errMsg != "") {
                        if (i == 0) {
                           	focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                    	
                }
                
                if (fields.length > 0) {
                    if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }
            
            // Trim whitespace from left and right sides of s.
            function trim(s) {
                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
            }
function validateIntegerItem(field,fieldMsg){
				var errMsg = "";
				
				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)) {
                                errMsg = fieldMsg;
                            }else {
	                            var iValue = parseInt(value);
	                            if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
	                                errMsg = fieldMsg;
	                           }
                           }
                       }
                }
                //
				return errMsg;
}            
            
function validateInteger(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oInteger = new IntegerSets();
                var msg = "";
                for (x in oInteger) {
                	var field = form[oInteger[x][0]];
                	var fieldMsg = oInteger[x][1];
                	var errMsg = "";
                	
                	if(field.length > 0){
                		for(loop=0; loop<field.length; loop++){
                			errMsg = validateIntegerItem(field[loop],fieldMsg);
                			if(errMsg != ""){
                				break;
                			}
                		}
                	}else{
                		errMsg = validateIntegerItem(field,fieldMsg);
                	}
                	
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }        
                }
                
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

            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;
            }
function validateRange(form) {
                return validateIntRange(form);
            }

function validateCreditCardItem(field,fieldMsg){
				var errMsg = "";
			    if ((field.type == 'text' ||
                     field.type == 'textarea') &&
                    (field.value.length > 0)) {
                    if (!luhnCheck(field.value)) {
                        errMsg = fieldMsg;
                    }
                }
				return errMsg;
}            
            
            
function validateCreditCard(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oCreditCard = new CreditCardSets();
                var msg = "";
                for (x in oCreditCard) {
                	var field = form[oCreditCard[x][0]];
                	var fieldMsg = oCreditCard[x][1];
                	
                	var errMsg = validateCreditCard(field,fieldMsg);
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }       
                }
                if (fields.length > 0) {
                    if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

            /**
             * 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;
            }
function validateDateItem(field,fieldMsg,datePattern){
				var errMsg = "";
				var value = field.value;
				
                   if ((field.type == 'text' ||
                        field.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])) {
                               errMsg = fieldMsg;
                            }
                         } else {
                            errMsg = fieldMsg;
                         }
                     } 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])) {
                                 errMsg = fieldMsg;
                              }
                         } else {
                             errMsg = fieldMsg;
                         }
                     } 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])) {
                                 errMsg = fieldMsg;
                              }
                          } else {
                              errMsg = fieldMsg;
                          }
                     } else {
                         errMsg = fieldMsg;
                     }
                  }
				return errMsg;
}            
            
function validateDate(form) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               oDate = new DateSets();
                var msg = "";
               for (x in oDate) {
               		var field = form[oDate[x][0]];
               		var fieldMsg = oDate[x][1];
                    var datePattern = oDate[x][2]("datePatternStrict");
                    
                    var errMsg = validateDateItem(field,fieldMsg,datePattern);
                    if (errMsg != "") {
                        if (i == 0) {
                                focusField = field;
                        }
                            fields[i++] = errMsg;
                            bValid = false;
                    }   
               }
               if (fields.length > 0) {
                  if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

	    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;
            }
function validateIntRangeItem(field,fieldMsg,minInt,maxInt){
				var errMsg = "";
			    if ((field.type == 'text' ||
                     field.type == 'textarea') &&
                    (field.value.length > 0)) {
                    
                    var iMin = parseInt(minInt);
                    var iMax = parseInt(maxInt);
                    var iValue = parseInt(field.value);
                    if (!(iValue >= iMin && iValue <= iMax)) {
                        errMsg = fieldMsg;
                    }
                }
				return errMsg;
}            
            
function validateIntRange(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new IntRangeSets();
                var msg = "";
                for (x in oRange) {
                    var field = form[oRange[x][0]];
                    var fieldMsg = oRange[x][1];
                    var minInt = oRange[x][2]("min");
                    var maxInt = oRange[x][2]("max");
                    
                    var errMsg = validateIntRangeItem(field,fieldMsg,minInt,maxInt);
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }   
                }
                if (fields.length > 0) {
                    if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

function validateStringRangeItem(field,fieldMsg,minInt,maxInt){
				var errMsg = "";
			    if ((field.type == 'text' ||
                     field.type == 'textarea')) {
                    
                    var iMin = parseInt(minInt);
                    var iMax = parseInt(maxInt);
                    var iValue = field.value.length;
//					alert(iValue);
                    if (!(iValue >= iMin && iValue <= iMax)) {
                        errMsg = fieldMsg;
                    }
                }
				return errMsg;
}            
            
function validateStringRange(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new StringRangeSets();
                var msg = "";
                for (x in oRange) {
                    var field = form[oRange[x][0]];
                    var fieldMsg = oRange[x][1];
                    var minInt = oRange[x][2]("min");
                    var maxInt = oRange[x][2]("max");
                    
                    var errMsg = validateStringRangeItem(field,fieldMsg,minInt,maxInt);
                    if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }   
                }
                if (fields.length > 0) {
                    if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

function validateShort(field,fieldMsg){
				var errMsg;
				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)) {
	                        errMsg = fieldMsg;
	
	                    } else {
	                
	                        var iValue = parseInt(value);
	                        if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
	                            errMsg = fieldMsg;
	                        }
	                   }
	               }
            	}				
				return errMsg;
}            
            
function validateShort(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oShort = new ShortSets();
                var msg = "";
                for (x in oShort) {
                	var field = form[oShort[x][0]];
                	var fieldMsg = oShort[x][1];
                	
                	var errMsg = validateShortItem(field,fieldMsg);
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }   
                    
                }
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }
            
function validateFloatItem(field,fieldMsg){
				var errMsg = "";
				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)) {
                                errMsg = fieldMsg;
                            } else {
	                            var iValue = parseFloat(value);
	                            if (isNaN(iValue)) {
	                                errMsg = fieldMsg;
	                            }
                            }
                        }
                    }
				return errMsg;
}            
            
function validateFloat(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFloat = new FloatSets();
                var msg = "";
                for (x in oFloat) {
                	var field = form[oFloat[x][0]];
                	var fieldMsg = oFloat[x][1];
                	
                	var errMsg = validateFloatItem(field,fieldMsg);
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                   	
                }
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }
            
function validateEmailItem(field,fieldMsg){
				var errMsg = "";
				if ((field.type == 'text' ||
                     field.type == 'textarea') &&
                    (field.value.length > 0)) {
                    if (!checkEmail(field.value)) {
                        errMsg = fieldMsg;
                    }
                }
				return errMsg;
}            
            
function validateEmail(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oEmail = new EmailSets();
                var msg = "";
                for (x in oEmail) {
                	var field = form[oEmail[x][0]];
                	var fieldMsg = oEmail[x][1];
                	
                	var errMsg = validateEmailItem(field,fieldMsg);
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                     	
                }
                if (fields.length > 0) {
                    if(focusField[0] == null) focusField.focus();
                    msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

            /**
             * 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;
            }
            
function validateMaskItem(field,fieldMsg,maskPattern){
				var errMsg = "";
                if ((field.type == 'text' || 
                     field.type == 'textarea' ||
                     field.type == 'password') && 
                     (field.value.length > 0)) {
                    
                    if (!matchPattern(field.value, maskPattern)) {
                        errMsg = fieldMsg;
                    }
                }				
				return errMsg;
}            
            
function validateMask(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMasked = new MaskSets();
                var msg = "";
                var errMsg = "";
                for (x in oMasked) {
                    var field = form[oMasked[x][0]];
                    var fieldMsg = oMasked[x][1];
                    var maskPattern = oMasked[x][2]("mask");

                	if(field.length > 0){
                		for(loop=0; loop<field.length; loop++){
                			errMsg = validateMaskItem(field[loop],fieldMsg,maskPattern);
                			if(errMsg != ""){
                				break;
                			}
                		}
                	}else{
                		errMsg = validateMaskItem(field,fieldMsg,maskPattern);
                	}                    
                    
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                      
                }
                
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
            }

            function matchPattern(value, mask) {
               return mask.exec(value);
            }
function validateMinLength(field,fieldMsg,minLength){
				var errMsg = "";
                if (field.type == 'text' ||
                    field.type == 'textarea') {
                    
                    var iMin = parseInt(minLength);
                    if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
                        errMsg = fieldMsg;
                    }
                }				
				return errMsg;
}            
            
function validateMinLength(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                var msg = "";
                oMinLength = new MinLengthSets();
                for (x in oMinLength) {
                    var field = form[oMinLength[x][0]];
                    var fieldMsg = oMinLength[x][1];
                    var minLength = oMinLength[x][2]("minlength");
                    
                    var errMsg = validateMinLengthItem(field,fieldMsg,minLength);
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                           
                }
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
}   

function validateMoneyOverZeroItem(field,fieldMsg){
				var errMsg = "";
				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 (isNaN(value)) {
                            errMsg = fieldMsg;
                        }else{
                        	if(parseInt(value)<=0){
                        		errMsg = fieldMsg;
                        	}
                        }
                    }				
				return errMsg;
}     
                        
            
function validateMoneyOverZero(form){
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                var msg = "";
                oNumber = new MoneyOverZeroSets();
                var errMsg = "";
                for (x in oNumber) {
                    var field = form[oNumber[x][0]];
                    var fieldMsg = oNumber[x][1];
                	
                	if(field.length > 0){
	                	if((field[0].type == 'checkbox' || field[0].type == 'radio')){
	                		errMsg = validateMoneyOverZeroItem(field,fieldMsg);
	                	}else{
	                		for(loop=0; loop<field.length; loop++){
	                			errMsg = validateMoneyOverZeroItem(field[loop],fieldMsg);
	                			if(errMsg != ""){
	                				break;
	                			}
	                		}
                		}
                	}else{
                		errMsg = validateMoneyOverZeroItem(field,fieldMsg);
                	}
                	                    
                	if (errMsg != "") {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = errMsg;
                        bValid = false;
                    }                           
                }
                if (fields.length > 0) {
                   if(focusField[0] == null) focusField.focus();
                   msg = fields.join('\n');
                }
                
                var rtValue = msg;
                
                return rtValue;
}            


<!-- End --> 
