function Ajax()
{
this.requestObj = null;
this.construct = function ()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest;
}
else if (window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
else return null;
}
this.getReadyStateHandler = function (req, handler, params)
{
return function ()
{
handler(req, params);
}
}
this.sendRequest = function (url, params, method, myFunc)
{
this.requestObj = this.construct();
if (!this.requestObj) return false;
if (!method || !method.length || method.length < 3) method = "POST";
this.requestObj.onreadystatechange = this.getReadyStateHandler(this.requestObj, myFunc, this.parseParams(params));
this.requestObj.open(method,url,true);
this.requestObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
this.requestObj.send(params);
}
this.parseParams = function(str)
{
var vals = str.split('&');
if(!vals.length || (vals.length == 1 && vals[0] == '')) return str;
var pers = new Array;
var mas = new Object;
var newstr = '({';
for (var i = 0; i < vals.length; i++)
{
pers = vals[i].split('=');
newstr += pers[0]+':"'+ pers[1]+'"';
if(vals[i+1]) newstr += ',';
}
newstr += '})';
return eval(newstr);
}
this.getText = function(reg)
{
return reg.responseText;
}
this.getXML = function(reg)
{
return reg.responseXML;
}
this.getReady = function(req)
{
if (req.readyState == 4)
{
return true;
}
}
this.getJson = function(req)
{
return eval(eval("("+this.getText(req)+")"));
}
this.construct();
}