
if("undefined"===typeof ajaxObjects){var ajaxObjects=[];function Ajax(){this.callback=this.request=null;this.timerId=0;this.id=ajaxObjects.length;ajaxObjects[this.id]=this;this.ref="ajaxObjects["+this.id+"]";var self=this;this.isActive=function()
{return this.timerId!=0;}
this.makeGetRequest=function(url,callback,timeout)
{return this.makeRequest("GET",url,null,callback,timeout);}
this.makePostRequest=function(url,parameters,callback,timeout)
{var data="";for(var name in parameters){var value=parameters[name];if(data)data+="&";data+=name+"="+encodeURIComponent(value);}
return this.makeRequest("POST",url,data,callback,timeout);}
this.stop=function()
{if(this.timerId){window.clearTimeout(this.timerId);this.timerId=0;}
if(this.request){this.request.onreadystatechange=function(){};}}
this.timeout=function()
{this.timerId=0;this.finished(new Error("Timeout"));}
this.finished=function(error)
{this.stop();if(this.callback)this.callback(this,this.request,error);}
this.makeRequest=function(type,url,parameters,callback,timeout)
{var ret=false;try{this.stop();if(null===this.request){this.request=this.createRequest();if(null===this.request){throw new Error("No se pudo crear el objeto");}}
var request=this.request;request.open(type,url,true);if(type==="GET"){request.setRequestHeader("If-Modified-Since",new Date(0));}else{request.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");request.setRequestHeader("Content-length",parameters.length);request.setRequestHeader("Connection","close");}
request.onreadystatechange=function(){try{if((request===self.request)&&(self.timerId)&&(4==request.readyState)){self.finished();}}catch(e){self.finished(e);}};this.callback=callback;this.timerId=window.setTimeout(this.ref+".timeout()",timeout);ret=request.send(parameters);}catch(e){this.finished(e);}
return ret;}
this.createRequest=function()
{var request=null;if(window.XMLHttpRequest){request=new XMLHttpRequest();if(request.overrideMimeType){request.overrideMimeType('text/html');}}else if(window.ActiveXObject){try{request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{request=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){request=null;}}}
return request;}}}
