// $Id: accounthandler.js,v 1.4 2008/03/27 21:12:39 mauclerc Exp $

/**
 * Create a new account
 */
function createAccount() {

	var email = document.getElementById("account.email").value;
	var password = document.getElementById("account.password").value;
	var passwordConfirmation = document.getElementById("account.passwordConfirmation").value;

	// If everything is right
	if (email && password && passwordConfirmation && (password == passwordConfirmation)) {
		// Build the request
		var request = 
			{
				method: "checkAccount",
				email: email
			};
		// Send it to the server side
		dojo.xhrGet(
			{
			url: "login",
		    content: request,
			load: function(response, ioArgs){createAccountHandler(response)}
		    }
		);
	} else {
		// Get the errors to display
		var errors = "<ul>";
		if (!email) {
			errors += "<li>" + gErrors["error.account.creation.missing.email"] + "</li>";
		}
		if (!password) {
			errors += "<li>" + gErrors["error.account.creation.missing.password"] + "</li>";
		}
		if (password != passwordConfirmation) {
			errors += "<li>" + gErrors["error.account.creation.incoherent.password"] + "</li>";
		}
		errors += "</ul>";
		
		// Display the errors
		displayErrorMessage(errors);
	}
}

/**
 * Account creation callback
 */
function createAccountHandler(response) {
	if (response == "false")  {
		document.getElementById('registrationForm').submit();
	} else {
		displayErrorMessage(gErrors["error.account.creation.already.exist"]);
	}
}

/**
 * Log in.
 */
function loginAccount() {

	var email = document.getElementById("authenticationBox.email").value;
	var password = document.getElementById("authenticationBox.password").value;

	// If everything is right
	if (email && password) {
		// Build the request
		var request = 
			{
				method: "authenticate",
				email: email,
				password: password
			};
		// Send it to the server side
		dojo.xhrGet({
	        url: "login",			
	        content: request,
			load: function(response, ioArgs){loginAccountHandler(response);}
		});
	} else {
		// Get the errors to display
		var errors = "<ul>";
		if (!email) {
			errors += "<li>" + gErrors["error.account.login.missing.email"] + "</li>";
		}
		if (!password) {
			errors += "<li>" + gErrors["error.account.login.missing.password"] + "</li>";
		}
		errors += "</ul>";
		
		// Display the errors
		displayErrorMessage(errors);
	}
}

/**
 * Login callback
 */
function loginAccountHandler(response) {
	if (response == "OK")  {
		document.getElementById('authenticationForm').submit();
	} else {
		displayErrorMessage(gErrors["error.account.login.failed"]);
	}
}