// included in login.js

initialize = function ()
{
  // Firefox wants to persist the disabledness when the page is reloaded.
  document.forms.loginForm.userid.disabled = false;
  document.forms.loginForm.password.disabled = false;
  
  // Hide login button when JavaScript is not enabled
  
  document.forms.loginForm.login.style.display = 'none';
  
  // Focus and select the userid field
  document.forms.loginForm.userid.focus();
  document.forms.loginForm.userid.select();
  
  // We need to make FF & IE submit the form on return uniformly, since the default browser behavior is broken in IE and trying to pick and choose leaves us with twice-submitted
  // forms sometimes.
  
  document.forms.loginForm.onkeypress = function (ev) {
    ev = ev || window.event;			
    if (ev && ev.keyCode == '13') {
      document.forms.loginForm.onsubmit();
      return false;
    }
  };
  
  // Add an onsubmit handler to do an AJAX call, if supported, rather than a real form submit
  
  document.forms.loginForm.onsubmit = function () {
    oddjobs.ajax.submit (chooseLocationHandler, document.forms.loginForm, {				
      onError : redirectToLogin,
      errorCondition : function (res) { return checkTemplateHeader (res, [ "choose-location.htmlf", "choose-reservation.htmlf", "home.html" ]); }
    });
    return false;	// don't let the form submission go through;
  };		
  
  chooseLocationHandler = function (res) {	
    var templateName = res.getResponseHeader('X-Html-Template-Name');		
    if (templateName == 'home.html') {													// We will get sent the home page if there is only one location.
      location.href = 'home';																				// it would be nice to replace the document without making a second call, but then the JS doesn't get evaluated.
    } else if (templateName == 'choose-reservation.htmlf') {
      chooseReservationHandler(res);
    } else {
      var placeholder = document.getElementById('ajaxPlaceholder');
      placeholder.innerHTML = res.responseText;
      if (templateName == 'choose-location.htmlf') {
	oddjobs.func.foreach (document.forms.loginForm.elements, function (e) { e.disabled = true; });
	oddjobs.func.foreach (placeholder.getElementsByTagName('form'),					
			      function (frm) {
				oddjobs.widgets.makeAjaxForm (frm, chooseReservationHandler, {				
				  convertToLink : true,							
				  onError : redirectToLogin,
				  errorCondition : function (res) { return checkTemplateHeader (res, [ "choose-reservation.htmlf", "home.html" ]); }
				});
			      });								
      }
    }
  };
  
  chooseReservationHandler = function (res) {					
    var templateName = res.getResponseHeader('X-Html-Template-Name');
    if (templateName == 'home.html') {				
      location.href = 'home';
    } else {			
      var placeholder = document.getElementById('ajaxPlaceholder');
      placeholder.innerHTML = res.responseText;
      oddjobs.func.foreach (document.forms.loginForm.elements, function (e) { e.disabled = true; });			
      oddjobs.func.foreach (placeholder.getElementsByTagName('form'),				
			    function (frm) {					
			      oddjobs.widgets.makeAjaxForm (frm, function () { location.href = "home"; }, {				
				convertToLink : true,
				onError : redirectToLogin,
				errorCondition : function (res) { return checkTemplateHeader (res, [ "home.html" ]); }
			      });
			    }
			   );
    }
  };		
};
