		function handleUsername(evt) {
			var nbr, chr;
			if (window.Event) nbr = evt.which;
			else nbr = event.keyCode;
				if ((nbr >= 48 && nbr <= 57) || (nbr >=65 && nbr <=90) || (nbr >=97 && nbr <=122)|| nbr == 95 || nbr == 8|| nbr == 9|| nbr == 37|| nbr == 39|| nbr == 46|| nbr == 0)
					{return true}
				else
					{
					
					alert('Only letters, numbers, and the underscore _ characters are allowed.');
					return false}
			return true;
		}
		function handleEmail(evt) {
			var nbr, chr;
			if (window.Event) nbr = evt.which;
			else nbr = event.keyCode;
				if ((nbr >= 48 && nbr <= 57) || (nbr >=65 && nbr <=90) || (nbr >=97 && nbr <=122)|| nbr == 95 || nbr == 64 || nbr == 46 || nbr == 43 || nbr == 8|| nbr == 9|| nbr == 37|| nbr == 39|| nbr == 46|| nbr == 0)
					{return true}
				else
					{
					
					alert('Not a valid simple email address character.');
					return false}
			return true;
		}
		
		function usernameCheck(userStr)
			{
				var userPat=new RegExp("[A-Z0-9_]{4,15}")
				return (userStr.match(userPat)!=null)
			}
			
		function passwordCheck(passwordStr)
			{
				var passwordPat=new RegExp("[A-Za-z0-9_]{4,15}")
				return (passwordStr.match(passwordPat)!=null)
			}

		function nameCheck(nameStr)
			{
				var namePat=new RegExp("[A-Za-z0-9_& .,']{2,25}")
				return (nameStr.match(namePat)!=null)
			}
		
		
		
		
		function emailCheck (emailStr) {
			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 +")*$")


			/* Begin with the coarse pattern to simply break up user@domain into
			different pieces that are easy to analyze. */
			var matchArray=emailStr.match(emailPat)
			if (matchArray==null) {
			/* Too many/few @'s or something; basically, this address doesn't
				even fit the general mould of a valid e-mail address. */
				alert("Email address seems incorrect (check @ and .'s)")
				return false
			}
			var user=matchArray[1]
			var domain=matchArray[2]

			// See if "user" is valid 
			if (user.match(userPat)==null) {
				// user is not valid
				alert("The username portion of the email address doesn't seem to be valid.")
				return false
			}

			/* if the e-mail address is at an IP address (as opposed to a symbolic
			host name) make sure the IP address is valid. */
			var IPArray=domain.match(ipDomainPat)
			if (IPArray!=null) {
				// this is an IP address
				for (var i=1;i<=4;i++) {
					if (IPArray[i]>255) {
						alert("Destination IP address is invalid!")
					return false
					}
				}
				return true
			}

			// Domain is symbolic name
			var domainArray=domain.match(domainPat)
			if (domainArray==null) {
				alert("The domain name of the email address doesn't seem to be valid.")
				return false
			}

			/* domain name seems valid, but now make sure that it ends in a
			three-letter word (like com, edu, gov) or a two-letter word,
			representing country (uk, nl), and that there's a hostname preceding 
			the domain or country. */

			/* Now we need to break up the domain to get a count of how many atoms
			it consists of. */
			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) {
			// the address must end in a two letter or three letter word.
			alert("The email address must end in a three-letter domain, or two letter country.")
			return false
			}

			// Make sure there's a host name preceding the domain.
			if (len<2) {
			var errStr="This email address is missing a hostname!"
			alert(errStr)
			return false
			}

			// If we've gotten this far, everything's valid!
			return true;
		}
		//  End -->
