/*
Shoutboxin AJAX - JavaScript-koodi
Aleksi Kinnunen 16.4.2008
*/

/* Lootan päivitys */
new Ajax.PeriodicalUpdater('shoutbox', 'readshout.php', {
  method: 'get', frequency: 2, decay: 1
});

/* Viestin lähettäminen */
function postShout() {
	var viesti = 'comment=' + encodeURIComponent($('comment').value);
	new Ajax.Request('postshout.php', {method: 'post', parameters: viesti, onComplete: function(transport) {
		if(transport.responseText.match('error'))
			shoutPosted('false');
		else if(transport.responseText == 'success')
			shoutPosted('success');
		else if(transport.responseText == 'message')
			shoutPosted('message');
		else if(transport.responseText.match('[0-9]{1}'))
			shoutPosted('time', transport.responseText, $('comment').value);
		else if(transport.responseText == 'fail', $('comment').value)
			shoutPosted('false');
		}
	});
}

/* Lähetys onnistui */
function shoutDisableSuccess() {
	$('comment').disable();
	$('comment').setStyle({ 'background': 'green' });
	$('comment').value = "Viesti lähetetty!";
}

/* Lähetys epäonnistui */
function shoutDisableFail(aika, msg) {
	$('comment').disable();
	$('comment').setStyle({ 'background': 'red' });
	if(aika)
		$('comment').value = "Odota vielä " + aika + " sek!";
	else if(msg)
		$('comment').value = "Virheellinen viesti!";
	else
		$('comment').value = "Lähetys epäonnistui! Olethan sisäänkirjautuneena?";
}

/* Aktivoi kirjoituslaatikon uudelleen */
function shoutEnable(viesti) {
	$('comment').enable();
	$('comment').setStyle({ 'background': '#FFF' });
	if(viesti)
		$('comment').value = viesti;
	else
		$('comment').value = "Kirjoita viesti";
}

/* Kirjoituslaatikkoon palaute viestin lähetyksen onnistumisesta */
function shoutPosted(status, aika, viesti) {
	if(status.match('success'))
		shoutDisableSuccess();
	else if(status.match('time'))
		shoutDisableFail(aika);
	else if(status.match('message'))
		shoutDisableFail(false, true);
	else
		shoutDisableFail();
	
	if(status.match('success'))
		shoutEnable.delay(1);
	else
		shoutEnable.delay(1, viesti);
	
	ajaxUpdater('shoutbox', 'readshout.php');
}
