
function isValidName( fullname )  {

  return /^[\w\s]{3,64}$/.test( fullname );
}

function isValidPhone( phone ) {

  if ( phone != '' )
     return /^[\d\-\s()]{7,20}$/.test( phone );
  return true;
}

function isValidMail( mailAddress ) {

  if ( mailAddress != '' )
     return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test( mailAddress );
  return true;
}

function setMaxLength( obj, len ) {

  return ( obj.value.length <= len );
}

function hasComments( comments ) {

  return /^[\. ]{1,3000}$/.test( comments );
}

function resetForm() {

  document.forms['form'].reset();
}

function saveForm() {

  var oForm = document.forms['form'];
  if ( !isValidName( oForm.elements['contact'].value )) {
     alert('Se rtequiere que proporcione su nombre');
     oForm.elements['contact'].focus();
     return;
  }
  if ( !isValidPhone( oForm.elements['phone'].value )) {
     alert('El teléfono que escribió contiene caracteres inválidos');
     oForm.elements['phone'].focus();
     return;
  }
  if ( !isValidMail( oForm.elements['email'].value )) {
     alert('¡La direccion de correo electrónico que proporcionó es invalida!');
     oForm.elements['email'].focus();
     return;
  }
  if ( oForm.elements['phone'].value == '' &&
       oForm.elements['email'].value == '' ) {
     alert('Prescindimos de un teléfono o e-Mail para poder contactarlo');
     oForm.elements['phone'].focus();
     return;
  }
  if ( !isValidName( oForm.elements['comments'].value )) {
     alert('Para poder servirle mejor requerimos que nos deje un comentario');
     oForm.elements['comments'].focus();
     return;
  }
  oForm.submit();
}

