// JavaScript Document
var menuULArray = new Array;
var menuAArray = new Array;
var menuAULArray = new Array;
var thisCookie = "";

function applyMenuStatus()
	{
	var menuULTags = document.getElementById("subNav").getElementsByTagName("UL");
	var menuATags = document.getElementById("subNav").getElementsByTagName("A");
	var toggleCounter = 0;
	//Splits cookie value into a comma-separated array 
	if(readCookie(thisCookie) == null)
		{
		recordMenuStatus()
		}
	else
		{
		menuAULArray = readCookie(thisCookie).split(",");
		}
	//finds Anchor tags with className toggleOff, assigns new className from cookie
	for(y=0;y<menuATags.length;y++)
		{
		if(menuATags[y].parentNode.getElementsByTagName('ul').length > 0)
			{
			menuATags[y].parentNode.className = menuAULArray[toggleCounter]
			toggleCounter +=1
			}
		}
	//assigns UL tags new classNames from cookie
	for(z=0;z<menuULTags.length;z++)
		{
		menuULTags[z].className = menuAULArray[toggleCounter]
		toggleCounter+=1
		}
	}

function recordMenuStatus()
	{
	var menuULTags = document.getElementById("subNav").getElementsByTagName("UL");
	var menuATags = document.getElementById("subNav").getElementsByTagName("A");
	menuAArrayCount = 0;
	for(x=0;x<menuATags.length;x++)
		{
		if(menuATags[x].parentNode.getElementsByTagName('ul').length > 0)
			{
			menuAArray[menuAArrayCount] = menuATags[x].parentNode.className;
			menuAArrayCount +=1;
			}
		}
	for(x=0;x<menuULTags.length;x++)
		{
		menuULArray[x] = menuULTags[x].className;
		}
	menuAULArray = menuAArray.concat(menuULArray);
	createCookie(thisCookie,menuAULArray,7) 
	}

//Sets onclick and href behavior for a tags in menu
if(document.getElementById("subNav"))
	{
	window.onload = function() {setClicks();}
	}
function setClicks()
	{
	//gets anchor tags in the menu
	var menuATags = document.getElementById("subNav").getElementsByTagName("A");
	for(x=0;x<menuATags.length;x++)
		{
		if(menuATags[x].className == "toggleLink")
			{
			menuATags[x].id = "link" + [x];
			initializeMenu(menuATags[x].id);
			}
		}
	}

function initializeMenu(toggleLinkId) 
	{
    var toggleLink = document.getElementById(toggleLinkId);
   toggleLink.onclick = function() 
		{
        ulElement = this.parentNode.getElementsByTagName('ul')[0];
		var display = ulElement.className;
        this.parentNode.className = 
		(display == "open") ? "toggleOff" : "toggleOn";
		ulElement.className = (ulElement.className == "open") ? "closed" : "open";
        recordMenuStatus()
		return false;
    	}
	}

//Finds link whose url is = to current page and sets className so it can show up as the "on" link
function initLinkOn()
	{
	var menuATags = document.getElementById("subNav").getElementsByTagName("A");

	for (x=0;x<menuATags.length;x++)
		{
		if(menuATags[x].href == document.location.href)
			{
			menuATags[x].className = "on";
			initFolderOn(menuATags[x]);
			return menuATags[x]
			}
		}return false
	}
	
function initFolderOn(pageLink)
	{
	var menuULTags = document.getElementById("subNav").getElementsByTagName("UL");
	
	for (f=0;f<menuULTags.length;f++)
		{
		if(pageLink.parentNode.parentNode == menuULTags[f])
			{
			menuULTags[f].className = "open";
			}
		}	
	}

//Sets Everything up
function initMenu(cookieName)
	{
	if (document.getElementById("subNav"))
		{
	thisCookie = cookieName;setClicks();applyMenuStatus();initLinkOn();
		}
	}

//Cookie Functions
function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}