	$(function() {
		$('input.required').bind('keydown keyup blur', function() {
			if ($(this).val() == '') {
				$(this).addClass('invalid').removeClass('valid');
			} else {
				$(this).addClass('valid').removeClass('invalid');
			}
		});
		$('form.validate').submit(function(e) {
			/* Validate form elements */
			var invalid = false;
			$('.required', this).each(function() {
				if ($(this).val() == '') {
					invalid = true;
					$(this).addClass('invalid').removeClass('valid');
				} else {
					$(this).addClass('valid').removeClass('invalid');
				}
			});
			
			if (invalid == true) {
				alert('Please fill out all required fields.');
				e.preventDefault();
			}
		});
	});