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,4}$","^(((\\+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, escribe tu nombre y apellidos." );
    else if ( !cadenaValida( value, alfabetico ) )
      return errMsg( "El nombre y los apellidos deben tener sólo letras." );
  }

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

  with (objForm.comen) {
    if ( sinContenido( value ) )
      return errMsg( "Por favor, escribe un mensaje." );
        else {
      return true;
    }
  }
}
