﻿//功能：Ajax method封装
//创建人：邓翠文
//创建时间：2009年2月23日

//变量
var request = new Object();
request.reqList = [];

//创建XMLHTTP
function getAjax()
{
  var ajax = false;
  try
  {
    ajax = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e)
  {
    try
    {
      ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e)
    {
      ajax = new XMLHttpRequest();
    }
  }
  return ajax;
}

//方法整合
request.send = function(url,method,callback,data,urlencoded,callback2,tar,buttonName)
{
  var req = getAjax();
  req.onreadystatechange = function()
  {
    if(req.readyState == 4)
    {
      if(req.status < 400)
      {
        if(callback)
        {
          callback(req,data);
        }
      }
      else
      {
        if(callback2)
        {
          callback2(req,data);
        }
      }
      //按钮变灰
      if($(buttonName))
        $(buttonName).disabled = false;
      //隐藏提示信息
      afterloading(tar);
      try
      {
        delete req;
        req = null;
      }
      catch(e) {}
    }
  }
  if(method == "POST") //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 //get
  {
    req.open("GET",url,true);
    req.send(null);
    request.reqList.push(req);
  }
  //加载提示信息
  loading(tar);
  //按钮取消变灰
  if($(buttonName))
    $(buttonName).disabled = true;
  return req;
}

//清空XMLHTTP数组元素
request.clearReqList = function()
{
  var ln = request.reqList.length;
  for(var i = 0;i < ln; i++)
  {
    var req = request.reqList[i];
    if(req)
    {
      try
      {
        delete req;
      }
      catch(e){}
    }
  }
  request.reqList = [];
}

//进一步封装XMLHTTP
request.sendPOST = function(url,data,callback,clear,callback2,tar,buttonName) //post
{
  if(clear)
    request.clearReqList();
  request.send(url,"POST",callback,data,true,callback2,tar,buttonName);
}
request.sendGET = function(url,callback,args,clear,callback2,tar,buttonName) //get
{
  if(clear)
    request.clearReqList();
  request.send(url,"GET",callback,args,true,callback2,tar,buttonName);
}

//加载控件
function loading(obj)
{
  if($(obj))
    $(obj).style.display = '';
}

//加载消失
function afterloading(obj)
{
  if($(obj))
    $(obj).style.display = 'none';
}
