function validate(field){
	var validation = false;
	switch (field.attr('validation')){
		case 'email':
			validation = field.val().match(/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			break;
		case 'notempty':
			if(field.val() != '' && field.val() != field.attr('description')) validation = true;
			break;
	}
	
	if(!validation) field.removeClass('inputAccept');
	else field.addClass('inputAccept');
	
	return validation;
}

function validateAll(){
	var $inputs = $('#contactForm :input');
	var numValid = 0;
	$inputs.each(function() {
		if(validate($(this))) numValid++;
	});
	if(numValid == $inputs.length) return true;
	else return false;
}

function submitForm(){
	if(validateAll()){
		var email = $('#email').val();
		var message = $('#message').val();
		var dataString = 'email=' + email + '&message=' +message;
		$.ajax({
			type: "POST",
			url: "email.php",
			data: dataString,
			success: function() {
				$('#contactForm').html("<div id='submitMessage'>Your email has been sent.</div>");
			}
		});
	} else alert('Please fill out all fields correctly');
}

function setupForm(){
	// fills out and checks all inputs for interactions
	var $inputs = $('#contactForm :input');
	$inputs.each(function() {
		$(this).val($(this).attr('description'));
		$(this).addClass('inputBlurred');
		$(this).removeClass('inputAccept');
		$(this).keyup( function(){
			validate($(this));
		});
		$(this).focus( function(){
			if($(this).val() == $(this).attr('description')){
				$(this).val('');
				$(this).removeClass('inputBlurred');
			}
		});
		$(this).blur( function(){
			if($(this).val() == ''){
				$(this).val($(this).attr('description'));
				$(this).addClass('inputBlurred');
			}
			validate($(this));
		});
	});
}

$(document).ready(function(){
	setupForm();
});