// Form Actions for Email Signup

var formErrors = 0;

function check_textField () {	
	var label = $("label[for='"+$(this).attr("name")+"']");
		
	if ($(this).val() == ""){
		if ($(label).attr("class") != "hasError") {
			formErrors ++;
			$(label).addClass("hasError");
		}
	}else{
		if ($(label).attr("class") == "hasError") {
			formErrors --;
			$(label).removeClass("hasError");
		}
	}
}

function check_emailField () {	
	var label = $("label[for='"+$(this).attr("name")+"']");
	var valid = validateEmail($(this).val());
	
	if ($(this).val() == "" || !valid){
		if ($(label).attr("class") != "hasError") {
			formErrors ++;
			$(label).addClass("hasError");
		}
	}else{
		if ($(label).attr("class") == "hasError") {
			formErrors --;
			$(label).removeClass("hasError");
		}
	}	
}

function check_selectField (){
	var label = $("label[for='"+$(this).attr("name")+"']");
	
	if ($(this).val() == 0){
		if ($(label).attr("class") != "hasError") {
			formErrors ++;
			$(label).addClass("hasError");
		}
	}else{
		if ($(label).attr("class") == "hasError") {
			formErrors --;
			$(label).removeClass("hasError");
		}
	}
}

function validateEmail (email){
	var emailRegEx = new RegExp(/^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/);
	if (emailRegEx.test(email)) return true;
	return false;
}


// Process Form

function processForm() {
		
	$(":input:not(:hidden, :button, :radio, :input[name='email'])").each(check_textField);
	$(":input[name='email']").each(check_emailField);
	$("select").each(check_selectField);
	
	if (formErrors) {
		$(".formError", this).text("Please resolve the errors listed below and try again.").fadeIn("fast");	
		return false;
	}else{
		$(".formError", this).hide();
	}
	
	$(".processDisplay SPAN").text("Processing...").fadeIn("fast");
	
	var dataObj = {};
	
	dataObj.fname = $("input[name='firstName']").val();
	dataObj.lname = $("input[name='lastName']").val();
	dataObj.address = $("input[name='address']").val();
	dataObj.city = $("input[name='city']").val();
	dataObj.state = $("select[name='state']").val();
	dataObj.zip = $("input[name='zip']").val();
	dataObj.email = $("input[name='email']").val();
	dataObj.howFind = $("input[name='howFind']:checked").val();
	if ($("input[name='contestEntry']").length) dataObj.contestEntry = "1";
	
	
	// Send data to processing script (formProcesses/emailSignup.cfm)
	$.ajax( {
		   type: "POST", 
		   url: path+"formProcesses/emailSignup.cfm", 
		   data: dataObj, success: handleResponse});	
	
	return false;
}

function handleResponse(success){
	if (success == 1){
		$(".processDisplay SPAN").text("Thank you.");
		$("FORM :input").val("");
		$("FORM :radio").attr("checked", "false");
		$("FORM SELECT").selectedIndex = 0;
		setTimeout('$(".processDisplay SPAN").fadeOut(1000);', 2000);
	}else{
		$(".processDisplay SPAN").text("");
	}
}
