
$(document).ready(function() {

	/* Hint Text */
	$("body.home input, body.home textarea").hintText().bind('focus', function () {
		$(this).removeClass('error');
	});

	$('#contact-form').submit(function (e) {
		e.preventDefault();

		var form = $(this);
		form.find('.error').removeClass('error');

		//Get the data from all the fields
		var fields = {
			name: $('input[name=name]'),
			email: $('input[name=email]'),
			comment: $('textarea[name=comment]')
		};

		// Error holder
		var errors = $([]);

		// Name
		if (fields.name.val().length == 0) {
			errors.push(fields.name[0]);
		}

		// Email
		if (fields.email.val().length == 0 || !/^[^@\s]+@[^.@\s]+(?:\.[^.@\s]+)+$/.test(fields.email.val())) {
			errors.push(fields.email[0]);
		}

		// Comment
		if (fields.comment.val().length == 0) {
			errors.push(fields.comment[0]);
		}

		// Check for errors and show them
		if (errors.length > 0) {
			errors.addClass('error');
			form.trigger('show-hints');
		}
		// Submit the form via AJAX
		else {
			// show loading message
			$('.loading').show();

			$.ajax({
				// Get URL & Method from the form element
				url: '/process.php',
				type: 'post',
				dataType: 'json',

				// Serialized fields
				data: form.serialize(),

				//success
				success: function (response) {
					if (response.result == 'ok') {
						//show the success comment
						$('.thanks').fadeIn('slow');
					}
					else {
						alert('Sorry, an error occurred. Please try again later.');
					}
				}
			});

			// disable fields
			form.find('input, textarea, button, select').attr('disabled', 'disabled');
		}
	});
});
