﻿var Request = new Object();
Request.reqList = [];

function getAjax(){
    var ajax=false; 
    try{ 
         ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e){ 
      try { 
            ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
     catch (E){ 
           ajax = false; 
      } 
    }
    if (!ajax && typeof XMLHttpRequest!='undefined'){ 
       ajax = new XMLHttpRequest(); 
   } 
    return ajax;
}
Request.send = function(url, method, callback, data, urlencoded, callback2)
 { 
    var req=getAjax();
    req.onreadystatechange = function()
    {
     if (req.readyState == 4) {
		if (req.status < 400)
		{
		 if(callback)
			callback(req,data);
		} 
		else
		{
			alert("当加载数据时发生错误 :\n" + req.status+ "/" + req.statusText);
			if (callback2)
			   callback2(req,data);
		}
		try {
			 delete req;
			 req = null;
		 } catch (e) {}
	 }
    }
    if (method=="POST")
     {
	    req.open("POST", url, true);
	    if (urlencoded)
	     {
	        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         }
	    req.send(data);
	    Request.reqList.push(req);
    }
	else
	{
		req.open("GET", url, true);
		req.send(null);
		Request.reqList.push(req);
	}
	return req;
}
Request.clearReqList = function(){
	var ln = Request.reqList.length;
	var req;
	for (var i=0; i<ln; i++){
		req = Request.reqList[i];
		if (req){
		try {
			delete req;
		   } catch(e) {}
		}
	}
	Request.reqList = [];
}
Request.sendPOST = function(url, data, callback, clear, callback2){
	if (clear){
		Request.clearReqList();
	}
	Request.send(url, "POST", callback, data, true, callback2);
}
Request.sendGET = function(url, callback, args, clear, callback2){
	if (clear){
		Request.clearReqList();
	}
	return Request.send(url, "GET", callback, args, false, callback2);
}

