function cycleFolder(id) {

	var folderId = id + "folder";

	if (!document.getElementById(folderId)) return true;
	
	var source = document.getElementById(folderId).src;

	if (source.indexOf("open_folder.gif")!="-1") {

		var re = new RegExp('open_folder.gif','gi');
		var newsrc = source.replace(re,'closed_folder.gif');

	} else {

		var re = new RegExp('closed_folder.gif','gi');
		var newsrc = source.replace(re,'open_folder.gif');

	}

	document.getElementById(folderId).src = newsrc;

}

function cycleArrow(id) {

	var arrowId = id + "arrow";

	if (!document.getElementById(arrowId)) return true;

	var source = document.getElementById(arrowId).src;

	if (source.indexOf("dashbox.gif")!="-1") {

		var re = new RegExp('dashbox.gif','gi');
		var newsrc = source.replace(re,'plusbox.gif');

	} else {

		var re = new RegExp('plusbox.gif','gi');
		var newsrc = source.replace(re,'dashbox.gif');

	}

	document.getElementById(arrowId).src = newsrc;

}

function resetImages(id) {

	var arrowId = id + "arrow";
	var folderId = id + "folder";
	
	if (document.getElementById(arrowId)) {

		var source = document.getElementById(arrowId).src;
		var re = new RegExp('dashbox.gif','gi');
		var newsrc = source.replace(re,'plusbox.gif');
		document.getElementById(arrowId).src = newsrc;

	}

	if (document.getElementById(folderId)) { 

		var source = document.getElementById(folderId).src;
		var re = new RegExp('open_folder.gif','gi');
		var newsrc = source.replace(re,'closed_folder.gif');
		document.getElementById(folderId).src = newsrc;

	}

}

function cycleMenu(id) {

	var pos = id.indexOf("_");

	cycleArrow(id);
	cycleFolder(id);
	
	var objOwner = "_" + id.substr(0,pos) + "_";

	var tags = document.getElementById(id).getElementsByTagName("div");
	var len = tags.length;

	for (i=0;i<len;i++) {
	
		var subId = tags[i].id;
		var subFolder = subId + "folder";
		var subArrow = subId + "arrow";

		var visib = document.getElementById(subId).style.visibility;

			if (subId.indexOf(objOwner)!="-1" && visib=="hidden") showObject(subId);
		
			if (visib=="visible") {
				hideObject(subId);
				resetImages(subId);
			}

	}

}
