﻿

function XmlGetter(url, completedFunction) {
    var xmlGetter;
    var myBase = this;

    var getData = function() {
        xmlGetter.open("GET", url, true);
        xmlGetter.onreadystatechange = function() { if (xmlGetter.readyState != 4) return; completedFunction(myBase); };
        xmlGetter.send(null);
    }

    var initialize = function() {
        if (!xmlGetter) {
            if (window.XMLHttpRequest) {
                xmlGetter = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                xmlGetter = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } else {
            xmlGetter.abort();
        }
    }


    this.getKey = function(key) {
        var res = xmlGetter.responseXML;
        var value = '';
        var keys = key.split('/');

        if (!res)
            return '';

        var currentNode = res;
        var keyFound = false;

        for (var num = 0; num < keys.length; num++) {
            keyFound = false;
            //alert(keys[num]);
            if (currentNode.childNodes.length > 0) {

                for (var num2 = 0; num2 < currentNode.childNodes.length; num2++) {
                    if (currentNode.childNodes[num2].tagName == keys[num]) {
                        currentNode = currentNode.childNodes[num2];
                        keyFound = true;
                    }
                    if (keyFound)
                        break;
                }


                if (keyFound && (num == keys.length - 1)) {
                    if (currentNode.childNodes.length > 0) {
                        for (var c = 0; c < currentNode.childNodes.length; c++) {
                            if (currentNode.childNodes[c].nodeValue.length > 0 && currentNode.childNodes[c].nodeValue.charCodeAt(0) != 10) {
                                value = currentNode.childNodes[c].nodeValue;
                                break;
                            }
                        }
                    }
                }
            }
            if (!keyFound)
                return '';
        }

        return value;
    }
    


    initialize();
    getData();

  
}
