var intvlid;
var symbols = ["\u25BA ","\u25BC ","\u25C4 ","\u25B2 "];
var symbolIndex = 1;
var searchTerm;

function showDescendants(type,divid) {
	if (intvlid == null) {
		e = document.getElementById(divid);
		if (e) {
			ev = document.getElementById(divid + "_viz").firstChild.firstChild;
			if (e.style.display == "none") {
				e.style.display = "block";
				ev.data = "\u25BC ";
			}
			else {
				e.style.display = "none";
				ev.data = "\u25BA ";
			}
		}
		else {
			searchTerm = divid;
			intvlid = setInterval(showProgress,100);
			ajax.getRequest("getDescendants.php",["type","term"],[type,divid],addDescendants);
		}
	}
}

function addDescendants(data) {
	var rtn = json_parse(data);
	var termNoSpace = rtn.term.replace(/\s/g,"_");
	var baseviz = document.getElementById(termNoSpace + "_viz");
	var baseRow = baseviz.parentNode;
	var baseTable = baseRow.parentNode;
	clearInterval(intvlid);
	intvlid = null;
	baseviz.firstChild.firstChild.data = "\u25BC ";
	var newBaseRow = baseTable.insertRow(baseRow.rowIndex + 1);
	var blankCell = newBaseRow.insertCell(newBaseRow.cells.length);
	blankCell.className = "viz";
	var tableCell = newBaseRow.insertCell(newBaseRow.cells.length);
	tableCell.className = "term";
	var newTable = document.createElement("table");
	newTable.id = termNoSpace;
	tableCell.appendChild(newTable);
	
	for (var i = 0;i < rtn.results.length;i++) {
		var resultName;
		if (rtn.type == "categories") resultName = rtn.results[i].name;
		else resultName = rtn.results[i];
		var resultNoSpace = resultName.replace(/\s/g,"_");
		var resultNoAmp = resultName.replace(/&/g,"%26");
		var thisRow = newTable.insertRow(newTable.rows.length);
		var firstCell = thisRow.insertCell(thisRow.cells.length);
		firstCell.className = "viz";
		var secondCell = thisRow.insertCell(thisRow.cells.length);
		secondCell.className = "term";
		var lookupLink = document.createElement("a");
		secondCell.appendChild(lookupLink);
		lookupLink.href = "thumbnails.php?type=" + rtn.type + "&term=" + resultNoAmp;
		lookupLink.target = "_blank";
		lookupLink.appendChild(document.createTextNode(resultName));
		if ((rtn.type == "categories" && rtn.results[i].children > 0)||rtn.type == "surnames") {
			firstCell.id = resultNoSpace + "_viz";
			var link = document.createElement("a");
			firstCell.appendChild(link);
			if (rtn.type == "surnames") link.href = "javascript:showDescendants(\"people\",\"" + resultNoSpace + "\")";
			else link.href = "javascript:showDescendants(\"categories\",\"" + resultNoSpace + "\")";
			link.appendChild(document.createTextNode("\u25BA "));
		}
	}
}

function showProgress() {
	document.getElementById(searchTerm + "_viz").firstChild.firstChild.data = symbols[++symbolIndex % 4];
}

function showHelp(flag) {
	e = document.getElementById("help");
	if (flag > 0) e.style.display="block";
	else e.style.display="none";
}

function showPanel(element) {
	var subjectPanel = document.getElementById("categories");
	var peoplePanel = document.getElementById("people");
	var placesPanel = document.getElementById("locations");
	var subjectSelect = document.getElementById("subjectSelect");
	var peopleSelect = document.getElementById("peopleSelect");
	var placesSelect = document.getElementById("placesSelect");
	subjectPanel.style.display = "none";
	peoplePanel.style.display = "none";
	placesPanel.style.display = "none";
	subjectSelect.style.borderBottomStyle = "solid";
	peopleSelect.style.borderBottomStyle = "solid";
	placesSelect.style.borderBottomStyle = "solid";
	if (element.id == "subjectSelect") {
		subjectPanel.style.display = "block";
		subjectSelect.style.borderBottomStyle = "none";
	}
	else if (element.id == "peopleSelect") {
		peoplePanel.style.display = "block";
		peopleSelect.style.borderBottomStyle = "none";
	}
	else if (element.id == "placesSelect") {
		placesPanel.style.display = "block";
		placesSelect.style.borderBottomStyle = "none";
	}
}
