// Check E-mail address for '@' and '.' before splitting, and then checking all elements exist
//   1. Check not empty, otherwise...
//   2. Check characters are valid
//   3. Check for '@', and split into username and address
//   4. Check for '.' in address
//   5. Check no leading or trailing '.' in username or address
function chkemail() {
  var mailAddrOK = false;
  var errCode = ''
  var mailaddr = document.mailform.email.value
  var charOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@._";
  if (mailaddr.length == 0) errCode = errCode + 'No address entered.\n';
  else {
    for (var i = 0; i < mailaddr.length; i++) {
      ch=mailaddr.charAt(i); if (charOK.indexOf(ch) == -1) {errCode = errCode + 'Invalid character.\n'; break;}
    }
    if (mailaddr.indexOf('@') == -1) errCode = errCode + 'No "@" symbol.\n'; 
    else {
      var mailadds = mailaddr.split('@');
      uname=mailadds[0]; ldtname=uname.indexOf('.'); tdtname=uname.lastIndexOf('.'); namelen=uname.length;
      daddr=mailadds[1]; ldtaddr=daddr.indexOf('.'); tdtaddr=daddr.lastIndexOf('.'); addrlen=daddr.length;
      if (namelen == 0 || addrlen == 0) errCode = errCode + 'No username or address.\n'
      else if (ldtname == 0 || tdtname == namelen-1 || ldtaddr == 0 || tdtaddr == addrlen-1) {
          errCode = errCode + 'Leading/trailing "." not allowed.\n';
        }
        else if (mailadds[1].indexOf('.') == -1) errCode = errCode + 'No "." symbol in address.\n';
          else mailAddrOK = true
    }
  }
  if (!(mailAddrOK)) {alert('E-mail: '+errCode+'\nPlease enter a valid E-mail address.'); document.mailform.email.focus();}
  return (mailAddrOK);
}

function chckform() {
  var formOK = false;
  var mailOK = chkemail();
  if (mailOK) {
    if (document.mailform.sendto.selectedIndex == 0) {
      alert('Please select the intended recipient.');
      document.mailform.realname.focus();
    }
    else {
      if (document.mailform.realname.value.length == 0) {
        alert('Name: No name entered.\n\nPlease enter your name.');
        document.mailform.realname.focus();
      }
      else {
        if (document.mailform.message.value.length == 0 || document.mailform.message.value.length > 3000) {
          if (document.mailform.message.value.length == 0) alert('Message: No message entered.\n\nPlease enter your message.');
          if (document.mailform.message.value.length > 3000) alert('Message: Limit of 3000 characters exceeded.\n\nPlease shorten your message.');
          document.mailform.message.focus();
        }
        else {
          if (document.referrer.length != 0) document.mailform.refpage.value=document.referrer;
          formOK = true;
        }
      }
    }
  }
  return (formOK);
}

