// Initialise AJAX Variables
var MA_BROWSER_ID = '';
var MA_AJAX_REQUEST = false;
// Initial AJAX REQUEST
try {
	MA_AJAX_REQUEST = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		MA_AJAX_REQUEST = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
		try {
			MA_AJAX_REQUEST = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			MA_AJAX_REQUEST = false;
		}
	}
}
// Ready Function
function MA_AJAX_READY() {
	// Unknown
	if(typeof(MA_AJAX_REQUEST.readyState)=="undefined"||isNaN(MA_AJAX_REQUEST.readyState)) return false;
	// Uninitialised
	if(MA_AJAX_REQUEST.readyState==0) return false;
	// Initialised But Unsent
	if(MA_AJAX_REQUEST.readyState==1) return false;
	// Sent
	if(MA_AJAX_REQUEST.readyState==2) return false;
	// Processing
	if(MA_AJAX_REQUEST.readyState==3) return false;
	// Complete
	return true;
}
// Get Ajax
function MA_AJAX_GETXMLVALUE(xmlObj,field) {
	var xml_value = '';
	var xml_field = xmlObj.getElementsByTagName(field)[0];
	if(xml_field&&xml_field.firstChild) xml_value = xml_field.firstChild.nodeValue;
	return xml_value;
}
// Get Data
function MA_AJAX_GETDATA() {
	if(MA_AJAX_REQUEST.status==200) {
		// Minimum XML Version Required
		xml_required = 1.0;
		// Read XML Structure
		var xml_moddata = MA_AJAX_REQUEST.responseXML.getElementsByTagName("mapdata")[0];
		// Valid XML
		if(!xml_moddata) {
			alert("AJAX: Returned Invalid XML " + MA_AJAX_REQUEST.responseText);
		} else {
			// Recover XML Version & Error
			xml_version = xml_moddata.getAttribute("version");
			xml_error = xml_moddata.getAttribute("error");
			// Check For Error
			if(xml_error) {
				alert("ERROR: " + xml_error);
				return false;
			}
			// Compare XML Version To Required			
			if(xml_version&&xml_version>=xml_required) {
				return xml_moddata;
			} else {
				if(!xml_version) xml_version = "Undefined";
				alert("AJAX: XML Version Is " + xml_version + " Required Is " + xml_required);	
				return false;
			}
		}
	} else if (MA_AJAX_REQUEST.status==404) {
		alert("AJAX: Request URL Does Not Exist");
		return false;
	} else {
		alert("AJAX: Error Status Code Is " + MA_AJAX_REQUEST.status);	
		return false;
	}
	
}
// Error Report
if(!MA_AJAX_REQUEST) alert("ERROR: Initialising AJAX Communications");




