﻿//var umbBaseUrl = '/LoadSubNode.ashx';
var umbBaseUrl = '/Base/fbdGetTreeNode/LoadNode/{nodeId}.aspx';
var umbTreeviewDebugMode = false;

$(document).ready(function () {
    try {
        var _a = document.getElementById('a_item_0');
        var _rev = _a.getAttribute('rev');
        if (_rev == 'noData') {
            ExpandSubNode(0);
        }
    } catch (e) {
    }
});

function ExpandSubNode(nodeId) {
    //a with extra vars   
    var a = document.getElementById('a_item_' + nodeId);
    var rev = a.getAttribute('rev');
    var rel = a.getAttribute('rel');

    //load content if not present
    try {
        if (rev == 'noData' && rel != 'noChildren') {
            LoadNodeData(nodeId);
            a.setAttribute('rev', 'data');
        }
        else {
            ExpandSubNode_Continue_After_Ajax(nodeId);
        }
    }
    catch (ee) {
    }
}

function ExpandSubNode_Continue_After_Ajax(nodeId, htmlData) {
    //append html
    if (htmlData != null && htmlData != undefined) {        
        var div = document.getElementById('div_item_' + nodeId);
        div.innerHTML += htmlData;
    }

    //img, ul and a
    var img = document.getElementById('img_item_' + nodeId);
    var ul = document.getElementById('ul_item_' + nodeId);
    var a = document.getElementById('a_item_' + nodeId);
    var rev = a.getAttribute('rev');
    var rel = a.getAttribute('rel');

    //display/hide
    try {
        switch (rel.toLowerCase()) {
            case 'closed':
                ul.style.display = 'block';
                a.setAttribute('rel', 'open');
                if (nodeId > 0) {
                    img.setAttribute('src', '/img/min.gif');
                }
                break;
            case 'open':
                ul.style.display = 'none';
                a.setAttribute('rel', 'closed');
                if (nodeId > 0) {
                    img.setAttribute('src', '/img/plus.gif');
                }
                break;
            case 'noChildren':
                break;
        }
    }
    catch (eee) {
    }
}

function LoadNodeData(nodeId) {
    $.ajax({
        url: umbBaseUrl.replace('{nodeId}',nodeId),
        type: 'GET',
        data: ({ nodeId: '' + nodeId }),
        dataType: 'html',
        async: true,
        success: function (data) {
            ExpandSubNode_Continue_After_Ajax(nodeId, data);
        }
    });
}    

