function toggleDisplay(id, action, inline) {
	var o = document.getElementById(id);
	if (o) {
		if ((o.style.display == "none" && action == undefined) || action == "show") {
			if (inline != undefined) {
				o.style.display = "inline";
			} else {
				o.style.display = "block";
			}
		} else {
			o.style.display = "none";
		}
	}
}

function setCookie(cookieName, cookieValue, nDays) {
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)
	                + ";expires="+expire.toGMTString();
}

function respondToPoll(form) {
	var pollOptionId = getRadioValue(form.elements["pollOptionId"]);
	var other = "";
	if (form.elements["other"]) {
		other = encodeURIComponent(form.elements["other"].value);
	}
	var request = YAHOO.util.Connect.asyncRequest("POST", webPagesRoot +"app/interfaces/public/poll/poll.php?return=results", {
		success: 
			function (o) {
				var bucket = document.getElementById("poll-bucket");
				bucket.innerHTML = o.responseText;
			}
		, failure: 
			function (o) {
				log("Error retrieving poll.");
			}
		}, "pollOptionId="+ pollOptionId +"&other="+ other);
	form.elements["submit"].value = "Loading...";
	form.elements["submit"].disabled = true;
}

function getRadioValue(radiosElement) {
	var val = "";
	for (i = 0; i < radiosElement.length; i++ ) {
		if (radiosElement[i].checked == true) {
			val = radiosElement[i].value;
		}
	}
	return val;
}

function swapPoll(returnKey) {
	var request = YAHOO.util.Connect.asyncRequest("GET", webPagesRoot +"app/interfaces/public/poll/poll.php?return="+ returnKey, {
		success: 
			function (o) {
				var bucket = document.getElementById("poll-bucket");
				bucket.innerHTML = o.responseText;
			}
		, failure: 
			function (o) {
				log("Error retrieving poll.");
			}
		});
}

function switchMap(obj) {
	var mapLinks = document.getElementById("map-links");
	if (mapLinks) {
		var links = getElementsByClassName("on", "a", mapLinks);
		if (links) {
			for (var i = 0; i < links.length; i++) {
				links[i].className = "";
			}
		}
	}
	if (obj) {
		if (obj.href) {
			var map = document.getElementById("map");
			map.src = obj.href;
			obj.className = "on";
		}
	}
	return false;
}

//	Written by Jonathan Snook, http://www.snook.ca/jonathan
//	Add-ons by Robert Nyman, http://www.robertnyman.com
function getElementsByClassName(className, tag, elm) {
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function log(s) {
	if (console) {
		console.log(s);
	} else if (window.console) {
		window.console.log(s);
	}
}

// word count
function calculateWordCountInTextarea_maxWords_countOutput(theTextarea, maxWordCount, countOutput) {
	var wordCount = theTextarea.value.split(" ").length;
	if (theTextarea.value == "") {
		wordCount = 0;
	}
	if (wordCount > 25) {
		var words = theTextarea.value.split(" ");
		var outString = "";
		for (var i = 0; i < 25; i++) {
			if (outString != "") {
				outString += " ";
			}
			outString += words[i];
		}
		outString += " ";
		theTextarea.value = outString;
		wordCount = 25;
		return;
	}
	countOutput.innerHTML = wordCount;
}

function checkRequiredFieldsOnGetInvolvedForm() {
	var showError = false;
	if (document.getElementById("nameFirst").value == "") {
		showError = true;
	}
	if (document.getElementById("nameLast").value == "") {
		showError = true;
	}
	if (document.getElementById("email").value == "") {
		showError = true;
	}
	if (showError) {
		alert("Please fill in all three required fields: First Name, Last Name and Email Address.");
		return false;
	}
	return true;
}