var GetXML = Class.create();
GetXML.prototype = {
	initialize: function(){
		this.file_url = '';
		this.xml = '';
	},

 	load: function(){
   	new Ajax.Request(
			this.file_url,
			{
					method: 'get',
					onComplete: this.set_xml.bindAsEventListener(this),
					onFailure: this.set_failure.bindAsEventListener(this),
					asynchronous: false
			});
	},

	set_xml: function(req){
		this.xml = req.responseXML.documentElement;
	},

	set_failure: function(req){

	},

	get_xml: function(file_url){
		this.file_url = file_url;
		this.load();
		return this.xml;
	}
}

var Parser = Class.create();
Parser.prototype = {
	initialize: function(xml){
		this.xml = xml;
	},

	get_collection: function(name){
		collection = $A(this.xml.getElementsByTagName(name));
		var list = [];
		collection.each(function(element){
			list.push(new Parser(element));
		});
		return $A(list);
	},

	get_element: function(name,num){
		var elements = this.xml.getElementsByTagName(name);
		return num > 0 ? new Parser(elements[num]) : new Parser(elements[0]); 
	},

	get_value: function(name, num){
		element = this.xml;
		if(name){
			element = element.getElementsByTagName(name);
			element = num > 0 ? element[num] : element[0];
		}

		if(element.hasChildNodes()){
     	if(element.firstChild.nodeValue){
       	return element.firstChild.nodeValue;
			}
		}
		return '';
	},

	get_element_value: function(name,num){
		var element = num > 0 ? this.get_element(name,num) : this.get_element(name);
   	return element.get_value();
	},

	get_count: function(name){
		return this.get_collection(name).length;
	}
}
