// for email address in footer
function deObfuscate(dps) {
	var internet
	internet = dps.replace('<web-page>', '@')
	internet = internet.replace(/[974258]+/g,'')
	internet = internet.replace(/[241697]+/g,'')
	internet = internet.replace(/[6741]+/g,'')
	window.location.href='mailto:' + internet
}

// opens and closes left nav menu items
function toggleMenu(obj) {
	thisSubMenu = obj.parentNode.getElementsByTagName("ul")[0];
	
	if(thisSubMenu.style.display == "none") {
		thisSubMenu.style.display = "block";
		obj.innerHTML = "[-]";
	} else {
		thisSubMenu.style.display = "none";
		obj.innerHTML = "[+]";
	}
	
}

// randomizes kids in bg of homepage (where 'num' is the number of possible images)
var numberOfHomePics = 2;

function homeBGswitcher() {
	randomizedNum = Math.floor(Math.random() * numberOfHomePics);
	document.getElementById("mainBody").style.backgroundImage = "url('/images/home_main"+ randomizedNum +".jpg')";
}



/* This function can be run at any point after the left nav is dropped into the page.
   It will compare the left nav HREFs to the page URL and assign a class to the appropriate, 
   selected left nav list item. To force a left nav item to be selected,
   first give it a unique id and then pass that ID into the function.
   
   It will then bubble up and open up the appropriate sub-navigation menus for the section
*/
function leftNavSelector(optionalID) {
// page URL after '.com' directory (for URL matching purposes)
var pageSubURL = decodeURI(document.location.pathname);

//strip 'index' file reference from URL (for comparison purposes)
if(pageSubURL.indexOf("/index.") >= 0) { pageSubURL = pageSubURL.substring( 0,pageSubURL.indexOf("/index.")+1 ); }


var selectedLeftNavItem;

try {
	if(!optionalID) {
		leftNavDiv = document.getElementById("leftNav");
		aArray = leftNavDiv.getElementsByTagName("a");
		for(var i = 0; i < aArray.length; ++i) {
			
			var testHref = aArray[i].pathname;
			if(testHref.indexOf("/") != 0) { testHref = "/" + testHref; } // IE doesn't include beginning slash
			
			//strip 'index' file reference from link URLs (for comparison purposes)
			if(testHref.indexOf("/index.") >= 0) { testHref = testHref.substring( 0,testHref.indexOf("/index.")+1 ); }
			
			//identify top level category in left nav in case page isn't found (wrapped in try/catch because of addition of topLevelCategory to pages)
			try { if(testHref == "/" + topLevelCategory + "/") { topLevelSection = aArray[i]; } } catch(err) {}
			
			if(pageSubURL == testHref) {
				// set as selected
				selectedLeftNavItem = aArray[i];
				break;
			} // if(pageSubURL ==...
		}// for i
	} else {
		selectedLeftNavItem = document.getElementById(optionalID);
	}// else
	
	if(selectedLeftNavItem) {
	// Current page has been found in left nav...
		selectedLeftNavItem.className += " selected";
		
		// bubble up and open up navs
		parentBubbler = selectedLeftNavItem.parentNode;
		if(parentBubbler.getElementsByTagName("a")[1]) {
			toggleMenu(parentBubbler.getElementsByTagName("a")[1]);
		}
		while(parentBubbler.id != "leftNav")	{
			if(parentBubbler.parentNode.style.display == "none") {
				toggleMenu(parentBubbler.parentNode.parentNode.getElementsByTagName("a")[1]);
			}
			
			// bubble up
			parentBubbler = parentBubbler.parentNode;
		}// while
	
	} else {
	//Current page was not found in left nav. Try to open top level category
		toggleMenu(topLevelSection.parentNode.getElementsByTagName("a")[1]);
	}
	
} catch(err) {}
}

/*******************************************************************
Sets the first field with an error to be focused after validation.
*******************************************************************/
function setFirstInvalid(inputObj) {
	if(!validationErrorMessage)	{postValidateFocus = document.getElementById(inputObj);}
}

// This function checks for a 10-digit phone number
// This function rips out commonly used formatting characters (spaces, commas, parentheses, dashes, or plusses) which are not part of the actual phone number
function validatePhone(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	var phoneNumber = fldObj.value.replace(/ /g,"");
	var phoneNumber = phoneNumber.replace(/-/g,"");
	var phoneNumber = phoneNumber.replace(/\(/g,"");
	var phoneNumber = phoneNumber.replace(/\)/g,"");
	var phoneNumber = phoneNumber.replace(/\+/g,"");
	
	if(phoneNumber.search(/^\d{10}$/) == -1) {
		return false;
	}
}

// This function checks for a 5-digit zip code
function validateZip(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	if(fldObj.value.search(/^\d{5}$/) == -1) {
		return false;
	}
}

// This function checks for a valid email address
function validateEmail(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	if(fldObj.value.search(/^\w+((-\w+)|(\.\w+)|(\+\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9][A-Za-z0-9]+$/) == -1) {
		return false;
	}
}

// This function checks for a whole number
function validateNumerical(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	if(fldObj.value.search(/^[0-9]+$/) == -1) {
		return false;
	}
}

// overall validation function
function validateAdmissionForm(formObject) {
	validationErrorMessage = "";
	postValidateFocus = "";
	// validate information //
	if(!formObject.parentName.value) {setFirstInvalid("parentName"); validationErrorMessage += "Enter parent's name.\n";}
	if(formObject.email.value) {
		if(validateEmail("email") == false) {setFirstInvalid("email"); validationErrorMessage += "Enter a valid e-mail address.\n";}
	}
	if(validatePhone("homePhone") == false) {setFirstInvalid("homePhone"); validationErrorMessage += "Enter a valid 10-digit home phone number.\n";}
	if(formObject.altPhone.value) {
		if(validatePhone("altPhone") == false) {setFirstInvalid("altPhone"); validationErrorMessage += "Enter a valid 10-digit alternate phone number.\n";}
	}
	
	if(!formObject.address.value) {setFirstInvalid("address"); validationErrorMessage += "Enter your address.\n";}
	if(!formObject.city.value) {setFirstInvalid("city"); validationErrorMessage += "Enter your city.\n";}
	if(!formObject.state.value) {setFirstInvalid("state"); validationErrorMessage += "Enter your state.\n";}
	if(validateZip("zip") == false) {setFirstInvalid("zip"); validationErrorMessage += "Enter a valid 5-digit zip code.\n";}
	
	if(!formObject.student.value) {setFirstInvalid("student"); validationErrorMessage += "Enter student's name.\n";}
	if(validateNumerical("age") == false) {setFirstInvalid("age"); validationErrorMessage += "Enter the student's age.\n";}
	if(!formObject.dob.value) {setFirstInvalid("dob"); validationErrorMessage += "Enter the student's date of birth.\n";}
	
	if(!formObject.school.value) {setFirstInvalid("school"); validationErrorMessage += "Enter the student's current school.\n";}
	if(!formObject.grade.value) {setFirstInvalid("grade"); validationErrorMessage += "Enter the student's current grade.\n";}
	
	
	// process today's date //
	document.getElementById("todaysDate").value = new Date().toGMTString();
	
	// display error message //
	if(validationErrorMessage) {
		alert(validationErrorTitle+validationErrorMessage);
		postValidateFocus.setAttribute('autocomplete','off'); 
		postValidateFocus.focus();
		return false;
	}	
	
	//everything works, so...
	return true;
}