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ñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ\n" + 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 = "abcdefghijklmnopqrstuvwxyz1234567890 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 CONTRASEÑA tipo2
        case 'pass2':
            
           var ubicacion = '';
           var caracteres = "abcdefghijklmnopqrstuvwxyz1234567890 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
}