// javascript functions useful for testing the values of input fields

function okNumber(theNumber) {
	var reg1 = /.*[0-9]/; // invalid letter8s
	// Every character in theNumber must match the 0-9 expression
	var numArray = theNumber.split("");
	if (isEmptyString(stripBlanks(theNumber))) {
		return false;
	}
	for (var numChar in numArray) {
		if (!reg1.test(numArray[numChar])) {
			return false;
		}
	}
	return true;
}

function okPhone(theNumber) {
	var reg1 = /.*[a-zA-Z]/; // invalid letter8s
	var reg2 = /.*[~!@#\$%\^&\*_\+`=\{\}\|\[\]\\:"\;'\<\>\?,\/]/; // invalid characters
	
	// First, make sure that no invalid characters are in the number
	// reg2 is meant to allow dash, period, and space as number delimiters
	if (reg1.test(theNumber) || reg2.test(theNumber)) {
		return false;
	}
	
	// Now, make sure that we have ten digits worth of phone number, ignoring any delimiters
	// So: get rid of any of those nasty characters...
	var thePattern = /\-/g;
	var theCleanNumber = theNumber.replace(thePattern, '');
	thePattern = /\./g;
	theCleanNumber = theCleanNumber.replace(thePattern, '');
	thePattern = / /g;
	theCleanNumber = theCleanNumber.replace(thePattern, '');

	//alert("theCleanNumber = " + theCleanNumber + ": length = " + theCleanNumber.length);
	// How many characters are left?  If not ten, we have a problem.
	if (theCleanNumber.length != 10) {
		return false;
	}
	
	// We're OK...
	return true;
}

function okEmail(theAddress) {
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(theAddress) && reg2.test(theAddress)) {
	    return true;
 	}
  	return false;
}

function okDomain(theDomain) {
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(theDomain) && reg2.test(theDomain)) {
	    return true;
 	}
  	return false;
}

function stripBlanks(theString) {
        var result = theString;
        while (result.substring(0,1) == " ") {
                result = result.substring(1,result.length);
        }
        return result;
}

function isEmptyString(theString) {
        if (theString == "" || theString == null) {
                return true;
        }
        return false;
}

function buttonChecked(theButtonGroup) {
	for (var i = 0; i < theButtonGroup.length; i++) {
		if (theButtonGroup[i].checked) {
			return i;
		}
	}
	return -1; // didn't find it.
}

