/* Helper Functions */

String.prototype.trim = function () { return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); };

function getElementsByClassName(classname, node) {
	if(!node) node = document.getElementsByTagName("body")[0];

	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");

	for(var i=0,j=els.length; i<j; i++)
		if(re.test(els[i].className))a.push(els[i]);

	return a;
}

/* CEN */

var subSectionBarTimeout;
var cenForm;
var finalBottom;

window.onload = function() {
	var quoteAreaElem = null, ideaBlogElem = null, dynamicImageElem = null;
	var sectionMenuElems = null;
	var pageColor = null;

	cenForm = document.getElementById("cenForm");

	if(cenForm.pageName.value == "home") pageColor = "#0B406D";
	else if(cenForm.pageName.value == "newslettersAndPapers") pageColor = "#084887";
	else if(cenForm.pageName.value == "forums") pageColor = "#27677F";
	else if(cenForm.pageName.value == "onlineResources") pageColor = "#F99C21";
	else if(cenForm.pageName.value == "aboutUs") pageColor = "#F96703";

	pulsateLogo();
	setInterval('pulsateLogo()', 5001);
	quoteAreaElem = document.getElementById("quoteArea");
	quoteAreaElem.style.background = pageColor;

	generateRandomQuote();
	setInterval('generateRandomQuote()', 10000);

	onSubSectionBar("blank");

	if(cenForm.pageName.value != null && cenForm.pageName.value.trim() == "home") { finalBottom = 1030; setSmallMenuBarLocation(); }
	else { setRotatingImage(); }

	sectionMenuElems = getElementsByClassName("sectionMenuBarButton");
	if(sectionMenuElems != null) for(var i = 0; i < sectionMenuElems.length; i++) sectionMenuElems[i].style.background = pageColor;

	if(NiftyCheck()) {
		Rounded("div#quoteArea","#FFF",pageColor);
	
		Rounded("div#homeMainMenuBarButton", "#FFF", "#0B406D");
		Rounded("div#newslettersAndPapersMainMenuBarButton", "#FFF", "#084887");
		Rounded("div#forumsMainMenuBarButton", "#FFF", "#27677F");
		Rounded("div#onlineResourcesMainMenuBarButton", "#FFF", "#F99C21");
		Rounded("div#aboutUsMainMenuBarButton", "#FFF", "#F96703");

		Rounded("div.subSectionBar", "#FFF", "#8CA7B9");

		if(getElementsByClassName('sectionMenuBarButton') != null)
			Rounded("div.sectionMenuBarButton", "#FFF", pageColor);

		ideaBlobElem = document.getElementById("ideaBlobButton");
		if(ideaBlobElem != null) Rounded("div#ideaBlobButton", "#FFF", "#0B406D");
	}
}

function loadPage(page, section) { window.location = "/" + section + ".php"; }
function loadSection(section) { loadPage('', section); }

function pulsateLogo() {
	var element = document.getElementById('logoPulse');

	if(element != null) {
		new Effect.Pulsate(element, {pulses: 1, duration: 5, from: 0.5});
	}
}

function setSectionMenuLocation() {
	var pageName = null, imageElem = null, menuItemElem = null, imageBottom = 0;

	imageElem = document.getElementById("dynamicImage");
	if(imageElem != null) { 
		imageElem.style.top = "350px";
		imageBottom = (imageElem.offsetTop + imageElem.offsetHeight); 
	}

	pageName = cenForm.pageName.value;
	if(pageName == "newslettersAndPapers") { finalBottom = (imageBottom+30); } 
	else if(pageName == "forums") { finalBottom = (imageBottom+30); } 
	else if(pageName == "onlineResources") {
		menuItemElem = document.getElementById("resourceLinksSectionMenuBarButton");
		if(menuItemElem != null) {
			menuItemElem.style.top = (imageBottom+30) + "px";
			menuItemElem.style.visibility = "visible";
			menuItemElem.style.display = "block";
		}		

		finalBottom = (imageBottom+30+100);
	} else if(pageName == "aboutUs") {
		menuItemElem = document.getElementById("whoWeAreSectionMenuBarButton");
		if(menuItemElem != null) {
			menuItemElem.style.top = (imageBottom+30) + "px";
			menuItemElem.style.visibility = "visible";
			menuItemElem.style.display = "block";
		}

		menuItemElem = document.getElementById("ourMissionSectionMenuBarButton");
		if(menuItemElem != null) {
			menuItemElem.style.top = (imageBottom+30+50) + "px";
			menuItemElem.style.visibility = "visible";
			menuItemElem.style.display = "block";
		}
		
		menuItemElem = document.getElementById("measuringOurImpactSectionMenuBarButton");
		if(menuItemElem != null) {
			menuItemElem.style.top = (imageBottom+30+100) + "px";
			menuItemElem.style.visibility = "visible";
			menuItemElem.style.display = "block";
		}

		menuItemElem = document.getElementById("faqSectionMenuBarButton");
		if(menuItemElem != null) {
			menuItemElem.style.top = (imageBottom+30+150) + "px";
			menuItemElem.style.visibility = "visible";
			menuItemElem.style.display = "block";
		}
	
		finalBottom = (imageBottom+30+300);
	}

	setSmallMenuBarLocation();
}



function setSmallMenuBarLocation() {
	var contentElem, contentBottom = 0;
	var smallMenuElem;

	contentElem = document.getElementById(cenForm.sectionName.value+"Section");
	if(contentElem != null) { contentBottom = (contentElem.offsetTop + contentElem.offsetHeight); }

	smallMenuElem = document.getElementById("smallMenuBar");		
	if(smallMenuElem != null) {	
		if(finalBottom > contentBottom) {
			smallMenuElem.style.top = (finalBottom+0) + "px";
			smallMenuElem.style.visibility = "visible";
			smallMenuElem.style.display = "block";
		} else {
			smallMenuElem.style.top = (contentBottom+0) + "px";
			smallMenuElem.style.visibility = "visible";
			smallMenuElem.style.display = "block";
		}
	}
}

function onMainMenuButton(button) {
	var elem = document.getElementById(button);
	var homeLeft = "43px", newslettersLeft = "218px", forumsLeft = "413px", resourcesLeft = "618px", aboutLeft = "823px";

	if(button == 'homeMainMenuBarButton') {
		elem.style.left = homeLeft;
		elem.style.width = "160px";

		clearTimeout(subSectionBarTimeout);
		onSubSectionBar('home');
	} else if(button == 'newslettersAndPapersMainMenuBarButton') {
		elem.style.left = newslettersLeft;
		elem.style.width = "200px";

		clearTimeout(subSectionBarTimeout);
		onSubSectionBar('blank');

	} else if(button == "forumsMainMenuBarButton") {
		elem.style.left = forumsLeft;
		elem.style.width = "200px";

		clearTimeout(subSectionBarTimeout);
		onSubSectionBar('blank');
	} else if(button == "onlineResourcesMainMenuBarButton") {
		elem.style.left = resourcesLeft;
		elem.style.width = "200px";

		clearTimeout(subSectionBarTimeout);
		onSubSectionBar('onlineResources');
	} else if(button == "aboutUsMainMenuBarButton") {
		elem.style.left = aboutLeft;
		elem.style.width = "160px";

		clearTimeout(subSectionBarTimeout);
		onSubSectionBar('aboutUs');
	} 

	elem.style.fontSize = "large";	
}

function offMainMenuButton(button) {
	var elem = document.getElementById(button);
	var homeLeft = "63px", newslettersLeft = "228px", forumsLeft = "433px", resourcesLeft = "638px", aboutLeft = "843px";

	elem.style.width = "160px";

	if(button == 'homeMainMenuBarButton') { elem.style.left = homeLeft; elem.style.width = "120px"; }
	else if(button == 'newslettersAndPapersMainMenuBarButton') elem.style.left = newslettersLeft;
	else if(button == "forumsMainMenuBarButton") elem.style.left = forumsLeft;
	else if(button == "onlineResourcesMainMenuBarButton") elem.style.left = resourcesLeft;
	else if(button == "aboutUsMainMenuBarButton") { elem.style.left = aboutLeft; elem.style.width = "120px"; }

	elem.style.fontSize = "medium";

	subSectionBarTimeout = setTimeout('offSubSectionBar()', 5000);
}

function onSectionMenuButton(button) {
	var elem = document.getElementById(button);

	elem.style.left="40px";
	elem.style.width = "360px"
	elem.style.fontSize = "large";
}

function offSectionMenuButton(button) {
	var elem = document.getElementById(button);

	elem.style.left="60px";
	elem.style.width="320px";
	elem.style.fontSize = "medium";
}

function onSubSectionBar(bar) {
	var elems = getElementsByClassName("subSectionBar");
	var visible = bar+"SubSectionBar";

	for(var i = 0; i < elems.length; i++) {
		if(elems[i].id == visible) {
			elems[i].style.visibility = "visible";
			elems[i].style.display = "block";
		} else {
			elems[i].style.visibility = "hidden";
			elems[i].style.display = "none";
		}
	}
}

function offSubSectionBar() { onSubSectionBar('blank'); }

/* Home Functions */

function onDonateButton() {
	var largeDonate = document.getElementById("largeDonateButton");
	var smallDonate = document.getElementById("smallDonateButton");

	smallDonate.style.visibility = "hidden";
	largeDonate.style.visibility = "visible";
}

function offDonateButton() {
	var largeDonate = document.getElementById("largeDonateButton");
	var smallDonate = document.getElementById("smallDonateButton");

	largeDonate.style.visibility = "hidden";
	smallDonate.style.visibility = "visible";
}

/* About Us Functions */

function toggleFAQAnswer(id) {
	var elem = document.getElementById(id);

	if(elem.style.visibility == "hidden" || elem.style.visibility.trim() == "") {
		elem.style.visibility = "visible";
		elem.style.display = "block";
	} else {
		elem.style.visibility = "hidden";
		elem.style.display = "none";
	}

	setSmallMenuBarLocation();
}

function toggleBio(id) {
	var elem = document.getElementById(id);

	if(elem.style.visibility == "hidden" || elem.style.visibility.trim() == "") {
		elem.style.visibility = "visible";
		elem.style.display = "block";
	} else {
		elem.style.visibility = "hidden";
		elem.style.display = "none";
	}

	setSmallMenuBarLocation();
}