
function ToggleLogin(newUser)
{
	if (newUser)
	{
		document.getElementById('pwd2Row').className = '';
		document.getElementById('emailRow').className = '';
		document.getElementById('registerRow').className = '';
		document.getElementById('loginRow').className = 'hidden';
		
		document.getElementById('usernameTextBox').onkeypress = function(event)
		{
			if (!event) event = window.event;
			if ((event.which ? event.which : event.keyCode) == 13)
			{
				register();
				this.blur();
				return false;
			}
		}

		document.getElementById('password1TextBox').onkeypress = document.getElementById('usernameTextBox').onkeypress;
		document.getElementById('password2TextBox').onkeypress = document.getElementById('usernameTextBox').onkeypress;
		document.getElementById('emailTextBox').onkeypress = document.getElementById('usernameTextBox').onkeypress;
	}
	else
	{
		document.getElementById('pwd2Row').className = 'hidden';
		document.getElementById('emailRow').className = 'hidden';
		document.getElementById('registerRow').className = 'hidden';
		document.getElementById('loginRow').className = '';
		
		document.getElementById('usernameTextBox').onkeypress = function(event)
		{
			if (!event) event = window.event;
			if ((event.which ? event.which : event.keyCode) == 13)
			{
				login();
				this.blur();
				return false;
			}
		}
		
		document.getElementById('password1TextBox').onkeypress = document.getElementById('usernameTextBox').onkeypress;
	}
}

function HideLoginBox()
{
	document.getElementById('introRow').className = 'hidden';
	document.getElementById('typeRow').className = 'hidden';
	document.getElementById('userRow').className = 'hidden';
	document.getElementById('pwd1Row').className = 'hidden';
	document.getElementById('pwd2Row').className = 'hidden';
	document.getElementById('emailRow').className = 'hidden';
	document.getElementById('registerRow').className = 'hidden';
	document.getElementById('loginRow').className = 'hidden';
	if (document.getElementById('trFuneralDirectorLink'))
		document.getElementById('trFuneralDirectorLink').className = 'hidden';
	
	document.getElementById('viewNoticesRow').className = '';
	document.getElementById('loginText').className = 'hidden';
}

function register()
{
	var username = document.getElementById('usernameTextBox').value;
	var password1 = document.getElementById('password1TextBox').value;
	var password2 = document.getElementById('password2TextBox').value;
	var email = document.getElementById('emailTextBox').value;

	if (trim(username) == '' || trim(password1) == '' || trim(password2) == '' || trim(email) == '')
	{
		document.getElementById('registerText').innerHTML = '<p>You must enter a username, password and email.</p>';
		document.getElementById('registerText').className = '';
		return;
	}

	if (password1 != password2)
	{
		document.getElementById('registerText').innerHTML = '<p>Passwords don\'t match.</p>';
		document.getElementById('registerText').className = '';
		return;
	}

	document.getElementById('registerText').innerHTML = '<p>Registering...</p>';
	document.getElementById('registerText').className = '';
	
	FamilyArchives.FamilyNotices.Web.EditNotice.Register(username, password1, email, registerCallback)
}

function registerCallback(response)
{
	if (response.error != null)
	{
		document.getElementById('registerText').innerHTML = '<p>' + response.error + '</p>';
		return;
	}
	
	registerResult(response.value);
}

// Function can be called by code-behind with js page registration.
function registerResult(val)
{
	if (val == '')
		HideLoginBox();
	else
	{
		document.getElementById('registerText').innerHTML = '<p>' + val + '</p>';
		document.getElementById('registerText').className = '';
	}
}

function login()
{
	document.getElementById('loginText').innerHTML = 'Logging in...';
	document.getElementById('loginText').className = '';
	
	var username = document.getElementById('usernameTextBox').value;
	var password = document.getElementById('password1TextBox').value;
	FamilyArchives.FamilyNotices.Web.EditNotice.Login(username, password, loginCallback)
}

function loginCallback(response)
{
	if (response.error != null)
	{
		document.getElementById('loginText').innerHTML = response.error;
		return;
	}

	if (response.value == 'FD')
		window.location.href = unescape(window.location);
	else
	if (response.value == '')
		HideLoginBox();
	else
		document.getElementById('loginText').innerHTML = response.value;
}


