function Validate_String(string, return_invalid_chars)
         {
         valid_chars = '1234567890-_.^~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
         invalid_chars = '';
         
         if(string == null || string == '')
            return(true);
         
         for(index = 0; index < string.length; index++)
            {
            char = string.substr(index, 1);                        
            
            if(valid_chars.indexOf(char) == -1)
              {
              if(invalid_chars.indexOf(char) == -1)
                {
                if(invalid_chars == '')
                   invalid_chars += char;
                else
                   invalid_chars += ', ' + char;
                }
              }
            }                     
            
         if(return_invalid_chars == true && invalid_chars != '')
           {
           last_comma = invalid_chars.lastIndexOf(',');
           
           if(last_comma != -1)
              invalid_chars = invalid_chars.substr(0, $last_comma) + 
              ' and ' + invalid_chars.substr(last_comma + 1, invalid_chars.length);
                      
           return(invalid_chars);
           }
         else
           return(invalid_chars == ''); 
         }


function Validate_Email_Address(email_address)
         {
         at = email_address.indexOf('@');
         if (at == -1 || at == 0 || at == email_address.length - 1) return(false);

         domain_name = email_address.substr(at + 1, email_address.length);                  
         if (Validate_String(domain_name) === false) return(false);

         dot = domain_name.indexOf('.');
         if (dot == -1 || dot == 0 || dot == domain_name.length - 1) return(false);

         user_name = email_address.substr(0, at);
         if (Validate_String(user_name) === false) return(false);

         return(true);
         }

