var AJAXhttp_request = false;
var AJAXoutput_div = '';
var NextItem = new Array();
var Queue = new Array();
var queuing = false;

function RunQueue() {
	if (Queue.length>0) {
		queuing=true;
		Item=Queue.shift();
		proc_file=Item[0];
		AJAXoutput_div=Item[1];
		poststr=Item[2];
		AJAXmakePOSTRequest(proc_file, poststr);
	} else {
		queuing=false;
	}
}

function AJAXmakePOSTRequest(url, parameters) {
	AJAXhttp_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		AJAXhttp_request = new XMLHttpRequest();
		if (AJAXhttp_request.overrideMimeType) {
			// set type accordingly to anticipated content type
			//AJAXhttp_request.overrideMimeType('text/xml');
			AJAXhttp_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			AJAXhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				AJAXhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!AJAXhttp_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	
	AJAXhttp_request.onreadystatechange = AJAXReturnContents;
	AJAXhttp_request.open('POST', url, true);
	AJAXhttp_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	AJAXhttp_request.setRequestHeader("Content-length", parameters.length);
	AJAXhttp_request.setRequestHeader("Connection", "close");
	AJAXhttp_request.send(parameters);
}

function AJAXReturnContents() {
	if (AJAXhttp_request.readyState == 4) {
		if (AJAXhttp_request.status == 200 || AJAXhttp_request.status == 0) {
			//alert(AJAXhttp_request.responseText);
			result = AJAXhttp_request.responseText;
			if (result.indexOf("#t/o#")!=-1) {
				top.location.reload();
			} else if (AJAXoutput_div!='') {
				document.getElementById(AJAXoutput_div).innerHTML = result;
				try {
					var x = document.getElementById(AJAXoutput_div).getElementsByTagName("script");   
					for(var i=0;i<x.length;i++) {  
					    eval(x[i].text);  
					}
				} catch(e) {}
			}
		} else {
			alert('There was a problem with the request. '+AJAXhttp_request.status);
		}
		if (queuing) RunQueue();
	}
}

function AJPostForm(obj,proc_file,output_div) {
	var poststr = "";
	for (i=0; i<obj.getElementsByTagName("input").length; i++) {
		if (obj.getElementsByTagName("input")[i].type == "text" || obj.getElementsByTagName("input")[i].type == "hidden" || obj.getElementsByTagName("input")[i].type == "password") {
			poststr += obj.getElementsByTagName("input")[i].name + "=" + 
			obj.getElementsByTagName("input")[i].value + "&";
		}
		if (obj.getElementsByTagName("input")[i].type == "checkbox") {
			if (obj.getElementsByTagName("input")[i].checked) {
				poststr += obj.getElementsByTagName("input")[i].name + "=" + 
				obj.getElementsByTagName("input")[i].value + "&";
			} else {
				poststr += obj.getElementsByTagName("input")[i].name + "=&";
			}
		}
		if (obj.getElementsByTagName("input")[i].type == "radio") {
			if (obj.getElementsByTagName("input")[i].checked) {
				poststr += obj.getElementsByTagName("input")[i].name + "=" + 
				obj.getElementsByTagName("input")[i].value + "&";
			}
		}
	}
	for (i=0; i<obj.getElementsByTagName("select").length; i++) {
		var sel = obj.getElementsByTagName("select")[i];
		poststr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
	}
	for (i=0; i<obj.getElementsByTagName("textarea").length; i++) {
		poststr += obj.getElementsByTagName("textarea")[i].name + "=" + 
		obj.getElementsByTagName("textarea")[i].value + "&";
	}
	NextItem=Array(proc_file,output_div,poststr);
	Queue.push(NextItem);
	if (!queuing) {
		RunQueue();
	}
}

function AJPostData(poststr,proc_file,output_div) {
	NextItem=Array(proc_file,output_div,poststr);
	Queue.push(NextItem);
	if (!queuing) {
		RunQueue();
	}
}