var Validators = {
		
	alpha: /^[a-zA-Z_]+$/,
	num: /^[0-9]+$/,
    alphanum: /^[a-zA-Z0-9_]+$/,
    email: /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,
    url: /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i,
	
	isAlpha: function(arg) {
		return Validators.alpha.test(arg);
	},
	
	isNum: function(arg) {
		return Validators.num.test(arg);
	},
	
	isAlphanum: function(arg) {
		return Validators.alphanum.test(arg);
	},
	
	isEmail: function(arg) {
		return Validators.email.test(arg);
	},
	
	isUrl: function(arg) {
		return Validators.url.test(arg);
	}
};

function resetInvalid(f) {
	
	$(f).getInputs().each(function(el) {
		el.removeClassName("invalid");
	});
}

function checkForm(f) {
	
	var hasErrors = false;
	$(f).getInputs().each(function(el) {
		
		if (el.hasClassName("mandatory")) {
			
			var error = false;
			switch(el.readAttribute('vtype')) {
				
				case 'email':
					error = !Validators.isEmail(el.value);
					break;
					
				default:
					error = (el.value.length < 3 ? true : false);
					break;
			}
			
			if (error == true) {
				el.addClassName("invalid");
				hasErrors = true;
			}
			else {
				el.removeClassName("invalid");
			}
		}
	});
	
	if (!hasErrors) {
		$('nlTarget').style.height = "50px";
	}
	
	return !hasErrors;
}

