
function handleLogin(e) {
  Event.stop(e);
  form = Event.element(e);
  var params = Form.serialize(form) + '&r=' + Math.random();

  var r = new AjaxClient(form.attributes['action'].value,
                         {method: "post",
			  parameters: params,
			  onComplete: registerLoginHandlers,
			  onFailure: reportError});
}

function asyncLoginLink(e) {
  Event.stop(e);
  var link = Event.element(e);
  var href = link.attributes['href'].value;
  var pairs = href.split('?');

  var r = new AjaxClient(pairs[0],
                         {method: "post",
			  parameters: pairs[1] + '&r=' + Math.random(),
			  onComplete: registerLoginHandlers,
			  onFailure: reportError});
}

function registerLoginHandlers () {
  if ($('loginForm')) {
    Event.observe('loginForm', 'submit', handleLogin);
  }
  elements = document.getElementsByClassName('loginLink');
  elements.each(function (e) {Event.observe(e, 'click', asyncLoginLink);});
}

if (Ajax.getTransport()) {
    new FastInit(registerLoginHandlers);
}

