// JavaScript Document
// Class for loading XML into AJAX Object

function AJAX_Object(lf)
{
	// Variables
	var AJAX_loaded_function;
	var AJAX_xml_handler = '';
	var AJAX_init_function = function(){void(null)};
	var AJAX_error_function = xmlError;

	// Functions
	this.xmlInit = xmlInit;
	this.xmlRequest = xmlRequest;
	this.xmlCheckState = xmlCheckState;
	this.xmlSetLoading = xmlSetLoading;
	this.xmlSetError = xmlSetError;

	function xmlInit(f)
	{
		// Set funcion
		AJAX_loaded_function = f;
		
		// Execute waiting function
		AJAX_init_function();
		
		// Determine XML retrieval method
		if (window.XMLHttpRequest) AJAX_xml_handler = new XMLHttpRequest();
		else if (window.ActiveXObject) AJAX_xml_handler = new ActiveXObject("Microsoft.XMLHTTP");
	
		if (AJAX_xml_handler)
		{
			// Set event handler
			AJAX_xml_handler.onreadystatechange = xmlCheckState;
			
			return true;
		}
		else
			return false;
	}

	function xmlRequest (xmlURI, args)
	{
		var method = 'POST';

		AJAX_xml_handler.open(method, xmlURI, true);
		if (method == 'POST') AJAX_xml_handler.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
		if (method == 'POST') AJAX_xml_handler.send(args);
		else AJAX_xml_handler.send(null);
	}
	
	function xmlCheckState()
	{
		if (AJAX_xml_handler.readyState == 4)
		{
			try
			{
				var status = AJAX_xml_handler.status
				if (status == 200)
					AJAX_loaded_function(AJAX_xml_handler.responseXML);
				else AJAX_error_function();
			}
			catch(e)
			{
				AJAX_error_function();
			}
		}
	}

	function xmlSetLoading(xmlInit)
	{
		AJAX_init_function = xmlInit;	
	}
	
	function xmlSetError (xmlErr)
	{
		AJAX_error_function = xmlErr;
	}

	function xmlError()
	{
		alert("Error loading XML");
	}
}

