
var isIE = (navigator.userAgent.indexOf("MSIE") > -1)



//************* 		cross browser dhtml 		******************************

function XBrowser_FireEvent (objToFireEvent, eventName, eventType)
{
	if (navigator.userAgent.indexOf("MSIE") > -1)
	{
		//** IE
		eval ("objToFireEvent." + eventName + "()")
	}
	else
	{
		//** mozilla eventType is either: "UIEvents", "MouseEvents", "MutationEvents", or "HTMLEvents"
		var ev = document.createEvent(eventType)
		ev.initEvent (eventName, true, true)
		objToFireEvent.dispatchEvent (ev)
	}
}




//************* 		cross browser xml 		******************************


function XML_LoadDoc (txt)
{
	try
	{
		if (isIE)
		{
			var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM")
			xmlDoc.loadXML (txt)
		}
		else
		{
			var parser = new DOMParser ()
			var xmlDoc = parser.parseFromString (txt, "text/xml")
		}
	}
	catch (e)
	{
		alert ("XML_LoadDoc error: " + e)
		return null
	}
	return xmlDoc
}

function XML_GetNode (doc, query)
{
	try
	{
		if (isIE)
			var node = doc.selectSingleNode (query)
		else
		{
			var nodes = doc.evaluate (query, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null )
			node = nodes.snapshotItem(0)
		}
	}
	catch (e)
	{
		alert ("XML_GetNode error: " + e)
		return null
	}
	return node
}

function XML_GetNodes (doc, query)
{
	try
	{
		if (isIE)
			var nodes = doc.selectNodes (query)
		else
			var nodes = doc.evaluate (query, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null )
	}
	catch (e)
	{
		alert ("XML_GetNodes error: " + e)
		return null
	}
	return nodes
}

function XML_NodesLength (nodes)
{
	try
	{
		if (isIE)
			return nodes.length
		else
			return nodes.snapshotLength
	}
	catch (e)
	{
		alert ("XML_NodesLength error: " + e)
		return null
	}
}

function XML_GetItem (nodes, index)
{
	try
	{
		if (isIE)
			var node = nodes.item(index)
		else
		{
			node = nodes.snapshotItem(index)
		}
	}
	catch (e)
	{
		alert ("XML_GetItem error: " + e)
		return null
	}
	return node
}

function XML_GetNodeText (node)
{
	try
	{
		if (isIE)
			return node.text
		else
			return node.textContent
	}
	catch (e)
	{
		alert ("XML_GetNodeText error: " + e)
	}
	return ""
}
