var board_base_url = root_loc+"xml.php";

function boardClearForm() {
	var brdmsg = $('boardmsg');
	boardmsg.value = "";
	boardmsg.focus();
	boardCountAndTruncate();
}

function boardSubmitAndClear() {
	var brdmsg = $('boardmsg');
	var val = boardmsg.value;
	boardPostMessage(val);
	setTimeout('boardClearForm();',100);
	return false;
}

function boardCountAndTruncate() {
	var brdmsg = $('boardmsg');
	if (brdmsg) {
		if (brdmsg.value.length > 254) {
			brdmsg.value = brdmsg.value.substring(0,254);
		}
		var brdcnt = $('boardcnt');
		if (brdcnt) {
			var chleft = 254 - brdmsg.value.length;
			var mesg = '' + chleft;
			if (chleft == 1) {
				mesg += ' char left';
			} else {
				mesg += ' chars left';
			}
			if (chleft < 25) {
				mesg = '<em class="warn">' + mesg + '</em>';
			}
			var t = $('boardmsg').scrollTop;
			brdcnt.innerHTML = mesg;
			setTimeout('if ($("boardmsg").scrollTop == 0) {$("boardmsg").scrollTop='+t+';}',1);
		}
	}
	return;
}

function boardKeyPressed(e) {
	var keynum;
	if (e) {
		if (window.event) {
			keynum = e.keyCode; // IE
		} else if (e.which) {
			keynum = e.which;   // Netscape/Firefox/Opera
		}
		if (keynum == 13) {     // Enter key
			boardSubmitAndClear();
			return;
		}
	}
	setTimeout('boardCountAndTruncate();',1);
	return true;
}

function boardScrollToBottom() {
	bbox = $("boardbox"); 
	if (bbox.scrollHeight > bbox.offsetHeight) {
		bbox.scrollTop = bbox.scrollHeight;
	}
}

setTimeout('boardScrollToBottom();',500);


////////////////////////////////////////////////////////////
// AJAX XML reply handlers
////////////////////////////////////////////////////////////

ajaxq.addHandler('boardmsgs', function(xml) {
	el = document.getElementById("boardcont"); 
	bbox = document.getElementById("boardbox"); 
	var btags = xml.getElementsByTagName("boardmsg");
	if (btags.length > 0) {
		for (var i = 0; i < btags.length; i++) {
			el.innerHTML += btags[i].firstChild.nodeValue;
		}
		board_max_id = xml.getElementsByTagName("boardmaxid")[0].firstChild.nodeValue;
		boardScrollToBottom();
		if (btags.length >= 100) {
			setTimeout('boardGetMessages(false);',500);
		}
	}
});

ajaxq.addHandler('boarddel', function(xml) {
	var msgid = xml.getElementsByTagName("delmsgid")[0].firstChild.nodeValue;
	var el = document.getElementById("bmsgid_"+msgid); 
	if (el) {
		el.parentNode.removeChild(el);
	}
});


////////////////////////////////////////////////////////////
// AJAX requestors
////////////////////////////////////////////////////////////

function boardGetMessages(dorefresh) { 
	ajaxq.addRequest(board_base_url, "a=xBoardMsgs&since=" + board_max_id);
	if (dorefresh) {
		setTimeout('boardGetMessages(true);',board_refresh_delay*1000);
	}
} 

function boardDel(msgid) { 
	if (confirm("Are you sure you want to delete this message?")) {
		ajaxq.addRequest(board_base_url, "a=xBoardDel&msgid=" + msgid);
	}
	return false;
} 

function boardPostMessage(msgtxt) { 
	var txt = encodeURIComponent(msgtxt);
	ajaxq.addRequest(board_base_url, "a=xBoardPost&since="+board_max_id+"&boardmsg="+txt);
} 


setTimeout('boardGetMessages(true);',250);

/* vim: set ts=4 sw=4 ai nowrap noexpandtab: settings */

