



    function validateFloatRange(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 

        oRange = eval('new ' + formName.value + '_floatRange()');
        for (x in oRange) {
            var field = form[oRange[x][0]];
            
            if ((field.type == 'hidden' ||
                field.type == 'text' || field.type == 'textarea') &&
                (field.value.length > 0)  &&
                 field.disabled == false) {
        
                var fMin = parseFloat(oRange[x][2]("min"));
                var fMax = parseFloat(oRange[x][2]("max"));
                var fValue = parseFloat(field.value);
                if (!(fValue >= fMin && fValue <= fMax)) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oRange[x][1]+":"+ oRange[x][0];
                    isValid = false;
                }
            }
        }
        if (fields.length > 0) {
            if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
            refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }

    function validateByte(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 
        oByte = eval('new ' + formName.value + '_ByteValidations()');

        for (x in oByte) {
            var field = form[oByte[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'select-one' ||
                field.type == 'radio')  &&
                field.disabled == false) {

                var value = '';
                if (field.type == "select-one") {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                } else {
                    value = field.value;
                }

                if (value.length > 0) {
                    if (!isAllDigits(value)) {
                        bValid = false;
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oByte[x][1]+":"+ oByte[x][0];

                    } else {

                        var iValue = parseInt(value);
                        if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oByte[x][1]+":"+ oByte[x][0];
                            bValid = false;
                        }
                    }
                }

            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }


    function validateMaxLength(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 

        oMaxLength = eval('new ' + formName.value + '_maxlength()');        
        for (x in oMaxLength) {
            var field = form[oMaxLength[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'password' ||
                field.type == 'textarea') &&
                field.disabled == false) {

                var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                if (field.value.length > iMax) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oMaxLength[x][1]+":"+ oMaxLength[x][0];
                    isValid = false;
                }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }



    function validateRequired(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");

        oRequired = eval('new ' + formName.value + '_required()');

        for (x in oRequired) {
            var field = form[oRequired[x][0]];

            if ((field) && (field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'file' ||
                field.type == 'checkbox' ||
                field.type == 'select-one' ||
                field.type == 'password') &&
                field.disabled == false) {

                var value = '';
                if (field.type == "select-one") {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                } else if (field.type == 'checkbox') {
                    if (field.checked) {
                        value = field.value;
                    }
                } else {
                    value = field.value;
                }

                if (trim(value).length == 0) {

                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oRequired[x][1]+":"+ oRequired[x][0];
                    isValid = false;
                }
            } else if ((field) && 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) {
                    if(i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oRequired[x][1]+":"+ oRequired[x][0];
                    isValid=false;
                }
            } else if ((field) && (field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) {
                isChecked=-1;
                for (loop=0;loop < field.length;loop++) {
                    if (field[loop].checked) {
                        isChecked=loop;
                        break; 
                    }
                }
                if (isChecked < 0) {
                    if (i == 0) {
                        focusField = field[0];
                    }
                    fields[i++] = oRequired[x][1]+":"+ oRequired[x][0];
                    isValid=false;
                }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }
    
    function trim(s) {
        return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
    }


    function validateInteger(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 

        oInteger = eval('new ' + formName.value + '_IntegerValidations()');
        for (x in oInteger) {
            var field = form[oInteger[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'select-one' ||
                field.type == 'radio') &&
                field.disabled == false) {

                var value = '';
                if (field.type == "select-one") {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                } else {
                    value = field.value;
                }

                if (value.length > 0) {

                    if (!isAllDigits(value)) {
                        bValid = false;
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oInteger[x][1]+":"+ oInteger[x][0];

                    } else {
                        var iValue = parseInt(value);
                        if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oInteger[x][1]+":"+ oInteger[x][0];
                            bValid = false;
                       }
                   }
               }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }

    function isAllDigits(argvalue) {
        argvalue = argvalue.toString();
        var validChars = "0123456789";
        var startFrom = 0;
        if (argvalue.substring(0, 2) == "0x") {
           validChars = "0123456789abcdefABCDEF";
           startFrom = 2;
        } else if (argvalue.charAt(0) == "0") {
           validChars = "01234567";
           startFrom = 1;
        } else if (argvalue.charAt(0) == "-") {
            startFrom = 1;
        }

        for (var n = startFrom; n < argvalue.length; n++) {
            if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
        }
        return true;
    }

	function isAllDigitsNew(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 = "0123456789";
           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 emailValidation(form) 
{
document.getElementById("globalError").style.display = 'none';
document.getElementById("recipientTwoEmailDifferent").style.display = 'none'; 	
document.getElementById("recipientThreeEmailDifferent").style.display = 'none'; 	     
document.getElementById("senderNameError").style.display = 'none'; 
document.getElementById("recipientOneEmailRequired").style.display = 'none'; 
document.getElementById("recipientOneEmailFormat").style.display = 'none';   
document.getElementById("recipientTwoEmailFormat").style.display = 'none';   
document.getElementById("recipientThreeEmailFormat").style.display = 'none';   
 if((null != document.getElementById("recipientOneNameId")) || (null != document.getElementById("recipientTwoNameId")) || (null != document.getElementById("recipientThreeNameId"))){           

document.getElementById("recipientNameRequired1").style.display = 'none'; 
document.getElementById("recipientNameRequired2").style.display = 'none'; 
document.getElementById("recipientNameRequired3").style.display = 'none'; 
document.getElementById("recipientOneNameRequired").style.display = 'none'; 

var nameOne= document.getElementById("recipientOneNameId").value;
var nameTwo=document.getElementById("recipientTwoNameId").value;
var nameThree=document.getElementById("recipientThreeNameId").value;
}

document.getElementById("recipientEmailRequired1").style.display = 'none'; 
document.getElementById("recipientEmailRequired2").style.display = 'none'; 
document.getElementById("recipientEmailRequired3").style.display = 'none'; 
 
var senderName=document.getElementById("senderNameId").value;	
var emailOne= document.getElementById("recipientOneEmailId").value;
var emailTwo=document.getElementById("recipientTwoEmailId").value;
var emailThree=document.getElementById("recipientThreeEmailId").value;	
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	
var sameEmailFlag=true;
var notNullSenderNameFlag=true;
var notNullEmailFlag=true;
var emailFormatFlag=true;
var nameRequiredFlag=true;
var notNullNameFlag=true;
var emailRequiredFlag=true;


	if (emailTwo != "Email")
	 { 
	 if (emailTwo == emailOne)
	   { 
	      document.getElementById("recipientTwoEmailDifferent").style.display = 'block'; 	   
	     sameEmailFlag=false;
	     }
	 }
	 
	  if(emailThree != "Email")
	  { 
	     if (emailThree == emailTwo)
	   {  
	      document.getElementById("recipientThreeEmailDifferent").style.display = 'block';  	     
	       sameEmailFlag=false;
	     }
	     if(emailThree == emailOne){  
	      document.getElementById("recipientThreeEmailDifferent").style.display = 'block';  	     
	       sameEmailFlag=false;
	     }
	   
	    }
	
	
	
			
	if(null == senderName || senderName == "")
    	{  document.getElementById("senderNameError").style.display = 'block'; 
    		notNullSenderNameFlag=false;
    		} 
    
        
        
        
    if(emailOne == "Email" && emailTwo == "Email" && emailThree == "Email")
         {
           document.getElementById("recipientOneEmailRequired").style.display = 'block';  
           notNullEmailFlag=false;
           }
           
           
                
           
     if(emailOne != "Email")      
          {
          
	        if(emailOne.match(emailExp)){
		          document.getElementById("recipientOneEmailFormat").style.display = 'none';		       
	                  }else{
		          document.getElementById("recipientOneEmailFormat").style.display = 'block'; 
	              emailFormatFlag=false;
	             }
          
          }  
      
      if(emailTwo != "Email")      
          {
         
	        if(emailTwo.match(emailExp)){
		          document.getElementById("recipientTwoEmailFormat").style.display = 'none';  
		          
	                  }else{
		          document.getElementById("recipientTwoEmailFormat").style.display = 'block'; 
		          
		          		          emailFormatFlag=false;
	             }
          
          }  
            
       if(emailThree != "Email")      
          {
          
	        if(emailThree.match(emailExp)){
		          document.getElementById("recipientThreeEmailFormat").style.display = 'none';   
		          
	                  }else{
		          document.getElementById("recipientThreeEmailFormat").style.display = 'block'; 
		          
	               emailFormatFlag=false;
	             }
          
          }  
               
               
  if((null != document.getElementById("recipientOneNameId")) || (null != document.getElementById("recipientTwoNameId")) || (null != document.getElementById("recipientThreeNameId"))){           
    
    if (emailOne != "Email")
	 {
	 if (nameOne == "Name")
	   {
	      document.getElementById("recipientNameRequired1").style.display = 'block'; 
	      	     
	     nameRequiredFlag=false;
	     }
	 }
	  if(emailTwo != "Email")
	  { 
	     if (nameTwo == "Name")
	   {
	      document.getElementById("recipientNameRequired2").style.display = 'block'; 	    
	        
	       nameRequiredFlag=false;
	     }
	   }
	    if(emailThree != "Email")
	  { 
	     if (nameThree == "Name")
	   {
	      document.getElementById("recipientNameRequired3").style.display = 'block'; 	     
	      
	       nameRequiredFlag=false;
	     }
	   }
	 
	  if (nameOne != "Name")
	   {
	     if (emailOne == "Email")
	     {
	      document.getElementById("recipientEmailRequired1").style.display = 'block'; 	 
	         
	     emailRequiredFlag=false;
	     }
	 }
	  if(nameTwo != "Name")
	  { 
	     if (emailTwo == "Email")
	   {
	      document.getElementById("recipientEmailRequired2").style.display = 'block'; 	  
	          
	       emailRequiredFlag=false;
	     }
	   }
	    if(nameThree != "Name")
	  { 
	     if (emailThree == "Email")
	   {
	      document.getElementById("recipientEmailRequired3").style.display = 'block';
	        	     
	       emailRequiredFlag=false;
	     }
	   }
	 
	  if(nameOne == "Name" && nameTwo == "Name" && nameThree == "Name")
         {
           document.getElementById("recipientOneNameRequired").style.display = 'block'; 
            
           notNullNameFlag=false;
           }
                  
	 
	 
	  }
	   
    var result = sameEmailFlag && emailFormatFlag && notNullSenderNameFlag && notNullEmailFlag && nameRequiredFlag && emailRequiredFlag && notNullNameFlag;
   	
   	if (result) {
   		document.getElementById("globalError").style.display = 'none'; 
   	} else {
   		document.getElementById("globalError").style.display = 'block'; 
   	}
   	
   
    return result;
   
}


    function validateCreditCard(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");

        oCreditCard = eval('new ' + formName.value + '_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)  &&
                 form[oCreditCard[x][0]].disabled == false) {
                if (!luhnCheck(form[oCreditCard[x][0]].value)) {
                    if (i == 0) {
                        focusField = form[oCreditCard[x][0]];
                    }
                    fields[i++] = oCreditCard[x][1]+":"+ oCreditCard[x][0];
                    bValid = false;
                }
            }
        }
        if (fields.length > 0) {
            if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
            refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }

    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 validateDate(form) {
       var bValid = true;
       var focusField = null;
       var i = 0;
       var fields = new Array();
       var formName = form.getAttributeNode("name"); 

       oDate = eval('new ' + formName.value + '_DateValidations()');

       for (x in oDate) {
           var field = form[oDate[x][0]];
           var value = field.value;
           var datePattern = oDate[x][2]("datePatternStrict");
           if (datePattern == null)
               datePattern = oDate[x][2]("datePattern");
           if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea') &&
               (value.length > 0) && (datePattern.length > 0) &&
                field.disabled == false) {
                 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 = field;
                           }
                           fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                           bValid =  false;
                        }
                     } else {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                        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 = field;
                             }
                             fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                             bValid =  false;
                          }
                     } else {
                         if (i == 0) {
                             focusField = field;
                         }
                         fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                         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 = field;
                             }
                             fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                             bValid =  false;
                         }
                     } else {
                          if (i == 0) {
                              focusField = field;
                          }
                          fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                          bValid =  false;
                     }
                 } else {
                     if (i == 0) {
                         focusField = field;
                     }
                     fields[i++] = oDate[x][1]+":"+ oDate[x][0];
                     bValid =  false;
                 }
          }
       }
       if (fields.length > 0) {
          if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
          refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
       }
       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;
    }


    function validateIntRange(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 

        oRange = eval('new ' + formName.value + '_intRange()');        
        for (x in oRange) {
            var field = form[oRange[x][0]];
            if (field.disabled == false)  {
                var value = '';
                if (field.type == 'hidden' ||
                    field.type == 'text' || field.type == 'textarea' ||
                    field.type == 'radio' ) {
                    value = field.value;
                }
                if (field.type == 'select-one') {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                }
                if (value.length > 0) {
                    var iMin = parseInt(oRange[x][2]("min"));
                    var iMax = parseInt(oRange[x][2]("max"));
                    var iValue = parseInt(value);
                    if (!(iValue >= iMin && iValue <= iMax)) {
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oRange[x][1]+":"+ oRange[x][0];
                        isValid = false;
                    }
                }
            }
        }
        if (fields.length > 0) {
            if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
            refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }


    function validateShort(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");

        oShort = eval('new ' + formName.value + '_ShortValidations()');

        for (x in oShort) {
            var field = form[oShort[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'select-one' ||
                field.type == 'radio')  &&
                field.disabled == false) {

                var value = '';
                if (field.type == "select-one") {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                } else {
                    value = field.value;
                }

                if (value.length > 0) {
                    if (!isAllDigits(value)) {
                        bValid = false;
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oShort[x][1]+":"+ oShort[x][0];

                    } else {

                        var iValue = parseInt(value);
                        if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oShort[x][1]+":"+ oShort[x][0];
                            bValid = false;
                        }
                   }
               }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }


    function validateFloat(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
         var formName = form.getAttributeNode("name");

        oFloat = eval('new ' + formName.value + '_FloatValidations()');
        for (x in oFloat) {
        	var field = form[oFloat[x][0]];
        	
            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'select-one' ||
                field.type == 'radio') &&
                field.disabled == false) {
        
            	var 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) {
                    var tempArray = value.split('.');
                    var zeroIndex = 0;
                    var joinedString= tempArray.join('');
                    while (joinedString.charAt(zeroIndex) == '0') {
                        zeroIndex++;
                    }
                    var noZeroString = joinedString.substring(zeroIndex,joinedString.length);

                    if (!isAllDigits(noZeroString)) {
                        bValid = false;
                        if (i == 0) {
                            focusField = field;
                        }
                        fields[i++] = oFloat[x][1]+":"+ oFloat[x][0];

                    } else {
	                var iValue = parseFloat(value);
	                if (isNaN(iValue)) {
	                    if (i == 0) {
	                        focusField = field;
	                    }
	                    fields[i++] = oFloat[x][1]+":"+ oFloat[x][0];
	                    bValid = false;
	                }
                    }
                }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }


    function validateEmail(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");


        oEmail = eval('new ' + formName.value + '_email()');

        for (x in oEmail) {
            var field = form[oEmail[x][0]];
            if ((field.type == 'hidden' || 
                 field.type == 'text' ||
                 field.type == 'textarea') &&
                (field.value.length > 0) &&
                field.disabled == false) {
                if (!checkEmail(field.value)) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oEmail[x][1]+":"+ oEmail[x][0];
                    bValid = false;
                }
            }
        }
        if (fields.length > 0) {
            if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
            refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return bValid;
    }

    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 validateMask(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name"); 

        oMasked = eval('new ' + formName.value + '_mask()');      
        for (x in oMasked) {
            var field = form[oMasked[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                 field.type == 'textarea' ||
				 field.type == 'file') &&
                 (field.value.length > 0) &&
                 field.disabled == false) {

                if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oMasked[x][1]+":"+ oMasked[x][0];
                    isValid = false;
                }
            }
        }

        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }

    function matchPattern(value, mask) {
       return mask.exec(value);
    }


    function validateMinLength(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");


        oMinLength = eval('new ' + formName.value + '_minlength()');

        for (x in oMinLength) {
            var field = form[oMinLength[x][0]];

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'password' ||
                field.type == 'textarea') &&
                field.disabled == false) {

                var iMin = parseInt(oMinLength[x][2]("minlength"));
                if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oMinLength[x][1]+":"+ oMinLength[x][0];
                    isValid = false;
                }
            }
        }
        if (fields.length > 0) {
           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}
           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
        }
        return isValid;
    }






	function validateValidWhen(form) {
	    var isValid = true;
        var focusField = null;
        var i = 0;
		var index=0;
        var fields = new Array();
		var validWhenResult = true;
		var formName = form.getAttributeNode("name"); 		
		var isRadioType=null;
		var flagRadioSelected=null;
		var separatorEquals=null;
		var singleRadioFlag='OFF';
		var arrOfTrimmedTokens =new Array();		
      	oValidWhen = eval('new ' + formName.value + '_validwhen()');
        for (var x in oValidWhen) {
			       			
            var field = form[oValidWhen[x][0]];			
        
	        if(null != field){
				if ((field.type == 'text' ||
				 field.type == 'textarea' || 
				 field.type == 'select-one'||
				 field.type == 'radio'||
				 field.type == 'textarea'||
				 field.type == 'hidden'||
				 field.type == 'checkbox'||	
				 field.type == 'password')&&			 
				 field.disabled == false){
					validWhenResult=true;
					var lineEndLength = oValidWhen[x][2]("test");			 
					var arrTokens = lineEndLength.split("==");
					if(null==arrTokens[1]){
						var arrTokens = lineEndLength.split("!=");
						separatorEquals=false;					
					}else{
						separatorEquals=true;					
					}
					tokenIndex1=arrTokens[0].lastIndexOf("(");
					tokenIndex2=arrTokens[1].lastIndexOf(")");
					
					FirstToken=arrTokens[0].substring(tokenIndex1+1);
					SecondToken=arrTokens[1].substring(1,tokenIndex2);
	
					TrimmedFirstToken=trimAll(FirstToken);					
					TrimmedSecondToken=trimAll(SecondToken);
															
					if(null != form[TrimmedFirstToken]){
						if((form[TrimmedFirstToken].type=='text') && (form[TrimmedSecondToken].type=='text') || (form[TrimmedFirstToken].type=='password') && (form[TrimmedSecondToken].type=='password')){
							oprnd1=form[TrimmedFirstToken].value;
							oprnd2=form[TrimmedSecondToken].value;
							validWhenResult=eval(oprnd1==oprnd2);
						}else if(form[TrimmedFirstToken].type=='hidden'){
							if(form[TrimmedFirstToken].value==TrimmedSecondToken && field.value==""){
								validWhenResult=false;
							}else{
								validWhenResult=true;
							}
						}else{	
	
							for(index=0;index<form[TrimmedFirstToken].length;index++){
								FirstToken=arrTokens[0].substring(tokenIndex1+1);
								SecondToken=arrTokens[1].substring(1,tokenIndex2);
								if(form[TrimmedFirstToken][index].type=='radio'){
									isRadioType='ON';
									if(form[TrimmedFirstToken][index].checked==true){
										flagRadioSelected='ON';
										break;
									}else{
										flagRadioSelected='OFF';
									}
								}
							}

							if( form[TrimmedFirstToken].type=='radio' && null==form[TrimmedFirstToken].length && form[TrimmedFirstToken].checked==true){
								isRadioType='ON';
								flagRadioSelected='ON';
								singleRadioFlag='ON';
							}else if( form[TrimmedFirstToken].type=='radio' && null==form[TrimmedFirstToken].length && form[TrimmedFirstToken].checked==false){
								isRadioType='ON';
								flagRadioSelected='OFF';
								singleRadioFlag='ON';
							}
		

							if(form[TrimmedFirstToken].type == 'select-one' || isRadioType=='ON' || (form[TrimmedFirstToken].type == 'checkbox')){
							
									if(((form[TrimmedFirstToken].value==0 || flagRadioSelected=='OFF') && separatorEquals==true) ||((form[TrimmedFirstToken].checked==true) && separatorEquals==true && singleRadioFlag=='OFF') ||((form[TrimmedFirstToken].value==0 || flagRadioSelected=='ON') && (separatorEquals==false) && (form[TrimmedFirstToken][index].value == TrimmedSecondToken)  ) ){
										if((field.value=="" && field.type=='text') || (field.value==0 && field.type=='select-one') || (field.value=="" && field.type=='password') || (field.value=="" && field.type=='textarea')){
											validWhenResult=false;										
										}else{
											validWhenResult=true;
										}
									}
									else if((form[TrimmedFirstToken].type == 'select-one')&&(form[TrimmedFirstToken].value!=0)){
									if(TrimmedSecondToken!=null){
										if(TrimmedSecondToken==form[TrimmedFirstToken].value){
										if(field.value==0 && field.type=='select-one')
										validWhenResult=false;		
										else
										validWhenResult=true;
											}
										}
									}
								}
							}
					}else{
							if((field.value=="" && field.type=='text') || (field.value==0 && field.type=='select-one') || (field.value=="" && field.type=='password')){
								validWhenResult=false;										
							}else{
								validWhenResult=true;
							}
									
					}
					
					if(validWhenResult==false){
						if (i == 0) {
							focusField = field;						
						}
						fields[i++] = oValidWhen[x][1]+":"+ oValidWhen[x][0];
						isValid = false;
					}
				}
			}
		}
				
	   if (fields.length > 0) {
	   if(focusField.style.display!=''){
	           if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}}		   
	           refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
	        }
	        return isValid;
	}


function trimAll(sString) 
	{
		while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
	return sString;
	}

function validateRequiredIfNull(form) {
	    var isValid = true;
        var focusField = null;
        var i = 0;
		var index=0;
        var fields = new Array();
		var requiredIfResult = true;
		var formName = form.getAttributeNode("name"); 		
		var isRadioType=null;
		var flagRadioSelected=null;
		var separatorEquals=null;
		var singleRadioFlag='OFF';
		var arrOfTrimmedTokens =new Array();		
      	oRequiredIf = eval('new ' + formName.value + '_requiredIfNull()');
        for (var x in oRequiredIf) {
			       			
            var field = form[oRequiredIf[x][0]];			
        
	        if(null != field){
				if ((field.type == 'text' ||
				 field.type == 'textarea' || 
				 field.type == 'select-one'||
				 field.type == 'radio'||
				 field.type == 'textarea'||
				 field.type == 'hidden'||
				 field.type == 'checkbox'||	
				 field.type == 'password')&&			 
				 field.disabled == false){
					requiredIfResult=true;
					var lineEndLength = oRequiredIf[x][2]("test");			 
					var arrTokens = lineEndLength;
					
					if( (field && (field.value == null || trimAll(field.value) == "") ) && arrTokens && (form[arrTokens])){
						if((form[arrTokens]).value == null || trimAll(form[arrTokens].value) == "")
						{
						requiredIfResult = false;
						if (i == 0) {
						focusField = field;						
						}
						fields[i++] = oRequiredIf[x][1]+":"+ oRequiredIf[x][0];
						break;
						}
					}
				}
			}
		}
		
		if (fields.length > 0) {
	   	if(focusField.style.display!=''){
	    if (focusField != null && focusField.type != "hidden" && !focusField.disabled && focusField.style.display != "none")
{
focusField.focus();
}}		   
refreshScreen();
for (var x=0 ;x<fields.length;x++)
{
var tempFields = new Array();
tempFields = fields[x].split(':');
document.getElementById(tempFields[1]+"_e").innerHTML ="Error: "+tempFields[0]+"";
document.getElementById(tempFields[1]+"_col").className ="inLineError";
document.getElementById(tempFields[1]+"_e").className ="spanerror";
}
	        }
	        
	        
		return requiredIfResult;
				
	}
