function ValidaCampo(campo,objeto,caract_extra,nulo,nombre,tipo,longitud) {
	//REVISA QUE EL CAMPO NO SEA NULO
	if (nulo == 1 && campo == "") {
		alert("ERROR: El campo '" + nombre + "' es obligatorio.")
		objeto.focus();
		objeto.select();		
		return false
	}
	
	
	//REVISA EL TIPO DE CAMPO: TEXTO,NUMERO,EMAIL,ALFANUMERICO
	switch (tipo) { 
		
		//SI ES NUMERO
		case 'num': 
		
			var ubicacion = '';
			var caracteres = "1234567890" + caract_extra ;
	
			var contador = 0
			for (var i=0; i < campo.length; i++) {
				ubicacion = campo.substring(i, i + 1)
				if (caracteres.indexOf(ubicacion) != -1) {
					contador++
				} else {
					alert("ERROR: No se acepta el caracter '" + ubicacion + "' en el campo '" + nombre + "'. Solo caracteres numéricos.")
					objeto.focus();
					objeto.select();
					return false
				}
			}
		   break 
		
		//SI ES TEXTO
		case 'tex':
		
			var ubicacion = '';
			var caracteres = "abcdefghijklmnopqrstuvwxyzñ ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ" + String.fromCharCode(13) + caract_extra
	
			var contador = 0
			for (var i=0; i < campo.length; i++) {
				ubicacion = campo.substring(i, i + 1)
				if (caracteres.indexOf(ubicacion) != -1) {
					contador++
				} else {
					alert("ERROR: No se acepta el caracter '" + ubicacion + "' en el campo '" + nombre + "'. Solo caracteres de texto.")
					objeto.focus();
					objeto.select();
					return false
				}
			}
		   break
		
		//SI ES EMAIL
		case 'email':
		
			if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(campo)){
				nada='nada'
			} else {
				alert("ERROR: El email no es correcto. Ej: correo@dominio.com")
				objeto.focus();
				objeto.select();
				return false;
			}
		   break
		
		//SI ES CONTRASEÑA
		case 'pass':
			
			if (campo != eval(caract_extra)){
				alert("ERROR: Las contraseñas no son las mismas, por favor escriba ambos campos igual.")				
				objeto.focus();
				objeto.select();
				return false;
			}else{
				var ubicacion = '';
				var caracteres = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑ"
		
				var contador = 0
				for (var i=0; i < campo.length; i++) {
					ubicacion = campo.substring(i, i + 1)
					if (caracteres.indexOf(ubicacion) != -1) {
						contador++
					} else {
						alert("ERROR: No se acepta el caracter '" + ubicacion + "' en el campo '" + nombre + "'.")
						objeto.focus();
						objeto.select();
						return false
					}
				}
			}
		   break
		   
		   
		//SI ES DESPLEGABLE
		case 'des':
			
			if (nulo==1){
				if(campo==0){
					alert("ERROR: EL campo '" + nombre + "' es obligatorio, seleccione otro.")
					objeto.focus();
					objeto.select();
					return false
				}
			}
		   break
		   
		
		//SI ES CHECK
		case 'check':
			
			if (nulo==1){				
				if(objeto.checked==false){
					alert("No ha marcado eL campo '" + nombre + "' que es obligatorio.")
					objeto.focus();
					objeto.select();
					return false
				}
			}
		   break
		   
		
		//SI ES ALFANUMERICO
		default:
		
			var ubicacion = '';
			var caracteres = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑ" + String.fromCharCode(13) + caract_extra
		
			var contador = 0
			for (var i=0; i < campo.length; i++) {
				ubicacion = campo.substring(i, i + 1)
				if (caracteres.indexOf(ubicacion) != -1) {
					contador++
				} else {
					alert("ERROR: No se acepta el caracter '" + ubicacion + "' en el campo '" + nombre + "'.")
					objeto.focus();
					objeto.select();
					return false
				}
			}
		
	}
	
	//REVISA LA LONGITUD MAXIMA DEL CAMPO
	if (longitud!=0){
		if (campo.length>longitud){
			alert("ERROR: La longitud del campo '" + nombre + "' supera la permitida que es " + longitud + ".")
			objeto.focus();
			objeto.select();
			return false
		}
	}
	

	return true
}
