/** Form functions
 ** (c) 2008 Jeff Pickhardt
 **/

function sendMessage() {
	if(validate()) {
		return false;
	}
	showThinking();
	new Ajax.Request('cgi-bin/send-msg?ajax=true', {
		method: 'post',
		parameters: Form.serialize($('form-contact')),
		onSuccess: function(transport) {
				interpretResult(transport);
			}
		});
	return false;
}
function interpretResult(transport) {
	if (transport.responseText=='Received') {
		showThanks();
	} else {
		showError();
	}
}
function showThinking() {
	$('form-contact').style.display = 'none';
	$('form-thinking').style.display = 'block';
}
function showThanks() {
	$('form-thinking').style.display = 'none';
	$('form-received').style.display = 'block';
}
function showError() {
	$('form-thinking').style.display = 'none';
	$('form-error').style.display = 'block';
}
function isInvalidEmail(str) {
	var emailPattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; // credit to dustindiaz.com
	if (str.match(emailPattern)) { // regexp for (anything)@(anything).(anything)
		return false;
	}
	return true;
}
function isEmpty(str) {
	if (str == '') {
		return true;
	} else {
		return false;
	}
}
function markError(elem) {
	elem.addClassName('error');
	Effect.Shake(elem);
	foundErrors=true;
}
function validate() {
	var foundErrors=false;
	if (isEmpty($('form-name').value)) {
		markError($('form-name'));
		foundErrors=true;
	} else {
		$('form-name').removeClassName('error');
	}
	if (isEmpty($('form-email').value) || isInvalidEmail($('form-email').value)) {
		markError($('form-email'));
		foundErrors=true;
	} else {
		$('form-email').removeClassName('error');
	}
	if (isEmpty($('form-message').value)) {
		markError($('form-message'));
		foundErrors=true;
	} else {
		$('form-message').removeClassName('error');
	}
	return foundErrors;
}