var alw_status;
var alw_loginForm, alw_registerForm, alw_lostPasswordForm;
var alw_sack = new sack();

var alw_otheronload = window.onload;
window.onload = alw_init;
function alw_init() {

	if (alw_otheronload) alw_otheronload();
	alw_status = 0;
	alw_loginForm = document.getElementById("alw_loginForm");
	alw_registerForm = document.getElementById("alw_registerForm");
	alw_lostPasswordForm = document.getElementById("alw_lostPasswordForm");
}

msg = function(text, style) {
        style = style || 'notice';          
        $('<div>')
          .attr('class', style)
          .html(text)
          .insertBefore($('#login')) 
          .fadeIn('slow')
          .animate({opacity: 1.0}, 3000)     
          .fadeOut('slow', function()
          {
                $(this).remove();
          });
};

function hide () {
	$("#loading").css("display", "none"); 
	$("#login").css("display", "none"); 
	$("#register").css("display", "none"); 
	$("#lostPassword").css("display", "none"); 
	
}

function showRegister() {
	hide();
	$("#register").fadeIn("slow");
	$("#user_login").focus();
}


function showLogin() {
	hide();
	$("#login").fadeIn("slow");
	$("#log").focus();
}



function showLostPassword() {
	hide();
	$("#lostPassword").fadeIn("slow");
	$("#user_login").focus();
}

function alw_login() {

	if (0 != alw_status) {
		return;
	}

	if (alw_loginForm.log.value == '') {
		msg('Please enter username.');
		alw_loginForm.log.focus();
		return;
	}

	if (alw_loginForm.pwd.value == '') {
		msg('Please enter password.');
		alw_loginForm.pwd.focus();
		return;
	}
	$("#loading").css("display", "block"); 

	alw_sack.setVar("log", alw_loginForm.log.value);
	alw_sack.setVar("pwd", alw_loginForm.pwd.value);
	alw_sack.setVar("rememberme", alw_loginForm.rememberme.value);

	alw_sack.requestFile = alw_base_uri + "/wp-content/plugins/wp-login/login.php";
	alw_sack.method = "POST";
	alw_sack.onError = alw_ajaxError;
	alw_sack.onCompletion = alw_loginHandleResponse;
	alw_sack.runAJAX();
	alw_status = 1;

}

function alw_loginHandleResponse() {
	alw_status = 0;

	var responselines = alw_sack.response.split("\n",2);
	if (responselines[0] == alw_failure) {
        $("#loading").css("display", "none"); 
		msg(responselines[1]);
		return;
	}
	if (responselines[0] == alw_success) {
		
		if (alw_redirectOnLogin == '')
			window.location.reload(true);
		else
			window.location.href = alw_redirectOnLogin;
			
		return;
	}

	msg("Unknown login response.");

}

function alw_register() {

	if (0 != alw_status) {
		return;
	}

	if (alw_registerForm.user_login.value == '') {
		msg("Please enter username.");
		alw_registerForm.user_login.focus();
		return;
	}

	if (alw_registerForm.user_email.value == '') {
		msg("Please enter e-mail address.");
		alw_registerForm.user_email.focus();
		return;
	}

    $("#loading").css("display", "block"); 

	alw_sack.setVar("user_login", alw_registerForm.user_login.value);
	alw_sack.setVar("user_email", alw_registerForm.user_email.value);

	alw_sack.requestFile = alw_base_uri + "/wp-content/plugins/wp-login/register.php";
	alw_sack.method = "POST";
	alw_sack.onError = alw_ajaxError;
	alw_sack.onCompletion = alw_registerHandleResponse;
	alw_sack.runAJAX();
	alw_status = 1;

}

function alw_registerHandleResponse() {

	alw_status = 0;
    $("#loading").css("display", "none"); 

	var responselines = alw_sack.response.split("\n",2);
	if (responselines[0] == alw_failure) {
		msg(responselines[1]);
		return;
	}
	if (responselines[0] == alw_success) {
		msg("Registration complete. Please check your e-mail.");
		alw_loginForm.log.value = alw_registerForm.user_login.value;
		alw_registerForm.user_login.value = "";
		alw_registerForm.user_email.value = "";
		showLogin();
		return;
	}

	alert("Unknown registration response.");

}

function alw_retrievePassword() {
	if (0 != alw_status) {
		return;
	}

	if (alw_lostPasswordForm.user_login.value == '') {
		msg("Please enter your login name or your e-mail address.");
		alw_lostPasswordForm.user_login.focus();
		return;
	}
    $("#loading").css("display", "block"); 
	alw_sack.setVar("user_login", alw_lostPasswordForm.user_login.value);
	alw_sack.requestFile = alw_base_uri + "/wp-content/plugins/wp-login/lostpassword.php";
	alw_sack.method = "POST";
	alw_sack.onError = alw_ajaxError;
	alw_sack.onCompletion = alw_lostPasswordHandleResponse;
	alw_sack.runAJAX();
	alw_status = 1;
}

function alw_lostPasswordHandleResponse() {
	alw_status = 0;
     $("#loading").css("display", "none"); 

	var responselines = alw_sack.response.split("\n",2);
	if (responselines[0] == alw_failure) {
		msg(responselines[1]);
		return;
	}
	if (responselines[0] == alw_success) {
		msg("Check your e-mail for the reset password link.");
		showLogin();
		return;
	}

	alert("Unknown password retrieval response.");

}

function alw_ajaxError() {
	alert("We are sorry, there was an error while sending the request.\nPlease try again!\nIf error persists, please contact the webmaster.");
	alert(alw_sack.responseStatus[0] + ':\n' + alw_sack.response);
	alw_sack = new sack();
}
