if(!HTTP) throw('AjaxRequest mukodesehez hianyzik: HTTP');

var AjaxRequest = function(){
	this.divState		= 'ajaxState';
	this.isUpdating 	= false;
	this.request		= (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	this.onReadyHandler	= null;
	this.onReady		= function(){
		if(this.checkReadyState(this.divState)){
			if(typeof(this.onReadyHandler)=='function') this.onReadyHandler(this.getResponse());
			else throw('onReadyHandler null erteku!');
		}
	}
	this.send			= function(url){
		this.isUpdating	= true;
		this.request.coverObject=this;
		this.request.onreadystatechange = function(){ this.coverObject.onReady();};
		this.request.open('GET', url, true);
		this.request.send(url);
	}
	this.sendPOST		= function(url,params){
		this.isUpdating	= true;
		this.request.coverObject=this;
		this.request.onreadystatechange = function(){ this.coverObject.onReady();};
		this.request.open('POST', url, true);
		this.request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.request.setRequestHeader("Content-length", params.length);
		this.request.setRequestHeader("Connection", "close");
		this.request.send(params);
	}
	this.checkReadyState= function(_id){
		var divState=(document.getElementById(_id))?document.getElementById(_id):null;
		switch(this.request.readyState)
		{
			case 1:
			case 2:
			case 3:
				if(divState) divState.innerHTML = 'Betöltés ...';
				break;
			case 4:
				this.isUpdating = false;
				if(divState) divState.innerHTML = '';
				var status=HTTP.status(this.request.status);
				return (status=='OK')?true:status;
			default:
				if(divState) divState.innerHTML = "Váratlan hiba következett be.";
		}
		return false;
	}
	this.getResponse = function(){
		if(this.request.getResponseHeader('Content-Type').indexOf('xml') != -1)
			return this.request.responseXML.documentElement;
		else return this.request.responseText;
	}
}
