//例子
/*
		var Ajax = new Js_Ajax();
	    Ajax.PostUrl = 'gbook/action_show.asp?page='+page;
	    Ajax.Treat = pageContents;   //数据处理函数名 接收responseText\responseXML
		Ajax.DataType = 0;     //返回的数据类型0 responseHTML \ responseText 1
	    Ajax.Creat();  //如果异步取数据成功,将返回的数据交由CityTakeBack(此函数另外写)函数处理
*/	
function Js_Ajax()
{
	this.PostUrl; ///AJAX提交的文件地址
	this.Treat; ///参数返回后的处理过程
	this.Method="GET";///参数提交方式
	this.Async=true;///是否启用异步处理
	this.DataType=0;  ///返回数据类型responseXML--0\responseText--1   默认等于零

		
	
	this.Creat=function()                       //主调函数
	{
		this.SendRequest(this.PostUrl,null,this.Method);
	}
	
	
	
	this.SendRequest=function(url, params, HttpMethod)   //次调函数
	{
		if (!HttpMethod)
		{
   			 HttpMethod = "POST";
  		 }
		 var Obj=this.GetXmlHttpRequest();    //跟据不同浏览器返回一个正确的XMLHTTP对象
		 var s=this.processChech(Obj,this.Treat,this.DataType)          //定义一函数S
		 Obj.onreadystatechange = s                        //当状态改变执行函数S

		 if(HttpMethod=="POST")
		 {
			Obj.open(HttpMethod,url,this.Async);
			Obj.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
			Obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			Obj.send(params);
		}
		else
		{
			Obj.open(HttpMethod,url,this.Async);
			//Obj.setRequestHeader("Method", "GET " + this.targetURI + " HTTP/1.1");
			//Obj.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
			//alert(Obj)
			Obj.send(params);
		}
		delete Obj;
		delete s;
	}
	

	this.GetXmlHttpRequest=function()       //创建组件返回并对象   (功能函数)
	{
		var req;
		if (window.XMLHttpRequest)
		{
			// Mozilla, Safari,...
			req = new XMLHttpRequest();
			if (req.overrideMimeType)
			{
				req.overrideMimeType('text/xml');
			}
		}
		else if (window.ActiveXObject)
		{
			// IE
			/*try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}*/
			var msxmls = ["MSXML3", "MSXML2", "Microsoft"];
			var returnObj ;
			for (var i=0; i < msxmls.length; i++) 
			{
				try
				{
					req = new ActiveXObject(msxmls[i] + ".XMLHTTP");
					break;
				}
				catch (ex)
				{
					if (i==2)
					{
						alert("JS_CLASS:ERROR:创建" + msxmls[i] + ".XMLHTTP" + "控件失败!");
					}
				}
			}
		}

		if (!req) 
		{
			alert("JS_CLASS:ERROR:组件创建失败")
			return false;
		}
		return req;
	}



	this.processChech=function(mobject,f,dataType)       //功能函数 检测服务器状态
	{
	    var ajax_Dom = new Js_DOM();
		var htm_obj = ajax_Dom.createHtml("div");
		htm_obj.innerHTML = "<font color='#ff0000' size='2'>数据加载中……</font>"
        delete ajax_Dom;
		
		return function()
		{
			
		  if (mobject.readyState < 4)
			{
		        htm_obj.style.display = "none"
		        htm_obj.style.top = 300;
		        htm_obj.style.left = (window.screen.width - 100)/2
				htm_obj.style.display = "";
				//alert(htm_obj.innerHTML)
			}
			
		  if (mobject.readyState == 4)
			{
				htm_obj.style.display = "none";
				var state=mobject.status;
				if (state==404)
				{
					alert("JS_CLASS:ERROR:请求页面不存在");
					return false;					
				}
				else if(state<200)
				{
					alert("JS_CLASS:ERROR:客户端错误:"+state.statusText);
					return false;
				}
				else if(state==200)
				{
					if(dataType==0){
					    f(mobject.responseXML);
					}else{
					    f(mobject.responseText);
					}
					//return false;
				}
			}
		}
	}
	
	
}