//AjaxRequest level 1
//Ajax 初级简单框架
function $(id)
{
	return document.getElementById(id);
}
function getTransport()
{
	try
	{
		var xmlhttp = new XMLHttpRequest();	
	}
	catch(e)
	{
		try
		{
			var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');	
		}
		catch(e2)
		{
			var xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');	
		}
	}
	return xmlhttp;
}

////////////url:URL , opcitons [object]///////////////
function ajaxRequest(url,options)
{
	var request = getTransport();
	if(typeof request == 'undefined')
	{
		throw new Error('You browser does not support XMLHttpRequest');
		return;
	}
	var url = url;
	var method = (options.method || 'POST').toUpperCase();
	if(method != 'GET' && method != 'POST')
	{
		method = 'POST';   //默认POST
	}
	var parameters = options.parameters || null;
	var headers = options.headers || {};
	
	
	//回调函数,默认为空
	var onLoadingEventHandler = options.onLoading || function(){};
	var onCompleteEventHandler = options.onCamplete || function(){};
	var onSuccessEventHandler = options.onSuccess || function(){};
	var onFailureEventHandler = options.onFailure || function(){};
	if(method == 'GET' && parameters != null)
	{
		if(url.indexOf('?')>-1)
		{
			url += '&'+parameters;
		}
		else
		{
			url += '?'+parameters;
		}
		parameters = null;
	}
	//在URL后加随机数保证每次请求不一样
	var randomNumbers = getRandom();
	if(url.indexOf('?')>-1)
	{
		url += '&random='+randomNumbers;
	}else
	{
		url += '?random='+randomNumbers;	
	}

	request.open(method,url,true);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	for(var name in headers)
	{
		request.setRequestHeader(name,headers[name]);
	}
	request.onreadystatechange = function()
	{
		if(request.readyState == 1)
		{	
			onLoadingEventHandler(request);
		}
		if(request.readyState == 4)
		{
			onCompleteEventHandler(request);
			if(request.status && request.status >= 200 && request.status <300)
			{
				onSuccessEventHandler(request);
			}
			else
			{
				onFailureEventHandler(request);
			}
		}
	}
	request.send(parameters);
}

function getRandom()
{///产生随机数，保证每一次的请求是不同的
	var fnum = Math.random()*10000;
	var rand = Math.round(fnum);
	return rand;
}

/*********=======================================================================================
**********=================================AjaxRequest() Demo:===================================
**********	var options = {
**********		method:'GET',    <={GET or POST}
**********		parameters:'a=1&b=2&c=3',//不使用POST可以省略直连在URL后。
**********		headers:{
**********			Sex:'man',
**********			RequestBy:'ajaxRequest'
**********		},
**********		onLoading:function()
**********		{	
**********			document.body.innerHTML += 'Now Loading...';
**********		},
**********		onComplete:function()
**********		{	
**********			document.body.innerHTMl += 'Loading Complete';
**********		},
**********		onSuccess:function(xml)
**********		{	
**********			document.body.innerHTML += 'Request Success'+xml.responseText;
**********		},
**********		onSuccess:function()
**********		{	
**********			document.body.innerHTML += 'Request Failure';
**********		}
**********	}
**********
**********	window.onload = function()
**********	{
**********		var url = '/usr/www/xxx.php';	//url ='xxx.php?value1=abc&value2=efg';
**********		ajaxRequest(url,opsions);
**********	}
**********
**********=======================================================================================
**********===============================HK 2009 QQ:285898786===================================*/
