/* 
Extracted from 
Brian's Threaded Comments 1.5.6 
http://meidell/threadedcomments/
*/

function collapseThread( theId ) {
	var comment = document.getElementById(theId);
	if(!comment)
	{
		alert("ERROR:\nThe document structure is different\nfrom what Threaded Comments expects.\nYou are missing the element '"+theId+"'");
		return;
	}
	var theBody = findBody(comment);
	if(comment.className.indexOf("collapsed") > -1) {
		comment.className = comment.className.replace(" collapsed", "");;
	} else {
		comment.className += " collapsed";
	}
}

function expandThread( theId ) {
	var comment = document.getElementById(theId);
	if(!comment)
	{
		alert("ERROR:\nThe document structure is different\nfrom what Threaded Comments expects.\nYou are missing the element '"+theId+"'");
		return;
	}
	var theBody = findBody(comment);
	if(comment.className.indexOf("collapsed") > -1) {
		comment.className = comment.className.replace(" collapsed", "");;
	} 
}

function findBody(el)
{
	var divs = el.getElementsByTagName("div");
	var ret;
	for(var i = 0; i < divs.length; ++i) {
		if(divs.item(i).className.indexOf("body") > -1)
			return divs.item(i);
		else 
			divs.item(i).className += " body";
	}
	return false;
}



function replyCommentBelow(theId, threadId){
	expandThread( theId );
	var addComment = document.getElementById("addcomment");
	if(!addComment)
	{
		alert("ERROR:\nThreaded Comments can't find the 'addcomment' div.\nThis is probably because you have changed\nthe comments.php file.\nMake sure there is a tag around the form\nthat has the id 'addcomment'"); 
		return
	}
	var comment = document.getElementById(theId);

	for(var i = 0; i < comment.childNodes.length; ++i) {
		var c = comment.childNodes.item(i);
		if(typeof(c.className) == "string" && c.className.indexOf("collapsed")<0) {
			c.className += " collapsed";
		}
	}
	
	addComment.parentNode.removeChild(addComment);

	comment.appendChild(addComment);
	if(comment.className.indexOf("alt")>-1) {
		addComment.className = addComment.className.replace(" alt", "");					
	} else {
		addComment.className += " alt";
	}
	var replyId = document.getElementById("comment_reply_ID");
	if(replyId == null)
	{
		alert("Brians Threaded Comments Error:\nThere is no hidden form field called\n'comment_reply_ID'. This is probably because you\nchanged the comments.php file and forgot\nto include the field. Please take a look\nat the original comments.php and copy the\nform field over.");
	}
	replyId.value = threadId;
	var reRootElement = document.getElementById("reroot");
	if(reRootElement == null)
	{
		alert("Brians Threaded Comments Error:\nThere is no anchor tag called 'reroot' where\nthe comment form starts.\nPlease compare your comments.php to the original\ncomments.php and copy the reroot anchor tag over.");
	}
	reRootElement.style.display = "block";
	var aTags = comment.getElementsByTagName("A");
	var anc = aTags.item(0).id;
	document.location.anchor = "#"+anc;
	document.getElementById("comment").focus();
}


function reRoot()
{
	var addComment = document.getElementById("addcomment");			
	var reRootElement = document.getElementById("reroot");
	reRootElement.style.display = "none";
	orgcommentplace = document.getElementById("orgcommentplace");
	addComment.parentNode.removeChild(addComment);
	orgcommentplace.parentNode.insertBefore(addComment,orgcommentplace);
	orgcommentplace.parentNode.insertBefore(orgcommentplace,addComment);
	addComment.className = addComment.className.replace(" alt", "");
	document.location.href = "#addcommentanchor";
	document.getElementById("comment").focus();				
	document.getElementById("comment_reply_ID").value = "0";
}			

function changeCommentSize(d)
{
	var el = document.getElementById("comment");
	var height = parseInt(el.style.height);
	if(!height && el.offsetHeight)
		height = el.offsetHeight;
	height += d;
	if(height < 20) 
		height = 20;
	el.style.height = height+"px";
}		


