-
-// Page elements
-var items;
-
-// Other globals
-var currentPager;
-var loginStatus;
-
-// Object to keep track of login status
-function LoginStatus() {
- var cookies = {};
- document.cookie.split(/;\s+/).each(function(v) {
- kv = v.split('=');
- cookies[kv[0]] = kv[1];
- });
- if (cookies.auth && cookies.username) {
- this.loggedIn = true;
- this.username = cookies.username;
- } else {
- this.loggedIn = false;
- this.username = null;
- }
- this.update();
-}
-
-LoginStatus.prototype.login = function(username, password) {
- new Ajax.Request(baseURL + '/login', {
- parameters: {
- username: username,
- password: password,
- },
- onSuccess: function(r) {
- var j = r.responseText.evalJSON();
- if (j && j.status == 'success') {
- this.loggedIn = true;
- this.username = username;
- document.cookie = "username=" + username;
- $('login.password').value = '';
- this.update();
- } else {
- alert("Could not log in");
- $('login.username').focus();
- }
- }.bind(this),
- onFailure: function(r) {
- alert("Could not log in");
- $('login.username').focus();
- }
- });
-}
-
-LoginStatus.prototype.logout = function() {
- new Ajax.Request(baseURL + '/logout', {
- parameters: {
- username: this.username,
- },
- onSuccess: function(r) {
- this.loggedIn = false;
- document.cookie = "auth=; expires=1-Jan-1970 00:00:00 GMT";
- this.update();
- }.bind(this),
- });
- document.cookie = "username=; expires=1-Jan-1970 00:00:00 GMT";
-}
-
-LoginStatus.prototype.update = function() {
- if (this.loggedIn) {
- $('userlink').href = '/#' + this.username;
- $('userlink').update('@' + this.username);
- $('login').hide();
- $('logout').show();
- } else {
- $('post').hide();
- $('login').show();
- $('logout').hide();
- }
-}