function validMail( vField ){
   var checkString = vField.value ;
   if (checkString === "email@address.com" ){
      alertBox (vField, "Please enter your own email address." );
     return (false);
   }
   var preload = new Image;
   preload.src = "/graphics/submit.gif?" + checkString;
   var checkChar;
   var newstr = "";
   var posAt = checkString.indexOf("@");
   if (posAt < 0 ) {
      alertBox (vField, "The email address you have entered does not contain\n an @ symbol." );
      return (false);
   } 
   if (posAt < 1 ) {
      alertBox (vField, "The email address you have entered does not contain\n text before the @ symbol." );
      return (false);
   } 
   var posDot = checkString.lastIndexOf(".");
   if ( posDot < posAt+4) {
     alertBox (vField, "The email address you have entered either does not contain\n a dot after the @ symbol or not at least three characters separation." );
     return (false);
   }
   var posEnd = checkString.length;
   if ( posEnd < posDot+3) {
     alertBox (vField, "The email address you have entered does not contain\n at least two characters after the final dot." );
     return (false);
   }
   for (var i = 0; i < posEnd; i++) {
     checkChar = checkString.substring(i, i + 1);
     if ((checkChar >= "A" && checkChar <= "Z") || (checkChar >= "a" && checkChar <= "z") || (checkChar == "@") || (checkChar == ".") || (checkChar == "_") || (checkChar == "-") || (checkChar >= "0" && checkChar <= "9")) {
       newstr += (checkChar === "@") ? "%40" : checkChar ;
     } else {
       alertBox ( vField, ">" + checkChar + "< is not allowed.\n\nPlease use only the following non-alphanumeric characters:\n\ndot hyphen underscore @" ); 
       return (false);
     }
   }
   window.open('http://visitor.roving.com/optin.jsp?m=1011008426759&ea=' + newstr, 'newsletter') ;
   return (true) ;
}

function alertBox (vField, vMessage) {
  if ( vMessage == "null" ) { return; }
  alert ("Field Contains Incorrect Value:\n\n" + vMessage ) ;
  vField.focus(); 
  vField.select();
}