rem: if (xpath){ 
add: if (window.xpath){ 
context: 	getElements: function(selector, nocash){		var items = [];		var xpath = (document.evaluate) ? true : false;		selector = selector.clean().split(' ');		for (var i = 0, j = selector.length; i < j; i++){			var sel = selector[i];			var param;			if ($$.cache[sel]){				param = $$.cache[sel].param;			} else {				param = sel.match($$.regexp);				if (!param) break;				param[1] = param[1] || '*';				$$.cache[sel] = {'param': param};			}			if (xpath){				if ($$.cache[sel].xpath){					items.push($$.cache[sel].xpath);					continue;				}				var temp = this.namespaceURI ? ['xhtml:'] : [];				temp.push(param[1]);				if (param[2]) temp.push('[@id="', param[2], '"]');				if (param[3]) temp.push('[contains(concat(" ", @class, " "), " ', param[3], ' ")]');				if (param[4]){					if (param[5] && param[6]){						switch(param[5]){							case '*=':  temp.push('[contains(@', param[4], ', "', param[6], '")]'); break;							case '^=':  temp.push('[starts-with(@', param[4], ', "', param[6], '")]'); break;							case '$=': temp.push('[substring(@', param[4], ', string-length(@', param[4], ') - ', param[6].length, ' + 1) = "', param[6], '"]'); break;							case '=':  temp.push('[@', param[4], '="', param[6], '"]'); break;							case '!=':  temp.push('[@', param[4], '!="', param[6], '"]');						}					} else temp.push('[@', param[4], ']');				}				temp = temp.join('');				$$.cache[sel].xpath = temp;				items.push(temp);				continue;			}			Filters.selector = param;			if (i == 0){				if (param[2]){					var el = this.getElementById(param[2]);					if (!el || ((param[1] != '*') && (Element.prototype.getTag.call(el) != param[1]))) break;					items = [el];				} else {					items = $A(this.getElementsByTagName(param[1]));				}			} else {				items = Elements.prototype.getElementsByTagName.call(items, param[1], true);				if (param[2]) items = items.filter(Filters.id);			}			if (param[3]) items = items.filter(Filters.className);			if (param[4]) items = items.filter(Filters.attribute);		}		if (xpath) items = this.getElementsByXpath(items.join('//'));		return (nocash) ? items : $$.map(items);	},
meta: 5237	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5237/59686c8d19e0e9848ab1e8b222ced5dc7dc6b110/Dom.js/clean/Native/Dom.js