	getAttributes: function(/* item */ item) {		//	summary:		//		Return an array of attribute names		// 	description:		//		'item' must be an XML element.		//		tag names of child elements and XML attribute names of attributes		//		specified to the element are returned along with special attribute		//		names applicable to the element including "tagName", "childNodes"		//		if the element has child elements, "text()" if the element has		//		child text nodes, and attribute names in '_attributeMap' that match		//		the tag name of the element.		//	item:		//		An XML element		//	returns:		//		An array of attributes found		var element = item.element;		var attributes = [];		attributes.push("tagName");		if(element.childNodes.length > 0){			var names = {};			var childNodes = true;			var text = false;			for(var i = 0; i < element.childNodes.length; i++){				var node = element.childNodes[i];				if (node.nodeType === 1 /*ELEMENT_NODE*/) {					var name = node.nodeName;					if(!names[name]){						attributes.push(name);						names[name] = name;					}					childNodes = true;				}else if(node.nodeType === 3){					text = true;				}			}			if(childNodes){				attributes.push("childNodes");			}			if(text){				attributes.push("text()");			}		}		for(var i = 0; i < element.attributes.length; i++){			attributes.push("@" + element.attributes[i].nodeName);		}		if(this._attributeMap){			for (var key in this._attributeMap){				var i = key.indexOf('.');				if(i > 0){					var tagName = key.substring(0, i);					if (tagName === element.nodeName){						attributes.push(key.substring(i + 1));					}				}else{ // global attribute					attributes.push(key);				}			}		}		return attributes; //array	},
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/245dfaf99d2c4476bafca2d2cd0f476efa6cc8a2/XmlStore.js/buggy/data/XmlStore.js