/* [Discuz!] (C)2001-2007 Comsenz Inc. This is NOT a freeware, use is subject to license terms $RCSfile: ajax.js,v $ $Revision: 1.117 $ $Date: 2007/08/09 08:49:19 $ */ var Ajaxs = new Array(); var AjaxStacks = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0); // var attackevasive = 1; function Ajax(recvType, waitId) { for(var stackId = 0; stackId < AjaxStacks.length && AjaxStacks[stackId] != 0; stackId++); AjaxStacks[stackId] = 1; var aj = new Object(); aj.loading = 'Loading...';//public aj.recvType = recvType ? recvType : 'XML';//public aj.waitId = waitId ? $(waitId) : null;//public aj.resultHandle = null;//private aj.sendString = '';//private aj.targetUrl = '';//private aj.stackId = 0; aj.stackId = stackId; aj.setLoading = function(loading) { if(typeof loading !== 'undefined' && loading !== null) aj.loading = loading; } aj.setRecvType = function(recvtype) { aj.recvType = recvtype; } aj.setWaitId = function(waitid) { aj.waitId = typeof waitid == 'object' ? waitid : $(waitid); } aj.createXMLHttpRequest = function() { var request = false; if(window.XMLHttpRequest) { request = new XMLHttpRequest(); if(request.overrideMimeType) { request.overrideMimeType('text/xml'); } } else if(window.ActiveXObject) { var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP']; for(var i=0; i ' + aj.loading + ''; } } aj.processHandle = function() { if(aj.XMLHttpRequest.readyState == 4 && aj.XMLHttpRequest.status == 200) { for(k in Ajaxs) { if(Ajaxs[k] == aj.targetUrl) { Ajaxs[k] = null; } } if(aj.waitId) changedisplay(aj.waitId, 'none'); if(aj.recvType == 'HTML') { aj.resultHandle(aj.XMLHttpRequest.responseText, aj); } else if(aj.recvType == 'XML') { aj.resultHandle(aj.XMLHttpRequest.responseXML.lastChild.firstChild.nodeValue, aj); } AjaxStacks[aj.stackId] = 0; } } aj.get = function(targetUrl, resultHandle) { setTimeout(function(){aj.showLoading()}, 500); if(in_array(targetUrl, Ajaxs)) { return false; } else { Ajaxs.push(targetUrl); } aj.targetUrl = targetUrl; aj.XMLHttpRequest.onreadystatechange = aj.processHandle; aj.resultHandle = resultHandle; var delay = attackevasive & 1 ? (aj.stackId + 1) * 1001 : 100; if(window.XMLHttpRequest) { setTimeout(function(){ aj.XMLHttpRequest.open('GET', aj.targetUrl); aj.XMLHttpRequest.send(null);}, delay); } else { setTimeout(function(){ aj.XMLHttpRequest.open("GET", targetUrl, true); aj.XMLHttpRequest.send();}, delay); } } aj.post = function(targetUrl, sendString, resultHandle) { setTimeout(function(){aj.showLoading()}, 500); if(in_array(targetUrl, Ajaxs)) { return false; } else { Ajaxs.push(targetUrl); } aj.targetUrl = targetUrl; aj.sendString = sendString; aj.XMLHttpRequest.onreadystatechange = aj.processHandle; aj.resultHandle = resultHandle; aj.XMLHttpRequest.open('POST', targetUrl); aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); aj.XMLHttpRequest.send(aj.sendString); } return aj; } function newfunction(func){ var args = new Array(); for(var i=1; i]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/ig; var arr = new Array(); while(arr = p.exec(s)) appendscript(arr[1], '', arr[2], arr[3]); p = /