var integrio = {};
integrio.js = {version:"1.0",author:"Minor (Dima Ermak) Integrio systems",debug:false,showLoadedCode:false,rootUrl:"/scripts/",loadedModules:{},codesLength:0};
integrio.js.getXHTTPTransport = function() {
    var result = false;
    var actions = [function() {
        return new XMLHttpRequest()
    },function() {
        return new ActiveXObject('Msxml2.XMLHTTP')
    },function() {
        return new ActiveXObject('Microsoft.XMLHTTP')
    }];
    for (var i = 0; i < actions.length; i++) {
        try {
            result = actions[i]();
            break;
        } catch(e) {
        }
    }
    return result;
}
integrio.js.include = function(path, absolutePath) {
    if (integrio.js.loadedModules[path]) {
        return;
    }
    var transport = integrio.js.getXHTTPTransport();
    var getterURL = (absolutePath ? "" : integrio.js.rootUrl) + path.replace(/\./g, '/') + '.js';
    if (this.debug) {
        getterURL += "?rnd=" + Math.random();
    }
    transport.open('GET', getterURL, false);
    transport.send(null);
    var code = transport.responseText;
    if (this.showLoadedCode) {
        alert(path + "\n" + code);
    }
    this.codesLength += code.length;
    if (typeof execScript != 'undefined') {
        execScript(code)
    } else {
        window.eval(code);
    }
    integrio.js.loadedModules[path] = true;
    return true;
}
integrio.js.module = function(path) {
    var packages = path.split(".");
    var p = "";
    for (var i = 0; i < packages.length - 1; i++) {
        p = p + (i != 0 ? "." : "") + packages[i];
        var t = eval(p);
        if (typeof t == "undefined") {
            var code = p + "={}";
            if (i == 0) {
                code = "var " + code;
            }
            window.eval(code);
        }
    }
    this.loadedModules[path] = true;
}
