function StringValidatorEvaluateIsValid(val) {
    var valueToValidate = ValidatorTrim(ValidatorGetValue(val.controltovalidate));
    if (val.isRequired == 'True') {
        if (valueToValidate == val.initialValue) {
            return false;
        }
    }
    if (val.maxLength != '0') {
        if (valueToValidate.length > val.maxLength) {
            return false;
        }
    }

    if (val.checkForIntegerValue == 'True') 
    {
      try
      {
      	 if (valueToValidate != "")
		 {
			var checkNum = parseInt(valueToValidate);
			if(isNaN(checkNum)) return false;
         }
      }
      catch (er)
      {
         return false;
      }

    }
  
    if (val.checkForNumericValue == 'True') 
    {
      try
      {
		 if (valueToValidate != "")
		 {
			if(isNaN(valueToValidate)) return false;
         }
      }
      catch (er)
      {
         return false;
      }
    }

    if (val.isHtmlEditingAllowed == 'False') 
    {
      try
      {
         //var myRegExp = new RegExp('/<[^>]*>/'); 
         //var matches = myRegExp.exec(valueToValidate);
         //if (matches != null)
         //{
            //return false;
         //}
          //check for potential malicious characters in html
          var newStr ;
          if (val.CheckForAllMaliciousHtmlCharacters == true)
          {
            newStr = valueToValidate.replace(/\<|\>|\"|\'|\%|\;|\+/g,""); 
          }
          else
          {
            newStr = valueToValidate.replace(/\<|\>|\%/g,""); 
          }
         
         if (newStr != valueToValidate)
         {
            //there were malicious characters... return false
            return false;
         }
      }
      catch (er)
      {
         alert (er);
         return false;
      }
    }
    
    
    return true;
}

