  var noajax = false;

  function CheckLoginForm()
  {
    chkform = document.frmLogin;

    // disable submit button
    $('btnLoginSubmit').disabled = true;
    
    if (!noajax)
    {
	    // get form parameters
	    var parameters = $('frmLogin').serialize(true);
	    // add 'ajax' action parameter (to return JSON)
	    parameters['action'] = 'checkajax';
	    
	    // do ajax request
	    new Ajax.Request('/login.php', 
	      { method: 'POST',
	    	  parameters: parameters,
	    	  onSuccess: LoginSuccessHandler,
	    	  onFailure: LoginFailureHandler  }
	    );
    
      return false;
    } else 
    	return true;
  }
  
  // handles result of Ajax request when succeeded
  var LoginSuccessHandler = function(transport,json) 
  {
  	// handle error messages
    if (json.status=='error')
    {
    	$('btnLoginSubmit').disabled = false;
    	ErrorDialog(json.errors);
    }
    
    // okay, go to confirmation page
    if (json.status=='success')
      document.location = json.redirect;
  }
  
  // handles result of Ajax request when failed
  var LoginFailureHandler = function(transport) 
  {
  	// submit via normal POST-request without ajax
  	noajax = true;
  	$('frmLogin').submit();
  }
  
  // add event handlers
  Event.observe(window, 'load', function(event)
  {
  	// loginform must exist
  	if ($('frmLogin'))
  	{
	    Event.observe($('frmLogin'), 'submit', function(e) 
	    { 
	     	  if (!CheckLoginForm()) 
	     	    Event.stop(e); 
	    }, false);  
	  }
  },false);
