function slt2k_updateView(node) {

	if(DMAPI.mode == "DOM")
		DMAPI.updateCssClass(node);
	else if(DMAPI.mode == "NN") {
		node.updateSelection();
		return
	}
	
	if(!DMAPI.isLeaf(node) && DMAPI.getParent(node)) {
	
		var kImage = DMAPI.getElement(node, "KnotImage");
		var iImage = DMAPI.getElement(node, "ItemImage");
		
		if(DMAPI.getExpanded(node)) {
			if(kImage)
				kImage.src = DMAPI.getValue(node, "KnotImage1");
			if(iImage)
				iImage.src = DMAPI.getValue(node, "BranchImage1")
		}
		else {
			if(kImage)
				kImage.src = DMAPI.getValue(node, "KnotImage2");
			if(iImage)
				iImage.src = DMAPI.getValue(node, "BranchImage2")
		}
	}
}

function slt2k_resolveValue(node, valueName, templateType, depth) {

	if(templateType == 1 && valueName == "KnotImage")
		return DMAPI.getValue(node, DMAPI.getExpanded(node) ? "KnotImage1" : "KnotImage2");
	else if(templateType == 0 && valueName == "ItemImage" && !DMAPI.isLeaf(node)) {
		if(DMAPI.getParent(node))
			return DMAPI.getValue(node, DMAPI.getExpanded(node) ? "BranchImage1" : "BranchImage2");
		return DMAPI.getValue(node, "RootNodeImage")
	}
	
	return DMAPI.getValue(node, valueName)
}

function slt2k_resolveCssClass(node, templateType, templateDepth) {

	var tapi = DMAPI;
	
	
	if(templateType != 0) {
		var value;
		var nodeDepth = tapi.getDepth(node);
		depth = nodeDepth - templateDepth - 1;
		var kind;
		
		if(DMAPI.mode != "DOM")
			value = tapi.getValue(node, "Spacer0CSS");
		else if(depth == 0) {
			kind = tapi.getNodeKind(node);
		
// 0 single
// 1 first
// 2 middle
// 3 last
			
			if(kind == 0 || kind == 3)
				value = tapi.getValue(node, templateType == 1 ? "Knot3CSS" : "Spacer3CSS");
			else
				value = tapi.getValue(node, templateType == 1 ? "Knot2CSS" : "Spacer2CSS");
		}
		else {
			var parent = node;
			while(depth > 0) {
				parent = tapi.getParent(parent);
				depth--
			}
			kind = tapi.getNodeKind(parent);
			if(kind == 1 || kind == 2)
				value = tapi.getValue(node, "Spacer1CSS");
			else
				value = tapi.getValue(node, "Spacer0CSS")
		}
		return value
	}
	
	if(node.Disabled)
		return tapi.getValue(node, "ItemDCSS");
	if(node.NonSelectable)
		return tapi.getValue(node, "ItemNCSS");

	var selected = tapi.getSelected(node);
	if(tapi.getActive(node))
		return tapi.getValue(node, selected ? "ItemASCSS" : "ItemACSS");
		
	return tapi.getValue(node, selected ? "ItemSCSS" : "ItemCSS");
}