function messenger() {
	this.channel_id = 'default_channel_id';
	this.messenger_url = 'messenger.php5';
	this.have_lines = 0;

	this.send_success = function (transport) {
		var response = transport.responseText || "no response text";
	}
	
	this.send_failure = function() { 
	}

	this.send = function (message) {
		var url = this.messenger_url + '?action=send&message=' + encodeURI(message) + '&channel_id=' + this.channel_id;
		var request = new Ajax.Request(
			url,
			{
				method:'get',
				onSuccess: this.send_success,
				onFailure: this.send_failure
			}
		);
		request.transport.sender = this;
	}
	
	this.process_message = function (message) {
		alert(message);
	}

	this.request_failure = function() { 
		transport.sender.request();
	}

	this.request_success = function (transport) {
		var response = (transport.responseText || '').split(/\n/);
		var lines = response[0];
		if (parseInt(lines) > 0) {
			transport.sender.have_lines += parseInt(lines);
			for (var i=1; i<response.length-1; i++) {
				transport.sender.process_message(response[i]);
			}
		} 
		transport.sender.request();
	}
	
	this.request = function () {
		var url = this.messenger_url + '?action=request&have_lines=' + this.have_lines + '&channel_id=' + this.channel_id;
		var request = new Ajax.Request(
			url,
			{
				method:'get',
				asynchronous: 'false',
				onFailure: this.request_failure,
				onSuccess: this.request_success
			}
		);
		request.transport.sender = this;
	}

	this.start = function() {
		this.request();
	}
}

