//ajax封装---------
var XMLHttp = {
    _objPool: [],//注意_objPool存储的对象为{objXMLHttp:ajax对象,status:ajax的状态}，其中ajax的状态为1/0，1表示在使用中，0表示readyState==4了并且执行了回调函数
    _getInstance: function ()
     {
         for (var i = 0; i < this._objPool.length; i ++)if(this._objPool[i].status==0)
         {
             if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4)
             {
				 this._objPool[i].status=1;//设置为使用状态
				 this._objPool[i].objXMLHttp.onreadystatechange=function(){}//删除状态转换函数
				 this._objPool[i].objXMLHttp.abort();//调用abort
                 return this._objPool[i];
             }
         }
        // IE5中不支持push方法
        this._objPool[this._objPool.length] = {objXMLHttp:this._createObj(),status:1};
         return this._objPool[this._objPool.length - 1];
     },
    _createObj: function ()
     {
         if (window.XMLHttpRequest)
         {
             var objXMLHttp = new XMLHttpRequest();
         }
         else
         {
             var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
             for(var n = 0; n < MSXML.length; n ++)
             {
                try
                {
                     var objXMLHttp = new ActiveXObject(MSXML[n]);
                     break;
                 }
                catch(e)
                 {
                 }
             }
          }          
        // mozilla某些版本没有readyState属性
        if (objXMLHttp.readyState == null)
         {
            objXMLHttp.readyState = 0;
            objXMLHttp.addEventListener("load", function ()
                 {
                    objXMLHttp.readyState = 4;
                     if (typeof objXMLHttp.onreadystatechange == "function")
                     {
                        objXMLHttp.onreadystatechange();
                     }
                 },  false);
         }
         return objXMLHttp;
     },
    // 发送请求(方法[post,get], 地址, 数据, 回调函数)
    sendReq: function (method, url, data, callback)
     {
         var objXMLHttp = this._getInstance();
         
		 var msl=objXMLHttp.objXMLHttp;
       
         try
         {
             // 加随机数防止缓存
             if (url.indexOf("?") > 0)
              {
                 url += "&randnum=" + Math.random();
              }
              else
              {
                 url += "?randnum=" + Math.random();
              }
             msl.open(method, url, true);
             // 设定请求编码方式
             msl.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
             msl.send(data);
             msl.onreadystatechange = function ()
              {
                  if (msl.readyState == 4)
                  {
					if(msl.status == 200 || msl.status == 304)
                     	callback(msl);
                     objXMLHttp.status=0;//=============更改状态为未使用
                  }
              }
          }
         catch(e)
          {
	
             alert(e);
          }
     }
}; 