function getxmldata(sql,returnFunction,url){
	if(returnFunction){this.returnFunction=returnFunction}
	if(url){this.url=url}else{this.url=homeUrl+'modules/system/get.xml.php'}
	this.url+="?sql="+sql
	this.xml = new xmlObj()
	this.data = new Array() 
	this.update = function(returnFunction){
		if(returnFunction){this.returnFunction=returnFunction}
		this.xml.loadXML(this.url,returnFunction)
	}
	var self=this
	this.xml.loadXML = function(xmlfile){
		//prompt('',xmlfile)
		this.load(xmlfile);
		this.onload=self.docLoaded
	}
	this.docLoaded = function(){
		self._createArray()
		if(typeof(this.onUpdate)=='function'){
			this.onUpdate()
		}else if(typeof(self.returnFunction)=='function'){
			self.returnFunction(self)
		}
	}
	this._createArray = function(){
		this.data = new Array()
		if(this.xml.childNodes[0].hasChildNodes()){
			items = this.xml.childNodes[0].childNodes
			for(var i=0;i<items.length;i++){
				if(items[i].hasChildNodes()){
					rr=new Object()
					fields = items[i].childNodes
					for(var ii=0;ii<fields.length;ii++){
						prp=fields[ii].tagName+''
						if(fields[ii].firstChild){val =fields[ii].firstChild.nodeValue}else{val=''}
						rr[prp]=val
					}
					this.data[i]=rr
				}
			}
		}
	}
}
if(typeof(xmlObj)!='function'){
	function xmlObj(){
		if (window.ActiveXObject){
			r = new ActiveXObject("Microsoft.XMLDOM");
			r.async=false;
		}
		// code for Mozilla, etc.
		else if (document.implementation && document.implementation.createDocument){
			r= document.implementation.createDocument("","",null);
		}	
		return r
	}
}
