﻿var DesertExt = new function() {
    this.version = '1.0';
}

DesertExt.constructor.prototype.Xhr = new function() {
    function getXhr() {
        // Mozilla, Safari, Opera etc.
        if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
        return null;
    }

    this.getData = function(url, method, onComplete) {
        var xhr = getXhr();
        if (xhr) {
            method = method || "GET";
            var async = typeof (onComplete) == 'function';
            if (async) {
                xhr.onreadystatechange = function() {
                    if (xhr.readyState == 4) {
                        if (xhr.status == 200) {
                            onComplete.call(xhr.responseXML);
                        }
                    }
                    else {
                        //alert("There was a problem retrieving data");
                    }
                }
            }

            xhr.open(method, url, async);
            //xhr.setRequestHeader("Content-Type", "text/xml");
            xhr.send(null);

            if (!async) {
                return xhr.responseXML;
            }
        }
    }
}



DesertExt.constructor.prototype.Content = new function() {
    var _loadedContent;
    var contentFile = "content/desertContent.xml";

    init();

    function init() {
        loadContentFile();
    }

    function loadContentFile() {
        _loadedContent = DesertExt.Xhr.getData(contentFile);
    }

    function getNodeText(xpath) {
        if (_loadedContent) {
            var node;
            if (window.ActiveXObject) {
                node = _loadedContent.selectSingleNode(xpath);
            }
            else {
                var xpe = new XPathEvaluator();
                var nsResolver = xpe.createNSResolver(_loadedContent.ownerDocument == null ? _loadedContent.documentElement : _loadedContent.ownerDocument.documentElement);
                var results = xpe.evaluate(xpath, _loadedContent, nsResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
                node = results.singleNodeValue;
            }

            if (node) {
                return node.text ? node.text : node.textContent;
            }
        }
        return "";
    }

    this.getHeader = function() {
        return getNodeText("content/page/header");
    }

    this.getLeftColumn = function() {
        return getNodeText("content/page/leftColumn");
    }
}





//debugger;
//DesertExt.Content.getHeader();
