var expandedNodes = [];
function toggle(node,target,arg) {
	//Callback for data if node not already hydrated
	if (target!=null){
		var blnCallback = false;
		for(var i=0; i < expandedNodes.length; i++ ){
			if (expandedNodes[i]==target+arg){
				blnCallback = true;
			}
		}
		if (blnCallback == false){
			__DoCallBack(target,arg);
			expandedNodes.push(target+arg);
		}
	}
    // Get the next tag (read the HTML source)
	var nextDIV = node.nextSibling;

	// find the next DIV
	while(nextDIV.nodeName != "DIV") {
		nextDIV = nextDIV.nextSibling;
	}

	// Unfold the branch if it isn't visible
	if (nextDIV.style.display == 'none') {

		// Change the image (if there is an image)
		if (node.childNodes.length > 0) {

			if (node.childNodes.item(0).nodeName == "IMG") {
				if (node.childNodes.item(0).src.indexOf("plus.gif")>-1){
					node.childNodes.item(0).src = getImgDirectory(node.childNodes.item(0).src) + "minus.gif";
					}
				else if (node.childNodes.item(1).src.indexOf("plus.gif")>-1){
				node.childNodes.item(1).src = getImgDirectory(node.childNodes.item(1).src) + "minus.gif";
				}
			}
		}

		nextDIV.style.display = 'block';
	}
	// Collapse the branch if it IS visible
	else {

		// Change the image (if there is an image)
		if (node.childNodes.length > 0) {
			if (node.childNodes.item(0).nodeName == "IMG") {
				if (node.childNodes.item(0).src.indexOf("minus.gif")>-1){
					node.childNodes.item(0).src = getImgDirectory(node.childNodes.item(0).src) + "plus.gif";
					}
				else if (node.childNodes.item(1).src.indexOf("minus.gif")>-1){
				node.childNodes.item(1).src = getImgDirectory(node.childNodes.item(1).src) + "plus.gif";
				}
			}
		}
		nextDIV.style.display = 'none';
	}
}

/*****************************************************************************
Name : toggle2
Parameters :  node DOM element (<a> tag), folderCode String
Description :    if you use the "code" attribute in a folder element, toggle2 is called
instead of toggle. The consequence is that you MUST implement a selectFolder function in your page.
Author : Jean-Michel Garnier
*****************************************************************************/
function toggle2(node, folderCode) {
    toggle(node);
    selectFolder(folderCode);
}



function getImgDirectory(source) {
    return source.substring(0, source.lastIndexOf('/') + 1);
}
