	var ajaxRequestQueue = [];

	function ajaxRequest(url, element) { 
		var curRequest = new ajaxRequestQueueObject(url, element);
		if (curRequest.XmlHttp == null)
			return;
		curRequest.XmlHttp.open('GET', curRequest.url, true);
		curRequest.XmlHttp.onreadystatechange = ajaxRequestQueueStateChanged;
		ajaxRequestQueue.push(curRequest);
		curRequest.XmlHttp.send(null);
	}

	function ajaxRequestQueueObject(url, element) {
		this.XmlHttp = getXmlHttpObject();
		this.url = url;
		this.element = element;
	}

	function ajaxRequestQueueStateChanged() {
		var maxAttempts = (ajaxRequestQueue.length * 2) + 1;
		while (maxAttempts > 0 && ajaxRequestQueue.length > 0) {
			maxAttempts--;
			var curRequest = ajaxRequestQueue.shift();
			if (curRequest.XmlHttp.readyState == 4) {
				if (curRequest.element.length > 0) {
					if (curRequest.XmlHttp.responseText.length > 0) {
						document.getElementById(curRequest.element).innerHTML = curRequest.XmlHttp.responseText;
						document.getElementById(curRequest.element).style.display = '';
					} else {
						document.getElementById(curRequest.element).style.display = 'none';
					}
				}
				maxAttempts = (ajaxRequestQueue.length * 2) + 1;
			} else {
				ajaxRequestQueue.push(curRequest);
			}
		}
	}

	function getXmlHttpObject() {
		var xmlHttp = null;
		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp = new XMLHttpRequest();
		}
		catch(e) {
			// Internet Explorer
			try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
			catch(e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
		}
		return xmlHttp;
	}