function isEmail(inputObj, strErrMsg, blnBlankOK, blnDoAlert, blnDoFocus) {

	//check for no entry
	if (inputObj.value == "" || inputObj.value == null){
		if (blnBlankOK == true){
			return true;
		}else{
			if (blnDoAlert == true){alert (strErrMsg + " is empty.  Please enter an Email address.");}
			if (blnDoFocus == true){inputObj.focus();}
			return false;
		}
	}

	//validate entry
	var inputStr = inputObj.value.toString();

		
	var last4 = inputStr.substring(inputStr.length - 4);
	var last5 = inputStr.substring(inputStr.length - 5);

	if (!(inputStr.indexOf (' ') == -1)) { //check for spaces
		if (blnDoAlert == true){alert("Error - " + strErrMsg + " cannot contain a space!");}
		if (blnDoFocus == true){inputObj.focus();inputObj.select();}
		return false;

	} else if (inputStr.indexOf ('@') == -1) { //check for existance of @
		if (blnDoAlert == true){alert("Error - " + strErrMsg + " must contain the '@' sign!");}
		if (blnDoFocus == true){inputObj.focus();inputObj.select();}
		return false;

	} else if (!((last4 == ".com") || (last4 == ".net") || //check for standard suffix
				 (last4 == ".edu") || (last4 == ".org") ||
				 (last4 == ".gov") || (last4 == ".mil") ||
				 (last4 == ".biz") || (last4 == ".pro") ||
				 (last5 == ".info") || (last5 == ".name")
				 )){
		if (blnDoAlert == true){alert("Error - " + strErrMsg + " must end with .com, .edu, .net, .org, .gov , .mil, .biz, .pro, .info, or .name");}
		if (blnDoFocus == true){inputObj.focus();inputObj.select();}
		return false;

	} else {
		var FirstAtSign = inputStr.indexOf ('@');
		if (!(inputStr.indexOf ('@', FirstAtSign + 1) == -1)) { //check for existance of 2nd @
			if (blnDoAlert == true){alert("Error - " + strErrMsg + " cannot contain more than one '@' sign!");}
			if (blnDoFocus == true){inputObj.focus();inputObj.select();}
			return false;
		}
		var UserName   = inputStr.substring(0, FirstAtSign);
		var DomainName = inputStr.substring(FirstAtSign + 1);

		//check for valid user name
		if (UserName.length == 0) {
			if (blnDoAlert == true){alert("Error - " + strErrMsg + " must have a valid User Name (before the '@' sign)!");}
			if (blnDoFocus == true){inputObj.focus();inputObj.select();}
			return false;
		}
		
		for (var i = 0; i < UserName.length; i++){
			var oneChar = UserName.charAt(i);
			if (!((oneChar == "_") || (oneChar == ".") || (oneChar == "-") ||
			   ((oneChar >= "0") && (oneChar <= "9")) ||
			   ((oneChar >= "A") && (oneChar <= "Z")) ||
			   ((oneChar >= "a") && (oneChar <= "z")))){
				if (blnDoAlert == true){alert("Error - " + strErrMsg + " User Name (before the '@' sign) cannot contain invalid characters!\n\nValid characters are letters, numbers, underlines, dashes, and periods.");}
				if (blnDoFocus == true){inputObj.focus();inputObj.select();}
				return false;
			}
		}

		//check for valid domain name
		if ((DomainName.length > 26) || (DomainName.length < 5)) {
			if (blnDoAlert == true){alert("Error - " + strErrMsg + " must have a Domain Name (after the '@' sign) of 26 characters or less!\n\n");}
			if (blnDoFocus == true){inputObj.focus();inputObj.select();}
			return false;
		}

		for (var i = 0; i < DomainName.length; i++){
			var oneChar = DomainName.charAt(i);
			if (!(	((oneChar == "-") && (!(i == 0) && !(i == DomainName.length))) ||
					((oneChar == ".") && (!(i == 0) && !(i == DomainName.length))) ||
					((oneChar >= "0") && (oneChar <= "9")) ||
					((oneChar >= "A") && (oneChar <= "Z")) ||
					((oneChar >= "a") && (oneChar <= "z"))
				)){
				if (blnDoAlert == true){alert("Error - " + strErrMsg + " Domain Name (after the '@' sign) cannot contain invalid characters!\n\nValid characters are letters, numbers, hyphens (except for the first character), and periods.");}
				if (blnDoFocus == true){inputObj.focus();inputObj.select();}
				return false;
			}
		}
	}
	return true;
}
