jQuery.fn.clearDefault = function(){
	var default_value = "email address";
	$(this).focus(function(){
		if ($(this).val() == default_value) $(this).val("");
	});
	$(this).blur(function(){
		if ($(this).val() == "") $(this).val(default_value);
	});
}

function set_error(value)
{
	var error = $('li.error');
	var after = $('div.after');
	var message = '';
	
	if(value == "email address" || value == "")
	{
		message = "An email address is required to receive an email.";
	}
	else if(!value.match(/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i))
	{
		message = "The email address you entered doesn\'t appear to be valid.";
	}

	error.remove();
	after.after('<li class="error">' + message + '</li>');
	$('li.error').hide().fadeIn();
}


$(document).ready(function() {
	
	var input = $('input#email');
	var submit = $('input#submit');

	input.clearDefault();
	
	// Validate on user pressing "enter"
	input.keyup(function(e){
		if(e.keyCode == 13) {
		
			var value = $(this).val();		
			
			if(value != "" && value.match(/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i))
			{
				return;
			}	
			
			e.preventDefault();		
			set_error(value);
		}
	});

	// Validate on user clicking the submit button
	submit.click(function(e){	
		
		var value = $('input#email').val();
		
		if(value != "" && value.match(/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i))
		{
			return;
		}	
		
		e.preventDefault();		
		set_error(value);
	});
	
});