// (c) Andrii Vasyliev
// Minimal AJAX possible

if (typeof(sol)=="undefined") var sol = new Object();
sol.ajax = {
	request: null,

	init: function () {
		if (this.request==null) {
			try {
				this.request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					this.request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) {
					this.request = null;
				};
			};
			if (!this.request && typeof XMLHttpRequest!="undefined")
				this.request = new XMLHttpRequest();
		};
		return this.request;
	},

	get: function (url,handler,args) {
		var uri = url;
		if (typeof(args) == 'object') {
			if (uri.indexOf('?') == -1) uri += '?';
			else uri += '&';
			for (k in args) {
				uri += k+"="+encodeURIComponent(args[k])+'&';
			};
		};
		var request = this.init();
		var async = (typeof handler == "function");
		try {
			request.open('GET',uri,async);
		} catch (e) {
			alert(e);
			return false;
		};
		if (async) {
			request.onreadystatechange = function() {
				if (request.readyState != 4) return false;
				handler(request.responseText);
			};
		};
		request.send(null);
		var response = async ? false : request.responseText;
		delete(request);
		return response;
	}
};

