var SydAjax = {
ajax:function(opt){
var xhr = this.createXhrObject();
xhr.onreadystatechange = function(){
if(xhr.readyState!=4) return ;
(xhr.status===200 ?
opt.success(xhr.responseText,xhr.responseXML):
opt.error(xhr.responseText,xhr.status));
}
xhr.open(opt.type,opt.url,true);
if(opt.type!=='post')
opt.data=null;
else
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
opt.data = this.parseQuery(opt.data);
xhr.send(opt.data);
},
post:function(url,success,data){
var popt = {
url:url,
type:'post',
data:data,
success:success,
error:function(data){}
}
this.ajax(popt);
},
get:function(url,success){
var gopt = {
url:url,
type:'get',
success:success,
error:function(){}
}
this.ajax(gopt);
},
createXhrObject:function(){
var methods = [
function(){ return new XMLHttpRequest();},
function(){ return new ActiveXObject('Msxml2.XMLHTTP');},
function(){ return new ActiveXObject('Microsoft.XMLHTTP');}
];
for(var i=0;len=methods.length,i<len;i++){
try{
methods[i]();
}catch(e){
continue;
}
this.createXhrObject = methods[i];
return methods[i]();
}
throw new Error('Could not create an XHR object.');
},
parseQuery:function(json){
if(typeof json == 'object'){
var str = '';
for(var i in json){
str += "&"+i+"="+encodeURIComponent(json[i]);
}
return str.length==0 ? str : str.substring(1);
}else{
return json;
}
}
};