// validates email fields
function email_validation(){	
	// regular expression for emails
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	var value = $("#email").val();
	var isValid = false;
	
	if(filter.test(value) || value == undefined){
		isValid = true;
	} else {
		$("#email").addClass("error-field");
		$("#email").siblings(".error-message").show();
	}
	
	return isValid;
}

// validates that all required fields are filled
function required(){	
	var count = 0;
	var isValid = false;
	$(".required").each(function () {
		if($(this).val() == ""){
			$(this).addClass("error-field");
			$(this).siblings(".error-message").show();
		} else {
			count++;
		}
	});
	//for the raido buttons	
	if($("input:radio:checked").val() == undefined){
		$("input:radio.required").siblings(".error-message").show();
		count--;
	}	
	if(count == $(".required").length) isValid = true;
	return isValid;
}

$(document).ready(function(){
	// disable form until everything validates
	$(".error-message").hide();
	$("form").submit(function () {
		var valid = false;
		if(required() && email_validation()){			
			//when everything validates enable form
			valid = true; 
		} else {			
			valid = false;
		}
		return valid;
	});
	
	// when text is typed into textbox
	$(".required").keyup(function(){		
		if($(this).val() != ""){
			$(this).removeClass("error-field");
			$(this).siblings(".error-message").hide();
		}
	});
	
	$("#email").keyup(function(){		
		if(email_validation()){
			$(this).removeClass("error-field");
			$(this).siblings(".error-message").hide();
		}
	});
	
	// when radio button is clicked
	$(".required").click(function(){		
		if($(this).val() != ""){
			$(this).removeClass("error-field");
			$(this).siblings(".error-message").hide();
		}
	});
});