addEvent(window, 'load', bindSTAF);

function showSTAF() {
	var element = showSTAF.arguments[0];
	
	document.getElementById("send_to_a_friend").style.display = "block";
}

function hideSTAF() {
	document.getElementById("send_to_a_friend").style.display = "none";
}

/*
	Error class - facilitates error messages
	add(errorMsg) - add an error message
	print(targetNode) - outputs the error messages to be the first node of the targetNode
*/
function Error(){
	this.myError = document.createElement('div');
	this.myError.className = "error";
	this.errorList = document.createElement('ul');
}

Error.prototype.add = function(errorMsg) {
	var errorNode = document.createElement('li');
	errorNode.appendChild(document.createTextNode(errorMsg));
	this.errorList.appendChild(errorNode);
}

Error.prototype.print = function(targetNode) {
	var errorNodeName = targetNode.id + "_error";
	this.myError.id = errorNodeName;
	this.myError.appendChild(this.errorList);
	
	// Check that error block is not already there
	if (document.getElementById(errorNodeName)) {
		targetNode.replaceChild(this.myError, targetNode.firstChild);
	}
	else {
		targetNode.insertBefore(this.myError, targetNode.firstChild);
	}
}

/*
	formValidate - validates form fields
	Returns true if form appears valid; false if form is not valid
*/
function formValidate() {
	var myForm = arguments[0];
	var noError = true;
	var formInputs = [];
	
	// Grab all the form inputs
	for (var i = 0, j = myForm.length, k = 0; i < j; i++)
	{
		if (myForm[i].type === "text") {
			formInputs[k] = myForm[i];
			k++;
		}
	}

	// Check required fields
	for (var i = 0, j = formInputs.length; i < j; i++)
	{
		if (!formInputs[i].value) {
			noError = false;
		}
	}
	
	if (noError) {
		var stafContent = document.getElementById("staf_content");
		stafContent.innerHTML = "<h2><span>Yeah!</span></h2><p class=\"message\">Your email is now traveling the interwebs on its way to your friend. Thanks for spreading the word.</p>";
		myForm.style.display = "none";
	}
	else {
		var stafContent = document.getElementById("staf_content");
		stafContent.innerHTML = "<h2 class=\"error\"><span>Hey!</span></h2><p class=\"message error\">Make sure you've entered all your information correctly. Oh, and both form fields are required.</p>";
	}
	
	return noError;
}




function bindSTAF() {
	if (document.getElementById("send")) {
		var target = document.getElementById("send");
		target.onclick = function () {
			showSTAF(this);
			return false;
		}
	}
	if (document.getElementById("close")) {
		var target = document.getElementById("close");
		target.onclick = function () {
			hideSTAF(this);
			return false;
		}
	}
	/*
	if (document.getElementById("staf")) {
		var myForm = document.getElementById("staf");
	
		myForm.onsubmit = function() {
			return formValidate(myForm);
		};
	}
	*/
}

