function valida_correo2(cadena,otros){ 
    var i, j;                          
    var es_email = 0 < cadena.length;  
    i = salta_alfanumerico(cadena, 0, otros); 
    if(es_email = 0 < i)               
      if(es_email = (i < cadena.length))   
        if(es_email = cadena.charAt(i) == '@') 
          {   
            i++;   
            j = salta_alfanumerico(cadena, i, otros);   
            if(es_email = i < j)       
              if(es_email = j < cadena.length)   
                if(es_email = cadena.charAt(j) == '\.')   
                  {                    
                    j++;   
                    i = salta_alfanumerico(cadena, j, otros);   
                    if(es_email = j < i) 
                      while(es_email && (i < cadena.length))   
                        if(es_email = cadena.charAt(i) == '\.')   
                          {   
                            i++;   
                            j = salta_alfanumerico(cadena, i, otros);   
                            if(es_email = i < j) 
                              i = j;   
                          }   
                  }   
          }   
         
    return(es_email);   
    
  }   
  
  
function valida_correo(cadena,otros){ 

    regx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
    return regx.test(cadena);
  } 

function numerico(car)   
  {                                    // DECLARACION DE CONSTANTES   
    var num = "0123456789";            // caracteres numericos   
    return(num.indexOf(car) != - 1);   // INICIO   
  }   
  
  
function salta_alfanumerico(cadena, i, otros)   
  {                                    // DECLARACION DE VARIABLES   
    var j;                             // indice en cadena   
    var car;                           // caracter de cadena   
    var alfanum;                       // cadena[j] es alfanumerico u otros   
    for(j = i, alfanum = true; (j < cadena.length) && alfanum; j++) // INICIO   
      {   
        car = cadena.charAt(j);   
        alfanum = alfanumerico(car) || (otros.indexOf(car) != -1);   
      }   
    if(!alfanum)                       // lee "alfanumX"   
      j--;   
    return(j);   
  }  
  
 function alfanumerico(car)   
 {   
   return(alfabetico(car) || numerico(car));   
 }   
 
 function alfabetico(car)               // DECLARACION DE CONSTANTES   
 {                                    // caracteres alfabeticos   
   var alfa = "ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuvxyz";   
   return(alfa.indexOf(car) != - 1);  // INICIO   
 }   
   
