function IsEmailValid(oEmail)
{
  str = oEmail.value
  r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)")
  r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$")
  emailOK = (!r1.test(str) && r2.test(str))
  if (!emailOK) {
    alert("Please enter a valid email address")
    oEmail.focus()
    return false
  }
  return emailOK
}

function CheckField(oForm, element)
{
  obj = oForm.elements[element]
  if (typeof(obj) == 'undefined') {
    for (i = 0; i < oForm.elements.length; i++) {
      if (element + '[]' == oForm.elements[i].name) {
        obj = oForm.elements[i]
        break
      }
    }
  }
  type = obj.type
  re = /_/g
  if (typeof(type) == 'object') {
    alert('There is a JavaScript keyword conflict with one of the field names.\\nThe JavaScript form checker cannot work correctly because of this.\\nPlease consider renaming it.')
    return true
  }
  if (typeof(type) == 'undefined') {
    type = 'radio'
    showName = obj[0].name.replace(re, ' ')
  } else {
    showName = obj.name.replace(re, ' ')
  }
  switch (type) {
    case 'text':
    case 'textarea':
      if (obj.value == '') {
        alert('Please complete ' + showName)
        obj.focus()
        return false
      }
      break
    
    case 'select-one':
      if (obj.options[obj.selectedIndex].value == '' && (obj.options[obj.selectedIndex].text == '' || obj.options[obj.selectedIndex].text == '-SELECT-')) {
        alert('Please complete ' + showName)
        obj.focus()
        return false
      }
      break
    
    case 'radio':
      objChecked = false
      if (obj.length) {
        for (i = 0; i < obj.length; i++) {
          if (obj[i].checked) {
            objChecked = true
            break
          }
        }
      } else {
        if (obj.checked) {
          objChecked = true
        }
      }
      if (!objChecked) {
        alert('Please select a ' + showName)
        return false
      }
      break
    
    default:
      return true
  }
  return true
}

function CheckForm(oForm)
{
  aFields = new Array('email')
  for (i = 0; i < aFields.length; i++) {
    if (!CheckField(oForm, aFields[i])) {
      return false
    }
  }
  return IsEmailValid(oForm.email)
}
