// AJAX CODE (help: http://ajaxpatterns.org/XMLHttpRequest_Call)
// - - -
function getHTTPObject() {
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	try { return new XMLHttpRequest(); } catch(e) {}
	//alert("XMLHttpRequest not supported");
	return null;
 }

// create the HTTP object
var http = getHTTPObject(); 

// keep multiple requests from occuring at once
var isLocked = false;

function updateAcctCatList(sourceobj,targetdivid){
	if (!isLocked && http) {
		// put selected value into local var
		parentid = sourceobj.options[sourceobj.selectedIndex].value;
		// setup reference to target object for ease of coding
		//formobj = document.accounttemplate[targetobj];	
		// - - -
		// open connection
		http.open("post", "ajax_getcategories.php", true);
		// set header request to handle name-value pairs
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		// send name-value pairs
		http.send("parentid="+parentid+"&targetdivid="+targetdivid);
		// handle state change
		http.onreadystatechange = function(){
			// state of 4 = URL has loaded
			if (http.readyState == 4) {
				document.getElementById("category"+targetdivid+"div").innerHTML = http.responseText; 
				//document.accounttemplate[targetobj].options[2].selected = true;
				/*
				// first need to clear the list [we need to remove the end back, because every time we delete an item our list length changes]
				for (i=formobj.options.length-1;i>0;i--){
					//alert("delete: "+formobj.options[i].text);
					formobj.options.remove(i);
					// NOTE:  navigator code is totally different:  formobj.options[i] = null;
				}
				xml = http.responseXML;
				
				var newElem = document.createElement("option");
				newElem.text = xml.getElementsByTagName("cat")[4].firstChild.nodeValue;
				newElem.value="600";
				formobj.options.add(newElem);
				*/
				unlockDB();
			}
		}
		lockDB();		
	}
}


// UTIL FUNCTIONS
// - - -
function lockDB(){
	isLocked = true;
	//document.getElementById("dblock").innerHTML = "accessing database...";
}

function unlockDB(){
	isLocked = false;
	//document.getElementById("dblock").innerHTML = "";
}