function findTagAttrValInNode ( sNode, aName, aVal ) {
    /* traverse a tree beginning at sNode, return the first element with the attribute aName whose value matches aVal */
    var list = sNode.children;
    var m = list.length - 1;
    for (var i = 0; i <= m; i++) {
        var chNode = list[i];
        var selNode;
        if (chNode[aName] == aVal) {
            selNode = chNode;
        } else if (chNode.children.length > 0) {
            selNode = findTagAttrValInNode( chNode, aName, aVal );
        }
        if (selNode != null) {
            return selNode;
        }
    }
    return null;
}

function getElementByIdInNode ( sNode, id ) {
    return findTagAttrValInNode( sNode, "id", id );
}

function findTagWithURL ( sNode, url ) {
    /* find a element with the href equal to url */
    return findTagAttrValInNode( sNode, "href", url );
}

/*  this function is used by the team section to manually select
    the appropriate side nav element */
function selSideNav ( id ) {
    var startEle = xGetElementById( "main" );
    var navEle = getElementByIdInNode( startEle, "nav" );
    var selEle = getElementByIdInNode( navEle, id );
    if (selEle) {
        selEle.style.color = "#06365e";
        selEle.style.backgroundColor = "#E8ECFA";
    }
}

function getTeamSectionFromQuery () {
    var loc = new String( window.location );
    var locList = loc.split( "\?" );
    var query = locList[1];
    if (!query) return null;
    var queryList = query.split("=");
    return queryList[1];
}

var navSelFn = function () {
    var startEle = xGetElementById( "main" );
    var navEle = getElementByIdInNode( startEle, "nav" );
    var loc = window.location;
    var selEle = findTagWithURL( navEle, loc );
    
    if (selEle) {
        //alert( selEle );
        selEle.style.color = "#06365e";
        selEle.style.backgroundColor = "#E8ECFA";
    }
};
xLoadMngr.add( navSelFn );
