function loadXMLDoc(fname)
{
	var xmlDoc;
	// code for IE
	if (window.ActiveXObject) {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation  && document.implementation.createDocument) {
		xmlDoc=document.implementation.createDocument("","",null);
	}
	else {
		alert('Your browser cannot handle this script');
		return;
	}

	xmlDoc.async=false;
	xmlDoc.load(fname);
	return(xmlDoc);
}

function importXML(xmlURL,xslURL,parentId)
{
	if (!xmlURL || (xmlURL=='') || !parentId || (parentId=='')) {
		//alert('Missing one or more required arguments');
		return;
	}
	var parent=document.getElementById(parentId);
	if (!parent)  {
		//alert('Could not find parent element');
		return; //do nothing if the parent element does not exist.
	}

	//alert('Loading source');
	var xml=loadXMLDoc(xmlURL);
	//alert('Loading XSLT');
	var xsl=loadXMLDoc(xslURL);
	// code for IE
	if (window.ActiveXObject) {
		var ex=xml.transformNode(xsl);
		parent.innerHTML=ex;
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument) {
		var xsltProcessor=new XSLTProcessor();
		xsltProcessor.importStylesheet(xsl);
		var resultDocument=xsltProcessor.transformToFragment(xml,document);
		//alert('Inserting into element id '+parentId);
		parent.appendChild(resultDocument);
	}
}
