﻿function showSubNav(navId) {
    var divs = document.getElementById("pageHeader").getElementsByTagName("div");
    var x;
    var exp = '\\b' + navId + '\\b';
    for (x in divs) {
        var subNav = divs[x];
        if (RegExp(exp).test(subNav.className)) {
            subNav.style.display = '';
        }
    }
}

function hideSubNav(navId) {
    var divs = document.getElementById("pageHeader").getElementsByTagName("div");
    var x;
    var exp = '\\b' + navId + '\\b';
    for (x in divs) {
        var subNav = divs[x];
        if (RegExp(exp).test(subNav.className)) {
            subNav.style.display = 'none';
        }
    }
}

function sideNavDisplay() {
    var x;
    var y;
    var tables = document.getElementById('sideNav').getElementsByTagName('table');
    for (x in tables) {
        if (RegExp('\\blevel3\\b').test(tables[x].className)) {
            tables[x].parentNode.parentNode.parentNode.parentNode.className = 'hidden';
        }
    }
    for (x in tables) {
        if (RegExp('\\blevel3\\b').test(tables[x].className) && RegExp('\\bselected\\b').test(tables[x].className)) {
            tables[x].parentNode.parentNode.parentNode.parentNode.className = '';
            var parentNode = tables[x].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
            var parentSibling = getPreviousSibling(parentNode);
            var parentAnchors = parentSibling.getElementsByTagName('a');
            for (y in parentAnchors) {
                if (RegExp('\\blevel2\\b').test(parentAnchors[y].className) && !RegExp('\\bselected\\b').test(parentAnchors[y].className)) {
                    parentAnchors[y].className += ' selected';
                }
            }
        }
        else if (RegExp('\\blevel2\\b').test(tables[x].className) && RegExp('\\bselected\\b').test(tables[x].className)) {
            var sibling = getNextSibling(tables[x].parentNode.parentNode);
            var child = getFirstChild(sibling);
            child = getFirstChild(child);
            if (RegExp('\\bhidden\\b').test(child.className)) {
                child.className = '';
            }
        }
    }
}

function getPreviousSibling(node) {
    var sibling = node.previousSibling;
    while (sibling.nodeType == 3) {
        sibling = sibling.previousSibling;
    }
    return sibling;
}

function getNextSibling(node) {
    var sibling = node.nextSibling;
    while (sibling.nodeType == 3) {
        sibling = sibling.nextSibling;
    }
    return sibling;
}

function getFirstChild(node) {
    var child = node.firstChild;
    while (child.nodeType == 3) {
        child = child.nextSibling;
    }
    return child;
}