<!--
// File: ajax.js 
// Purpose: Provide generic functions for AJAX development
//
// Revision History:
// 19JAN2007 - KMC - Initial Development

// AJAX_GetXMLHttp
// Attempt to instantiate a cross-browser XMLHttp object.
// Returns: The xmlHttp object or false
function AJAX_GetXMLHttp()
{
	var xmlHttp = null;
	try
	{
		// IE7, Firefox/Mozilla, Safari, etc.
		xmlHttp = new XMLHttpRequest();
		return xmlHttp;
	}
	catch ( e )
	{
		// IE6 and below
		try
		{
			xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
			return xmlHttp;
		}
		catch ( e )
		{
		}
	}
	return false;
}

// AJAX_GetXMLParser
// Attempt to instantiate a cross-browser XML DOM parser.
// Returns: The xmlDoc object or false
function AJAX_GetXMLParser()
{
	var xmlDom = null;
	try
	{
		// Firefox/Mozilla, Safari, etc.
		xmlDom = new DOMParser();
		return xmlDom;
	}
	catch ( e )
	{
		// MSIE -- Try MSXML6 then MSXML3
		var msxmlProgIDs = [ 'Msxml2.DOMDocument.6.0', 'Msxml2.DOMDocument.3.0' ];
		for ( var i = 0; i < msxmlProgIDs.length; i++ )
		{
			try
			{
				xmlDom = new ActiveXObject( msxmlProgIDs[i] );
				return xmlDom;
			}
			catch( e )
			{
			}
		}
	}
	return false;
}

function AJAX_LoadXML( xmlDoc, xmlString )
{
	if ( xmlDoc.parseFromString )
	{
		// Firefox
		return xmlDoc.parseFromString( xmlString, "text/xml" );
	}
	else
	{
		// IE
		xmlDoc.async = false;
		xmlDoc.resolveExternals = false;
		xmlDoc.validateOnParse = false;
		xmlDoc.loadXML( xmlString );
		if ( xmlDoc.parseError.errorCode != 0 )
		{
			alert( "Error: " + xmlDoc.parseError.reason );
			return null;
		}
		return xmlDoc;
	}
	return null;
}
//-->