﻿var xmlDoc;
var xslDoc;
function loadXMLXSLTDoc(elementId, urlXSL, options) {
        xmlDoc = null;
        xslDoc = null;
        this.elementId = elementId;
        this.options = options;
        var urlXML = "xml/routes.xml";
        this.ajaxHelper = new net.ContentLoader(this, urlXML, "GET",[]);
        this.ajaxHelper.sendRequest();
        this.ajaxAlternativeCalled = false;
        this.ajaxHelper = new net.ContentLoader(this, urlXSL, "GET",[]);
        this.ajaxHelper.sendRequest();
}

loadXMLXSLTDoc.prototype = {
    ajaxUpdate: function(request) {
        var tempDoc=request.responseXML;
        try {
            if (tempDoc.documentElement != null) {
                var areaId = tempDoc.getElementsByTagName('areaId')[0].firstChild.data;
                if (areaId == "christianbrothers") {
                        xmlDoc=tempDoc;
                }
            }
            else {
                xslDoc=tempDoc; //.documentElement;
            }
        }
        catch (e) {
            xslDoc=tempDoc;
        }
               
        if (xmlDoc==null || xslDoc==null) { return; }
        if (window.ActiveXObject) {
            document.getElementById(this.elementId).innerHTML = xmlDoc.transformNode(xslDoc);
        
        }
        else {
            var xsltProcessor = new XSLTProcessor();
            xsltProcessor.importStylesheet(xslDoc);
            var fragment = xsltProcessor.transformToFragment(xmlDoc,document);
            //var fragment = xsltProcessor.transformToDocument(xmlDoc,document);
            document.getElementById(this.elementId).innerHTML="";
            //this.element.appendChild(fragment);
            var x = document.getElementById(this.elementId);
            x.appendChild(fragment);
        }
    },

    handleNoXMLHTTPRequest: function() {
        //if (this.options.noXMLHTTPRequestHandler)
        //    this.options.noXMLHTTPRequestHandler(this.fileReference);
        if (this.options.noXMLHTTPRequestHandler) {
                if (this.ajaxAlternativeCalled == false) {
                        this.ajaxAlternativeCalled = true;
                        this.options.noXMLHTTPRequestHandler();
                }
        }


    },
   
    handleError: function(request) {
        if (this.options.errorHandler)
            this.options.errorHandler(request);
    }
} 

