function XMLObject() {
    this.isIE = true;
    if (window.ActiveXObject) {
        isIE = true;
    } else {
        isIE = false;
    }
    var node_xml;
    var xmlDoc;
    if (isIE) {
        xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    } else {
        if (document.implementation && document.implementation.createDocument) {
            xmlDoc = document.implementation.createDocument("", "", null);
        }
    }
    xmlDoc.async = false;
    //xmlDoc.setProperty("ServerHTTPRequest",true);
    xmlDoc.resolveExternals = false;
    xmlDoc.validateOnParse = false;
    xmlDoc.preserveWhiteSpace = true;
    this.LoadXMLForString = function(XMLStr) {
        if (isIE) {
            xmlDoc.loadXML(XMLStr);
        } else {
            var oParser = new DOMParser();
            xmlDoc = oParser.parseFromString(XMLStr, "text/xml");
        }
    }
    this.getXMLForURL = function(url) {
        if (isIE) {
            xmlDoc.load(url);
        } else {
            xmlDoc = getXML(url).responseXML;
        }
    }
    this.getXMLArray = function(name) {
        var keys = name.split('.');
        var node = xmlDoc.documentElement;
        var rtn = new Array();
        var n = 0;
        for (var i = 0; i < keys.length; i++) {
            var childs = node.childNodes;
            var key = keys[i];
            for (var k = 0; k < childs.length; k++) {
                var child = childs[k];
                if (child.nodeName == key) {
                    if (i == keys.length - 1) {
                        rtn[n] = child;
                        n++;
                    } else {
                        node = child;
                        break;
                    }
                }
            }
        }
        node_xml = rtn;
        return rtn;
    }
    this.getNodeValue = function(name) {
        return this.getValue(xmlDoc, name);
    }
    this.getValue = function(node, name) {
        if (name == '' && !window.ActiveXObject) {
            return node.textContent;
        } else if (name == '') {
            return node.text;
        }
        var keys = name.split('.');
        for (var i = 0; i < keys.length; i++) {
            var childs = node.childNodes;
            var key = keys[i];
            for (var k = 0; k < childs.length; k++) {
                var child = childs[k];
                if (child.nodeName == key) {
                    if (child.childNodes.length == 1) {
                        if (!window.ActiveXObject) {
                            return childs[k].textContent;
                        } else {
                            return childs[k].text
                        }
                    } else {
                        node = child;
                        break;
                    }
                }
            }
        }
        return "";
    }
    function GetXMLHTTP() {
        var xmlhttp;
        if (window.ActiveXObject) {
            try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } else if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
    function getXML(url) {
        var xmlHttp = GetXMLHTTP();
        if (xmlHttp != null) {
            xmlHttp.open("GET", url, false);
            xmlHttp.send(null);
        } else {
            alert("Your browser does not support XMLHTTP.11");
            return false;
        }
        return xmlHttp;
	}
}