//Used for determining if a user clicked on a link or used browser back button.
    var linkClicked = false;
//Currently highlighted term
    var currentTerm = null;
                    
//Opens/closes tree branches
    function containerAction(id) {
        element = document.getElementById("sign" + id);
                        
        if (element.childNodes[0].nodeValue == "+") {
            document.getElementById("container" + id).style.display = "block";
            element.childNodes[0].nodeValue = "-";
            }
        else {
            document.getElementById("container" + id).style.display = "none";
            element.childNodes[0].nodeValue = "+";
            }
    }
//Highlights term
    function highlight(id) {
        if (currentTerm != null) currentTerm.style.background = "none";
            currentTerm = document.getElementById(id);
            currentTerm.style.background = "yellow";
    }
                    
//Locates term and shows it.
//Uses expandContainers(), highlight(), getOffset()
    function showTerm(id) {
        term = document.getElementById(id);
        expandContainers(term);
        highlight(id);
        scrollTo(0, getOffset(term));
    }
                    

//Expands all of the parent containers of the node. Used by showTrem()
    function expandContainers(node) {
        node = node.parentNode;
            if (node == document) {}
            else if (node.getAttribute("id") && node.getAttribute("id").substring(0, 9) == "container") {
                    id = node.getAttribute("id").substring(9);
                    document.getElementById("container" + id).style.display = "block";
                    document.getElementById("sign" + id).childNodes[0].nodeValue = "-";
                    expandContainers(node);
                }
            else expandContainers(node);
        }
                
                
//Calculates element offset (position from the top of the document)
    function getOffset(element) {
        offset = element.offsetParent.offsetTop;
            if (offset == 0) offset = element.offsetTop;
            else {
                element = element.offsetParent;
                while (element.offsetParent) {
                       offset += element.offsetParent.offsetTop;
                        element = element.offsetParent;
                    }
                }
            return offset;
            }
                

                
//Resets search counter
    function autoReset() {
        searchCounter = 0;
    }
                
//Navigates to the selected entry in the entry frame
    function navigateToEntry(id) {
        linkClicked = true;
        highlight("term" + id);
        top.frames["entry"].document.location.href = "getSubjectEntry?termID=" + id;
    }
    