code: function isVisible(node) {
  	if (!node) {
  		return false;
  	}
  
  	if (getAncestors(node).concat(node)
  	.filter(function(node) { return node.nodeType == Node.ELEMENT_NODE })
  	.some(function(node) { return getComputedStyle(node).display == "none" })) {
  		return false;
  	}
  
  	if (isBlockNode(node)
  	|| (node.nodeType == Node.TEXT_NODE && !isCollapsedWhitespaceNode(node))
  	|| isHtmlElement(node, "img")
  	|| (isHtmlElement(node, "br") && !isExtraneousLineBreak(node))) {
  		return true;
  	}
  
  	for (var i = 0; i < node.childNodes.length; i++) {
  		if (isVisible(node.childNodes[i])) {
  			return true;
  		}
  	}
  
  	return false;
  }
docs: "Something is visible if it is a node that either is a block node, or a Text node that is not a collapsed whitespace node, or an img, or a br that is not an extraneous line break, or any node with a visible descendant; excluding any node with an ancestor container Element whose "display" property has resolved value "none"."