var defaultEmptyOK = false;
var whitespace = " \t\n\r";

function isEmpty(s){
	return ((s==null)||(s.length==0));
}

function isWhitespace(s){
	if(isEmpty(s)) return true;
	for(i=0;i<s.length;i++){
		var c = s.charAt(i);
		if(whitespace.indexOf(c)==-1) return false;
	}
	return true;
}

function isEmail(email)
{
 var result = false;
 var s = new String(email);
 var idx = s.indexOf("@");
 if(idx>0){
  var pidx=s.indexOf(".",idx);
  if((pidx>idx+1)&&(s.length>pidx+1))
		result=true;
 }
 return result;
}

function isValid(form){
	var returnValue = true;
	var errorMessage = 'The following information is required but has not been entered:\n\n';
	var focusField = null;

	// test for required unformatted values
	if(reqInputs){
		for(var i=0;i<reqInputs.length;i++){
			var inputPassed = true;
			var reqObject = eval('form.'+reqInputs[i]);

			if(reqObject.type=="text"){
				if(isWhitespace(reqObject.value)) inputPassed = false;
			}
			else if(reqObject.type=="select-one"){
				if(reqObject.selectedIndex == 0) inputPassed = false;
			}

			if(!inputPassed){
				returnValue = false;
				errorMessage += ' - '+reqLabels[i]+'\n';// add the required field's label to the message list
				if(!focusField) focusField = reqObject;// focus the first missing value
			}
		}
	}
	// Alert user to missing unformatted values
	if(!returnValue){
		alert(errorMessage);
		if(focusField) focusField.focus();
	}

	// test for required formatted values
	if(emailReq){
		if(!isWhitespace(form.Email.value)&&!isEmail(form.Email.value)){
			alert("Please enter a valid email address in the form: yourname@yourdomain.com");
			form.Email.focus();
			returnValue = false;
		}
	}

	return returnValue;
}