$(document).ready(function() {
	function showErrors(form_errors) {
		$("#contact_form").before('<dl id="contact-form-errors"><dt>Oops, there was a problem with your submission:</dt></dl>');
		$("#contact-form-errors").hide();
		for (var error in form_errors) {
			$('dl#contact-form-errors').append('<dd>' + form_errors[error] + '</dd>');
		}
		$("#contact-form-errors").fadeIn("slow")	
	}
	function is_email(fData) {
		var reg = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
		return reg.test(fData);
	}						   
						   
	$.localScroll();
	
	$("#contact_button").click(function() {
		// validate
		var name = $("#contact_name").attr("value");
		var email = $("#contact_email").attr("value");
		var tel = $("#contact_tel").attr("value");
		var message = $("#contact_message").val();
		var recaptcha_challenge_field = $("#recaptcha_challenge_field").val();
		var recaptcha_response_field = $("#recaptcha_response_field").attr("value");
		
		// return errors
		form_errors = new Array();
		
		if(name == "") {
			form_errors.push("Please enter your name");
		}
		if(email == "") {
			form_errors.push("Please enter your email");
		}else if(!is_email(email)) {
			form_errors.push("Please enter a valid email");
		}
		if(message == "") {
			form_errors.push("Please enter a message");	
		}
		
		$("dl#contact-form-errors").remove();
			
		if(form_errors.length > 0) {
			showErrors(form_errors);
			return false;
		}else {
			// send email
			$.ajax({
		  		type: "POST",
		   		url: "handle_email.asp",
		   		data: "name=" + name + 
					  "&email=" + email + 
					  "&tel=" + tel + 
					  "&message=" + message + 
					  "&recaptcha_challenge_field=" + recaptcha_challenge_field + 
					  "&recaptcha_response_field=" + recaptcha_response_field,
		   		success: function(msg){
					switch(msg) {
						case "ok":
							$("#contact_form").after('<div id="contact_outcome_message"><h4>Thanks for getting in touch! </h4><p>We will get back to you as soon as possible.</p></div>');
							$("#contact_form").slideUp("slow");
							$("#contact_outcome_message").hide().fadeIn("slow");
							break;
						case "recaptcha_fail":
							form_errors.push("Please enter the correct words to prove your humanity!");
							showErrors(form_errors);
							break;
						case "details_missing":
							form_errors.push("Please fill in all fields");
							showErrors(form_errors);
							break;
						case "invalid_referrer":
							form_errors.push("Naughty naughty...");
							showErrors(form_errors);
							break;
					}
		   		}
		 	});
			return false;
		}
	});
});