$(document).ready(function() {
	$('form a.submit').click(function() { $(this).parent('form').submit(); return false; })
	$('form').submit(function() {
		var bOK = true;
		var sReason = '';
		var oFalse = [];
		$(this).find('input.mandatory, select.mandatory, textarea.mandatory').each(function(i, o) {
			oFalse = oFalse;
			if ($(o).val() == '') { bOK = false; sReason = 'Please fill out every mandatory field'; oFalse[oFalse.length] = $(o); return; }
			if ($(o).attr('id') == 'email') { if (!bValidEmail($(o).val())) { bOK = false; sReason = 'Invalid email address'; oFalse[oFalse.length] = $(o); return; } }
		})
		if (!bOK) {
			$('p#error').fadeTo(100, 0, function() {
				$('p#error').html(sReason);
				$('p#error').fadeTo(100, 1);
			});
		}

		if (oFalse.length != 0) {
			for (var i = 0; i < oFalse.length; i++) {
				$(oFalse[i]).animate({ backgroundColor: '#d71e28' }, 500, function() {
					$(this).animate({ backgroundColor: '#ffffff' }, 1000);
				});
			}
		}

		return bOK;
	})
});

bValidEmail = function(sEmail) {
	//var sMatch = sEmail.match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)
	var sMatch = sEmail.match(/^([a-zA-Z0-9_\-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)
	return (sMatch !== null);
}
