function startTabs()
{
    var dl = document.getElementsByTagName('DL');
    for (var i = 0; i < dl.length; i ++) {
        if (CssClasses(dl[i]).exists('tabset')) {
            setTabs(dl[i]);
        }
    }
}

function setTabs(dl)
{
    var dt = Nodes(dl).children_tags('dt');
    var dd = Nodes(dl).children_tags('dd');

    for (var i = 0; i < dt.length; i ++) {
        dt[i].tab_content = dd[i];
        dt[i].tabset = dl;
        if (CssClasses(dt[i]).exists('visible')) {
            dl.current_tab = dt[i];
        } else {
            dt[i].onclick = function () {
                openTab(this);
            }
        }
    }
}

function openTab(tab, after_load)
{
    if (tab.tab_content.innerHTML.length == 0) {
        var data = Nodes(tab).getElementsByClassName('data');
        if ((data != null) && (data.length > 0)) {
            var value = data[0].innerHTML.replace('&amp;', '&');
            if (value.length > 0) {
                if (!after_load)
                    ProcessCommonRequest(value, tab.tab_content, function () { openTab(tab, true); });
                return false;
            } // end if
        } // end if
    } // end if
    
    tab.onclick = null;
    CssClasses(tab).replace('hidden', 'visible');
    CssClasses(tab.tab_content).replace('hidden', 'visible');
    closeTab(tab.tabset.current_tab);
    tab.tabset.current_tab = tab;
}

function closeTab(tab)
{
    tab.onclick = function () {
        openTab(this);
    }
    CssClasses(tab).replace('visible', 'hidden');
    CssClasses(tab.tab_content).replace('visible', 'hidden');
}