// window.onerror=killError;

function killError() {
	return true;
}

var categoryArray = [
	"home",
	"whoweare",
	"issues",
	"whatshappening",
	"mediareleases",
	"informationandresources",
	"forums",
	"helpwanted"
	]

var pageLevel1;
var pageLevel2;

var leftnavHighlight = "#E5F2FF";
var leftnavLowlight = "#D2DEEA";

var relight = 0;

function do_leftnav_init() {
	// set up level array
	leftnavLevel1Array = categoryArray;
	for (var i=0; i<leftnavLevel1Array.length; i++) {
		leftnavLevel1Array[i] = "leftnav_" + leftnavLevel1Array[i];
	}
	// hide all the second-level nav
	for (var i=0; i<leftnavLevel1Array.length; i++) {
		jpxHide(leftnavLevel1Array[i] + "_level2");
	}
	// expand the left nav for current page's category
	for (var i=0; i<leftnavLevel1Array.length; i++) {
		if (leftnavLevel1Array[i] == "leftnav_" + pageLevel1) {
			jpxShow(leftnavLevel1Array[i] + "_level2");
			break;
		}
	}
	do_leftnav_highlightcurrent();
}

function do_leftnav_highlightcurrent() {
	// try highlighting level 2 page
	var h;
	h = xBackground("leftnav_" + pageLevel1 + "_" + pageLevel2, leftnavHighlight);
	// if that id didn't exist, highlight the level 1 page
	if (!h) xBackground("leftnav_" + pageLevel1, leftnavHighlight);
	relight = 0;
}

function do_leftnav_dehighlightcurrent() {
	// try dehighlighting level 2 page
	var h;
	h = xBackground("leftnav_" + pageLevel1 + "_" + pageLevel2, leftnavLowlight);
	// if that id didn't exist, highlight the level 1 page
	if (!h) xBackground("leftnav_" + pageLevel1, leftnavLowlight);
}

function do_leftnav_highlighton(element) {
	do_leftnav_dehighlightcurrent();
	xBackground(xParent(element), leftnavHighlight);
	if (relight) clearTimeout(relight);
}

function do_leftnav_highlightoff(element) {
	xBackground(xParent(element), leftnavLowlight);
	relight = setTimeout("do_leftnav_highlightcurrent();", 750);
}

function do_leftnav_mouseover(element) {
	do_leftnav_highlighton(element);
}

function do_leftnav_mouseout(element) {
	do_leftnav_highlightoff(element);
}

function do_leftnav_click(element) {
	// find the id of the clicked element's parent
	var cid =  xParent(element).id;
	// find whether the parent's id is in the level 1 nav
	var cidFound = 0;
	if (cid.indexOf("leftnav") != -1) {
		for (var i=0; i<leftnavLevel1Array.length; i++) {
			if (leftnavLevel1Array[i] == cid) {
				cidFound = 1;
				break;
			}
		}
	}
	// if the id is level 1, hide all the level 2 nav, toggle the level 2 nav for the clicked level 1 item
	if (cidFound) {
		var cidVisible = jpxIsVisible(cid + "_level2");
		// for (var i=0; i<leftnavLevel1Array.length; i++) {
		// 	jpxHide(leftnavLevel1Array[i] + "_level2");
		// }
		cidVisible ? jpxHide(cid + "_level2") : jpxShow(cid + "_level2");
		// do_leftnav_highlightcurrent();
	}
	//  if the link href ends in "#", blur the click and return false so that the browser doesn't follow the link
	if (element.href && element.href.charAt(element.href.length - 1) == "#") {
		element.blur();
		return false;
	}
}

function jpxShow(e) {
	if(!(e=xGetElementById(e))) return;
	if(e.style && xDef(e.style.display)) {
		e.style.display='';
	}
	else if(xDef(e.display)) {
		e.display='';
	}
}

function jpxHide(e) {
	if(!(e=xGetElementById(e))) return;
	if(e.style && xDef(e.style.display)) {
		e.style.display='none';
	}
	else if(xDef(e.display)) {
		e.display='none';
	}
}

function jpxIsVisible(e) {
	if(!(e=xGetElementById(e))) return;
	if(e.style && xDef(e.style.display)) {
		return e.style.display=='none' ? 0 : 1;
	}
	else if(xDef(e.display)) {
		return e.display=='none' ? 0 : 1;
	}
}

function jpxHideMulti(elementIDRoot) {
	for (var i=1; i<50; i++) {
		jpxHide(elementIDRoot + "_" + i);
	}
}

function jpxShowMulti(elementIDRoot) {
	for (var i=1; i<50; i++) {
		jpxShow(elementIDRoot + "_" + i);
	}
}

function displayError(message) {
	alert(message);
}

String.prototype.trim = function () {
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function validateEmailAddress(theAddress) {
	theAddress = theAddress.trim();
	result = "OK";
    emailFilter = /^.+@.+\.[^\.]{2,}$/;
    illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;
	if (theAddress.length == 0) {
		result = "EMPTY";
	} else if (!emailFilter.test(theAddress)) {
		result = "BADFORMAT";
	} else if (theAddress.match(illegalChars)) {
		result = "BADCHARS";
	}
	return result;
}

function validatePassword(thePassword) {
	thePassword = thePassword.trim();
	result = "OK";
	if (thePassword.length == 0) {
		result = "EMPTY";
	} else if (thePassword.length < 6) {
		result = "TOOSHORT";
	}
	return result;
}

function validateString(theString) {
	theString = theString.trim();
	result = "OK";
	if (theString.length == 0) {
		result = "EMPTY";
	}
	return result;
}

