function XmlHttpObject(w,A,b,C){var S=null;var g=null;var V=null;var a=null;var T=false;var b=null;var C=null;var p=[];var R="TEXT";this.setRequestMethod=function(v){b=v;};this.setRequestURL=function(v){C=v;};this.setResponseType=function(v){R=v;};this.setRequestFinished=function(v){T=v;};this.setRequestMethod(b);this.setRequestURL(C);this.getRequestObject=function(){return S;};this.getCompleteHandler=function(){return V;};this.getErrorHandler=function(){return a;};this.isRequestFinished=function(){return T;};this.getRequestMethod=function(){return b;};this.getRequestURL=function(){return C;};this.getParamList=function(){return p;};this.getResponseType=function(){return R;};if(navigator.userAgent.indexOf("MSIE")!=-1){var h="Msxml2.XMLHTTP";if(navigator.appVersion.indexOf("MSIE 5.5")>=0){h="Microsoft.XMLHTTP";}try{S=new ActiveXObject(h);}catch(t){return false;}}else{if(window.XMLHttpRequest){S=new XMLHttpRequest();}}if(S!=null){if(window.coreHandler==null){window.alert("O handler padrão de requisições não foi encontrado. Por favor, inclua o arquivo core.js.");return false;}if(navigator.userAgent.indexOf("MSIE")!=-1){try{S.onreadystatechange=window.coreHandler;g=window.coreHandler;}catch(t){return false;}}else{if(window.XMLHttpRequest){S.onload=window.coreHandler;S.onerror=window.coreHandler;g=window.coreHandler;}}}if(typeof w=="function"){V=w;}if(typeof A=="function"){a=A;}this.startRequest=function(r,k,B){if(r!=null){this.setRequestMethod(r);}if(r!=null){this.setRequestURL(k);}if(r==null){throw new ConfigError(null,"O método HTTP da requisição não foi informado.");}if(k==null){throw new ConfigError(null,"O URL da requisição não foi informado.");}var x=false;if(B!=null&&B.length!=null){var q="";for(var v=0;v<B.length;v++){if(B[v] instanceof RequestParam){var m=B[v].getName();if(m=="__nocache"){x=true;continue;}q+=(q.length>0?"&":"")+B[v].toString();p[p.length]=B[v];}}B=q;if(this.getRequestMethod().toUpperCase()=="GET"&&B.length>0){this.setRequestURL(this.getRequestURL()+"?"+B);}}else{B=null;}this.getRequestObject().open(r,k);if(x){this.getRequestObject().setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");this.getRequestObject().setRequestHeader("Cache-Control","post-check=0, pre-check=0");this.getRequestObject().setRequestHeader("Pragma","no-cache");}if(this.getRequestMethod().toUpperCase()=="POST"&&B.length>0){this.getRequestObject().setRequestHeader("Content-type","application/x-www-form-urlencoded; encoding=UTF-8");}this.getRequestObject().send(this.getRequestMethod().toUpperCase()=="POST"&&B!=null&&B.length>0?B:null);};return this;}function ConfigError(S){this.message=S;this.getMessage=function(){return this.message;};}function RequestError(S,T){this.httpCode=S;this.message=T;this.getHttpCode=function(){return this.httpCode;};this.getMessage=function(){return this.message;};}function ResponseError(S){this.message=S;this.getMessage=function(){return this.message;};}function RequestParam(C,w){var S="";var T="";this.setName=function(g){S=g;};this.setValue=function(g){T=g;};this.getName=function(){return S;};this.getValue=function(){return T;};this.toString=function(){if(S!=""){return S+"="+T;}else{return "";}};this.setName(C);this.setValue(w);}function getRequestObject(w,C){if(window.XmlHttpObject==null){window.alert("Objeto AJAX não encontrado. Por favor, inclua o arquivo ajax.js.");return false;}if(window._requestObjects==null){window._requestObjects=new Array();S=0;}else{var g=false;var S=window._requestObjects.length;for(var T=0;T<S;T++){if(window._requestObjects[T].isRequestFinished()){S=T;break;}}}window._requestObjects[S]=new XmlHttpObject(w,C);return window._requestObjects[S];}function coreHandler(){if(window._requestObjects==null){return ;}var T=window._requestObjects.length;for(var S=0;S<T;S++){var R=window._requestObjects[S]!=null?window._requestObjects[S]:null;if(R==null){break;}if(R.isRequestFinished()){window._requestObjects.splice(S,1);S--;continue;}else{var C=R.getRequestObject().readyState;try{if((C!=4)&&(C!="complete")){continue;}var w=R.getRequestObject().status!=null?R.getRequestObject().status:-1;if(w==200){var b=R.getRequestObject().getResponseHeader("Content-type");var a=(b.indexOf("text/xml")!=-1||b.indexOf("application/xml")!=-1);if(a){R.setResponseType("XML");}if(a&&R.getRequestObject().responseXML==null){throw new ResponseError("O documento XML retornado pelo servidor apresentou erros.");}R.setRequestFinished(true);if(typeof R.getCompleteHandler()=="function"){R.getCompleteHandler().call(R,R,a?R.getRequestObject().responseXML:R.getRequestObject().responseText);}}else{if(w==404){var t="A URL informada não foi encontrada.";}else{if(w==500){var t="Ocorreu um erro de servidor da URL informada.";}else{var t=R.getRequestObject().statusText;}}R.setRequestFinished(true);throw new ResponseError(w,t);}}catch(g){if(typeof R.getErrorHandler()=="function"){R.errorHandler.call(R,w,g.message);}}}}}



