$(function(){
	$('form').bind('submit', function(){
		var errors = 0;
		$(this).find('input[purpose="validate"]').each(function(){
			var sender = $(this), type = sender.attr('field'), invalid = false, message = '';
			switch(type)
			{
				case 'required':
					if(sender.val() == '')
					{
						invalid = true;
						message = 'This field is required.';
					}
					break;
			}
			if(invalid)
			{
				if(!sender.attr('error'))
				{
					sender.addClass('error');
					sender.attr('error', true);
					$('<div class="error"></div>').
						html(message).
						css({ display: 'none' }).
						insertAfter(sender).
						slideDown('slow');
				}
				++errors;
			}
			else
				sender.
					removeClass('error').
					removeAttr('error').
					siblings().
					slideUp('slow', function(){
						$(this).remove();
					});
		});
		return errors == 0;
	})
});