function XHTTPRequest_Capacities (url, handler) {
//--- Send an HTTP request

	if (window.XMLHttpRequest) {

		capacityReq = new XMLHttpRequest ();
		capacityReq.onreadystatechange = handler;
		capacityReq.open ("GET", url, true);
		capacityReq.send (null);

    } else if (window.ActiveXObject) {

		capacityReq = new ActiveXObject ("Microsoft.XMLHTTP");
		if (capacityReq) {
			capacityReq.onreadystatechange = handler;
			capacityReq.open ("GET", url, true);
			capacityReq.send ();
        } else {
    		capacityReq=new ActiveXObject("Microsoft.XMLHTTP");
    		capacityReq.onreadystatechange = handler;
			capacityReq.open ("GET", url, true);
			capacityReq.send ();
    	}

    } else {
    	//--- AJAX is not supported
    }

}

function ClearList (whichFormElement, loadingMessage) {
//--- Clears a drop-down selection list

	while (whichFormElement[0]) {
		whichFormElement[0] = null;
	}

	//--- Initiate a new list?
	if (loadingMessage) {
		whichFormElement[0] = new Option (loadingMessage, '');
	}

}

function BuildList () {
//--- Loads the most recent posts from the server

	if (capacityReq.readyState == 4) {

		switch (capacityReq.status) {
			case 200:	//--- Display response text
						var hasError = capacityReq.responseXML.getElementsByTagName ("error");
						if (hasError.length) {
							alert ('An error occured while downloading options for this form. Please click Back and try again.');
						} else {
							var types = capacityReq.responseXML.getElementsByTagName ("types")[0].getElementsByTagName ("type");
						}
						var field = capacityReq.responseXML.getElementsByTagName ("types")[0].getAttribute ('field');
						var formN = capacityReq.responseXML.getElementsByTagName ("types")[0].getAttribute ('form');
						if (types.length) {
							document.forms[formN].elements[field][0] = new Option ('-- Please select --', '', false);
							for (i = 0; i < types.length; i++) {
								id = (types[i].getElementsByTagName ('id')[0].firstChild ? types[i].getElementsByTagName ('id')[0].firstChild.nodeValue : '');
								name = (types[i].getElementsByTagName ('name')[0].firstChild ? types[i].getElementsByTagName ('name')[0].firstChild.nodeValue : '');
								document.forms[formN].elements[field][i + 1] = new Option (name, id, false, false);
							}
						}
						break;
			default:	break;
		}

	}

}

