postback = function(Address)
{
	this.Address	= Address || "";
	this.Results	= "";
	this.Parameters	= "";
};

postback.prototype.Retrieve = function()
{
	//var
	var XMLHttp=null;
	var Error_text="";
	//var
	
	if((XMLHttp)&&(XMLHttp.readyState!=0))
		XMLHttp.abort()

	XMLHttp=getXMLHTTP();
	if(XMLHttp)
	{
		if(this.Parameters!='')
			XMLHttp.open("GET",this.Address + "?" + this.Parameters + "&rand=" + Math.random(),true);
		else
			XMLHttp.open("GET",this.Address + "?rand=" + Math.random(),true);
    		
		XMLHttp.onreadystatechange=function()
		{
			if(XMLHttp.readyState==4&&XMLHttp.responseText)
			{
				if(XMLHttp.responseText.charAt(0)=="<")
					_timeoutAdjustment--
				else{
					try{
						eval(XMLHttp.responseText);
					}catch(E){
						switch(E.name){
							case "EvalError":Error_text="Evaluation error";break;
							case "RangeError":Error_text="Out of range error";break;
							case "ReferenceError":Error_text="Reference error";break;
							case "SyntaxError":Error_text="Syntax error";break;
							case "TypeError":Error_text="Variable type error";break;
							case "URIError":Error_text="URI error";break;
							default: Error_text="Unspecified error";break;
						};
						alert("Error name: " + Error_text + "\nError message: " + E.message);
						alert(XMLHttp.responseText);
					};
				};
			};
		};
		XMLHttp.send(null)
	};
};

//Private Function
function getXMLHTTP()
{
	//var
	var ActiveX=null;
	//var
	
	try{
		ActiveX=new ActiveXObject("Msxml2.XMLHTTP")
	}catch(e){
		try{
			ActiveX=new ActiveXObject("Microsoft.XMLHTTP")
		}catch(oc){
			ActiveX=null
		};
	};
	if(!ActiveX && typeof XMLHttpRequest != "undefined")
		ActiveX=new XMLHttpRequest()
	
	return ActiveX
};