function doAjaxPopulateRelated(imgA,url,event) {
	if (imgA.firstChild.src.indexOf(IMG_AJAX_POPULATE) != -1) {
		imgAElementToPopulate = imgA;
		
		AjAX_POOL.processNext(new AjaxCaller('GET',url,null,processXmlPopulateRelated,true,false));
	} else {
		doAjaxCloseRelated(imgA);
	}
}

function doAjaxCloseRelated(imgA) {
	imgA.firstChild.src = IMG_AJAX_POPULATE;
	var level = parseInt(imgA.getAttribute("level")) + 1;
	
	var table = imgA.parentNode.parentNode.parentNode.parentNode;
	var pos = imgA.parentNode.parentNode.rowIndex + 1;
	var exit = false;
	while (pos < table.rows.length && ! exit) {
		var aRow = table.rows[pos];
		var aLevel = parseInt(aRow.getElementsByTagName("a")[2].getAttribute("level"));
		exit = aLevel < level;
		if (aLevel >= level) {
			aRow.parentNode.removeChild(aRow);
		} else {
			pos++;
		}
		
	}
}

function processXmlPopulateRelated(xml,imgA) {
	var result = false;
	if (imgA == null) imgA = imgAElementToPopulate;
	if (xml != null && xml.getElementsByTagName("load").length != 0) {
		var toLoad = xml.getElementsByTagName("load").item(0);
		var toLoadType = toLoad.getAttribute("type");

		imgA.firstChild.src = IMG_AJAX_CLOSE;
		
		var level = parseInt(imgA.getAttribute("level")) + 1;

		if (LOAD_TABLE == toLoadType) {
			var xmlTable = toLoad.getElementsByTagName("table").item(0);
			var xmlRows = xmlTable.getElementsByTagName("row");
		
			var table = imgA.parentNode.parentNode.parentNode.parentNode;

			if (xmlRows == null || xmlRows.length == 0) {
				imgA.firstChild.style.display = "none";
			} else {
				for (var i = 0; xmlRows != null && i < xmlRows.length; i++) {
					var xmlRow = xmlRows.item(i);
					var xmlCells = xmlRow.getElementsByTagName("cell");
					
					var urlToCall = xmlCells.item(0).firstChild.nodeValue;
					var urlToPopulate = xmlCells.item(1).firstChild.nodeValue;
					var urlToPreview = xmlCells.item(2).firstChild.nodeValue;
					var itemIdent = xmlCells.item(3).firstChild.nodeValue;
					var itemTitle = xmlCells.item(4).firstChild.nodeValue;
					var itemDateUpdated = xmlCells.item(5).firstChild.nodeValue;
	
					var aRow = table.insertRow(imgA.parentNode.parentNode.rowIndex + 1 + i);
					var tdIdent = aRow.insertCell(0);
					var tdTitle = aRow.insertCell(1);
					var tdDate = aRow.insertCell(2);
			
					tdIdent.innerHTML = "<img src=\"" + IMG_EMPTY_IMAGE + "\" width=\"" + (level * 10) + "px\" height=\"0px\">" +
										"<a href=\"" + urlToCall + "\">[ " + itemIdent + " ]</a> " +
										"<a href=\"#\" onclick=\"doModalAjax('" + urlToPreview + "',event);return false;\"><img src=\"" + IMG_MODAL_INFO + "\" border=\"0\"></a> " +
										"<a href=\"#\" onclick=\"doAjaxPopulateRelated(this,'" + urlToPopulate + "',event);return false;\" level=\"" + level + "\"><img src=\"" + IMG_AJAX_POPULATE + "\" border=\"0\"></a>";
					tdIdent.style.whiteSpace = "nowrap";
					tdTitle.innerHTML = itemTitle;
					tdDate.innerHTML = itemDateUpdated;
				}
			}
		
			result = true;
		}
	}
	
	if (result == true) {
		return result;
	}
	
	alert("Ops! Nothing to load");
	return false;
}
