var alfabetico = 0;
var alfanumerico = 1;
var email = 2;
var telefono = 3;

var caractValidos = new Array(
"ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÇabcdefghijklmnñopqrstuvwxyzáéíóúàèìòùäëïöüç -.',/",
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ'Çç-ºª. \t\r\n\f",
"^\\w(\\.|-|\\w)*@\\w+((\\.|-)\\w+)*\\.\\w{2,3}$",
"^(((\\+34)?[69]\\d{8})|(\\+[0124-9]\\d{2,})|(\\+3[0-35-9]\\d+))$");


function err_msg( msg )
{
  alert( msg );
  if (this.disabled==false)
     this.focus();
  return false;
}


function sinContenido( cadena )
{
  return !( new RegExp( "\\S" ) ).test( cadena );
}


function cadenaValida( cadena, tipoCont )
{
  if ( tipoCont <= alfanumerico )
  {
    for ( var i = 0; i < cadena.length; ++i )
      if ( caractValidos[ tipoCont ].indexOf( cadena.charAt( i ) ) == -1 )
        return false;
    return true;
  }

  else
    return ( new RegExp( caractValidos[ tipoCont ] ) ).test( cadena );
}




function foco(){document.formulario.nombre.focus();}




function valida(objForm) {

  for ( var i = 0; i < objForm.length; ++i )
     objForm.elements[ i ].errMsg = err_msg;
  
  with (objForm.nombre) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, escriba su nombre y apellidos." );
    else if ( !cadenaValida( value, alfabetico ) )
      return errMsg( "El nombre y los apellidos deben tener sólo letras." );
  }

  with (objForm.empresa) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, escriba el nombre de su empresa o institución." );
  }

  with (objForm.telef) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, escriba un número de teléfono de contacto." );
    else if ( !cadenaValida( value, telefono) )
      return errMsg( "Por favor, indique un número de teléfono correcto, sin espacios y de nueve cifras." );
  }

  with (objForm.correo) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, escriba su dirección de correo electrónico." );
    else if ( !cadenaValida( value, email) )
      return errMsg( "Por favor, indique una dirección correcta de correo electrónico." );
  }

  with (objForm.comen) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, indique la información que desea recibir." );
        else {
      return true;
    }
  }
}
