/**
 * 
 * ajax 操作类
 * 陈振铭
 * 2007-10-28
 *
 */
/**
 * 执行requet获取服务器数据
 * @param {Object} url
 * @param {Object} method
 * @param {Object} xmlBoolean
 * @param {Object} sendValue
 * @param {Object} onSuccess
 */
var httpReqs=[];
var timeOut=15;
handRequest=function (url,method,xmlFlag,sendValue,methoName,errorMethod,async)
{
	var req=new Object();
	var httpRequest=getPoolRequest();
	httpRequest.onreadystatechange =doResponse;
	var asy;
	if(async=="undefined" || async==null)
	   asy=true;
	else
	   asy=async;
	httpRequest.open(method,url,asy);
    if(method.toLowerCase()=="post")
	{
		httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	}
	httpRequest.send(sendValue);
	function doResponse() 
    { 
     if (httpRequest.readyState == 4) 
	 { 
           if (httpRequest.status == 200) 
		   { 
		      if(xmlFlag==true)
			  {
			     methoName(httpRequest.responseXML);
			  }
			   else if (methoName==null)
			   {
				  alert(httpRequest.responseText);
			   }
			   else
			   {
			   	   methoName(httpRequest.responseText); 
			   	   return httpRequest.responseText;
			   }
			     
           }
		 else 
		 { 
			if(errorMethod)
			   errorMethod("error num:"+httpRequest.status);
			//alert(httpRequest.responseText);
			return ;
			
         }
      }
   }
}
getPoolRequest=function()
{
   //alert(httpReqs.length);
   for(var i=0;i<httpReqs.length;i++)
   {
	    if(httpReqs[i].readyState == 0 || httpReqs[i].readyState == 4)
		{
		   httpReqs[i].abort();
		   return httpReqs[i];
		}
	}
	httpReqs[httpReqs.length]=createHttpRequest();
	return httpReqs[httpReqs.length-1];
}
createHttpRequest=function () 
{
    var array =["Microsoft.XMLHTTP",
                 "Msxml2.XMLHTTP.6.0",
				"Msxml2.XMLHTTP.5.0",
				"Msxml2.XMLHTTP.4.0",
				"MSXML2.XMLHTTP.3.0",
				"MSXML2.XMLHTTP",
				"Microsoft.XMLHTTP"]
    if(window.XMLHttpRequest) 
	{ //Mozilla explore
        XMLHttpReq = new XMLHttpRequest();
     }
      else 
	  {
		   for(var i=0;i<array.length;i++)
		   {
		      try
			  {
			     XMLHttpReq = new ActiveXObject(array[i]);
				 if(XMLHttpReq!=null)
				    return XMLHttpReq;
			  }
			  catch (e){}
		   }
       
	 }
	return XMLHttpReq;
 }
  /**
 * 根据form　id获取form中的值
 * @param {Object} frmId
 */
getFieldValue= function(frmId)
{
	var nameValue="";
    var frmObj=document.getElementById(frmId);
	var inputObj=frmObj.getElementsByTagName("input");
	var selectObj=frmObj.getElementsByTagName("select");
	var textareaObj=frmObj.getElementsByTagName("textarea");
	for(var i=0;i<inputObj.length;i++)
	{
	   if(inputObj[i].type=="radio"  || inputObj[i].type=="checkbox")
	   {
		   if(inputObj[i].checked==true)
		   {
			   nameValue+=inputObj[i].name+"="+escape(inputObj[i].value)+"&";
		   }   
		}
		else if(inputObj[i].type=="text" && inputObj[i].ttype=="select")
		{
		   nameValue+=inputObj[i].name+"="+escape(inputObj[i].flg)+"&";
		   if(inputObj[i].reg!=null && inputObj[i].reg!="undefined")
		   {
		      var ex=new RegExp(inputObj[i].reg)
		      if(!ex.test(inputObj[i].flg))
			  {
			     alert(inputObj[i].regv);
				 inputObj[i].focus();
				 return false;
			  }
		   }
		   
		}
		   
		else if(inputObj[i].type!="reset" && inputObj[i].type!="button" && inputObj[i].type!="submit")
		{
		    nameValue+=inputObj[i].name+"="+escape(inputObj[i].value)+"&";
			var ex=new RegExp(inputObj[i].reg);
		    if(inputObj[i].reg!=null && inputObj[i].reg!="undefined")
		    {
		      if(!ex.test(inputObj[i].value))
			  {
			     alert(inputObj[i].regv);
				 inputObj[i].focus();
				 return false;
			  }
		   }
		}
		  
	}
	for(var i=0;i<selectObj.length;i++)
	{
		for (var j=0; j<selectObj[i].options.length; j++) 
		{
			if (selectObj[i].options[j].selected)
			{
				nameValue+=selectObj[i].name+"="+escape(selectObj[i].options[j].value)+"&";
			}
		}
	}
	for(var i=0;i<textareaObj.length;i++)
	{
		nameValue+=textareaObj[i].name+"="+escape(textareaObj[i].value)+"&";
		 if(textareaObj[i].reg!=null && textareaObj[i].reg!="undefined")
		   {
		      var ex=new RegExp(textareaObj[i].reg)
		      if(!ex.test(textareaObj[i].value))
			  {
			     alert(textareaObj[i].regv);
				 textareaObj[i].focus();
				 return false;
			  }
		   }
	}
	nameValue=nameValue.substring(0,nameValue.length-1);
    return nameValue;     
}
function $(id)
{
   return document.getElementById(id);
}

