function HTTPObject(script, callback)
{
    this.object = getHTTPObject();
    this.script = script;
    this.callback = callback;
}

HTTPObject.prototype.destroy = function()
{
    this.object = null;
}

HTTPObject.prototype.doPostRequest = function(parameters)
{
    current_date = new Date();
    request = this.script + '?tmp=' + current_date.getTime();
	
//	alert(this.object);
//	alert(request);

    this.object.open('POST', request, true);
    this.object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    this.object.setRequestHeader("Content-length", parameters.length);
    this.object.setRequestHeader("Connection", "close");
    var self_ref = this;
    this.object.onreadystatechange = function ()
    {
        if (self_ref.object.readyState != 4)
            return;
        self_ref.callback(self_ref, self_ref.object.responseText);
    };
    this.object.send(parameters);
}

HTTPObject.prototype.doGetRequest = function(parameters)
{
    current_date = new Date();
    request = this.script + '?tmp=' + current_date.getTime() + '&' + parameters;
	this.object.open('GET', request, true);
	var self_ref = this;
    this.object.onreadystatechange = function ()
    {
        if (self_ref.object.readyState != 4)
            return;
        self_ref.callback(self_ref, self_ref.object.responseText);
    };
    this.object.send(null);
}

//------------------------------------------------------------------------------

function getHTTPObject()
{
  var xmlhttp;
  /*@cc_on
    @if (@_jscript_version >= 5)
        try
        {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (E)
            {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
    {
        try
        {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}