﻿var Shift = {}
Shift.TreeMenu = {
    LastModifiedItem: new Array(),
    ShowHideMenuItem: function(obj, controlid) {
        var control = document.getElementById(controlid);
        var node = obj.parentNode.nodeName == 'LI' ? obj.parentNode : obj.parentNode.parentNode;
        if (node.childNodes[1].style.display == 'none') {
            obj.className = (control.parentItemsExpandedCssClass == null) ? '' : control.parentItemsExpandedCssClass;
            node.childNodes[1].style.display = 'block';
        } else {
            obj.className = (control.parentItemsCollapsedCssClass == null) ? '' : control.parentItemsCollapsedCssClass;
            node.childNodes[1].style.display = 'none';
        }
        this.ModifyExpandState(obj, controlid);
        this.ModifySelectedItem(obj, controlid);
    },
    ModifyExpandState: function(obj, controlid) {
        var control = document.getElementById(controlid);
        var hdnField = document.getElementById(control.expandStateID);
        var node = obj.parentNode.nodeName == 'LI' ? obj.parentNode : obj.parentNode.parentNode;
        if (hdnField != null) {
            var index = parseInt(obj.id.substring(obj.id.lastIndexOf('_Item') + 5));
            var state = (node.childNodes[1].style.display == 'none') ? 'c' : 'e';
            hdnField.value = hdnField.value.substring(0, index) + state + hdnField.value.substring(index + 1);
        }
    },
    ModifySelectedItem: function(obj, controlid) {
        var control = document.getElementById(controlid);
        var hdnField = document.getElementById(control.selectedItemID);
        var node = obj.parentNode.nodeName == 'LI' ? obj.parentNode : obj.parentNode.parentNode;
        if (node.childNodes.length == 1 || node.childNodes[1].nodeName != 'UL') {
            obj.className = (control.selectedItemCssClass == null) ? '' : control.selectedItemCssClass;
            this.SetSelectedItem(obj, controlid);
            if (hdnField != null)
                hdnField.value = obj.id;
        }
    },
    SetSelectedItem: function(obj, controlid) {
        var control = document.getElementById(controlid);
        if (this.LastModifiedItem[controlid] != null && this.LastModifiedItem[controlid].id != obj.id)
            this.LastModifiedItem[controlid].className = (control.childItemsCssClass == null) ? '' : control.childItemsCssClass;
        this.LastModifiedItem[controlid] = obj;
    },
    ClearSelectedItem: function(controlid) {
        var control = document.getElementById(controlid);
        if (this.LastModifiedItem[controlid] != null)
            this.LastModifiedItem[controlid].className = (control.childItemsCssClass == null) ? '' : control.childItemsCssClass;
        this.LastModifiedItem[controlid] = null;
    }
};

