code: function getAllElements(oDocument, aElementNames) {
  	var aElements = [];
  
  	var mElementNames = {};
  	for (var i = 0; i < aElementNames.length; ++i) {
  		mElementNames[aElementNames[i]] = true;
  	}
  
  	var oElement = oDocument;
  	while (oElement) {
  		if (mElementNames[oElement.tagName]) {
  			aElements.push(oElement);
  		}
  
  		if (oElement.hasChildNodes()) {
  			oElement = oElement.firstChild;
  		} else {
  			while (!oElement.nextSibling) {
  				oElement = oElement.parentNode;
  
  				if (!oElement || oElement === oDocument) {
  					oElement = null;
  					break;
  				}
  			}
  			if (oElement) {
  				oElement = oElement.nextSibling;
  			}
  		}
  	}
  
  	return aElements;
  }
docs: Returns all elements in the given document (or node) that match the given elementnames
  
  @param {Node} oDocument - The start node from where to search for elements
  @param {string[]} aElementNames - The names of the elements to search for
  @returns {HTMLElement[]} The matching elements
  @private