var Request = (function(){
	function constructor(dataSource, data, process){
		this.dataSource = dataSource;
		this.data = data;
		this.process = process;
		this.XMLrequest;
		$this = this;
		this.connect();
	}
	
	function recieveXML(){
		if(XMLrequest.readyState == 4){
			($this.process)(eval(XMLrequest.responseText));
		}
	}
	
	constructor.prototype.createRequest = function(){
		return window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
	};
	
	constructor.prototype.connect = function(){
		XMLrequest = this.createRequest();
		XMLrequest.onreadystatechange = recieveXML;
		XMLrequest.open("POST", this.dataSource, true);
		XMLrequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLrequest.send(this.data);
	};
	
	return constructor;
}
)();