﻿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;
	}
};