
function XMLProcessor(XML, XSL, Target){

	var resultDocument;

	var platformMoz = (document.implementation && document.implementation.createDocument);
	var platformIE = (!platformMoz && document.getElementById && window.ActiveXObject);

	this.Load = function Load(){
		if(platformIE){
			document.getElementById(Target).innerHTML = resultDocument;
		} else {
			document.getElementById(Target).appendChild(resultDocument);
		}
		return true;
	}
	
	this.Build = function Build(){
		if(platformIE){
			// Load XML 
			var xml = new ActiveXObject("Microsoft.XMLDOM");
			xml.async = false;
			xml.load(XML);
			
			// Load XSL
			var xsl = new ActiveXObject("Microsoft.XMLDOM");
			xsl.async = false;
			xsl.load(XSL);
			
			// Transform
			resultDocument = xml.transformNode(xsl);
			//document.write(xml.transformNode(xsl));
		}
		
		if(platformMoz){
			
			var xsltProcessor = new XSLTProcessor();
			
			// Load XML 		
			myXMLHTTPRequest = new XMLHttpRequest();
			myXMLHTTPRequest.open("GET", XML, false);
			myXMLHTTPRequest.send(null);
			var xmlSource = myXMLHTTPRequest.responseXML;
			
			// Load XSL
			var myXMLHTTPRequest = new XMLHttpRequest();
			myXMLHTTPRequest.open("GET", XSL, false);
			myXMLHTTPRequest.send(null);
			xslStylesheet = myXMLHTTPRequest.responseXML;
			xsltProcessor.importStylesheet(xslStylesheet);
		
			// Transform
			resultDocument = xsltProcessor.transformToFragment(xmlSource, document);
			//document.getElementById("updateTarget").appendChild(resultDocument);
		}
	}
}
