// dal_menus.js
// Stores only one value in a session cookie
// Leaves only one submenu (nested ul) expanded
// Puts selected page in bold, whether expandable or not
// Cookie is destroyed after page written to avoid confusion when other nav methods are used

function initMenus(){
   var tree = $('expandList');
   if(tree){
	 setActiveItem(tree.getElementsByTagName('li'));
	 setOnClick(tree.getElementsByTagName('a'));
     setMenus(tree.getElementsByTagName('li'));
   }
}
// Put id of the UL here
function getMenu() {
   return $('expandList');
}

function getAllItems() {
	var tag = 'li';
	if (getMenu() && getMenu().getElementsByTagName(tag)) {
		return getMenu().getElementsByTagName(tag)
	}
}

function setOnClick(arr){
	    var options = $A(arr);
        var alink;
		options.each(function(tree){
		  alink=tree.getAttribute('href');
		  if(alink.indexOf('#') != (alink.length -1)){
			  tree.onclick=function(){
					this.parentNode.className='jumpPage'; // Not needed in CSS, must match saveState() below
					saveState();
					}
		  }
		})
}

// Class names for style sheet go here
function setActiveItem(arr){

 if(typeof(navigation2) != 'undefined'  && navigation2 != ''){
   if(navigation3 != ''){
     el=$(navigation3);
   }
   else{
     el=$(navigation2);
   }
   el.className="openPage";
   while(el.parentNode.parentNode.nodeName=="LI"){ // Not sure if this is working for unlimited nesting
        el.parentNode.parentNode.className="showParent"; // Not needed in CSS, existence check in setMenus()
        el=el.parentNode.parentNode;
   }
 }
}

function setMenus(arr) {
  var options = $A(arr);
  var sym;
  options.each(function(tree){
    sym=addSpan(tree);
    if(tree.getElementsByTagName("ul").length>0){
      addShowHide(sym);
      if(tree.className){
	 showSubList(tree, sym);
	}
	else {
	 hideSubList(tree, sym);
	}
    }
  })
}
function getCookieName() {
	if (getMenu().className) {
		return(getMenu().className);
	}
	else {
		return(getMenu().getAttribute('id'));
	}
}

function addSpan(el){
	var sym = document.createElement("span");
	sym.className = "sym";
	el.insertBefore(sym, el.firstChild);
	return sym;
}

function addShowHide(sym){
    sym.onclick=function(){
		showHide(this.parentNode);
	}
	return sym;
}

function hideSubList(el){
    getElFirstTag(el,"span").className = 'sym_plus';
    hideElFirstTag(el, "ul");
}

function showSubList(el){
	getElFirstTag(el,"span").className = 'sym_minus';
	showElFirstTag(el,"ul");
}

function showHide(el){
	if(getElFirstTag(el,"ul").style.display!="none"){
		hideSubList(el);
	}
	else{
		showSubList(el);
	}
}

function saveState(){
  var arr=getAllItems();
  for(var i=0;i<arr.length;i++){
	  if(arr[i].className=="jumpPage"){
		  writeSessionCookie(getCookieName(), i);
		  break;
	  }
  }
}

// Convenience functions used above

function getElFirstTag(el, tag) {
	if (el.getElementsByTagName(tag)){
		return el.getElementsByTagName(tag)[0];
	}
}

function hideElFirstTag(el, tag) {
	if (el.getElementsByTagName(tag)){
		el.getElementsByTagName(tag)[0].style.display="none"
	}
}

function showElFirstTag(el, tag) {
	if (el.getElementsByTagName(tag)){
		el.getElementsByTagName(tag)[0].style.display="block"
	}
}
/*
function myOnload() {
	initMenus();
}

window.onload=myOnload */
//add functions to handel the text size on a page.
function toggleStyleSheet() {
   var i, a, main;
   a = $('largeText');
   a.disabled=true;
   //alert('Value of a.disabled is ' + a.disabled);
   var link = $("fontLink").firstChild.nodeValue;
   if(link == 'Use smaller font'){
	   a.disabled=true;
	   toggleLinkText('Use larger font');
   }
   if(link == 'Use larger font'){
	   a.disabled=false;
	   toggleLinkText('Use smaller font');
   }
   writePersistentCookie('speTextSize',a.disabled,'years',1);
}
function toggleLinkText(txt) {
	var a;
        if($('fontLink')){
	a=$("fontLink");
	a.firstChild.nodeValue=txt;
        }
}
function setStyleSheet(flag) {
   var i, a, main;

		// alert('Value of a.disabled is ' + a.disabled);
		if (flag =='false') {
			toggleLinkText('Use smaller font');
		}
		else {
			toggleLinkText('Use larger font');
		}
}
