/*************************************************************
 * The following error handlers assume that the area where we
 * display error messages is id="errorArea".
 *
 * Matt Holford <matt@helen-marie.com>
 * Active Citizen Project/ The People's Platform 2006
 */


var msgArea = null;

/**
 * Given an array of errors, show those as a ul-list
 */
function showErrorArray(errors) {
	msgArea = getMsgArea();
	
	if (errors.length > 0) {
		div = document.createElement("div");
		h3 = document.createElement("h3");
		h3Text = document.createTextNode("There are some problems with your submission");
		ul = document.createElement("ul");
		h3.appendChild(h3Text);
		div.appendChild(h3);
		
		for (var i = 0; i < errors.length; i++) {
			li = document.createElement("li");
			liText = document.createTextNode(errors[i]);
			li.appendChild(liText);
			ul.appendChild(li);
		}
		div.appendChild(ul);
		msgArea.appendChild(div);
		msgArea.style.display = "block";
	}
}

/**
 * Given a single message, show that as an h3 title
 */
function showMessage(msg) {
	msgArea = getMsgArea();
	div = document.createElement("div");
	h3 = document.createElement("h3");
	h3Text = document.createTextNode(msg);
	h3.appendChild(h3Text);
	div.appendChild(h3);
	msgArea.appendChild(div);
	msgArea.style.display = "block";
}

/**
 * Clear out last set of div tags, which should mean all content 
 */
function clearDivs(elm) {
	var div = elm.getElementsByTagName("div");
	for (var i = 0; i < div.length; i++) {
		elm.removeChild(div[i]);
	}
	msgArea.style.display = "none";
}

/**
 * Return the msgArea object (id="errorArea")
 */
function getMsgArea() {
	if (msgArea) {
		clearDivs(msgArea);
		msgArea.style.display = "none";
		return msgArea;
	}
	return document.getElementById("errorArea");
}

