function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
};

var citizenLogin = function(event) {
  event.preventDefault();  
  $.ajax( {
    type: "POST",
    url: window.apiUrl + "/users/sessions",
    headers: {
      'X-GOGOVAPPS-SITE': window.site,
      'Content-Type': 'application/json'
    },
    data: JSON.stringify({
      email: $('#loginuser').val(),
      password: $('#loginpassword').val(),
    }),
    error: function(data) {
      toastr.error(data.responseJSON.message)
    },
    success: function (data) {
      var jwtData = parseJwt(data.token);
      var cr = '', cl = '', cp = '', ce=-1;
      if ($('#rememberme').prop('checked')) {
        cr = 1; cl = $('#loginuser').val(); cp = data.cp; ce=30;
      }
      window.localStorage.setItem('jwt.access_token', data.token);
      setCookie('cremember',cr, ce);
      setCookie('cloginname', cl, ce);
      window.location = window.exchangeUrl + 
        "?redirect=" + encodeURIComponent(window.location.href) + 
        "&phpsessionid=" + jwtData.data.legacy.php_session_id + 
        "&site=" + window.site;
    }
  });
}

var citizenForgot = function(email) {
  event.preventDefault();  
  return $.ajax( {
    type: "POST",
    url: window.apiUrl + "/users/forgot",
    headers: {
      'X-GOGOVAPPS-SITE': window.site,
      'Content-Type': 'application/json'
    },
    data: JSON.stringify({
      email: email,
    }),
    error: function(data) {
      toastr.error(data.responseJSON.message)
    }
  });
}
