if (self != top){ top.location.href = self.location.href; }

//Navigation tree for vendors listing
var tree = new YAHOO.widget.TreeView("vendorsListing");
treeInit();

function treeInit() {

    //set base properties
    tree.setDynamicLoad(loadDataForNode);

    //add nodes
    var root = tree.getRoot();
    root.enableHighlight = true;
    root.highlightState = 2;
    root.multiExpand  = false;
    
    var tmpNode;

    if (sectionID==1) {
        tmpNode = new YAHOO.widget.TextNode({label: "Hardware", id: "1", nodeLevel: "1", expanded: true}, root);
    } else {
        tmpNode = new YAHOO.widget.TextNode({label: "Hardware", id: "1", nodeLevel: "1", expanded: false}, root);        
    }

    if (sectionID==2) {
        tmpNode = new YAHOO.widget.TextNode({label: "Software", id: "2",  nodeLevel: "1", expanded: true}, root);
    } else {
        tmpNode = new YAHOO.widget.TextNode({label: "Software", id: "2",  nodeLevel: "1", expanded: false}, root);
    }

    if (sectionID==3) {
        tmpNode = new YAHOO.widget.TextNode({label: "Check 21 &amp; Electronic Payments", id: "3",  nodeLevel: "1", expanded: true}, root);
    } else {
        tmpNode = new YAHOO.widget.TextNode({label: "Check 21 &amp; Electronic Payments", id: "3",  nodeLevel: "1", expanded: false}, root);
    }

    if (sectionID==4) {
        tmpNode = new YAHOO.widget.TextNode({label: "Processing Service Providers", id: "4",  nodeLevel: "1", expanded: true}, root);
    } else {
        tmpNode = new YAHOO.widget.TextNode({label: "Processing Service Providers", id: "4",  nodeLevel: "1", expanded: false}, root);
    }

    if (sectionID==5) {
        tmpNode = new YAHOO.widget.TextNode({label: "Service Providers", id: "5",  nodeLevel: "1", expanded: true}, root);
    } else {
        tmpNode = new YAHOO.widget.TextNode({label: "Service Providers", id: "5",  nodeLevel: "1", expanded: false}, root);
    }

    tree.render();

}

function showMenu(div) {
    document.getElementById(div).style.display = "";
}

function hideMenu(div) {
    document.getElementById(div).style.display = "none";
}

function loadDataForNode(node, onCompleteCallback) {

    var id= node.data.id;
    var nodeLevel= node.data.nodeLevel;

    sUrl = "QueryVendorsListing?nodeLevel=" + nodeLevel + "&parentID=" + id

    var callback = {
     success: function(response) {

            try {
                var results = YAHOO.lang.JSON.parse(response.responseText);

                var i = 0;
                var tmpNode;

                while (i < results.length) {
                    tmpNode = new YAHOO.widget.TextNode({label: results[i].nodeText , id: results[i].nodeID,  nodeLevel: ((nodeLevel/1)+1), expanded: false}, node);

                    if (nodeLevel == 1) {
                        if (parentCategoryID==results[i].nodeID) {
                            tmpNode.expand();
                        }
                    }

                    if (nodeLevel == 2) {
                        tmpNode.isLeaf = true;
                        tmpNode.href = "categoryVendors.jsp?categoryID=" + results[i].nodeID;

                        try {
                            if (categoryID==results[i].nodeID) {
                                tmpNode.expand();
                                tmpNode.enableHighlight = true;
                                tmpNode.highlightState = 1;
                            }
                        } catch (ex) {
                            //alert(ex);
                        }
                    }

                    i++;
                }

            }
            catch (e) {
                 alert(e);
            }

            response.argument.onCompleteCallback();

        },

    failure: function(response) {
            response.argument.onCompleteCallback();
            alert("This feature is unavailable while me make updates to the Vendors' Listing Database."); //FAILURE
    },

    //our handlers for the XHR response will need the same
    //argument information we got to loadNodeData, so
    //we'll pass those along:
    argument: {
        "node": node,
        "onCompleteCallback": onCompleteCallback
    },

    //timeout -- if more than 7 seconds go by, we'll abort
    //the transaction and assume there are no children:
    timeout: 7000

    }

    var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback, null);

 }