// $Id: tree.js,v 1.2 2008/06/23 15:17:23 mauclerc Exp $

/**
 * Toggle cartotheque tree node
 */
function toggleNode(id) {
	var imgExpand = document.getElementById("treeImgExpand_" + id);
	var container = document.getElementById("containerNode_" + id);
	if (container.style.display == "none") {
		if (container.innerHTML == "") {
			// Call the server
			getCategoryChildren(id);
		} else {
			container.style.display = "";
			imgExpand.src = "/viewer/style/" + style + "/images/splashscreen/treenode_expand_minus.gif";
		}
	} else {
		container.style.display = "none";
		imgExpand.src = "/viewer/style/" + style + "/images/splashscreen/treenode_expand_plus.gif";
	}
}

/**
 * Ask for category children
 */
function getCategoryChildren(categoryId) {
	var request = '/viewer/cartotheque?action=getChildrenForSplashScreen&callback=getCategoryChildrenForSplashScreenHandler&categoryId=' + categoryId;

 	// Create a new script object
	// (implementation of this class is in /export/jsr_class.js)
	aObj = new JSONscriptRequest(request);
	// Build the script tag
	aObj.buildScriptTag();
	// Execute (add) the script tag
	aObj.addScriptTag();

}

function getCategoryChildrenForSplashScreenHandler(data) {
	var html = "";
	
	if (data == null || data.categoryId == null || data.children == null || data.children.length <= 0) {
	    html += "<div class=\"treeNode\">";
		html += "<span class=\"treeNodeLabel\">";
		html += "<i>" + gMessages["js.message.category.empty"] + "</i>";
	    html += "</span>";
	    html += "</div>";
	} else {
		for(var index = 0; index < data.children.length; index++) {
			var entity = data.children[index];
			if (entity.isFolder) {
			    html += "<div class=\"treeNode\">";
			    html += "<img id=\"treeImgExpand_" + entity.objectId + "\" onclick=\"javascript: toggleNode('" + entity.objectId + "');\" style=\"width: 18px; height: 18px; vertical-align: middle; display: inline;\" src=\"/viewer/style/" + style + "/images/splashscreen/treenode_expand_plus.gif\"/>";
				html += "<span class=\"treeNodeLabel\">";
			    html += "<span class=\"treeNodeLabelTitle\">" + entity.title + "</span>";
			    html += "</span>";
			    html += "<div id=\"containerNode_" + entity.objectId + "\" style=\"display:none;\"></div>";
			    html += "</div>";
			} else {
			    html += "<div class=\"treeNode\">";
		        html += "<img style=\"width: 11px; height: 11px; vertical-align: middle; display: inline;\" src=\"/viewer/style/" + style + "/images/splashscreen/treenode_leaf.gif\"/>";
		        html += "<span class=\"treeNodeLabel\">";
	            html += "<a href=\"/viewer/LoadContext.do?uuid=" + entity.objectId + "\"><span class=\"treeNodeLabelTitle\">" + entity.title + "</span></a>";
		        html += "</span>";
			    html += "</div>";
			}
		}
	}
	document.getElementById("containerNode_" + data.categoryId).innerHTML = html;
	document.getElementById("containerNode_" + data.categoryId).style.display = "";
	document.getElementById("treeImgExpand_" + data.categoryId).src = "/viewer/style/" + style + "/images/splashscreen/treenode_expand_minus.gif";
}