//===============================================
//==== Variables used in form check routines ====
//===============================================
var whitespace = " \t\n\r";
//================================================================================
//=== Remove whitespace characters and check whether remaining string is empty ===
//=== If string null or empty return false; else if non-whitespace character   ===
//=== return true; else no non-whitespace characters found - return false      ===
//================================================================================
function isStringFilled(s) {
var i;
	if ((s == null) || (s.length == 0)) return false;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return true;			
	}
	return false;
}

function allLegalEmailChars(n, s, g) {
//Test for illegal characters in parts of email address
	var allParts = n + s + g;
	if (allParts.indexOf(" ") >= 0) return false;
	if (allParts.indexOf(",") >= 0) return false;
	if (allParts.indexOf("?") >= 0) return false;
	if (allParts.indexOf("/") >= 0) return false;
	if (allParts.indexOf("@") >= 0) return false;
	if (allParts.indexOf("\\") >= 0) return false;
	if (allParts.indexOf("..") >= 0) return false;
	if (s.lastIndexOf(".") == s.length-1) return false;
	return true;
}

function isEmail(s) {
	var iAt = s.indexOf("@");
	var pAt = s.lastIndexOf(".");
	if (iAt < 1) return false;
	if ((pAt < iAt + 2) || (pAt > s.length - 2)) return false;
	var name = s.substring(0,iAt);
	var server = s.substring(iAt+1,pAt);
	var group = s.substring(pAt+1,s.length);
	return allLegalEmailChars(name, server, group); 
}

function emptyName(t) {
    var nm = t.value.toUpperCase();
    if (nm == "LAST" || nm == "FIRST") t.value="";
}

function checkForm(t) {
	var errMsg = "";
	var okColor = "#FFFFFF";
	var errColor = "#FFFF99";
	
	if (!isStringFilled(t.firstname.value) || t.firstname.value == "First") {
		if (errMsg.length == 0) t.firstname.focus();
		t.firstname.value = "First";
		t.firstname.style.background = errColor;
		errMsg = errMsg + "\n The first name must be filled in."; }
	else { t.firstname.style.background = okColor; }

	if (!isStringFilled(t.lastname.value) || t.lastname.value == "Last") {
		if (errMsg.length == 0) t.lastname.focus();
		t.lastname.value = "Last";
		t.lastname.style.background = errColor;
		errMsg = errMsg + "\n The last name must be filled in."; }
	else { t.lastname.style.background = okColor; }
		
	if (!isEmail(t.cemail.value)) {	
		if (errMsg.length == 0) t.cemail.focus();
		t.cemail.style.background = errColor;
		errMsg = errMsg + "\n Please enter a valid email address."; }
	else { t.cemail.style.background = okColor; }
	
	if (errMsg.length > 0) {
		alert(errMsg);
		return false;
	}
	return true;
}
