var XMLTools = { "_defaultUrl" : im_path + 'controller.php?action=', "_debug" : false, "_http" : null, "mode" : 'X', "threads" : [], "http" : function() { try { this._http = new XMLHttpRequest(); } catch (e) { try { this._http = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e1) { try { this._http = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e2) { this._http = null; } } } }, "load" : function(pFile) { var data = null; if ( document.implementation.createDocument ) data = document.implementation.createDocument("", "", null); else data = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); data.async = false; data.load(pFile); return data; }, "request" : function(pId, pTarget, pMethod, pHandler, pData) { if ( typeof pHandler != 'function' ) return false; if ( this.threads[pId] ) return false; else this.threads[pId] = pHandler; var _pTarget = pId; var _this = this; this.http(); var _http = this._http; var _handler = function () { try { switch( _http.readyState ) { case 1 : break; case 2 : break; case 3 : break; case 4 : switch ( _http.status ) { case 200: var data = ( _this.mode == 'X' ) ? _http.responseXML : _http.responseText; pHandler(data, _pTarget); _this.threads[_pTarget] = false; delete _this.threads[_pTarget]; break; case 404: alert('Page Not Found!'); break; default: } break; default: } } catch(e) { if ( this._debug ) alert(e) } } try { var target = pTarget; if ( pMethod == 'POST' ) { _http.open("POST", target, true); _http.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); _http.setRequestHeader('Cache-Control', 'no-store, no-cache, must-revalidate'); _http.setRequestHeader('Cache-Control', 'post-check=0, pre-check=0'); _http.setRequestHeader('Pragma', 'no-cache'); _http.onreadystatechange = _handler; _http.send(pData); } else { _http.open("GET", target, true); _http.onreadystatechange = _handler; _http.send(null); } } catch(e) {} return true; }, "transform" : function(pXML, pXSL) { var fragment = null; if ( window.XSLTProcessor ) { var xslProc = new XSLTProcessor(); xslProc.importStylesheet(pXSL); fragment = xslProc.transformToFragment(pXML, document); // para retornar valor igual ao ie. var aux = document.createElement("div"); aux.appendChild(fragment); fragment = aux.innerHTML; } else { var xslTemplate = new ActiveXObject("Msxml2.XSLTemplate"); xslTemplate.stylesheet = pXSL; var myXslProc = xslTemplate.createProcessor(); myXslProc.input = pXML; myXslProc.transform(); fragment = myXslProc.output; } return fragment; } }