function validarEMail(txt){
	
	//expresion regular
        var b=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
        
        //comentar la siguiente linea si no se desea que aparezca el alert()
        alert("Email " + (b.test(txt)?"":"no ") + "válido.")
        
        //devuelve verdadero si validacion OK, y falso en caso contrario
        return b.test(txt)
}


//*********************************************************************************
// Function que valida que un campo contenga un string y no solamente un " "
// Es tipico que al validar un string se diga
//    if(campo == "") ? alert(Error)
// Si el campo contiene " " entonces la validacion anterior no funciona
//*********************************************************************************

//busca caracteres que no sean espacio en blanco en una cadena
function vacio(q) {
        for ( i = 0; i < q.length; i++ ) {
                if ( q.charAt(i) != " " ) {
                        return true
                }
        }
        return false
}

//valida que el campo no este vacio y no tenga solo espacios en blanco
function valida(F) {
        
        if( vacio(F.campo.value) == false ) {
                //alert("Introduzca un cadena de texto.")
				F.campo.value = "Verifique..."
                return false
        } else {
                //alert("OK")
                //cambiar la linea siguiente por return true para que ejecute la accion del formulario
                return false
        }
        
}

function vacio(cadena)
  {                                    // DECLARACION DE CONSTANTES
    var blanco = " \n\t" + String.fromCharCode(13); // blancos
                                       // DECLARACION DE VARIABLES
    var i;                             // indice en cadena
    var es_vacio;                      // cadena es vacio o no
    for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++) // INICIO
      es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;
    return(es_vacio);
  }


/* dice si cadena es un email (alfanum@alfanum.alfanum[.alfanum]) o no, don- */
/* de alfanum son caracteres alfanumericos u otros                           */
function email(cadena, otros)
  {                                    // DECLARACION-INICIALIZACION VARIABLES
    var i, j;                          // indice en cadena
    var es_email = 0 < cadena.length;  // cadena es email o no
    i = salta_alfanumerico(cadena, 0, otros); // INICIO
    if(es_email = 0 < i)               // lee "alfanum*"
      if(es_email = (i < cadena.length))
        if(es_email = cadena.charAt(i) == '@') // lee "alfanum@*"
          {
            i++;
            j = salta_alfanumerico(cadena, i, otros);
            if(es_email = i < j)       // lee "alfanum@alfanum*"
              if(es_email = j < cadena.length)
                if(es_email = cadena.charAt(j) == '\.')
                  {                    // lee "alfanum@alfanum.*"
                    j++;
                    i = salta_alfanumerico(cadena, j, otros);
                    if(es_email = j < i) // lee "alfanum@alfanum.alfanum*"
                      while(es_email && (i < cadena.length))
                        if(es_email = cadena.charAt(i) == '\.')
                          {
                            i++;
                            j = salta_alfanumerico(cadena, i, otros);
                            if(es_email = i < j) // lee "alfanum@alfanum.alfanum[.alfanum]*"
                              i = j;
                          }
                  }
          }
    return(es_email);
  }


/* dice si cadena es url (http://... ) o no                                     */
function url(cadena)
  {                                    // DECLARACION DE CONSTANTES
    var http = "http://";              // protocolo HTTP
                                       // DECLARACION DE VARIABLES
    var es_url;                        // cadena es url o no
    if(cadena.length <= 7)             // INICIO
      es_url = false;                  // no cabe "http://*"
    else
      es_url = http.indexOf(cadena.substring(0, 7)) != - 1; // lee "http://*"
    return(es_url);
  }


/* salta caracteres alfanumericos y otros a partir de  cadena[i]  y  da  si- */
/* guiente posicion                                                          */
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);
  }
  
/* dice si car es alfanumerico                                               */
function alfanumerico(car)
  {
    return(alfabetico(car) || numerico(car));
  }


/* dice si car es alfabetico                                                 */
function alfabetico(car)               // DECLARACION DE CONSTANTES
  {                                    // caracteres alfabeticos
    var alfa = "ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuvxyz";
    return(alfa.indexOf(car) != - 1);  // INICIO
  }


/* dice si car es numerico                                                   */
function numerico(car)
  {                                    // DECLARACION DE CONSTANTES
    var num = "0123456789";           // caracteres numericos
    return(num.indexOf(car) != - 1);   // INICIO	
  }

function numerico2(car){
  var checkOK = "0123456789"; 
  var checkStr = car;
  var allValid = true; 
  var decPoints = 0; 
  var allNum = ""; 	
  for (i = 0; i < checkStr.length; i++) { 
    ch = checkStr.charAt(i); 
    for (j = 0; j < checkOK.length; j++){
      if (ch == checkOK.charAt(j))
        break;
	}
    if (j == checkOK.length) { 
      allValid = false; 
      break; 
    } 
    allNum += ch; 
  }
  return(allValid);
}
// ejemplo validacion formulario
function ValidaCampos(form)
  {
    if(vacio(form.Nombre.value)){
	  form.Nombre.value="Datos incorrectos.";
	  form.Nombre.focus();
	  return(false);
	}else if(vacio(form.Apellido.value)){
	  form.Apellido.value="Campo requerido, verifique.";
	  form.Apellido.focus();
	  return(false);
	/*}else if(vacio(form.Direccion.value)){
	  form.Direccion.value="Campo requerido, verifique.";
	  form.Direccion.focus();
	  return(false);
	}else if(!email(form.email.value, "-_")){
	  form.email.value="Ingrese una dirección valida.";
	  form.email.focus();
	  return(false);*/
	}else if(vacio(form.tel.value)){
	  form.tel.value="Campo requerido, verifique.";
	  form.tel.focus();
	  return(false);
	}else if(!numerico2(form.tel.value)){
	  form.tel.value="No es numérico, verifique.";
	  form.tel.focus();
	  return(false);
	}else if(vacio(form.celular.value)){
	  form.celular.value="Campo requerido, verifique.";
	  form.celular.focus();
	  return(false);		
	}else if(!numerico2(form.celular.value)){
	  form.celular.value="No es numérico, verifique.";
	  form.celular.focus();
	  return(false);
	}else
	  return(true);
      //sustituir esta linea por return(true) para hacer el submit de un formulario real
      //alert("Los datos son correctos");
    return(false);
  }

function ValidaCamposAdherir(form)
  {
    if(vacio(form.Nombrefantasia.value)){
	  form.Nombrefantasia.value="Campo requerido, verifique.";
	  form.Nombrefantasia.focus();
	  return(false);
	}else if(vacio(form.razonsocial.value)){
	  form.razonsocial.value="Campo requerido, verifique.";
	  form.razonsocial.focus();
	  return(false);
	}else if(vacio(form.responsable.value)){
	  form.responsable.value="Campo requerido, verifique.";
	  form.responsable.focus();
	  return(false);
	}else if(vacio(form.tel.value)){
	  form.tel.value="Campo requerido, verifique.";
	  form.tel.focus();
	  return(false);
	}else if(!numerico2(form.tel.value)){
	  form.tel.value="no es numérico, verifique.";
	  form.tel.focus();
	  return(false);
	}else if(vacio(form.cel.value)){
	  form.cel.value="Campo requerido, verifique.";
	  form.cel.focus();
	  return(false);		
	}else if(!numerico2(form.cel.value)){
	  form.cel.value="No es numérico, verifique.";
	  form.cel.focus();
	  return(false);
	}else
	  return(true);
      //sustituir esta linea por return(true) para hacer el submit de un formulario real
      //alert("Los datos son correctos");
    return(false);
  }
  
function ValidaCamposLAN(form)
  {
    if(vacio(form.Nombre.value)){
	  form.Nombre.value="Campo requerido, verifique.";
	  form.Nombre.focus();
	  return(false);
	}else if(vacio(form.Apellido.value)){
	  form.Apellido.value="Campo requerido, verifique.";
	  form.Apellido.focus();
	  return(false);
	}else if(vacio(form.Direccion.value)){
	  form.Direccion.value="Campo requerido, verifique.";
	  form.Direccion.focus();
	  return(false);
	}else if(!numerico2(form.Direccion.value)){
	  form.Direccion.value="No es numérico, verifique.";
	  form.Direccion.focus();
	  return(false);
	}else if(vacio(form.celular.value)){
	  form.celular.value="Campo requerido, verifique.";
	  form.celular.focus();
	  return(false);		
	}else if(vacio(form.tel.value)){
	  form.tel.value="Campo requerido, verifique.";
	  form.tel.focus();
	  return(false);
	}else
	  return(true);	
  }  