function checkForErrors( $elem ){
	var mask 	= $elem.attr('mask') || '';
	var caption = $elem.attr('rel');
	var errors 	= '';
	if( mask ){
		var filter=/^([\w-]+(?:\.[\w\-]+)*)@((?:[\w\-]+\.)*\w[\w\-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if(!filter.test( $elem.val() )){
			errors += "- " + caption + " is required.\n";
			$elem.addClass('formError');
		} else {
			$elem.removeClass('formError');
		}
	} else {
		if( !$elem.val() || $elem.val().length<5 ){
			errors += "- " + caption + " is required.\n";
			$elem.addClass('formError');
		} else {
			$elem.removeClass('formError');
		}
	}
	return errors;
}
$(document).ready(function() {
	if( $('#form1').size ){
		$(':input', '#form1').not(':submit').not(':hidden').val('');
		$('#form1')
		.append('<input type="hidden" name="token" value="' + (new Date).getTime() + '"/>')
		.submit(function(e){
			var form 			= $(this);
			var errors 			= '';		
			$(':input[required=true]').not(':checkbox,:radio').each(function(){
				errors += checkForErrors( $(this) );
			});
			if( errors != '' ){			
				alert( "Your submition contains errors:\n\n" + errors );
				$('.formError', '#form1').filter(':first').focus();
				e.preventDefault();
			} else {
				return true;
			}
		});
		$(':input[required=true]', '#form1').bind('keyup', function(){
			var errors = checkForErrors( $(this), '' );
		});
	}
});
