﻿XsltClient = {
        xsl: null,
        cacheXsl : true,
        xslUrl : '',
        transformText: function(response, xslUrl) {
            var result = '';
            if(this.isGecko()) {
                    this.loadXSL(xslUrl);
                    var xsltProcessor = new XSLTProcessor();
                    xsltProcessor.importStylesheet(this.xsl);
                    var result = xsltProcessor.
                            transformToDocument(response.responseXML, document);
                    delete xsltProcessor;
                    var xml = document.createElement('newer');
                    xml.appendChild(result.documentElement);
                    result = xml.innerHTML;
                    delete xml;
            } else if(window.ActiveXObject) {
                 this.loadXSL_IE(xslUrl);
                 var xml = new ActiveXObject("MICROSOFT.XMLDOM");
//				 alert(response.responseText);
				 xml.loadXML(response.responseText);
				try {
					result = xml.transformNode(this.xsl);
				} catch (e) {
					alert(e.description);
				}
//				 alert(result);
            } else{
                    throw("Browser is unknown.");
            }
            return result;
        },
        transformDOM: function(response, xslUrl) {
            var result = null;
            if (this.isGecko()) {
                    var xsltProcessor = new XSLTProcessor();
                    this.loadXSL(xslUrl);
                    xsltProcessor.importStylesheet(this.xsl);
                    result = xsltProcessor.
                            transformToDocument(response.responseXML, document);
                    delete xsltProcessor;
            } else if(window.ActiveXObject) {
                 this.loadXSL_IE(xslUrl);
                 var xml = new ActiveXObject("MICROSOFT.XMLDOM");
                 xml.loadXML(response.responseText);
                 xml.loadXML(xml.transformNode(this.xsl));
                 result = xml;
            } else {
                    throw("Browser is unknown.");
            }
            return result;
        },
        loadXSL_IE : function(xslUrl) {
             if( this.xsl != null && this.cacheXsl && this.xslUrl == xslUrl)
                return;
             delete this.xsl;
             this.xsl = new ActiveXObject("MICROSOFT.XMLDOM");
             this.xsl.async = false;
             this.xsl.load(xslUrl);
             this.xslUrl = xslUrl;
        },
        loadXSL : function(xslUrl) {
             if( this.xsl != null && this.cacheXsl && this.xslUrl == xslUrl)
                return;
             delete this.xsl;
             var myXMLHTTPRequest = new XMLHttpRequest();
             myXMLHTTPRequest.open("GET", xslUrl, false);
             myXMLHTTPRequest.send(null);
             this.xsl = myXMLHTTPRequest.responseXML;
             delete myXMLHTTPRequest;
             this.xslUrl = xslUrl;
        },
        isGecko : function() {
                return document.implementation && document.implementation.createDocument;
        }


}

