var treeid = "tree";
var emod; //stores the event model

function fixE(e) {
	if (e.srcElement) return e.srcElement;
	else return e.target;
}

function init(e) {
	if (e != null) //Netscape 4 or W3C DOM event model
	    if (e.eventPhase != null) //W3C DOM event model
	                     emod = "W3C";
	    else //NN4+ event model
	                     emod = "NN4";
    else if (window.event != null) //MSIE 4+ event model
        emod = "IE4+";
    else emod = "unknown"; // no event object found
	
	checks = document.getElementById('ttree').getElementsByTagName('input');
	for (i=0;i<checks.length;i++) {
		if (checks[i].type=="checkbox") {
			if (emod=="W3C") checks[i].addEventListener("click",CHchange,false);
			else checks[i].onclick	=function() { CHchange(event); }
		}
	}
}


function showhideBranch(e) {
	ul = e.parentNode.getElementsByTagName('ul')[0];
	ul.style.display = ul.style.display=='none'?'block':'none';
	e.innerHTML = ul.style.display=='none'?'+':'-';
}

var appendBefore = 'input';
var inputsonlastlevel = false;
function init() {
	var tree = document.getElementById('tree');
	uls = tree.getElementsByTagName('ul'); // hide all nested uls
	for (i=0;i<uls.length;i++) uls[i].style.display = 'none';
	lis = tree.getElementsByTagName('li');
	for (i=0;i<lis.length;i++) {
		n = lis[i];
		if (n.getElementsByTagName('ul').length>0) {
		  a = document.createElement('span');
			a.setAttribute('onclick','showhideBranch(this)');
			aa = document.createTextNode('+');
			a.appendChild(aa);
		} else {
		  a = document.createElement('del');
      aa = document.createTextNode('-');
			a.appendChild(aa);
    }
    if (inputsonlastlevel) {
      hasinput = false;
      for (j=0;j<n.childNodes.length;j++) {
        if (n.childNodes[j].nodeName=='input' || n.childNodes[j].nodeName=='INPUT') hasinput = true;
      }
      if (!hasinput) {
  		  n.insertBefore(a,n.getElementsByTagName('label')[0]);
  		}
		} else {
      n.insertBefore(a,n.getElementsByTagName(appendBefore)[0]);
    }
		if (a.outerHTML) a.outerHTML = a.outerHTML.replace(/>/,">");
	}
}

//window.onload = init;
