﻿// requires init.js

var xml, xsl
var cache, proc, s

function setupXML(xmlFile, xslFile)
{
	xml  = loadXML(xmlFile)
	xsl  = loadXSL(xslFile)
	proc = loadProc()
}

function loadXML(fileName)
{
var _xml
	if(browserType=='ie')
	{
		_xml = new ActiveXObject('MSXML2.FreeThreadedDOMDocument')
		_xml.async = false
		_xml.load(fileName)
	}
	else
	{
		var xmlHTTP = new XMLHttpRequest()
		_xml = document.implementation.createDocument('','doc',null)
		xmlHTTP.open('GET', fileName, false)
		xmlHTTP.send(null)
		_xml = xmlHTTP.responseXML
	}
return(_xml)
}

function loadXSL(fileName)
{
var _xsl
	if(browserType=='ie')
	{
		_xsl = new ActiveXObject('MSXML2.FreeThreadedDOMDocument')
		_xsl.async = false
		_xsl.load(fileName)
	}
	else
	{
		var xmlHTTP = new XMLHttpRequest()
		_xsl = document.implementation.createDocument('','doc',null)
		xmlHTTP.open('GET', fileName, false)
		xmlHTTP.send(null)
		_xsl = xmlHTTP.responseXML
	}
return(_xsl)
}

function loadProc()
{
var _proc
	if(browserType=='ie')
	{
		cache = new ActiveXObject("Msxml2.XSLTemplate")
		cache.stylesheet = xsl
		_proc = cache.createProcessor()
		_proc.input = xml
	}
	else
	{
		s = new XMLSerializer()
		_proc = new XSLTProcessor()
		_proc.importStylesheet(xsl)
	}
return(_proc)
}

function addParam(pname, param)
{
	if (browserType == 'ie')
	{
		proc.addParameter(pname, param)
	}
	else
	{
		proc.setParameter(null, pname, param)
	}
}

function delParam(pname)
{
	if (browserType == 'ie')
	{
		proc.addParameter(pname, '')
	}
	else
	{
		proc.removeParameter(null, pname)
	}
}

function clearParam()
{
	if (browserType == 'ie')
	{
		proc.reset()
	}
	else
	{
		proc.clearParameters()
	}

}

function transform()
{
var ret = ''
	if (browserType == 'ie')
	{
		proc.transform()
		ret = proc.output
	}
	else
	{
		var output = proc.transformToDocument(xml)
		ret = s.serializeToString(output)
	}
return(ret)
}

