// ajaxClass -- XMLHttp Object Pool and XMLHttp chunnel Pool
// == written by Apple <zysp322@gmail.com> ===
// == Copyright (C) 2006 Apple Blog - http://www.applelife.cn ==


var Request = new function(){
 
this.pool = new Array();

this.getXMLHttp = function (chunnel)
{
	
 if(chunnel != null)
 {
  for (var a = 0; a < this.pool.length; a++)
  {
   if(this.pool[a]["chunnel"] == chunnel)
   {
	if(this.pool[a]["obj"].readyState == 0 || this.pool[a]["obj"].readyState == 4)
    {
     return this.pool[a]["obj"];
    }
	else 
	{
      return "busy";
	}
   }
  }
  
  this.pool[this.pool.length] = new Array();
  this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
  this.pool[this.pool.length - 1]["chunnel"] = chunnel;
  return this.pool[this.pool.length - 1]["obj"];
 
 }
	
 for (var i = 0; i < this.pool.length; i++)
 {
  if (this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4)
  {
   return this.pool[i]["obj"];
  }
 }
 
 this.pool[this.pool.length] = new Array();
 this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
 this.pool[this.pool.length - 1]["chunnel"] = "";
 return this.pool[this.pool.length - 1]["obj"];

}

this.createXMLHttp = function ()
{
 
 var XMLHTTP=null;
	try {
		XMLHTTP=new ActiveXObject("Msxml2.XMLHTTP");//适用IE
	}
	catch(e) {
		try {
			XMLHTTP=new ActiveXObject("Microsoft.XMLHTTP");//适用IE
		}
		catch(oc) {
			XMLHTTP=null;
		}
	}
	if ( !XMLHTTP && typeof XMLHttpRequest != "undefined" ) { 
		XMLHTTP=new XMLHttpRequest();//适用Firefox
	} 
	return XMLHTTP;
 
  

}

 

this.reSend = function (url,data,callback,chunnel)
{
 var objXMLHttp = this.getXMLHttp(chunnel)
 
 if(typeof(objXMLHttp) != "object")
 {
   return ;
 }
 
 url += (url.indexOf("?") >= 0) ? "&nowtime=" + new Date().getTime() : "?nowtime=" + new Date().getTime();

 if(data == "")
 {
  objXMLHttp.open('GET' , url, false);
  objXMLHttp.send(null);
 }
 else 
 { 
  objXMLHttp.open('POST' , url, false);
  objXMLHttp.setRequestHeader("Content-Length",data.length); 
  objXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  objXMLHttp.setRequestHeader("charset","utf-8");
  objXMLHttp.send(data);
 }
 
 if(typeof(callback) == "function" )
 { 
  objXMLHttp.onreadystatechange = function ()
  {
   if (objXMLHttp.readyState == 4)
   {
    if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
    { 
     callback(objXMLHttp) 
    }
    else
    {
		 //alert("Error loading page\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
		
    }
   }
  }
 }

}

}

