var al_status;
var al_loginForm, al_registerForm, al_lostPasswordForm;
var al_loginMessage, al_registerMessage, al_lostPasswordMessage;
var al_sack = new sack();

if (window.attachEvent) {window.attachEvent('onload', al_init);}
else if (window.addEventListener) {window.addEventListener('load', al_init, false);}
else {document.addEventListener('load', al_init, false);} 

function al_init() {
  al_status = 0;

	al_loginForm = document.getElementById("al_loginForm");
	al_registerForm = document.getElementById("al_registerForm");
	al_lostPasswordForm = document.getElementById("al_lostPasswordForm");
	al_profileForm = document.getElementById("al_profileForm");

	al_loginMessage = document.getElementById("al_loginMessage");
	al_registerMessage = document.getElementById("al_registerMessage");
	al_lostPasswordMessage = document.getElementById("al_lostPasswordMessage");
}


function al_showLogin() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showLogin2();', al_timeout);
	} else {
		al_showLogin2();
	}
}

function al_showLogin2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_login").style.display = "block";
	al_loginForm.log.focus();

}

function al_showRegister() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showRegister2();', al_timeout);
	} else {
		al_showRegister2();
	}
}

function al_showRegister2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_register").style.display = "block";
	
	al_registerForm.submit.disabled = false;
	al_registerForm.submit.value = "Register";

	al_registerForm.user_login.focus();
}


function al_showLostPassword() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showLostPassword2();', al_timeout);
	} else {
		al_showLostPassword2();
	}
}

function al_showLostPassword2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "block";

	al_lostPasswordForm.user_login.focus();
}

function al_showProfile() {

	document.getElementById("al_profile").style.display = "none";
	document.getElementById("al_default").style.display = "none";
	
	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showProfile2();', al_timeout);
	} else {
		al_showProfile2();
	}
}

function al_showProfile2() {

  al_sack.setVar("submit", "1");
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/getuserinfo.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_showProfileHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_showProfileHandleResponse() {
	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_success) {
		user_info_array = responselines[1].split("~~~~");
		
		
    al_profileForm.user_email.value = user_info_array[0];
  	al_profileForm.user_fname.value = user_info_array[1];
  	al_profileForm.user_lname.value = user_info_array[2];
  	al_profileForm.user_address1.value = user_info_array[3];
  	al_profileForm.user_address2.value = user_info_array[4];
    al_profileForm.user_city.value = user_info_array[5];
  	al_profileForm.user_state.value = user_info_array[6];
  	al_profileForm.user_zip.value = user_info_array[7];
  	al_profileForm.user_hphone1.value = user_info_array[8];
  	al_profileForm.user_hphone2.value = user_info_array[9];
  	al_profileForm.user_hphone3.value = user_info_array[10];
  	al_profileForm.user_wphone1.value = user_info_array[11];
  	al_profileForm.user_wphone2.value = user_info_array[12];
  	al_profileForm.user_wphone3.value = user_info_array[13];
  	al_profileForm.user_cphone1.value = user_info_array[14];
  	al_profileForm.user_cphone2.value = user_info_array[15];
  	al_profileForm.user_cphone3.value = user_info_array[16];
    
    al_profileForm.submit.disabled = false;
	 al_profileForm.submit.value = "Submit";
	
  	document.getElementById("al_loading").style.display = "none";
  	document.getElementById("al_profile").style.display = "block";
		return;
	}

	alert("Unknown getuserinfo response.");

}

function al_showDefault() {

	document.getElementById("al_profile").style.display = "none";
	document.getElementById("al_default").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showDefault2();', al_timeout);
	} else {
		al_showDefault2();
	}
}

function al_showDefault2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_default").style.display = "block";

}


function al_login() {

	if (0 != al_status) {
		return;
	}

	if (al_loginForm.log.value == '') {
		alert("Please enter username.");
		al_loginForm.log.focus();
		return;
	}

	if (al_loginForm.pwd.value == '') {
		alert("Please enter password.");
		al_loginForm.pwd.focus();
		return;
	}

	al_sack.setVar("log", al_loginForm.log.value);
	al_sack.setVar("pwd", al_loginForm.pwd.value);
	al_sack.setVar("rememberme", al_loginForm.rememberme.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/login.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_loginHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_loginHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		
		if (al_redirectOnLogin == '')
			window.location.reload(true);
		else
			window.location.href = al_redirectOnLogin;
			
		return;
	}

	alert("Unknown login response.");

}

function al_checkUsername() {
  user_message = document.getElementById('al_usernameMessage');
  
	if (0 != al_status) {
		return;
	}

	if (al_registerForm.user_login.value == '') {
		user_message.innerHTML = '';
		user_message.style.padding = "";
		return;
	}
	
	user_message.style.color = "grey";
	user_message.style.padding = "3px";
	user_message.innerHTML = 'Checking username ...';

	al_sack.setVar("user_login", al_registerForm.user_login.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/checkusername.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_checkUsernameHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_checkUsernameHandleResponse() {
	al_status = 0;
	user_message = document.getElementById('al_usernameMessage');
  user_message.innerHTML = '';
  
	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
		user_message.style.color = "red";
	  user_message.style.padding = "3px";
	  user_message.innerHTML = responselines[1];
	  al_registerForm.user_login.focus();
		return;
	}
	if (responselines[0] == al_success) {
		user_message.style.color = "green";
	  user_message.style.padding = "3px";
	  user_message.innerHTML = responselines[1];
		return;
	}

	alert("Unknown registration response.");

}

function al_register() {

	if (0 != al_status) {
		return;
	}

	if (al_registerForm.user_login.value == '') {
		alert("Please enter username.");
		al_registerForm.user_login.focus();
		return;
	}
  
  if (al_registerForm.user_fname.value == '') {
		alert("Please enter your first name.");
		al_registerForm.user_fname.focus();
		return;
	}
	
	if (al_registerForm.user_lname.value == '') {
		alert("Please enter your last name.");
		al_registerForm.user_lname.focus();
		return;
	}
	
	if (al_registerForm.user_email.value == '') {
		alert("Please enter e-mail address.");
		al_registerForm.user_email.focus();
		return;
	}
  
  al_registerForm.submit.disabled = true;
	al_registerForm.submit.value = "Processing ...";
	
	al_sack.setVar("user_login", al_registerForm.user_login.value);
	al_sack.setVar("user_email", al_registerForm.user_email.value);
	al_sack.setVar("user_fname", al_registerForm.user_fname.value);
	al_sack.setVar("user_lname", al_registerForm.user_lname.value);
	al_sack.setVar("user_address1", al_registerForm.user_address1.value);
	al_sack.setVar("user_address2", al_registerForm.user_address2.value);
  al_sack.setVar("user_city", al_registerForm.user_city.value);
	al_sack.setVar("user_state", al_registerForm.user_state.value);
	al_sack.setVar("user_zip", al_registerForm.user_zip.value);
	al_sack.setVar("user_hphone1", al_registerForm.user_hphone1.value);
	al_sack.setVar("user_hphone2", al_registerForm.user_hphone2.value);
	al_sack.setVar("user_hphone3", al_registerForm.user_hphone3.value);
	al_sack.setVar("user_wphone1", al_registerForm.user_wphone1.value);
	al_sack.setVar("user_wphone2", al_registerForm.user_wphone2.value);
	al_sack.setVar("user_wphone3", al_registerForm.user_wphone3.value);
	al_sack.setVar("user_cphone1", al_registerForm.user_cphone1.value);
	al_sack.setVar("user_cphone2", al_registerForm.user_cphone2.value);
	al_sack.setVar("user_cphone3", al_registerForm.user_cphone3.value);
	/* DEMO FIELDS
	al_sack.setVar("user_text1", al_registerForm.user_text1.value);
	al_sack.setVar("user_checkbox1", al_registerForm.user_checkbox1.value);
	al_sack.setVar("user_list1", al_registerForm.user_list1.value);
  */
	
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/register.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_registerHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_registerHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
	  al_registerForm.submit.disabled = false;
    al_registerForm.submit.value = "Register";
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		alert("Registration complete. Please check your e-mail.");
		al_loginMessage.innerHTML = "Your password is in your mail.<br/>";
		al_loginForm.log.value = al_registerForm.user_login.value;
		al_registerForm.user_login.value = "";
		al_registerForm.user_email.value = "";
		al_showLogin();
		al_loginForm.pwd.focus();
		return;
	}

	alert("Unknown registration response.");

}

function al_saveProfile() {

	if (0 != al_status) {
		return;
	}

	if (al_profileForm.new_password.value != al_profileForm.new_password2.value) {
		alert("Please re-enter the new password.  The passwords you entered do not match.");
		al_profileForm.new_password.value = "";
    al_profileForm.new_password2.value = "";
    al_profileForm.new_password.focus();
		return;
	}
  
  if (al_profileForm.user_fname.value == '') {
		alert("Please enter your first name.");
		al_profileForm.user_fname.focus();
		return;
	}
	
	if (al_profileForm.user_lname.value == '') {
		alert("Please enter your last name.");
		al_profileForm.user_lname.focus();
		return;
	}

	if (al_profileForm.user_email.value == '') {
		alert("Please enter e-mail address.");
		al_profileForm.user_email.focus();
		return;
	}
  
  al_profileForm.submit.disabled = true;
	al_profileForm.submit.value = "Processing ...";
	
	al_sack.setVar("current_password", al_profileForm.current_password.value);
	al_sack.setVar("new_password", al_profileForm.new_password.value);
	al_sack.setVar("user_email", al_profileForm.user_email.value);
	al_sack.setVar("user_fname", al_profileForm.user_fname.value);
	al_sack.setVar("user_lname", al_profileForm.user_lname.value);
	al_sack.setVar("user_address1", al_profileForm.user_address1.value);
	al_sack.setVar("user_address2", al_profileForm.user_address2.value);
  al_sack.setVar("user_city", al_profileForm.user_city.value);
	al_sack.setVar("user_state", al_profileForm.user_state.value);
	al_sack.setVar("user_zip", al_profileForm.user_zip.value);
	al_sack.setVar("user_hphone1", al_profileForm.user_hphone1.value);
	al_sack.setVar("user_hphone2", al_profileForm.user_hphone2.value);
	al_sack.setVar("user_hphone3", al_profileForm.user_hphone3.value);
	al_sack.setVar("user_wphone1", al_profileForm.user_wphone1.value);
	al_sack.setVar("user_wphone2", al_profileForm.user_wphone2.value);
	al_sack.setVar("user_wphone3", al_profileForm.user_wphone3.value);
	al_sack.setVar("user_cphone1", al_profileForm.user_cphone1.value);
	al_sack.setVar("user_cphone2", al_profileForm.user_cphone2.value);
	al_sack.setVar("user_cphone3", al_profileForm.user_cphone3.value);
	
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/updateProfile.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_saveProfileHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_saveProfileHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
	  al_profileForm.submit.disabled = false;
    al_profileForm.submit.value = "Register";
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		al_showDefault();
		return;
	}

	alert("Unknown registration response.");

}

function al_retrievePassword() {
	if (0 != al_status) {
		return;
	}

	if (al_lostPasswordForm.user_login.value == '') {
		alert("Please enter username.");
		al_lostPasswordForm.user_login.focus();
		return;
	}

	if (al_lostPasswordForm.user_email.value == '') {
		alert("Please enter e-mail address.");
		al_lostPasswordForm.user_email.focus();
		return;
	}

	al_sack.setVar("user_login", al_lostPasswordForm.user_login.value);
	al_sack.setVar("user_email", al_lostPasswordForm.user_email.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ldd-ajax-login/lostpassword.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_lostPasswordHandleResponse;
	al_sack.runAJAX();
	al_status = 1;
}

function al_lostPasswordHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		alert("Check your e-mail for the confirmation link.");
		al_loginMessage.innerHTML = "Your confirmation link is in your mail.<br/>";
		al_loginForm.log.value = al_lostPasswordForm.user_login.value;
		al_lostPasswordForm.user_login.value = "";
		al_lostPasswordForm.user_email.value = "";
		al_showLogin();
		al_loginForm.pwd.focus();
		return;
	}

	alert("Unknown password retrieval response.");

}

function al_ajaxError() {
	alert("We are sorry, there was an error while sending the request.\nPlease try again!\nIf error persists, please contact the webmaster.");
	
	alert(al_sack.responseStatus[0] + ':\n' + al_sack.response);
	al_sack = new sack();
}

function al_loginOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_login();

}
function al_registerOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_register();

}
function al_retrievePasswordOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_retrievePassword();

}
