var HTTPClient=function(){this.client=null;this.timeout=arguments[0]?arguments[0]:30000;this.timer=null;this.query='';this.errorStatus=0;this.callbackText=null;this.callbackJSON=null;this.callbackXML=null;this.callbackTimeout=null;this.createClient=function(){var client=null;try{client=new XMLHttpRequest();}
catch(e){var MSAPIIDS=['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'
];for(var i in MSAPIIDS){try{client=new ActiveXObject(MSAPIIDS[i]);}
catch(e){continue;}
break;}
}
if(client==null){this.errorStatus=2;throw('Error: Your browser does not support'
+' features required by this page.');}
return(client);};this.client=this.createClient();this.getText=function(uri){var callback=null;if(arguments[1]&&typeof(arguments[1])=='function'){callback=arguments[1];}
else if(this.callbackText!=null){callback=this.callbackText;}
else{this.errorStatus=1;throw('Error: Unspecified or invalid callback function'
+' for GET query.');}
this.request('GET',uri,callback,'text/plain');};this.getTextFromPost=function(uri){var callback=null;if(arguments[1]&&arguments[1].length>0){this.query=arguments[1];}
if(arguments[2]&&typeof(arguments[2])=='function'){callback=arguments[2];}
else if(this.callbackText!=null){callback=this.callbackText;}
else{this.errorStatus=1;throw('Error: Unspecified or invalid callback function'
+' for POST query.');}
this.request('POST',uri,callback,'text/plain');};this.request=function(request,uri,callback,response){var local_this=this;var local_client=this.client;if(this.isBusy()){this.errorStatus=2;throw('Error: The page is currently busy.');}
this.client.onreadystatechange=function(){if(local_client.readyState==4){if(local_this.timer!=null){window.clearTimeout(local_this.timer);local_this.timer=null;}
if(local_client.status==200){if(response=='text/xml'){callback(loacl_client.responseXML);}
else if(response=='text/json'){callback(eval(local_client.responseText));}
else{callback(local_client.responseText);}
}
else{local_this.errorStatus=2;throw('Error: Failed to contact server.');}
}
};if(request=='POST'){this.client.open(request,uri,true);this.client.setRequestHeader('Content-Type','application/x-www-form-urlencoded');this.client.setRequestHeader('Content-Length',this.query.length);this.client.setRequestHeader('Connection','close');this.client.send(this.query);}
else{if(this.query.length){url+='?'+this.query;}
this.client.open('GET',uri,true);this.client.send(null);}
if(this.callbackTimeout!=null
&&typeof(this.callbackTimeout)=='function'){this.timer=window.setTimeout(function(){window.clearTimeout(local_this.timer);if(this.isBusy()){local_client.onreadystatechange=function(){};local_client.abort();local_this.callbackTimeout();}
},this.timeout
);}
};this.isBusy=function(){switch(this.client.readyState){case 1:case 2:case 3:return(true);break;}
return(false);};};