
//-----------------------------------------------------------------
//	xml
//-----------------------------------------------------------------
//	Description: 	This class downloads an xml file
//
// Parameter 1:	url - string url of the xml file to load
//-----------------------------------------------------------------	
	function downloadXML()
	{
    this.url = null;
    this.doc = null;
    this.timeout = 5000;
    this.interval = null;
    
    var me = this;
    
    this.intervalTimer = null;
    this.failTimer = null;
    this.callBack = null;
    this.callBackFail = null;
    
    this.setInterval = function(newInterval)
    {
      if(parseInt(newInterval) != newInterval){return(false);}
      me.interval = newInterval;
      if(me.interval < 5000)
      {
        me.interval = 5000;
      }
      return(true);
    }
    
    this.load = function()
    {
      me.doc = null;
      me.clearTimers();
      
      if(!me.url){me.failed();return;}
      if(me.url.length==0){me.failed();return;}
      if(!me.callBack){me.failed();return;}
      
      me.doc = new ActiveXObject("Microsoft.XMLDOM");//Create XML object
      me.doc.async = true;
      me.doc.onreadystatechange = me.checkStatus;
      
      me.doc.load(me.url);
      
      me.failTimer = setTimeout(me.failed, (me.timeout*3));
      return;
    };
  
  
		this.checkStatus = function()
    {
      if(!me.doc){return;}
      if(parseInt(me.doc.readyState) != 4){return;}
      me.clearTimers();
      if(me.callBack)
      {
        setTimeout(me.callBack, 500);
      }
      if(me.interval)
      {
        me.intervalTimer = setTimeout(me.load, me.interval);
      }
      return;
    };
    
    this.abort = function()
    {
 //     me.intervalTimer
      me.failed();
      me.callBack = null;
      return;
    }
    
    this.failed = function()
    {
      me.doc = null;
      me.clearTimers();
      if(me.callBackFail)
      {
        me.callBackFail();
      }
      return;
    };
    
    this.clearTimers = function()
    {
      if(me.intervalTimer)
      {
        clearInterval(me.intervalTimer);
        me.intervalTimer = null;
      }
      if(me.failTimer)
      {
        clearInterval(me.failTimer);
        me.failTimer = null;
      }
      return;
    };
	}

