var buttonObj = null;

function sendForm(f, highLight)
{

	// added 6/9/2010: SLH: Check hidden spam field is empty, if not spambot... return false
	if (f.human.value != '') {
		// you're a spambot
		return false;
	}

	var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
	var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
	var reg3str = "[0-9]";
	var reg1 = new RegExp(reg1str);
	var reg2 = new RegExp(reg2str);
	var reg3 = new RegExp(reg3str);
	var msg = "Please fill in the following fields:\n\n";
	var reqFields = "";

	//style information for valid and invalid form elements
	var defStyle = "";
	var altStyle = "formError";
	
	//array to style elements
	var labelStyle = new Array(fields.length);
	
	//itterate through each of the form fields to be validated
	for(i=0;i<fields.length;i++) {
		//for text and textarea form types perform the following validation 
		if(f[fields[i]].type == "text" || f[fields[i]].type == "textarea" || f[fields[i]].type == "password") {
			//if email, compare against regular expressions
				if(fields[i] == "email") {
				//retain the value of the email in a variable
				var strEmail = f[fields[i]].value;
				
				//checks to make sure the email address is valid and sets appropriate style.
				if (!reg1.test(strEmail) && reg2.test(strEmail)) {
					labelStyle[i] = defStyle;
				} else {
					labelStyle[i] = altStyle;
					reqFields += fieldInfo[i]+"\n"
				}
		
			} else if(fields[i] == "phone") {
var phoneNum = parseInt(f[fields[i]].value);
				if(isNaN(phoneNum)) {
					labelStyle[i] = altStyle;
					reqFields += "Phone number (please make sure this only contains digits)\n"
				} else {
					labelStyle[i] = defStyle;
				}
			} else { //general form fields, just looking for a length greater than 0
				if (f[fields[i]].value.length == 0) {
					labelStyle[i] = altStyle;
					reqFields += fieldInfo[i]+"\n";
				} else {
					labelStyle[i] = defStyle;
				}
			}
		} else if (f[fields[i]].type == "select-one"){
			if(f[fields[i]].options[f[fields[i]].selectedIndex].value.length == 0){
				reqFields += fieldInfo[i]+"\n";
labelStyle[i] = altStyle;
			} else {
labelStyle[i] = defStyle;
}
		

} else if(f[fields[i]].length >= 0){ // checkboxes
var checkGroup = f[fields[i]];
var checked = false;
for(var x=0;x<checkGroup.length;x++){
if(checkGroup[x].checked){
checked = true;
break;
}
}
if(!checked){
reqFields += fieldInfo[i]+"\n";
}
}
	}
	
	//Handle required fields and display as appropriate
	if(reqFields.length > 0) {
		//two types of display either highLight or alert
		if(highLight == true) {
		for(var i=0;i<fields.length;i++){
		f[fields[i]].className = labelStyle[i];
}
		}
	alert(msg+reqFields);
	return false;
	} else {
	if(buttonObj != null){
	buttonObj.disabled = true;
	buttonObj.onmouseout = null;
	buttonObj.onmouseover = null;
	buttonObj.onclick = null;
	if(buttonObj.filters){
		buttonObj.filters.alpha.opacity = 50;
	} else if (buttonObj.style.MozOpacity){
		buttonObj.style.MozOpacity = .5;
	}
}
	return true;
	}
}

// Seperate validation function for small newsletter form
function validateNewsletter(f){
	var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
	var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
	var reg3str = "[0-9]";
	var reg1 = new RegExp(reg1str);
	var reg2 = new RegExp(reg2str);
	var reg3 = new RegExp(reg3str);
	//retain the value of the email in a variable
	var strEmail = f.email.value;
	//checks to make sure the email address is valid and sets appropriate style.
	if (!reg1.test(strEmail) && reg2.test(strEmail)) {
	return true;
	} else {
	alert("Please enter a valid email address.");
	return false;
	}
}

