function Ajax() {
	var ajax=this;
	ajax.xh=null;

	ajax.setXH();

	if(!ajax.xh) { alert('No AJAX support'); return; }

	this.sendRq=function(Method,url,rstateFunc,parameters,args) {
		ajax.setXH();
		switch(Method.toUpperCase()) {
			case 'GET':
				ajax.xh.onreadystatechange=function() {
					if(ajax.xh.readyState==4 || ajax.xh.readyState=="complete") {
						if(ajax.xh.status == 200) {
							rstateFunc.call(this,ajax.xh.responseText,args);
						}
					}
				}
				ajax.xh.open(Method,url,true);
				ajax.xh.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				ajax.xh.send(null);
			break;
			case 'POST':
				ajax.xh.onreadystatechange=function() {
					if(ajax.xh.readyState==4 || ajax.xh.readyState=="complete") {
						if(ajax.xh.status == 200) {
							rstateFunc.call(this,ajax.xh.responseText,args);
						}
					}
				}
				ajax.xh.open('POST',url,true);

				ajax.xh.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				ajax.xh.setRequestHeader("Content-length", parameters.length);
				ajax.xh.setRequestHeader("Connection", "close");

				ajax.xh.send(parameters);
			break;
			default:
				window.alert('No method chosen');
			break;
		}
	}
}

Ajax.prototype.setXH=function() {
	this.xh = window.XMLHttpRequest ? new XMLHttpRequest() : null ;
	this.xh = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : this.xh;
}

var ajax=new Ajax();

