var vCadena = 0;
var vNumero = 1;
var vEmail = 2;
var vVacio = 3;
var vURL = 4;

var fnValidaContacto = function() {		
	$("label").removeClass("invalido");
	if (!fnCampoValido('Nombre', vCadena, 0)) { return false; }
	//if (!fnCampoValido('Apellido1', vCadena, 0)) { return false; }
	//if (!fnCampoValido('Apellido2', vCadena, 0)) { return false; }
	//if (!fnCampoValido('TelFijo', vNumero, 9)) { return false; }	
	//if (!fnCampoValido('TelMovil', vNumero, 9)) { return false; }
	if (!fnCampoValido('Email', vEmail)) { return false; }
	//if (!fnCampoValido('Comentarios', vCadena, 0)) { return false; }
	return true;
}

var fnValidaComentario = function() {		
	$("label").removeClass("invalido");
	if (!fnCampoValido('Nombre', vCadena, 0)) { return false; }
	if (!fnCampoValido('Email', vEmail)) { return false; }
	if (!fnCampoValido('Comentario', vCadena, 0)) { return false; }
	return true;
}

function fnCampoValido(id, tipo, len, msj) {
	var bValido = false;
	var dCampo = $('#' + id);
	switch (tipo) {
		case vCadena:
			bValido = fnCadenaValida(dCampo.val(), len);
			break;
		case vNumero:
			bValido = fnNumeroValido(dCampo.val(), len);
			break;
		case vEmail:
			bValido = fnEmailValido(dCampo.val());
			break;
		case vVacio:
			bValido = fnCampoVacio(dCampo.val());
			break;
		case vURL:
			bValido = fnCampoURL(dCampo.val());
			break;
	}
	if (!bValido) { fnAvisoCampoInvalido(id, len, msj); }
	return bValido;
}

function fnAvisoCampoInvalido(id, len, mensaje) {
	var sMensaje = mensaje;
	var sLabel = "label[for='" + id + "']";
	$(sLabel).addClass("invalido");
	if (!sMensaje) {
		sMensaje = "Campo Invalido: " + $(sLabel).text().replace(':','') + ".";
		if (len) { sMensaje += " Minimo " + len + " caracteres"; }
	}
	alert(sMensaje);
	$('#' + id).focus();
	return false;		
}

function fnCampoVacio() { return (arguments[0] != ''); }

function fnCadenaValida() {
	if (arguments[1]) { return ( arguments[0].length >= arguments[1] ); }
	return (typeof arguments[0] == 'string' && arguments[0] != '' && isNaN(arguments[0])); 
}

function fnNumeroValido() { 
	return (!isNaN(arguments[0]) && arguments[0] != '' && arguments[0].length >= arguments[1]); 
}

function fnEmailValido() {
	var RegExPattern = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	if (arguments[0] != '' && RegExPattern.test(arguments[0])) { return true; }
	return false;
}

var fnCampoURL = function(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(s);
}