/*
类名：AJAXRequest

创建方法：var ajaxobj=new AJAXRequest();，如果创建失败则返回false

属性：method  -  请求方法，字符串，POST或者GET，默认为GET
　　　url     -  请求URL，字符串，默认为空
　　　async   -  是否异步，true为异步，false为同步，默认为true
　　　content -		请求的内容，如果请求方法为POST需要设定此属性，默认为空
　　　callback  -	回调函数，即返回响应内容时调用的函数，默认为直接返回，
					回调函数有一个参数为XMLHttpRequest对象，即定义回调函数时要这样：
					function mycallback(xmlobj)

方法：send()     -  发送请求，无参数


一个例子：
<script type="text/javascript" src="ajaxrequest.js"></script>
<script type="text/javascript">
// 创建AJAX对象
var ajaxobj=new AJAXRequest();    
// 设置回调函数，输出响应内容
ajaxobj.callback=function(xmlobj) {
     document.write(xmlobj.responseText);
}
// 发送请求,URL为default.asp
ajaxobj.send("default.asp");    
</script>
*/

function AJAXRequest() {
	//初始化类,创建XMLHttpRequest对象
	var xmlObj = false;
	if(window.XMLHttpRequest) //Mozilla 浏览器
	{
		xmlObj = new XMLHttpRequest();
		if (xmlObj.overrideMimeType) {//设置MiME类别
			xmlObj.overrideMimeType("text/xml");
		}
	} else if (window.ActiveXObject) { // IE浏览器
		try { 
			xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); 
		} catch(e1) {
			try { 
				xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch(e2) { 
				xmlObj=false;
			}
		}
	}
	if (!xmlObj) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest对象实例.");
		return false;
	}

	/*
		类属性
	*/
	this.method="GET";  //请求方法，字符串，POST或者GET，默认为GET
	this.url="";		//请求URL，字符串，默认为空
	this.async=true;	//是否异步，true为异步，false为同步，默认为true
	this.content="";	//请求的内容，如果请求方法为POST需要设定此属性，默认为空
	this.callback=function(cbobj) {return;} //回调函数

	/*
		类方法：send(url)     
		   发送请求，参数url为请求URL，字符串,如为null则用this.url
	*/
	var ObjSelf = this;
	this.send=function(url) {
		if(url != null) {
			this.url = url;
		}
		// 确定发送请求的方式和URL以及是否同步执行下段代码
		xmlObj.open(this.method, this.url, this.async);
		xmlObj.onreadystatechange=function() {
			// 判断对象状态
			if(xmlObj.readyState==4) {
				// 信息已经成功返回，开始处理信息
				if(xmlObj.status==200|| xmlObj.status == 304) {	
					ObjSelf.callback(xmlObj);
				} else { //页面不正常
					alert("您所请求的页面有异常。\n"+xmlObj.status+"---"+xmlObj.statusText);
					alert(xmlObj.responseText);
				}
			}
		}

		if(this.method=="POST") {
			//alert(this.content);
			xmlObj.setRequestHeader("Content-Length",this.content.length); 
			xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			xmlObj.send(this.content);
		} else {
			xmlObj.send(null);
		}

	}

}