$(function() {

	var contactSent = false;
	$('#contactForm').submit(function() {
		if(contactSent)
			return false;

		$('#contactProblem').remove();

		postData = {
			'form-type'    : $('#form-type').val(),
			'email'        : $('#email').val(),
			'name'         : $('#name').val(),
			'position'     : $('#position').val(),
			'organization' : $('#organization').val(),
			'organization_size' : $('#organization_size').val(),
			'phone'        : $('#phone').val(),
			'message'      : $('#message').val(),
			'free_trial'   : $('#yes_to_free-trial').is(':checked') ? 'Yes' : 'No'
		};

		if(postData['name'] == "" || postData['organization'] == "" || postData['email'] == "" || postData['phone'] == "")
		{
			$('div.action:first').before("<div id='contactProblem'>Fields denoted by asterisks are required.</div>");
			$('#contactProblem').slideDown();
			return false;
		}
		
		/* Validate email address */
		if(!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(postData['email']))
		{
			$('div.action:first').before("<div id='contactProblem'>Your email looks to be invalid. Please check it and try again.</div>");
			$('#contactProblem').slideDown();
			return false;			
		}
		
		
		/* Roughly validate phone number */
		var phoneNumberMatches = postData['phone'].match(/\d/g);
		if(!phoneNumberMatches || phoneNumberMatches.length < 7) {
			$('div.action:first').before("<div id='contactProblem'>Your phone number looks to be invalid. Please check it and try again.</div>");
			$('#contactProblem').slideDown();
			return false;						
		}

		$.post('/api/rest/v1/contact', postData, function(data) {
			if(data.status == '201')
			{
				$('div.action:first').before("<div id='contactSuccess'>Request successfully sent!<br />We'll be in touch soon.</div>");				
				$('#contactForm input[type=text], #contactForm textarea').val('');
				$('#contactSuccess').slideDown();

				if(typeof _gaq != "undefined")
					_gaq.push(['_trackPageview', '/contactsuccess']);

				contactSent = true;
				return false;
			}
			else
			{
				$('div.action:first').after("<div class='enterprise_problem'>It looks like there's a problem with your request. Please email us at <a href='mailto:kindling@arc90.com'>kindling@arc90.com</a> instead.</div>");
				$('#contactProblem').slideDown();

				return false;
			}
		}, 'json');

		return false;
	});

	if($('input.focused').length == 0)
	{
		$('#name').focus();		
	}
		
});
