      function VerifyUserEmail(fname)
      {
        if  (ErrorOccurred) return;
        args = fname.value;
        callback_finished = false;
        SendAjaxSheerPowerRequest("VerifyUserEmail", args, Callback, true)
      }

      function ValidatePassword(fname)
      {
          var passed = validatePassword(fname.value);
          if  (!passed)
          {
            SetError(fname, 'Your password does not meet the conditions specified');
            return false;
          }
          ClearError(fname);
          if (!ComparePassword(fname)) return false;
          return true;
        }

      var callback_finished = false;
      var callback_result = true;
      function Callback(response)
      {
        var errormsg  = "";
        parseXML(response);
        var t  = fetchFieldFromXML("msg");
        var piece = t.split("=");
        switch (piece[0])
        {
          case "error" : 
            if (piece[1].charCodeAt(0) == 13) break;
            errormsg = piece[1]
            break;
          default :
        }
        if (errormsg != "") 
        {
          var fname = document.getElementById("email");
          SetError(fname, errormsg);
          callback_result = false;
          fname.focus();
        }
        callback_finished = true;
      }
      
      function CompareEmail(fname)
      {
        var other = 'email2'
        if  (fname.id == 'email2') other = 'email';
        tmp1 = fname.value;
        tmp2 = document.getElementById(other).value;
        if  (tmp1 == "" || tmp2 == "") return;
        if  (tmp1 != tmp2)
        {
          SetError(fname, 'Your two email addresses do not match');
          return false;
        }
        return true;
      }
      
      function ComparePassword(fname)
      {
        var other = 'password2'
        if  (fname.id == 'password2') other = 'password1';
        tmp1 = fname.value;
        tmp2 = document.getElementById(other).value;
        if  (tmp1 == "" || tmp2 == "") return;
        if  (tmp1 != tmp2)
        {
          SetError(fname, 'Your two passwords do not match');
          return false;
        }
        return true;
      }

      function ValidateRegistration()
      {
        final_status = true;
        var status = true;
        if (!CheckRequired(document.getElementById('first_name'), '', 'Please enter your first name')) final_status = false;
        if (!CheckRequired(document.getElementById('last_name'), '', 'Please enter your last name')) final_status = false;
        if (!CheckRequired(document.getElementById('email'), '', 'Please enter your email address')) final_status = false;
        if (!CheckEmail(document.getElementById('email'), 'Your email address is not in a valid format')) final_status = false
        if (!CheckRequired(document.getElementById('email2'), '', 'Please re-enter your email address')) final_status = false;
        if (!CheckEmail(document.getElementById('email2'), 'Your email address is not in a valid format')) final_status = false
        if (!CheckRequired(document.getElementById('password1'), '', 'Please enter your password')) status = false;
        if (status) status = ValidatePassword(document.getElementById('password1'));
        if (!status) final_status = status;
        if (!CheckRequired(document.getElementById('password2'), '', 'Please re-enter your password')) final_status = false;
        if (!CompareEmail(document.getElementById('email'))) final_status = false;
        if (!ComparePassword(document.getElementById('password1'))) final_status = false;
        if (!CheckNumeric(document.getElementById('phone'), 0, 1000000000, 9999999999,"(###) ###-####", "", "The phone number entered is not valid"))  final_status = false;
        return final_status;
      }
