/******************************************************************************
  Crossday Discuz! Board - Ajax for Discuz!
  Copyright 2001-2006 Comsenz Inc. (http://www.comsenz.com)
*******************************************************************************/

function Ajax(statusId, recvType) 
{
	var aj = new Object();
	aj.statusId = document.getElementById(statusId);
	aj.targetUrl = '';
	aj.sendString = '';
	aj.recvType = recvType ? recvType : 'HTML';//HTML XML
	aj.resultHandle = null;

	aj.createXMLHttpRequest = function() 
	{
		var request = false;
		if(window.XMLHttpRequest) 
		{
			request = new XMLHttpRequest();
			if(request.overrideMimeType) 
			{
				request.overrideMimeType('text/xml');
			}
		} 
		else if(window.ActiveXObject) 
		{
			var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
			for(var i=0; i<versions.length; i++) 
			{
				try 
				{
					request = new ActiveXObject(versions[i]);
					if(request) 
					{
						return request;
					}
				} 
				catch(e) 
				{
					//alert(e.message);
				}
			}
		}
		return request;
	}

	aj.XMLHttpRequest = aj.createXMLHttpRequest();

	aj.processHandle = function() 
	{
		aj.statusId.style.display = '';
		if(aj.XMLHttpRequest.readyState == 1) 
		{
			aj.statusId.innerHTML = '<span class="bgc">loading...</span>';//"请等待，正在建立连接...";
		} 
		else if(aj.XMLHttpRequest.readyState == 2) 
		{
			aj.statusId.innerHTML = '<span class="bgc">loading...</span>';//"请等待，正在接受数据...";
		} 
		else if(aj.XMLHttpRequest.readyState == 3) 
		{
			aj.statusId.innerHTML = '<span class="bgc">loading...</span>';//"通信失败，请刷新重新尝试！";
		} 
		else if(aj.XMLHttpRequest.readyState == 4) 
		{
			if(aj.XMLHttpRequest.status == 200) 
			{
				aj.statusId.innerHTML = '<span class="bgc">loading...</span>';//"通信成功，数据正在处理中...";
				if(aj.recvType == 'HTML') 
				{
					aj.resultHandle(aj.XMLHttpRequest.responseText);
				} 
				else if(aj.recvType == 'XML') 
				{
					aj.resultHandle(aj.XMLHttpRequest.responseXML);
				}
				aj.statusId.style.display = 'none';
			} 
			else 
			{
				aj.statusId.innerHTML = 'failed...';
			}
		}
	}

	aj.get = function(targetUrl, resultHandle) 
	{
		aj.targetUrl = targetUrl;
		aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		if(window.XMLHttpRequest) 
		{
			aj.XMLHttpRequest.open('GET', aj.targetUrl, true);
			aj.XMLHttpRequest.send(null);
		} 
		else 
		{
		        aj.XMLHttpRequest.open("GET", targetUrl, true);
		        aj.XMLHttpRequest.send();
		}
	}

	aj.post = function(targetUrl, sendString, resultHandle) 
	{
		aj.targetUrl = targetUrl;
		aj.sendString = sendString;
		aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		aj.XMLHttpRequest.open('POST', targetUrl);
		aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		aj.XMLHttpRequest.send(aj.sendString);
	}
	return aj;
}