function sinContenido( cadena )
// (Boolean) Indica si la cadena pasada como parámetro es vacía o sólo contiene espacios en blanco (tabuladores, etc.).
{
  return !( new RegExp( "\\S" ) ).test( cadena );  
}

function err_msg( msg )
// (Boolean) Muestra un cuadro de diálogo con un mensaje de error y devuelve el enfoque al elemento de formulario que ha invocado el método. Devuelve siempre "false". Debe asignarse a cada elemento del formulario.
{
  alert( msg );
  this.focus();
  return false;
}

function validarForm( objForm )
// Usa la variable global "contValido".
{
  for ( var i = 0; i < objForm.length; ++i )	// Añadir método "errMsg" a todos los elementos del formulario.
     objForm.elements[ i ].errMsg = err_msg;
          
//Comprueba que telefono o email estan rellenos
if ( (sinContenido( objForm.email.value )) && (sinContenido( objForm.telefono.value )))
      return objForm.email.errMsg( "Por favor, escriba su e-mail o su número de teléfono." );
      
//Objeto campo observaciones
with (objForm.observaciones)
if ( sinContenido(value))
      return errMsg("Por favor, rellene el campo de observaciones.");
else 
	{
	objForm.submit();
	return true;
	}      		     
}