function ping() {
	// Send ping, to let the server know I'm still here
	var url = base_url + 'ping.php';
	var pars = creds();

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

	Logger.info("Sent Ping: " + pars);
}

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

	Logger.info("Ping Received: " + data);

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

	if (data == false) {
		// Not JSON
		Logger.error("Invalid Response", "Not a JSON structure");
		return false;
	}

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

	if (typeof(data.queue) == 'undefined') {
		Logger.error("Invalid Response", "Not a queue");
		return false;
	}

	data.queue.each( function(item) {
		var func = item.func;
		var args = item.args;

		// Determine function
		switch(func) {
			case 'add_userlist':
				add_userlist (args.userlist);
				break;
			case 'update_lastactive':
				lastactive = args.lastactive;
				break;
			case 'add_messages':
				add_messages (args.messages);
				break;
		}
	});
}