var ajaxFunc = false;

var ajax = new function() {


	this.ajaxEngine = function(u, p, method, f) {
		if(f) ajaxFunc = f;
		else ajaxFunc = false;

		if(window.XMLHttpRequest) {
			ajaxRequest = new XMLHttpRequest();
			if(ajaxRequest.overrideMimeType) ajaxRequest.overrideMimeType('text/html');
		} else if(window.ActiveXObject) {
			try {
				ajaxRequest = new ActiveXObject('Msxml2.XMLHTTP');
			} catch(e) {
				try {
					ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
				} catch(e) {}
			}
		}

		with(ajaxRequest) {
			onreadystatechange = ajax.ajaxState;
			if(method == 'POST') {
				open('POST', u, true);
				setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
				setRequestHeader('Content-length', p.length);
				setRequestHeader('Connection', 'close');
				setRequestHeader('Expires', 'Sun, 11 Dec 1977 17:48:00 GMT');
				setRequestHeader('Pragma', 'no-cache');   

				send(p);
			} else {
				open('GET', u+(p? '?'+p: ''), true);
				setRequestHeader('Connection', 'close');
				setRequestHeader('Expires', 'Sun, 11 Dec 1977 17:48:00 GMT');
				setRequestHeader('Pragma', 'no-cache');   
				setRequestHeader('Content-type', 'text/plain;charset=iso-8859-2');

				send(null);
			}
		}
	}

	this.ajaxState = function() {
		if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
			if(ajaxFunc) eval(ajaxFunc+'(\''+ajaxRequest.responseText+'\');');
			else eval(ajaxRequest.responseText);
		}
	}

	this.params = function(o) {
		o = document.getElementById(o, true);
		if(!o) return false;
		t = new Array('select', 'button', 'input', 'textarea');
		var r = '';
		for(i = 0; i < t.length; i++) {
			if(o.type == 'text') r += encodeURIComponent(o.id) + '=' + encodeURIComponent(o.value) + '&'; 
			var el = o.getElementsByTagName(t[i]);
			for(j in el) if(el[j].id) if(el[j].type != 'checkbox' || el[j].checked) r += encodeURIComponent(el[j].id) + '=' + encodeURIComponent(el[j].value) + '&'; 
		}
		return r ? r : false;
	}

	this.g = this.get = function(u, p, f) {
		ajax.ajaxEngine(u, p, 'GET', f);
	}

	this.p = this.post = function(u, p, f) {
		ajax.ajaxEngine(u, p, 'POST', f);
	}
}
