
function osxUpdateView(node, active, selected) {
	if(DMAPI.getNonSelectable(node) && DMAPI.isLeaf(node))
		return;
	var _image = DMAPI.getElement(node,"Image");
	if(_image)
		_image.src = DMAPI.getValue(node, active ? "ActiveImage" : "Image");
	_image = DMAPI.getElement(node,"ArrowImage");
	if(_image)
		_image.src = osxResolveValue(node, "ArrowImage", active, selected);
}

function osxResolveValue(node, _name, active, selected) {
	
	if((DMAPI.getNonSelectable(node) && DMAPI.isLeaf(node)))
		active = false;
	else 
		active = active || selected;
		
	if(_name == "Image")
		_name = DMAPI.getDisabled(node) ? "DisabledImage" : (active ? "ActiveImage" : "Image");
	else if(_name == "ArrowImage") { 
		if(!DMAPI.getParent(DMAPI.getParent(node)))
			_name = (DMAPI.getLayout(DMAPI.getParent(node)) == 1 ? "HArrowImage" : "VArrowImage");
		_name += active ? "2" : "";
	}
	return DMAPI.getValue(node, _name);
}

function osxResolveCssClass(node, _name, active, selected) {

	if(node.CustomType == "Separator")
		return DMAPI.getValue(node, "ItemSeparator");
	
	active = active || selected;
	
	if(DMAPI.getNonSelectable(node) && DMAPI.isLeaf(node))
		active = false;

	var cssName;
	
	if(_name == "TopLevel")
		cssName = "TopLevel";
	else if(_name == "TopLevelContainer")
		cssName = "TopLevelContainer";
	else if(_name == "Popup")
		cssName = "Popup";
	else if(_name == "PopupContainer")
		cssName = "PopupContainer";
	else if(_name == "TopItem")
		cssName = DMAPI.getDisabled(node) ? "TopItemDisabled" : (active ? (DMAPI.mode == "NN" ? "TopItemActiveNN" : "TopItemActive") : "TopItem");
	else if(_name == "Item")
		cssName = DMAPI.getDisabled(node) ? "ItemDisabled" : (active ? (DMAPI.mode == "NN" ?  "ItemActiveNN" : "ItemActive") : "Item");
	else 
		alert("unexpexted CSS class request [" + _name + "]");
		
	return DMAPI.getValue(node, cssName);
}


