function HttpClient() { }
HttpClient.prototype = {
	//beállítások
	requestType:'POST',
	isAsync:false,
	xmlhttp:false,
	callback:false,
    
	//request híváskor ez kerül meghívásra(betöltési effektus)
	onSend:function() {
		document.getElementById('HttpClientStatus').style.display = 'block';
	},
	
	//az onload a readystate változó 4-es értéke esetén hívódik meg, a visszahívás előtt
	
	onLoad:function() {
		document.getElementById('HttpClientStatus').style.display = 'none';
	},
	
	//hiba esetén
	
	onError:function(error) {
		alert(error.message);
	},
	
	//xmlhttpclient-et beállító metódus
	
	init:function() {
		try {
			//mozilla,safari
			this.xmlhttp = new XMLHttpRequest();
		} catch (e) {
			//IE
			var XMLHTTP_IDS = new Array(
									 	'MSXML2.XMLHTTP.5.0',
										'MSXML2.XMLHTTP.4.0',
										'MSXML2.XMLHTTP.3.0',
										'MSXML2.XMLHTTP',
										'Microsoft.XMLHTTP' );
			var success = false;
			for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
				try {
					this.xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
					success = true;
				} catch (e) {}
			}
			if (!success) {
				throw new Error('Unable to create XMLHttpRequest.');
			}
		}
	},
	
	//metódus lapkérés létrehozására
	//url: ide irányul a kérés
	//payload: ez kerül lekérésre POST esetén
	
	makeRequest: function(url,payload,contentType) {
		if(!this.xmlhttp) {
			this.init();
		}
		this.xmlhttp.open(this.requestType,url,this.isAsync);
		if (contentType) {
			this.xmlhttp.setRequestHeader('Content-Type',contentType);
		}
		//onReadyStateChange beállítása
		var self = this;
		this.xmlhttp.onreadystatechange = function() { self._readyStateChangeCallback(); }
		
		this.xmlhttp.send(payload);
		
		if (!this.isAsync) {
			return this.xmlhttp.responseText;	
		}
	},
	
	//belső metódus a készenléti állapot megváltozásának kezelésére
	_readyStateChangeCallback:function() {
		switch(this.xmlhttp.readyState) {
			case 2:
			this.onSend();
			break;
			case 4:
			this.onLoad();
			if (this.xmlhttp.status == 200) {
				this.callback(this.xmlhttp.responseText);
			} 
			else {
				this.onError(new Error('HTTP Error Making Request: ['+this.xmlhttp.status+'] '+this.xmlhttp.statusText)); 
			}
			break;
		}
	}
}

	
			
			
			
			
			
			
			
			
			