var itemStatus = new Object();

function doSubTree(id, dir, contextPath) {
	if(itemStatus[id] == 'open') {dir = '-1';}
	else if(itemStatus[id] == 'closed') {dir = '1';}

	if(dir == '1') {showSubTree(id, contextPath);}
	else {hideSubTree(id);}
}

function showSubTree(id, contextPath) {
	var doLoadSubtree = false;
	if(itemStatus[id] != 'closed') {doLoadSubtree = true;}
	
	itemStatus[id] = 'open';
	$('kreuz_' + id).src = $('kreuz_' + id).src.replace(/\/p_/, "/m_");
	$('subtree_' + id).className = 'showBlock';
			
	// do ajax call because subtree was never loaded
	if(doLoadSubtree) {
		$('wait_' + id).className = 'showBlock';		
		new Ajax.Request(contextPath, {
    		method:'get',
		    parameters: {'objectid' : id},
		    onSuccess: function(transport) {
				$('wait_' + id).className = 'hideBlock';		    
		    	var response = transport.responseText || "";
		    	$('subtree_' + id).update(response);
			},
		    onFailure: function() {
		    	$('subtree_' + id).update('ERROR');
		    }
		});		
	}			
}

function hideSubTree(id) {
	itemStatus[id] = 'closed';
	$('kreuz_' + id).src = $('kreuz_' + id).src.replace(/\/m_/, "/p_");	
	$('subtree_' + id).className = 'hideBlock';
}
