
// Groups tree helpers

function groupsShowTree()
{
    x = (window.screen.width - 600) / 2 + 100;
    y = (window.screen.height - 500) / 2;
    
    w = window.open("jcapgroups.aspx", "groups_" + rand(0x7fffffff),
        "left=" + x + ", top=" + y + ", width=600, height=500, status=0, toolbar=0, \
        location=0, menubar=0, directories=0, resizable=1, scrollbars=1");
}

function groupsOpenHandler(openedID)
{
    if (groups.getOpenState(openedID) == 1)
    {
        s = groups.getSubItems(openedID);
        items = s.split(",");
        if (items[0].indexOf("preliminary") != -1)
        {
            groupsFill(openedID); // Fill next level
        }
    }
}

function groupsAddChild(parentID, ID, text)
{
    groups.insertNewChild(parentID, ID, text, 0, "folderClosed.gif", 0, 0, "CHILD");
    groupsAddPreliminary(ID);
}

function groupsAddItem(parentID, ID, text)
{
    groups.insertNewNext(parentID, ID, text, 0, "folderClosed.gif", 0, 0, "CHILD");
    groupsAddPreliminary(ID);
}

function groupsAddPreliminary(parentID)
{
    if (groups.getLevel(parentID) <= 4)
    {
        groups.insertNewChild(parentID, "preliminary", "Загрузка...", 0, "loading.gif", 0, 0, "CHILD");
        groups.closeItem(parentID);
    }
}

function groupsRemovePreliminary(parentID)
{
    s = groups.getSubItems(parentID);
    items = s.split(",");
    if (items[0].indexOf("preliminary") != -1)
    {
        groups.deleteItem(items[0], parentID);
    }
}

function groupsFill(parentID)
{
    JCAPGroups.GetGroups((parentID == "null") ? null : parentID, groupsFillCallback);
}

function groupsFillCallback(res)
{
    if (res != null)
    {
        v = res.value;
        parentID = (v[0][0] == null) ? "null" : v[0][0];
        groupsRemovePreliminary(parentID);
        
        for(var i = 1; i < v.length; i++)
        {
            groupsAddChild(parentID, v[i][0], v[i][1]);
        }
    }
}

function groupsSelectHandler(selectedID)
{
    a = new Array();
    pID = selectedID;
    while (groups.getLevel(pID) > 1)
    {
        a.push(pID);
        pID = groups.getParentId(pID);
    }
    a.reverse();
    
    res = new String();
    for (idx = 0; idx < a.length; idx++)
    {
        space = new String();
        list = (idx >= 1) ? "display: list-item;" : "display: inline";
        res += "<div style='margin-left:" + 20 * idx + "px; cursor: pointer;'>" + 
            "<div style='" + list + "'>" + groups.getItemText(a[idx]) + "</div>" + "</div>";
    }
    
    if (window.opener != null)
    {
        window.opener.document.getElementById("current_group_id").value = selectedID;
        window.opener.document.getElementById("current_group").innerHTML = (res.length == 0) ? "Все товары" : res;
        window.opener.clearPartsTable();
    }
}

function groupsSelectCloseHandler(selectedID)
{
    groupsSelectHandler(selectedID);
    self.close();
}

