/***************************************************************************

BHU/js/comment_form.js

Checks for valid input values on the comment form. Allows previewing comment
before submitting.

***************************************************************************/

/*
	Functions.
*/

// Checker form loaded.

function commentChecked() {
	commentChecker.loaded();
	var result = commentChecker.result;

	if(!result) commentPreview = new previewArea("comment");
	else if(result == "fail") {
		if(commentChecker.loadup.match("\n")) document.getElementById("rowComment").style.display = "table-row";
		else {
			var codeID = commentChecker.loadup;
			document.getElementById("code_img").src = "BHU/reg_img/" + codeID + ".png";
			inpCodeID.element.value = codeID;
		}
	}
	else if(result == "success") {
		var comsHead = document.getElementById("comments_head");
		if(comsHead) {
			var
				comTotal = document.getElementById("comments_total"),
				comments = Number(comTotal.innerHTML.match(/^\d+/));
			comTotal.innerHTML = String(++comments) + " Comments";
		}
		else {
			comsHead			= document.createElement("header");			
			comsHead.className	= "content_head";
			comsHead.id			= "comments_head";
			comsHead.innerHTML	= "1 Comment";
			document.getElementById("content_area").insertBefore(comsHead, document.getElementById("commentForm"));
		}
		commentPreview.preview();
		commentForm.btnsArea.style.display = "none";	
	}
}

// Set up comment data for display.

function commentPrevVals() {
	var guest	= document.getElementById("Nick");
	var nickVal	= guest ? htmlspecialchars(inpNick.element.value) : document.getElementById("commentPreview0").innerHTML;
	var values	= new Array();

	// Make nickname a link to user's website if given.
	if(guest) {
		var siteVal = inpSite.element.value;
		if(siteVal) nickVal = "<a href=\"" + siteVal + "\">" + nickVal + "</a>";
		values.push(nickVal);
	}

	values.push(
		previewDate(),
		inpComment.element.value.replace(/\n/g, "<br>")
	);
	return values;
}

/*
	Main code.
*/

var
	entryID			= document.getElementById("commentForm").action.match(/\d+$/),
	commentForm		= new formArea("comment"),
	commentChecker	= new formChecker("comment", entryID),
	inpComment		= new inputItem("Comment"),
	commentPreview;	// Set when checker is loaded; uses data in iframe document.

// Guest user only.
if(document.getElementById("Nick"))
	var
		inpNick		= new inputItem("Nick"),
		inpEmail	= new inputItem("Email"),
		inpSite		= new inputItem("Site"),
		inpCode		= new inputItem("Code"),
		inpCodeID	= new inputItem("CodeID");
else {
	var form = document.getElementById("commentForm");
	form.addEventListener("reset", function() { document.getElementById("rowComment").style.display = "none"; }, false);
	form.reset();
}

// Add preview button (direct previewing not supported for this yet).
var prevButton		= document.createElement("input");;
prevButton.addEventListener("click", function () { document.getElementById("commentMode").value = "preview"; }, false);
prevButton.id		= "preview_comment";
prevButton.name		= "preview_comment";
prevButton.type		= "submit";
prevButton.value	= "Preview";
commentForm.btnsArea.insertBefore(prevButton, document.getElementById("submit_comment"));
