//	parse valid XML document
//	dependance: prototype.js
//	©Êmountain multi media (www.gomedia.ch)
//	v1.0 8.12.2006/mh

XMLParser=Class.create();
Object.extend(XMLParser.prototype,{
	initialize: function(xmlObj){
		this.xmlObj=xmlObj;
		this.root=xmlObj.documentElement;
	},
	list: function(value,parent){
		if(!parent){parent=this.root}
		var result=parent.getElementsByTagName(value);
		return result;
	},
	get: function (node, value){
		if(typeof value !='undefined'){
			node=node.getElementsByTagName(value).item(0);
			return this.text(node);}
		else{
			return "";
		}
	},
	toArray: function(value){
		var list=this.list(value);
		var nodeValues=new Array();
		for (var i=0;i<list.length;i++){
			nodeValues.push(this.get(list[i]));
		}
		return nodeValues;
	},
	text: function (node){
		if (typeof node.textContent !='undefined'){
			return node.textContent;
		}
		else if (typeof node.innerText !='undefined'){
			return node.innerText;
		}
		else if (typeof node.text !='undefined'){
			return node.text;
		}
		else{
			switch (node.nodeType){
				//	gotta love safari
				case 1:
					return node.firstChild.nodeValue;	//	mh
			
				case 3:
				case 4:
					return node.nodeValue;
					break;
				case 1:
				case 11:
					var innerText='';
					for (var i=0;i<node.childNodes.length;i++)
					{
						innerText+=text(node.childNodes[i]);
					}
					return innerText;
					break;
				default:
					return '';
			}
		}
	}
});
XMLParser.nodeType=[
		"",
		"ELEMENT_NODE",					// 1
		"ATTRIBUTE_NODE",				// 2
		"TEXT_NODE",					// 3
		"CDATA_SECTION_NODE",			// 4
		"ENTITY_REFERENCE_NODE",		// 5
		"ENTITY_NODE",					// 6
		"PROCESSING_INSTRUCTION_NODE",	// 7
		"COMMENT_NODE",					// 8
		"DOCUMENT_NODE",				// 9
		"DOCUMENT_TYPE_NODE",			// 10
		"DOCUMENT_FRAGMENT_NODE",		// 11
		"NOTATION_NODE"					// 12
];