function IsEmailValid(emailObj, required)
{
  var EmailOk  = true
  var AtSym    = emailObj.value.indexOf('@')
  var Period   = emailObj.value.lastIndexOf('.')
  var Space    = emailObj.value.indexOf(' ')
  var Length   = emailObj.value.length - 1   // Array is from 0 to length-1   
     
 
  //If Email is blank and not required do nothing
  if ( !required ) {
    if (emailObj.value == "") {            
      return EmailOk
    }
  }
     
  //If Email is blank and required
  if ( required ) {
    if (emailObj.value == "") {            
      EmailOk = false
      alert('Please enter an email address')
      emailObj.focus()
      return EmailOk
    }  
  }
  
  // '@' cannot be in first position
  if (AtSym < 1) {
    EmailOk = false
    alert('Please enter a valid e-mail address!\n\nError:\nAn @ symbol must be present and cannot be\nthe first character of an email address')
    emailObj.focus()
    return EmailOk
  }   
  
  // Must be at least one valid char btwn '@' and '.'
  if (Period <= AtSym+1) {
    EmailOk = false
    alert('Please enter a valid e-mail address!\n\nError:\nThere must be at least one character\nbetween the @ symbol and the \nperiod of an email address')
    emailObj.focus()
    return EmailOk
  }
  
  // Must be at least one valid char after '.'
  if  (Period == Length ) {
    EmailOk = false
    alert('Please enter a valid e-mail address!\n\nError:\nThere must be at least one character\nafter the period of an email address')
    emailObj.focus()
    return EmailOk
  }
  
  // No empty spaces permitted
  if  (Space  != -1) {
    EmailOk = false
    alert('Please enter a valid e-mail address!\n\nError:\nThere must be no spaces in an email address')
    emailObj.focus()
    return EmailOk
  }          
     
  //Check for invalid characters
  if  ( (emailObj.value.indexOf('\'') != -1) ||
        (emailObj.value.indexOf('\"') != -1) ||
        (emailObj.value.indexOf('£')  != -1) ||
        (emailObj.value.indexOf('$')  != -1) || 
        (emailObj.value.indexOf('%')  != -1) ||
        (emailObj.value.indexOf('^')  != -1) ||
        (emailObj.value.indexOf('&')  != -1) ||
        (emailObj.value.indexOf('*')  != -1) ||
        (emailObj.value.indexOf('(')  != -1) ||
        (emailObj.value.indexOf(')')  != -1) ||
        (emailObj.value.indexOf('+')  != -1) ||
        (emailObj.value.indexOf('=')  != -1) ||
        (emailObj.value.indexOf('{')  != -1) ||
        (emailObj.value.indexOf('}')  != -1) ||
        (emailObj.value.indexOf('[')  != -1) ||
        (emailObj.value.indexOf(']')  != -1) ||
        (emailObj.value.indexOf(':')  != -1) ||
        (emailObj.value.indexOf(';')  != -1) ||
        (emailObj.value.indexOf('#')  != -1) ||
        (emailObj.value.indexOf('~')  != -1) ||
        (emailObj.value.indexOf('<')  != -1) ||
        (emailObj.value.indexOf('>')  != -1) ||
        (emailObj.value.indexOf('>')  != -1) ||
        (emailObj.value.indexOf(',')  != -1) ||
        (emailObj.value.indexOf('?')  != -1) ||
        (emailObj.value.indexOf('/')  != -1) ||
        (emailObj.value.indexOf('|')  != -1) ||
        (emailObj.value.indexOf('!')  != -1) ||
        (emailObj.value.indexOf('..') != -1) ) {

    EmailOk = false
    alert('Please enter a valid e-mail address!\n\nError:\nYou must only use alphanumberic characters\nand the symbols -_.@ in an email address')
    emailObj.focus()
    return EmailOk
  }

  return EmailOk
}