//AJAX class
function AJAX(){
	//members of this class
	var objRequest;
	var page='';
	var eventHandler='';
	var __arguments='';
	
	//ajax intialize function
	this.getAJAX = function(url){
		//to avoid the cache file
		var dt=new Date();
		if(url.indexOf('?')==-1) url+='?';
		url=url+'&'+dt.getTime()
		page=url;
		//start the request
		if(window.XMLHttpRequest){
			objRequest = new XMLHttpRequest();
			objRequest.onreadystatechange = this.processReqChange;
			objRequest.open("GET", url, true);
			objRequest.send(null);
		}else{
			if(window.ActiveXObject){
				objRequest = new ActiveXObject("Microsoft.XMLHTTP");
				if(objRequest){
					objRequest.onreadystatechange = this.processReqChange;
					objRequest.open("GET", url, true);
					objRequest.send();
				}
			}
		}
	}
	
	//ajax response part
	this.processReqChange = function(){
		this.response='';
		this.page=page;
		if(objRequest.readyState == 4){
			if(eventHandler=='')
				eventHandler='_completed';
			var _function='';
			_function+='try{\n';
			_function+=eventHandler+'(';
			if(objRequest.status == 200){
				//if success
				this.response=objRequest.responseText
				_function+='this,true'
			}else{
				//if failed (or timeout)
				this.response=objRequest.responseText;
				_function+='this,false'
			}
			if(__arguments!=''){
				_function+=','+__arguments;
			}
			_function+=');'
			_function+='\n';
			_function+='}catch(e){alert("error"+e);};';
			eval(_function);
		}
	}
	
	//ajax event handler
	this.setEventHandler = function(_fnname,_arguments){
		eventHandler=_fnname;
		__arguments=_arguments;
	}
}
