var _login_page = false;

function showQuickLogin() {
	
	var qlHTML = "<div id=\"login_form\">";
	qlHTML += "	<div id=\"username\">";
	qlHTML += "		<label for=\"username-field\" class=\"overlabel\">Username</label>";
	qlHTML += "		<input id=\"username-field\" type=\"text\" name=\"username\" title=\"Username\" value=\"\" tabindex=\"1\" />";
	qlHTML += "	</div>";
	qlHTML += "	<div id=\"password\">";
	qlHTML += "		<label for=\"password-field\" class=\"overlabel\">Password</label>";
	qlHTML += "		<input id=\"password-field\" type=\"password\" name=\"password\" title=\"Password\" value=\"\" tabindex=\"2\" />";
	qlHTML += "	</div>";
	qlHTML += "	<div id=\"submit\">";
	qlHTML += "		<input type=\"image\" src=\"/images/quick_login.gif\" id=\"login_button\" name=\"submit\" value=\"Login\" tabindex=\"3\" />";
	qlHTML += "	</div>";
	qlHTML += "</div>";
	
	
	$("#login_status").html(qlHTML);
	$("#login_button").click(function() { quickLogin(); });
	
	$("#login_button").keypress(function(event) {
	    if (event.keyCode == 13) quickLogin();
	});
	
	$("#password-field").keypress(function(event) {
		if (event.keyCode == 13) quickLogin();
	    if (event.keyCode == 27) quickLogout();
	});
	
	$("#username-field").keypress(function(event) {
	    if (event.keyCode == 27) quickLogout();
	});
	
	initOverLabels();
	
	$("#username-field").focus();
}

function quickLogin() {
	var username = $("#username-field").val();
	var password = $("#password-field").val();
	
	getSeedAndValidateLogin(username, password);
}

function quickLogout() {
    resetLogin();
    
	$("#login_status").html("You are currently not logged in. <a href=\"#\" id=\"login_quick\">Login</a> or <a href=\"/signup\">Signup</a>");
	$("#login_quick").click(function() { showQuickLogin(); });
	
	if(_login_page) {
	    logoutPageCallback();
	}
}

function showLogin() {
	if(loggedIn)
	{
	    $("#login_status").html("You're logged in as " + username + ". <a href=\"#\" id=\"logout_button\">Log Out</a>");
	    $("#logout_button").click(function() { quickLogout(); });
	}
	else
	{
    	$("#login_status").html("Login failed (" + messages + "). <a href=\"#\" id=\"login_quick\">Login</a> or <a href=\"/signup\">Signup</a>");
    	$("#login_quick").click(function() { showQuickLogin(); });
	}
	if(_login_page) {
	    loginPageCallback(loggedIn);
	}
}

function initOverLabels () {
  if (!document.getElementById) return;  	

  var labels, id, field;

  // Set focus and blur handlers to hide and show 
  // LABELs with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
	
    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      }

      // Change the applied class to hover the label 
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') {
        hideLabel(field.getAttribute('id'), true);
      }

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to LABEL elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
};

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      if(hide)
        labels[i].style.visibility = 'hidden';
      else
        labels[i].style.visibility = 'visible';
      labels[i].style.textIndent = '0px';
      return true;
    }
  }
}
