rem:  while ((node = node.parentNode) != null && node.nodeType != 1) ;  return node; }  if (node == null) return null;  var namesAr = names.toUpperCase().split(',');  do { for (var i=0; i<namesAr.length; i++) { if (node.nodeName == namesAr[i] || names == "*") { if (typeof(attrib_name) == "undefined") return node; else if (node.getAttribute(attrib_name)) { if (typeof(attrib_value) == "undefined") { if (node.getAttribute(attrib_name) != "") return node; } else if (node.getAttribute(attrib_name) == attrib_value) return node; } } } } while ((node = node.parentNode) != null);  return null; 
add: return this.getParentNode(n, function(n) { return (n.nodeType == 1 && !re) || (re && re.test(n.nodeName)); }); 
context: TinyMCE_Engine.prototype.getParentElement = function(node, names, attrib_name, attrib_value) {	if (typeof(names) == "undefined") {		if (node.nodeType == 1)			return node;		// Find parent node that is a element		while ((node = node.parentNode) != null && node.nodeType != 1) ;		return node;	}	if (node == null)		return null;	var namesAr = names.toUpperCase().split(',');	do {		for (var i=0; i<namesAr.length; i++) {			if (node.nodeName == namesAr[i] || names == "*") {				if (typeof(attrib_name) == "undefined")					return node;				else if (node.getAttribute(attrib_name)) {					if (typeof(attrib_value) == "undefined") {						if (node.getAttribute(attrib_name) != "")							return node;					} else if (node.getAttribute(attrib_name) == attrib_value)						return node;				}			}		}	} while ((node = node.parentNode) != null);	return null;};
meta: 2801	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/2801/aa367868a75d03ed600924de4b0f050796094a17/TinyMCE_DOMUtils.class.js/buggy/jscripts/tiny_mce/classes/TinyMCE_DOMUtils.class.js