$(document).ready(function() {
	
	$('#submit').click(function() {
		$('div.error').hide();
		$('input, textarea').removeClass('error');
		var hasError = false;
		
		// validate name
		var name = $('#name').val();
		if (name.length > 50) {
			$('#name').siblings('div.error').html('Name can be no longer than 50 characters').show();
			$('#name').addClass('error');
			hasError = true;
		}
		else if (name.length < 2) {
			$('#name').siblings('div.error').html('Name must be at least two characters').show();
			$('#name').addClass('error');
			hasError = true;
		}
		
		// validate email
		var email = $('#email').val();
		var emailReg = /^(?=.{5,254})(?:(?:\"[^\"]{1,62}\")|(?:(?!\.)(?!.*\.[.@])[a-z0-9!#$%&'*+\/=?^_`{|}~^.-]{1,64}))@(?:(?:\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\])|(?:(?!-)(?!.*-\$)(?!.*-\.)(?!.*\.-)(?!.*[^n]--)(?!.*[^x]n--)(?!n--)(?!.*[^.]xn--)(?:[a-z0-9-]{1,63}\.){1,127}(?:[a-z0-9-]{1,63})))$/i;

		if(email == '') {
			$('#email').siblings('div.error').html('No email given').show();
			$('#email').addClass('error');
			hasError = true;
		}
		
		else if(!emailReg.test(email)) {
			$('#email').siblings('div.error').html('Invalid email').show();
			$('#email').addClass('error');
			hasError = true;
		}
		
		// validate subject
		var subject = $('#subject').val();
		if (subject.length > 50) {
			$('#subject').siblings('div.error').html('Subject can be no longer than 50 characters').show();
			$('#subject').addClass('error');
			hasError = true;
		}
		
		// validate message
		var message = $('#message').val();
		if (message.length < 10) {
			$('#message').siblings('div.error').html('Message must be at least ten characters').show();
			$('#message').addClass('error');
			hasError = true;
		}
		
		if (hasError == false) {
			// Do it!
			$.post('resources/php/sendEmail.php', {
				submit: 'true',
				name: name,
				email: email,
				subject: subject,
				message: message,
				ajax: 'true'
			},
			// Callback data goes here
			function(data){
				
				// If the callback data is not the string 'false'
				if (data != 'false') {
					var successMessage = '<div id="successMessage">Thank you ' + name + '. Your message has been sent.</div>';
					$('form').after(successMessage);
					
					$('form').slideUp('slow', function() {
						$('#successMessage').slideDown('slow');
					});
				}
				// If the callback data was the string 'false'
				else {
					alert('There was a problem sending this message. Please try again')
				}
			});
		}
		else {
			//alert('false');
		}
		return false;
	});
	
});
