Event.observe(window, 'load', function() {
	Event.observe($('talk'), 'keydown', hit_enter, false);	
}, false);

function hit_enter(e) {
	if (e.keyCode == 13) {
		send_message();
	}
}

function send_message() {
	var talk = $('talk');
	var msg = talk.value;

	if (msg == '') {
		return false;
	}

	// Send message
	var url = base_url + 'chat.php';
	var pars = creds() + '&message=' + escape(msg);

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

	Logger.info("Sent message: " + pars);

	// Clear field
	talk.value = '';
}

function add_messages(messages) {
	var div = $('messages');

	messages.each( function(message) {
		// Make sure to filter out duplicate messages
		var dup = message.time + '|' + message.token;
		if (dup_filter.inArray(dup) == true) { return; }
		add_dup_filter(dup);
		
		var new_b = document.createElement('b');
		new_b.innerHTML = message.username + '> ';
		div.appendChild(new_b);

		var new_span = document.createElement('span');
		new_span.innerHTML = message.message.escapeHTML();
		div.appendChild(new_span);

		div.appendChild(document.createElement('br'));
	});

	div.scrollTop = div.scrollHeight;
}

function add_dup_filter (dup) {
	if (dup_filter.length >= 10) {
		dup_filter.shift();
	}

	dup_filter[dup_filter.length] = dup;
}