function formCheck() {
  setInvisible();
  if( isEmpty(document.frmRegistration.username.value) ) { 
    document.getElementById('usernameFailed').style.visibility="visible";
    Effects.fade('usernameFailed', 0, 100, 1000, 'Please enter your username.');
    document.frmRegistration.username.focus(); 
    return false; 
  }
  if( !checkEmail(document.frmRegistration.username.value) ) {
    document.getElementById('usernameFailed').style.visibility="visible";
    Effects.fade('usernameFailed', 0, 100, 1000, 'Your user name MUST BE a valid email address.');
    document.frmRegistration.username.focus();
    return false;
  }
  if( isEmpty(document.frmRegistration.password.value) || isEmpty(document.frmRegistration.confirm.value)) {
    document.getElementById('passwordFailed').style.visibility="visible";
    Effects.fade('passwordFailed', 0, 100, 1000, 'Please enter your password.');
    document.frmRegistration.password.focus();
    return false;
  }
  if( document.frmRegistration.password.value != document.frmRegistration.confirm.value ) {
    document.getElementById('passwordFailed').style.visibility="visible";
    Effects.fade('passwordFailed', 0, 100, 1000, 'Your Password DOES NOT match the confirm password.');
    document.frmRegistration.password.focus();
    return false;
  }
  if( isEmpty(document.frmRegistration.zip.value) ) {
    document.getElementById('zipFailed').style.visibility="visible";
    Effects.fade('zipFailed', 0, 100, 1000, 'Please enter your zip code.');
    document.frmRegistration.zip.focus();
    return false;
  }
  if( !isNumeric(document.frmRegistration.zip.value) ) {
    document.getElementById('zipFailed').style.visibility="visible";
    Effects.fade('zipFailed', 0, 100, 1000, 'Please enter a valid zip code.');
    document.frmRegistration.zip.focus();
    return false;
  }
}

function setInvisible() {
  document.getElementById('usernameFailed').style.visibility="hidden";
  document.getElementById('passwordFailed').style.visibility="hidden";
  document.getElementById('zipFailed').style.visibility="hidden";
}

function isEmpty(inputValue) {
  if( inputValue == "" ) {
    return true;
  } else {
    return false;
  }
}

function isNumeric(number) {
  var numberFilter  = /(^-?\d\d*$)/;
  if( numberFilter.test(number) ) {
    return true;
  } else {
    return false;
  }
}

function checkEmail(email) {
  var emailFilter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
  if( emailFilter.test(email) ) {
    return true;
  } else {
    return false;
  }
}

function checkPasswordNull(pass){
  if( !isEmpty(pass) ) {
    document.getElementById('confirm_pass').style.display="block";
    document.frmRegistration.confirm.focus();
  }
}

function checkUsername(uname) {
  createRequest();
  var url = "checkUsername.php?username="+escape(uname);
  request.open("GET", url, true);
  request.onreadystatechange = updateUsername;
  request.send("");
}

function updateUsername() {
  if( request.readyState == 4 ) {
    if( request.status == 200 ) {
      document.getElementById('usernameFailed').style.visibility="hidden";
      var response = request.responseXML.documentElement;
      var user = response.getElementsByTagName('user')[0].firstChild.data;
      if( user == 'Y' ) {
        document.getElementById('usernameFailed').style.visibility="visible";
        Effects.fade('usernameFailed', 0, 100, 1000, 'This email address has ALREADY BEEN registered.');
        document.frmRegistration.username.focus();
        return false;
      } else {
        return true;
      }
    }
  }
}


