$(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);
}