function login() {
	var username = $F('username');

	// Check if username isn't empty
	if (username == '')	{
		alert('Please enter a username');
		return false;
	}

	// Send login request
	var url = base_url + 'login.php';
	var pars = 'username=' + escape(username);

	var ajax = new Ajax.Request(url, {method: 'post', parameters: pars, onComplete: login_handle_response});

	Logger.info("Logged in: " + pars);
}

function creds() {
	return 'username=' + escape(username) + '&password=' + escape(password) + '&lastactive=' + lastactive;
}

function do_login(data) {
	// Are password and lastactive there?
	if (typeof(data.lastactive) == 'undefined' || typeof(data.password) == 'undefined')	{
		alert('An unexpected error happened. Please try again');
		return false;
	}

	// Save them
	password = data.password;
	lastactive = data.lastactive;
	username = data.username;

	// Insert users into userlist
	add_userlist(data.userlist);

	// Show chat
	Element.hide('login');
	var el = $('chat');
	el.style.display = 'block';

	var ping_obj = new PeriodicalExecuter(ping, 1);
}

function add_userlist(list) {
	var ul_users = $('users');
	ul_users.innerHTML = '';

	list.each( function(user) {
		var new_li = document.createElement('LI');
		new_li.id = 'user-' + user.userid;
		new_li.innerHTML = user.username;

		ul_users.appendChild(new_li);
	});
}

function login_handle_response(request) {
	var data = request.responseText;

	// Transform JSON
	data = JSON.parse(data);

	if (data == false) {
		// Not JSON
		alert('An unexpected error happened. Please try again');
		return false;
	}

	if (typeof(data.error) != 'undefined') {
		alert(data.error.msg);
		return false;
	}

	// Which action?
	if (data.action == 'login' && data.success == true)	{
		do_login(data);
	}
}