function XMLDOC(src, local)
{
	this.doc = "";
	this.loadXML = LoadXML;	
	if(src)
		this.loadXML(src, local);
}
XMLDOC.prototype = new Object();

function xmlGetText(node)
{
	if(!node)
		return "";
	var text = "";
	if(node.hasChildNodes() &&
		node.childNodes.length == 1 &&
		node.childNodes.item(0).nodeType == 3)
	{
		text = node.childNodes.item(0).nodeValue;
	}
	return text;
}

function LoadXML(src, local)
{
	//Code for IE
	if (window.ActiveXObject)
	{
		this.doc = new ActiveXObject("Microsoft.XMLDOM");
	}
	//Code for Mozilla
	else if (document.implementation && document.implementation.createDocument)
	{
		this.doc = document.implementation.createDocument("","",null);
	}
	else
	{
		alert('Your browser cannot handle this script');
		return false;
	}
	
	this.doc.async=false;

	try
	{
		this.doc.load(src);
	}
	catch(e)
	{
		this.doc.load(local);
	}

	if(!this.doc.documentElement && local)
	{
		this.doc.load(local);
		alert("I tried local");
	}
	
	return this.doc;
}

function xmlTextHTML(xmlNode)
{
	if(xmlNode.nodeType == 3)
		return xmlNode.nodeValue;
	else if(xmlNode.nodeType == 1)
	{
		var text = "";
		if(xmlNode.hasChildNodes())
		{
			text  = "&lt;" + xmlNode.tagName + "&gt;";
			var childNodes = xmlNode.childNodes;
			for(var i=0; i < childNodes.length; i++)
			{
				text += xmlTextHTML(childNodes.item(i));
			}
			text += "&lt;/" + xmlNode.tagName + "&gt;";
			return text;
		}
		else
		{
			text = "&lt;" + xmlNode.tagName + "/&gt;";
		}
	}
	
	return "";
}

function xmlText(xmlNode)
{
	if(xmlNode.nodeType == 3)
		return xmlNode.nodeValue;
	else if(xmlNode.nodeType == 1)
	{
		var text = "";
		if(xmlNode.hasChildNodes())
		{
			var childNodes = xmlNode.childNodes;
			for(var i=0; i < childNodes.length; i++)
			{
				text += xmlTextHTML(childNodes.item(i));
			}
			return text;
		}
	}
	
	return "";
}
