function LoginAttempt() {
  $('passwordResetNotice').hide();
  $('passwordResetFailNotice').hide();
  this.loginPhase = 'main';
  this.postToLogin('/portal/login');
}

LoginAttempt.prototype = {
  handleLoginSuccess: function(successResult) {
    if(this.loginPhase == 'main') {
      window.location = '/bcdash';
    } else {
      var lf = $('loginForm');
      lf.action = 'http://' + legacyDomain + '/charts/login.php';
      lf.submit();
    }
  },

  handleLoginFailure: function(failResult) {
    if(failResult.toLowerCase() == 'suspended') {
      $('loginFailedError').hide();
      $('loginSuspendedError').show();
    } else if(enableLegacyLogin && (this.loginPhase == 'main')) {
      this.attemptLegacySiteLogin();
    } else {
      $('main-cnt').setStyle({paddingTop: '0px'});
      $('loginFailedError').show();
      $('loginSuspendedError').hide();
    }
  },

  attemptLegacySiteLogin: function() {
    this.loginPhase = 'legacy';
    this.postToLogin('/legacy_login');
  },

  postToLogin: function(path) {
    BCService.doAsyncPost(
      path,
      Form.serialize('loginForm'),
      this.handleLoginSuccess.bind(this),
      this.handleLoginFailure.bind(this)
    );
  }
};

function lostPassword() {
  var cbSucceed = function() { $('passwordResetNotice').show(); };
  var cbFail = function() { $('passwordResetFailNotice').show(); };
  BCService.doAsyncPost(
    '/portal/lost_password',
    Form.serialize('lostPasswordForm'),
    cbSucceed,
    cbFail
  );
  hideLostPasswordForm();
}

function showLostPasswordForm() {
  $('loginFailedError').hide();
  $('loginSuspendedError').hide();
  $('passwordResetNotice').hide();
  $('passwordResetFailNotice').hide();
  $('loginForm').hide();
  $('lostPasswordForm').show();
  $('main-cnt').setStyle({paddingTop: '65px'});
}

function hideLostPasswordForm() {
  $('lostPasswordForm').hide();
  $('loginForm').show();
}
