var ajaxWorking = false;
var ajaxPool = new Array();
function addToAjaxPool(server, div, query, args) {
	var ajaxQuery = new Array();
	ajaxQuery["div"] = div;
	ajaxQuery["query"] = query;
	ajaxQuery["args"] = args;
	ajaxQuery["server"] = server;
	ajaxPool.push(ajaxQuery);
	nextAjaxQuery();
};
function nextAjaxQuery() {
	if (ajaxPool.length < 1) return;
	if (!ajaxWorking) {
		var ajaxQuery = ajaxPool.shift();
		sendAjaxData(ajaxQuery["server"], ajaxQuery["div"], ajaxQuery["query"], ajaxQuery["args"]);
	} else return;
};
function sendAjaxData(server, div, query, args) {
	if (!ajaxWorking) {
		if (!this.http) {
			if (window.XMLHttpRequest) this.http = new XMLHttpRequest();
			else if (window.ActiveXObject) this.http = new ActiveXObject("Microsoft.XMLHTTP");
			if (!this.http) this.http = new ActiveXObject("Msxml2.XMLHTTP");
		};
		if (!this.http) {
			alert("Ваш браузер не поддерживает современные методы передачи данных.");
			return;
		};
		var http = this.http;
		this.http.open("POST", server, true);
		var post = "";
		post += encodeURIComponent("query") + "=" + encodeURIComponent(query);
		post += "&" + encodeURIComponent("href") + "=" + encodeURIComponent(document.location.href);
		for (var i in args) { 
			post += "&" + encodeURIComponent(i) + "=" + encodeURIComponent(args[i]);
		}
		this.http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		this.http.send(post);
		ajaxWorking = true;
		this.http.onreadystatechange = function() {
			if (http.readyState == 4) {
				fillAjaxData(div, http.responseText);
			}
		};
	} else return false; 
};
function fillAjaxData (div, data){
	ajaxWorking = false;
	nextAjaxQuery();
	if (data == "done; empty result") {
		return;
	};
	var selected = document.getElementById(div);
	var inner = document.createElement("div");
	inner.innerHTML = data;
	while (selected.childNodes.length > 0) selected.removeChild(selected.lastChild);
	selected.appendChild(inner, selected.lastChild);
	//selected.innerHTML = data;
};
