﻿var element_containers = [];
var current_parent;
var current_anchor;
var EXPR_SEPARATOR = "|";
function showelements(anchor, parent) {
    current_parent = parent;
    current_anchor = anchor;
    var container = getelementcontainer(parent);
    if (container == null)
        requestelements(parent);
    else
        container.style.display = "block";
        
    anchor.className = "sitemapbutton sitemapcollapse";
    anchor.onclick = function() { hideelements(anchor, parent); return false; };
}
function hideelements(anchor, parent) {
    var container = getelementcontainer(parent);
    container.style.display = "none";
    
    anchor.className = "sitemapbutton sitemapexpand";
    anchor.onclick = function() { showelements(anchor, parent); return false; };
}
function requestelements(parent) {
    http_request(SITEMAP_BASEURL + "?parent=" + parent, requestelements_complete);
}
function requestelements_complete(http) {
    var container = createcontainer(current_anchor, current_parent);
    element_containers.push([current_parent, container]);
    container.innerHTML = http.responseText;
}
function createcontainer(anchor, parent) {
    var container = document.createElement("div");
    container.className = "sitemapcontainer";
    insertafter(anchor.nextSibling.nextSibling, container);
    return container;
}
function insertafter(refnode, node) {
    if (refnode.nextSibling == null)
        refnode.parentNode.appendChild(node);
    else
        refnode.parentNode.insertBefore(node, refnode.nextSibling);
}
function getelementcontainer(parent) {
    for (var i = 0; i < element_containers.length; i++) {
        if (element_containers[i][0] == parent)
            return element_containers[i][1];
    }
    return null;
}