
var saved_usenet_onload = window.onload;
var selectedMessageRow  = null;
var messageTree = null;

function scrollIntoView() {
	if (typeof(selectedMessageRow.offsetTop)!='undefined' && typeof(messageTree.scrollTop)!='undefined') {
		if (selectedMessageRow.offsetTop < messageTree.scrollTop ||
		    selectedMessageRow.offsetTop > (messageTree.scrollTop +
		    (messageTree.offsetHeight-selectedMessageRow.offsetHeight))) {
			messageTree.scrollTop = selectedMessageRow.offsetTop - ((messageTree.offsetHeight - selectedMessageRow.offsetHeight) >> 1);
		}
	}
}

function addClassName(elt, className, atStart) {
	if (!elt.className) {
		elt.className = className;
	}
	else {
		elt.className = atStart ? (className + ' ' + elt.className) : (elt.className + ' ' + className);
	}
}

function removeClassName(elt, className) {
	if (elt.className) {
		var classNames = elt.className.split(' ');
		for (var i=0; i<classNames.length; i++) {
			if (classNames[i] == className) {
				classNames.splice(i, 1); break;
			}
		}
		elt.className = classNames.join(' ');
	}
}

function msgRow_mousedown() {
	if (this.tagName.toLowerCase() == 'tr') {
		if (selectedMessageRow) removeClassName(selectedMessageRow, 'selected');
		addClassName(this, 'selected');
		selectedMessageRow = this;
		window.frames.message.location = this.cells[0].getElementsByTagName('a')[0].href;
	}
}


function msgRow_IMG_mousedown(e) {

	if (!e) e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();

	var cell = this.parentNode.parentNode.parentNode;
	var row  = cell.parentNode;
	var crow = row;

	if (this.classNme == "min") {

		while ((crow = crow.nextSibling)) {
			if (crow.treeLevel <= row.treeLevel) break;
			crow.className = "TR" + crow.treeLevel + ' reply';
			if (crow.cells[0].firstChild.firstChild.className != "blank")
				crow.cells[0].firstChild.firstChild.src = "/usenet/images/plussign.png";
		}

		this.src      = "/usenet/images/plussign.png";
		this.classNme = "plus";
	}
	else {

		while ((crow = crow.nextSibling)) {
			if (crow.treeLevel <= row.treeLevel) break;
			crow.className = "TR" + crow.treeLevel;
			if (crow.cells[0].firstChild.firstChild.className != "blank")
				crow.cells[0].firstChild.firstChild.src = "/usenet/images/minsign.png";
		}

		this.src      = "/usenet/images/minsign.png";
		this.classNme = "min";
	}
}

function offsetTop(elt) {
	var y = elt.offsetTop;
	while ((elt = elt.offsetParent) && (elt != document.body)) {
		y += elt.offsetTop;
	}
	return y;
}

window.onload = function(e) {

	var contain = document.getElementById("pageContain");
	var content = document.getElementById("contentContain");
	var footer  = document.getElementById("footer");
	messageTree = document.getElementById("messageTreeCt");
	var message = document.getElementById("message");

	var avail = contain.offsetHeight - (content.offsetTop + footer.offsetHeight + 70);
	var treeHeight = Math.round(avail/3);

	if (saved_usenet_onload) saved_usenet_onload(e);

	messageTree.style.height = treeHeight + 'px';
	message.style.height = (avail - treeHeight) + 'px';

	var table   = messageTree.getElementsByTagName('table')[0];
	var tbody   = table.getElementsByTagName('tbody')[0];
	var rows    = tbody.getElementsByTagName('tr');

	//for (var i=tbody.childNodes.length-1; i>=0; i--)
	//	if (tbody.childNodes[i].nodeType != 1)
	//		tbody.removeChild(tbody.childNodes[i]);

	for (var classNames, img, div, fromField, row, i=0; i<rows.length; i++) {

		if (rows[i].className) {
			if ((classNames = rows[i].className.split(' ')))
				rows[i].treeLevel = parseInt(classNames[0].substring(2));
			if (rows[i].className.indexOf('selected') != -1)
				selectedMessageRow = rows[i];
		}
		else rows[i].treeLevel = 0;

		fromField = rows[i].cells[0];

		img = fromField.getElementsByTagName('img')[0];
		if (img.className != 'blank')
			img.onmousedown = msgRow_IMG_mousedown;

		div = fromField.getElementsByTagName('a')[0];
		//div.onmousedown = msgRow_mousedown;

		//rows[i].cells[1].firstChild.onmousedown = msgRow_mousedown;
		//rows[i].cells[2].firstChild.onmousedown = msgRow_mousedown;
		rows[i].onmousedown = msgRow_mousedown;
	}

	if (selectedMessageRow) scrollIntoView();
}

