var XmlHttpPool = { m_MaxPoolLength : 10, m_XmlHttpPool : [], __requestObject : function() { var xmlhttp = null; var pool = this.m_XmlHttpPool; for (var i = 0; i < pool.length; ++i) { if (pool[i].readyState == 4 || pool[i].readyState == 0) { xmlhttp = pool[i]; break; } } if (xmlhttp == null) { return this.__extendPool(); } return xmlhttp; }, __extendPool : function() { if (this.m_XmlHttpPool.length < this.m_MaxPoolLength) { var xmlhttp = null; try { xmlhttp = new ActiveXObject('MSXML2.XMLHTTP'); } catch(e) { try { xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e2) { } } if (xmlhttp) { this.m_XmlHttpPool.push(xmlhttp); } return xmlhttp; } }, GetRemoteData : function(url, callback) { this.__receiveRemoteData(url, callback, 'GET', null); }, GetRemoteDataXML : function(url, callback) { this.__receiveRemoteDataXML(url, callback, 'GET', null); }, GetRemoteDataEx : function(url) { return this.__receiveRemoteDataEx(url, 'GET', null); }, GetRemoteDataExXML : function(url, callback) { this.__receiveRemoteDataExXML(url, 'GET', null); }, PostRemoteData : function(url, callback, data) { this.__receiveRemoteData(url, callback, 'POST', data); }, PostRemoteDataXML : function(url, callback, data) { this.__receiveRemoteDataXML(url, callback, 'POST', data); }, PostRemoteDataEx : function(url, data) { return this.__receiveRemoteDataEx(url, 'POST', data); }, PostRemoteDataExXML : function(url, data) { return this.__receiveRemoteDataExXML(url, 'POST', data); }, __receiveRemoteData : function(url, callback, httpmethod, data) { var xmlhttp = this.__requestObject(); if (!xmlhttp) { return null; } xmlhttp.open(httpmethod, url, true); if (httpmethod == 'POST') { xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') { callback(xmlhttp.responseText); } }; xmlhttp.send(data); }, __receiveRemoteDataEx : function(url, httpmethod, data) { var xmlhttp = this.__requestObject(); if (!xmlhttp) { return null; } xmlhttp.open(httpmethod, url, false); if (httpmethod == 'POST') { xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") } xmlhttp.send(data); if (xmlhttp.status == 200) { return xmlhttp.responseText; } return ''; }, __receiveRemoteDataXML : function(url, callback, httpmethod, data) { var xmlhttp = this.__requestObject(); if (!xmlhttp) { return null; } xmlhttp.open(httpmethod, url, true); if (httpmethod == 'POST') { xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') { callback(xmlhttp.responseXML); } }; xmlhttp.send(data); }, __receiveRemoteDataExXML : function(url, httpmethod, data) { var xmlhttp = this.__requestObject(); if (!xmlhttp) { return null; } xmlhttp.open(httpmethod, url, false); if (httpmethod == 'POST') { xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") } xmlhttp.send(data); if (xmlhttp.status == 200) { return xmlhttp.responseXML; } return ''; }, CancelAll : function() { var extendPool = this.__extendPool; this.__extendPool = function() { return null; } for (var i = 0; i < this.m_XmlHttpPool.length; ++i) { this.m_XmlHttpPool[i].abort(); } this.__extendPool = extendPool; }};