

function processReqChange() 
{
	var self=this;
	this.check=function () {
    if (self.req.readyState == 4) 
  	{
      if (self.req.status == 200) 
  		{
  			self.handler(self.req.responseText);
  			delete self.req;
      } 
      else
      {
  			self.handler("GETURLERROR");
  			delete self.req;
      }
    }
  };	
}

function getURLGO()
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        this.req = new XMLHttpRequest();
 		var changeHandler = new processReqChange;
		changeHandler.handler=this.handler;
		changeHandler.req=this.req;
        this.req.onreadystatechange = changeHandler.check;
        this.req.open("GET", this.URL, true);
        this.req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        this.req = new ActiveXObject("Microsoft.XMLHTTP");
        if (this.req) {
		var changeHandler = new processReqChange;
		changeHandler.handler=this.handler;
		changeHandler.req=this.req;
        this.req.onreadystatechange = changeHandler.check;
            this.req.open("GET", this.URL, true);
            this.req.send();
        }
    }
}

function getURL(URL,handler)
{
	this.URL=URL;
	if (handler)
	{
		this.handler=handler;
	}
	else
	{
		this.handler= defaultHandler;
	}
	this.go=getURLGO;
}

function defaultHandler(data)
{
	//purposely left blank
}

function postURLGO()
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        this.req = new XMLHttpRequest();
 
 		var changeHandler = new processReqChange;
		changeHandler.handler=this.handler;
		changeHandler.req=this.req;
        this.req.onreadystatechange = changeHandler.check;
        this.req.open("POST", this.URL, true);
				if ( typeof this.req.setRequestHeader !='undefined')
				{
					this.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				}
        this.req.send(this.postdata);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        this.req = new ActiveXObject("Microsoft.XMLHTTP");
        if (this.req) {
 
		var changeHandler = new processReqChange;
		changeHandler.handler=this.handler;
		changeHandler.req=this.req;
        this.req.onreadystatechange = changeHandler.check;
            this.req.open("POST", this.URL, true);
		this.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            this.req.send(this.postdata);
        }
    }
}

function postURL(URL,handler)
{
	this.URL=URL;
	this.seperator='';
	this.postdata='';
	if (handler)
	{
		this.handler=handler;
	}
	else
	{
		this.handler= defaultHandler;
	}
	this.go=postURLGO;
	
	this.addpost = function(name,data)
	{
		this.postdata += this.seperator + name + '=' + encodeURIComponent(data);
		this.seperator='&';
	};
}




