var _req = {};
_req.send = function(url, method, callback, vars, urlencoded){
_req.data = null;
try {
_req.data = new XMLHttpRequest();
}catch(e){
var progIds = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0'];
var success = false;
for(var i = 0; (i < progIds.length) && ( ! success); i ++){
try {
_req.data = new ActiveXObject(progIds[i]);
success = true;
}catch(e){}}}

if(_req.data){
_req.data.onreadystatechange = _req.proccess;
if(method == "POST"){
_req.data.open("POST", url, true);
if(urlencoded) _req.data.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
_req.data.send(vars);
}else{
_req.data.open("GET", url, true);
_req.data.send(null);
}}};

_req.proccess = function(){
if(_req.data.readyState == 4){
if(_req.data.status == 200){
//(method=="POST") ? callback(xmlHttp) : callback(xmlHttp,vars);
}else{
alert("There was a problem retrieving the XML data:\n" + _req.data.statusText);
}}};

_req.sendRawPOST = function(url, data, callback) {
	_req.send(url, "POST", callback, data, false);
}
_req.sendPOST = function(url, data, callback) {
	_req.send(url, "POST", callback, data, true);
}
_req.sendGET = function(url, callback, args) {
	_req.send(url, "GET", callback, args);
}