/*
 * fold all items for all categories
 */
function foldAllSources()
{
	var liNodes = document.getElementById("content").childNodes;

	for(var i = 0; i < liNodes.length; i++)
	{
		if (liNodes[i].nodeName == "DIV")
		{
			liNodes[i].style.display = "none";
		}
		else if (liNodes[i].nodeName == "TABLE" && liNodes[i].id == "mainTopic")
		{
		    var plusOUmoins = liNodes[i].getElementsByTagName("A");

		    if (plusOUmoins.length > 0)
		    {
		    	plusOUmoins[0].setAttribute("CLASS", "plus");
		    	plusOUmoins[0].setAttribute("className", "plus");
			}
		}
	}
}

/*
 * fold or unfold all items for current category
 */
function foldOrUnfoldSelectedSource(aNode, ulNodeID)
{
	var ulNode = document.getElementById(ulNodeID);

	if (ulNode != null)
	{
		var mark = (ulNode.style.display == "none");

		if (mark)
		{
			foldAllSources();
			aNode.setAttribute("CLASS", "minus");
			aNode.setAttribute("className", "minus");
			ulNode.style.display = "block";
		}
		else
		{
			aNode.setAttribute("CLASS", "plus");
			aNode.setAttribute("className", "plus");
			ulNode.style.display = "none";
		}
	}
}

function selectedTopics(selected, topicId, size)
{
	var messageWidget = document.getElementById(topicId + ".message");
	var message = "";
	var currentTopic = document.getElementById(topicId + ".selected-input");
	
	var countTopics = 0;
	for (var i = 0; i < size; i++)
	{
		var selectedTopic = document.getElementById(topicId + ".subTopicList." + i + ".selected-input");
		
		// check/uncheck all sub topics if main topic is selected
		if (selected.getAttribute("id").slice(topicId.length) == ".selected-input")
		{
			selectedTopic.checked = selected.checked;
		}
		
		if (selectedTopic.checked)
		{
			countTopics++;
		}
	}
	
	if (countTopics > 0)
	{
		message = "(" + countTopics + "/" + size + ")";
	}
	
	currentTopic.checked = (countTopics == size);
	displayMessage(messageWidget, message);
}

function updateAllTopics(topicList, size)
{
	for (var i = 0; i < size; i++)
	{
		var messageWidget = document.getElementById(topicList + "." + i + ".message");
		var message = "";
		var countTopics = 0;
		var j = 0;
		var selectedTopic = document.getElementById(topicList + "." + i + ".subTopicList." + j + ".selected-input");
		
		while (selectedTopic != null)
		{
			j++;
			if (selectedTopic.checked)
			{
				countTopics++;
			}
			selectedTopic = document.getElementById(topicList + "." + i + ".subTopicList." + j + ".selected-input");
		}
		
		if (countTopics > 0)
		{
			message = "(" + countTopics + "/" + j + ")";
		}
		
		displayMessage(messageWidget, message);
	}
}

function displayMessage(widget, message)
{
	var anchor = document.createElement("a");
	anchor.appendChild(document.createTextNode(message));
	if (widget.hasChildNodes())
	{
		widget.replaceChild(anchor, widget.firstChild);
	}
	else
	{
		widget.appendChild(anchor);
	}
}