var HTTP={};
HTTP._factories=[function(){
return new XMLHttpRequest();
},function(){
return new ActiveXObject("Msxml2.XMLHTTP");
},function(){
return new ActiveXObject("Microsoft.XMLHTTP");
}];
HTTP._factory=null;
HTTP.newRequest=function(){
if(HTTP._factory!=null){
return HTTP._factory();
}
for(var i=0;i<HTTP._factories.length;i++){
try{
var _2=HTTP._factories[i];
var _3=_2();
if(_3!=null){
HTTP._factory=_2;
return _3;
}
}
catch(e){
continue;
}
}
HTTP._factory=function(){
throw new Error("XMLHttpRequest not supported");
};
HTTP._factory();
};
HTTP.get=function(_4,_5,_6){
var _7=HTTP.newRequest();
var n=0;
var _9;
if(_6.timeout){
_9=setTimeout(function(){
_7.abort();
if(_6.timeoutHandler){
_6.timeoutHandler(_4);
}
},_6.timeout);
}
_7.onreadystatechange=function(){
if(_7.readyState==4){
if(_9){
clearTimeout(_9);
}
if(_7.status==200){
_5(HTTP._getResponse(_7));
}else{
if(_6.errorHandler){
_6.errorHandler(_7.status,_7.statusText);
}else{
_5(null);
}
}
if(_6.loop){
_6.loop(null);
}
}else{
if(_6.progressHandler){
_6.progressHandler(++n);
}
}
};
var _a=_4;
if(_6.parameters){
_a+="?"+HTTP.encodeFormData(_6.parameters);
}
_7.open("GET",_a);
_7.send(null);
};
HTTP.encodeFormData=function(_b){
var _c=[];
var _d=/%20/g;
for(var _e in _b){
var _f=_b[_e].toString();
var _10=encodeURIComponent(_e).replace(_d,"+")+"="+encodeURIComponent(_f).replace(_d,"+");
_c.push(_10);
}
return _c.join("&");
};
HTTP._getResponse=function(_11){
var _12=_11.getResponseHeader("Content-Type");
if(_12.match(/xml/)){
return _11.responseXML;
}else{
if(_12.match(/json/)){
return JSON.parse(_11.responseText);
}else{
return _11.responseText;
}
}
};

