if(!Array.map) {
	Array.prototype.map = function(callback) {
		tmp = new Array(this.length);
		for(i=0; i < this.length; i++) {
			tmp[i] = callback(this[i]);
		}
		return tmp;
	}
}
function setHidden(node, bool) {
	node.style.display = (bool) ? "none" : "";
}
function setHiddenDiv(node, bool) {
	node.style.display = (bool) ? "none" : "block";
}
function setColored(node, bool) {
	node.style.color = (bool) ? "#000" : "#f00";
	node.className = (bool) ? "" : "current";
}
function setDisabled(node, bool) {
	node.disabled = (bool) ? "disabled" : "";
}
function setTableHidden(node, bool) {
	node.style.display = (bool) ? "none" : "table-row";
}
function swapVisibleNodes(visibleArray, hiddenArray, type) {
// Makes all nodes in visibleArray visible, all in hiddenArray hidden.
	dispFunction = eval(type);
	for(i=0; i < visibleArray.length; i++) {
		dispFunction(visibleArray[i], false);
	}
	for(i=0; i < hiddenArray.length; i++) {
		dispFunction(hiddenArray[i], true);
	}
}
function swapVisible(visibleArray, hiddenArray, type) {
	visibleArray = visibleArray.map(function(v) { return document.getElementById(v); });
	hiddenArray = hiddenArray.map(function(v) { return document.getElementById(v); });
	return swapVisibleNodes(visibleArray, hiddenArray, type);
}
function showOne(thisNodes, allNodes, type) {
	var hiddenNodes = new Array();
	for(i=0; i < thisNodes.length; i++) {
		thisNode = thisNodes[i];
		for(i=0; i < allNodes.length; i++) {
			if(thisNode != allNodes[i]) {
				hiddenNodes.push(allNodes[i]);
			}
		}
	}
	swapVisible(thisNodes, hiddenNodes, type);
}
