var openparalist = new Array();

function showit(theid) {
    //Get rid of Javascript message if we haven't already
    document.getElementById('show').style.display = 'none';
    
    var clicked = document.getElementById(theid);
    
    var openparaclicked = '';
    var i = openparalist.length - 1;
    var j = 0; 
    
    //look to see if we're clicking on an expanded element
    while (i >= 0) {
        if (theid == openparalist[i]) {
            openparaclicked = openparalist[i];
            break;
        };
        i--;
    };    

    //if we've clicked on an expanded node, close all its subelements, then close the node
    if (openparaclicked != '') {  
        for (j = openparalist.length - 1; j >= i; j--) {
            dis = document.getElementById("x" + openparalist[j]);
            dis.style.display = 'none';
            //alert('about to pop');
            openparalist.pop();             
        };
        openparaclicked = '';
    }
    else {      
        //close all open items that don't contain theid
         
        /* lastelem = openparalist.pop();
        //alert(openparalist.join(',')); 
        //alert('lastelem = ' + lastelem + ' theid = ' + theid + ' index = ' + 
              theid.indexOf(lastelem));  */  
        if (openparalist.length > 0)     
          var lastelem = openparalist[openparalist.length - 1];
        while (openparalist.length > 0 && 
            theid.indexOf(lastelem) == -1){          
            document.getElementById('x' + openparalist.pop()).style.display = 'none';  
            if (openparalist.length > 0)  
              lastelem = openparalist[openparalist.length - 1];
            //alert('lastelem = ' + lastelem);
            //alert (openparalist.join(','));
        }        
        //Open the node  we clicked
        blockid = 'x' + theid;
        document.getElementById(blockid).style.display= 'block';
        openparalist.push(theid);
        //alert (openparalist.join(','));
        
        };
  return true;
} //function showit

function hideall() {
    divs = new Array();
    uls = new Array();
    spans = new Array();
    divs = document.getElementsByTagName("DIV");    
    uls = document.getElementsByTagName("UL");
    spans = document.getElementsByTagName("SPAN"); 
    //alert(divs.length + ', '+ uls.length + ', ' + spans.length);
    for (var i=0;i<divs.length;i++) {
    
        if (divs[i].className == "hideit") {
            divs[i].style.display = 'none'};
    }; //for
    for (var i=0;i<uls.length;i++) {
          if (uls[i].className == "hideit") {
              uls[i].style.display = 'none'};
    }; //for
    for (var i=0;i<spans.length;i++) {
    
        if (spans[i].className == "hideit") {
            //alert('hide anchor');
            spans[i].style.display = 'none'};
    }; //for
    document.getElementById("show").style.display = "inline";
} //function hideall

function linkit (linkid) {
    var linkelem = document.getElementById(linkid);
    var subelem = document.getElementById('x' + linkid);
    //alert(linkid + ', ' + subelem.id + ', ' + subelem.style.display);
    //if para we're linking to is not showing, close all showing paras, and open this one
    if (subelem.style.display = 'none') {
        //alert(openparalist.length);
        for (var i = openparalist.length - 1; i >=0; i--) {
            //alert(i + ' ' + openparalist[i]);
            if (linkid.indexOf(openparalist[i])) {
                document.getElementById('x' + openparalist.pop()).style.display = 'none';
            }
        }
        //alert('for loop ended');
        //see if linkid has a parent
        var parent = linkelem.parentNode;
        
        
        while(true) {
                while (parent.id == '') {
                  parent = parent.parentNode;
                }
                var xlinkid = 'x' + linkid;
                //alert(xlinkid);
                if (xlinkid.indexOf(parent.id) != -1) {
                    parent.style.display = 'block';
                    openparalist.push(parent.id.substr(1));
                    parent = parent.parentNode;
                    while (parent.id == '') {
                      parent = parent.parentNode;
                    };
                }
                else {
                  break;
                };
        
        };
        
        subelem.style.display = 'block';
        openparalist.push(linkid); 
    return true;
        
    };
}

