﻿

function initSitemap(elemid) {
  var container = $(elemid);
  var listtop = getFirstElementByTagName(container, "UL");  
  processList(listtop, 0);  
}

function processList(ul, depth) {
  var lis = ul.getElementsByTagName("LI");
  for(var i=0; i<lis.length; i++) {  
    if((subul = getFirstElementByTagName(lis[i],"UL")) && (img = getFirstElementByTagName(lis[i], "IMG"))) {
      Event.observe(img, 'click', toggleList, false);        
      if(getDepth(lis[i]) >= 4) {
        img.src = '/images/layout/plus.gif';
        subul.style.display = 'none';
      }
      else {
        img.src = '/images/layout/minus.gif';
        subul.style.display = 'block';
      }      
    }    
  }
}

function toggleList(e) {
  if (!e) var e = window.event;
  var elem = Event.element(e);
  if(elem.src.indexOf('plus.gif') > -1) {
    elem.src = '/images/layout/minus.gif';
    if(subul = getFirstElementByTagName(elem.parentNode, 'UL')) {    
      subul.style.display = 'block';
    }
  }
  else {
    elem.src = '/images/layout/plus.gif';
    if(subul = getFirstElementByTagName(elem.parentNode, 'UL')) { 
      subul.style.display = 'none';
    }
  }   
}

function getDepth(elem) {
  var depth = 0;
  while(elem.tagName == "UL" || elem.tagName == "LI") {
    depth++;
    elem = elem.parentNode;
  }
  return depth;
}

function getFirstElementByTagName(parent, tagName) {
  var elems = parent.getElementsByTagName(tagName);
  if(elems && elems.length > 0) return elems[0];
  return;
}

Event.observe(window, 'load', function(e) {initSitemap('ctrlSitemap');}, true);


