/**
 * AJAX
 * AJAX类
 * 
 * 作者：李永强
 * 创建时间：2007-12-18
 * 
 * 构造函数参数：
 * 		无
 * 
 * 使用方法：
 * 		是HTML元素调用AJAX的 go() 方法
 * 		
 * 依赖；
 * 		无
 * 
 */

function AJAX ()
{
	this.ajax;
	this.method;
	this.url;
	this.post_vars;
	
	(function (ob)
	{
		try
		{
			if (document.all)
				ob.ajax = new ActiveXObject('Msxml2.XMLHTTP.3.0');
			else
				ob.ajax = new XMLHttpRequest();
		}
		catch (e)
		{
			ob.ajax = null;			
			//alert('不支持AJAX的浏览器！');
			return false;
		}
		
		ob.method = 'post';
	}
	)(this);
}

/**
 * 发送AJAX请求
 *
 * 参数：
 *		method : 发送方式 'post' / 'get'
 *		url    : 请求的页面地址
 *		vars   : URL参数，必须为 'v1=123&v2=abc&v3=steven' 这样的形式
 * 
 */
AJAX.prototype.go = function (method, url, vars)
{
	method = method || this.method || null;
	url    = url || this.url || null;
	vars   = vars || this.post_vars || null;
	
	this.ajax.open(method, url, true);
	var ob = this;
	this.ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	this.ajax.onreadystatechange = function ()
	{		
		switch (ob.ajax.readyState)
		{
			case 1:
				ob.start_callback();
				break;
				
			case 2:
			case 3:
				ob.midd_callback();
				break;
				
			case 4:
				ob.end_callback();
				break;
		}
	}
	
	this.ajax.send(vars);
}

	//AJAX请求启动的时候调用的函数，用自定义函数覆盖掉此方法
AJAX.prototype.start_callback = function ()
{
	
}

	//AJAX请求发送中的时候调用的函数，用自定义函数覆盖掉此方法
AJAX.prototype.midd_callback = function ()
{
	
}

	//AJAX请求返回的时候调用的函数，用自定义函数覆盖掉此方法
AJAX.prototype.end_callback = function ()
{
	if (this.ajax.status == 200)
		alert(this.ajax.responseText);
	else
		alert('false');
}
