function Ajax(){this.req=null;this.url=null;this.method='GET';this.async=true;this.status=null;this.statusText='';this.postData=null;this.readyState=null;this.responseText=null;this.responseXML=null;this.handleResp=null;this.responseFormat='text';this.mimeType=null;this.init=function(){if(!this.req){if(window.XMLHttpRequest){try{this.req=new XMLHttpRequest();}catch(e){this.req=false;}}else if(window.ActiveXObject){var XmlHttpVersions=new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");for(var i=0;i<XmlHttpVersions.length;i++){try{this.req=new ActiveXObject(XmlHttpVersions[i]);}catch(e){this.req=false;}}}return this.req;}};this.handleErr=function(){var errorWin;try{errorWin=window.open('','errorWin');errorWin.document.body.innerHTML=this.responseText;}catch(e){alert('Se ha producido un error, pero el mensaje no se ha podido '+'mostrar. Problemente por el bloquedador de ventanas de '+'su navegador.\n '+'Por favor habilite esta opcion para poder mostrar el '+'mensaje completo\n'+'\n'+'Codigo: '+this.req.status+'\n'+'Descripcion: '+this.req.statusText);}};this.setHandlerBoth=function(funcRef){this.handleResp=funcRef;this.handleErr=funcRef;};this.abort=function(){if(this.req){this.req.onreadystatechange=function(){};this.req.abort();this.req=null;}};this.doGet=function(url,hand,format){this.url=url;this.handleResp=hand;this.responseFormat=format||'text';this.doReq();};this.doPost=function(url,postData,hand,format){this.url=url;this.handleResp=hand;this.responseFormat=format||'text';this.method='POST';this.postData=postData;this.doReq();};this.doReq=function(){if(!this.init()){alert('No se pudo crear el objeto XMLHttpRequest');return;}this.req.open(this.method,this.url,this.async);if(this.method=='POST'){this.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}if(this.mimeType){try{req.overrideMimeType(this.mimeType);}catch(e){}}var self=this;this.req.onreadystatechange=function(){var resp=null;if(self.req.readyState==4){switch(self.responseFormat){case 'text':resp=self.req.responseText;break;case 'xml':resp=self.req.responseXML;break;case 'object':resp=req;break;}if(self.req.status>=200&&self.req.status<=299){self.handleResp(resp);}else{self.handleErr(resp);}}};this.req.send(this.postData);};};
