

var xslNumTemp;				// array index requested by external function
var xslArray = new Array();		// array holding XSL file objects
var processorArray = new Array();	// array holding XSLT processors


// load stylesheet into DOM document
// function xslLoad()
function xslLoad(xslNum, xslUrl)
{
	var xslString;		
	xslNumTemp = xslNum;	
	
	try
	{
		if (1 == 1)
		{
			processorArray[xslNum] = new XSLTProcessor();								// init XSLT processor
			
			var xslDocTemp = document.implementation.createDocument("menutest.xsl","xsl",null);	// init XSL document
			var xslObjTemp = new DOMParser().parseFromString(xslDocTemp, "text/xml");
			xslArray[xslNum] = 
			
			
			var myAjax2 = new Ajax.Request( xslUrl, { method: 'get', parameters: '', asynchronous: false });
			xslString = myAjax2.transport.responseText;
			xslArray[xslNum].loadXML(xslString);
			processorArray[xslNum].importStylesheet(xslArray[xslNum]);
		}
		else if (isOtherSafe)
		{
			// for some reason XSL file cannot load except through an AJAX request in Mozilla
			processorArray[xslNum] = new XSLTProcessor();								// init XSLT processor
			xslArray[xslNum] = document.implementation.createDocument("","xsl",null);	// init XSL document
			var myAjax2 = new Ajax.Request( xslUrl, { method: 'get', parameters: '', asynchronous: false });
			xslString = myAjax2.transport.responseText;
			xslArray[xslNum].loadXML(xslString);
			processorArray[xslNum].importStylesheet(xslArray[xslNum]);
		}
		else if (isIE)
		{
			xslArray[xslNum] = new ActiveXObject("Msxml2.DomDocument");		// init ActiveX object
			xslArray[xslNum].async = false;									// set asynchronous property to false
			xslArray[xslNum].load(xslUrl);			// load stylesheet into doc (triggering onloadXSL)
		}
	}
	catch (e)
	{
		alert('Error during XSLT transform (XSL Load of '+xslUrl+': ' + e.message + ').');
	}
}

function onloadXsl()
{
	processorArray[xslNumTemp].importStylesheet(xslArray[xslNumTemp]);
}

// run XSLT transform		
// function myTransform(xmlObjMoz, xmlObjIE)
function myTransform(xmlObjMoz, xmlObjIE, xslNum, outputID)
{
	var xmlTransform;							
	
	try
	{
		if (isIE)
		{
			xmlTransform = xmlObjIE.transformNode(xslArray[xslNum]);	
		}
		else if (isOtherSafe)
		{
			//ownerDocument = document.implementation.createDocument("", "", null);
			var newFragment = processorArray[xslNum].transformToFragment(xmlObjMoz, document.implementation.createDocument("", "", null));	
			var xmlserial = new XMLSerializer();
			xmlTransform = xmlserial.serializeToString(newFragment);
		}
		else
		{
		   alert("This browser does not support XML/XSLT.  Recommended browsers are IE 5+ and Mozilla 1.5+.");
		}
		//alert("transform = " + xmlTransform);
		$(outputID).innerHTML = xmlTransform;	// here is where transformed XML is finally displayed
		//alert("resultant HTML = " + $(outputID).innerHTML);
	}
	catch (e)
	{
		alert('Error during XSLT transform (myTransform: ' + e.message + ').');
	}
}

