//window.onload = ajax_init();
function ajax_init() {
	
	
}


function updateGeoData(getMode,curValue,Fields,FormHandler,clearFields,PostFunction,allowEmpty) {

	if(clearFields) {
		var clearArray = clearFields.split(",");
		for(var i = 0; i < clearArray.length; i++) {
			var clearHandler = eval("FormHandler."+clearArray[i]);
		
			for(var k = clearHandler.options.length-1; k>=0; k--){
				clearHandler.options[k] = null;
			}
			
		}
	}
	var getModeArray = getMode.split(",");
	var fieldArray = Fields.split(",");
	for(var i = 0; i < fieldArray.length; i++) {
		var FieldHandler = eval("FormHandler."+fieldArray[i]);
		FieldHandler.options[0] = new Option("...loading...");
	}
	
	request = createRequest();
	var url = "/ajax.php?action=getgeo&get="+getMode+"&currentvalue="+curValue+"&allowempty="+allowEmpty;
	
	request.onreadystatechange = function() {
		if (request.readyState == 4 && request.status == 200) {
			for(var i = 0; i < fieldArray.length; i++) {
				var FieldHandler = eval("FormHandler."+fieldArray[i]);
				PullDataSelect(request.responseXML,FieldHandler,getModeArray[i],allowEmpty);	
				if(PostFunction) {
					eval(PostFunction);
				}
			}    		 	
		}//if
    }//function
	request.open("GET", url, true);
	request.send(null);
}
function getSelectValue(FieldHandler) {
	return FieldHandler.options[FieldHandler.selectedIndex].value;
}
function createRequest() {
	try {
		request = new XMLHttpRequest();
	} catch (tryMS) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (otherMS) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = null;
			}
		}
	}
	return request;
}

function PullDataSelect(XMLData,FieldHandler,ItemName,allowEmpty){

	for(var k = FieldHandler.options.length-1; k>=0; k--){
		FieldHandler.options[k] = null;
	}//for
	var orgItemName = ItemName;

	if(!allowEmpty) {
		newOption = document.createElement("option");
		newOption.value = "0";  // assumes option string and value are the same
		newOption.text = "-";
		// add the new option
		try {
			FieldHandler.add(newOption);  // this will fail in DOM browsers but is needed for IE
		}
		catch (e) {
			FieldHandler.appendChild(newOption);
		}
	}	

	if(ItemName == "profile") {    	
   		var root_node = XMLData.getElementsByTagName('profiles').item(0);
   	} else {
   		var root_node = XMLData.getElementsByTagName('geo').item(0);
   	}
   	
	for (i = 0; i < root_node.getElementsByTagName(orgItemName).length; i++) {
	
		var root_data = root_node.getElementsByTagName(orgItemName).item(i);
		var data_value = root_data.getElementsByTagName('id').item(0);
		var data_text = root_data.getElementsByTagName('name').item(0);	
		
		newOption = document.createElement("option");
		newOption.value = data_value.firstChild.data;  // assumes option string and value are the same
		newOption.text = data_text.firstChild.data;
		// add the new option
		try {
			FieldHandler.add(newOption);  // this will fail in DOM browsers but is needed for IE
		}
		catch (e) {
			FieldHandler.appendChild(newOption);

		}
		
	}
}//PullData
function WriteHtml(theText, elmID, type) {
	if(type == "append") {
		document.getElementById(elmID).innerHTML = theText+document.getElementById(elmID).innerHTML;
	} else {
		document.getElementById(elmID).innerHTML = theText;
	}
	
}

