//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;
	}
}