var DU;
if (!DU) DU = {};

DU.Core = {
    siteName: 'default_',
    plugins: 'hyph',
    nodeStart: 'content',
    loadedFiles: [],
    addedPlugins: [],
    
    startElement: function() {
        var elem = DU.Functions.id(this.nodeStart);
        
        if (!elem || typeof elem != 'object') {
            return document.body;
        }
        
        return elem;
    },
    
    addPlugin: function(obj) {
        for (var i = 0; i < this.addedPlugins.length; i++) {
            if (this.addedPlugins[i] == obj) {
                return;
            }
        }
        
        this.addedPlugins.push(obj);
    },
    
    countPlugins: function() {
        return this.addedPlugins.length;
    },
    
    loadFile: function(url, type) {
        for (var i = 0; i < this.loadedFiles.length; i++) {
            if (this.loadedFiles[i] == url)
                return;
        }
        
        switch(type) {
            case 'js': document.write('<sc' + 'ript type="text/javascript" src="' + url + '"></' + 'script>'); break;
            case 'css': document.write('<li' + 'nk href="' + url + '" type="text/css" rel="stylesheet" /' + '>'); break;
            
            default: return false;
        }
        
        this.loadedFiles[this.loadedFiles.length] = url;
    },
    
    menu: function() {
        var htmlText = '<h1>Настройка модулей</h1>';
        
        htmlText += '<ul>';
        
        for (var i = 0; i < this.addedPlugins.length; i++) {
            htmlText += '<li><a href="javascript:void(0);" onclick="DU.Plugins.' + this.addedPlugins[i].pluginName + '._displayMenu();">' + this.addedPlugins[i].pluginMenuName + '</a></li>';
        }
        
        htmlText += '</ul>';
        htmlText += '<br /><hr /><br /><a href="javascript:void(0);" onclick="DU.Popup.hidePopupWindow();DU.Popup.hideDialogWindow();">Выйти</a>';
        
        return htmlText;
    },
    
    _init: function() {
        var url = '', i;
        
        if (!DU.Functions.url()) {
            return;
        }
        
        var cssQueryJS = DU.Functions.url() + '/cssQuery.js';
        this.loadFile(cssQueryJS, 'js');
        
        var popUpJS = DU.Functions.url() + '/doc_updater_popup.js';
        this.loadFile(popUpJS, 'js');
        
        var ajaxJS = DU.Functions.url() + '/doc_updater_ajax.js';
        this.loadFile(ajaxJS, 'js');
        
        var cookieJS = DU.Functions.url() + '/doc_updater_cookie.js';
        this.loadFile(cookieJS, 'js');
        
        var popUpCSS = DU.Functions.url() + '/css/style.css';
        this.loadFile(popUpCSS, 'css');
        
        if (!DU.Functions.checkVar(this.plugins, 'string')) {
            return;
        }
        
        var plugins = DU.Functions.array(this.plugins, ',');
        
        for (var i = 0; i < plugins.length; i++) {
            url = DU.Functions.url() + '/plugins/' + plugins[i] + '/plugin' + DU.Functions.scriptMode() + '.js';
            
            this.loadFile(url, 'js');
        }
    },
    
    _start: function() {
        var oThis = this;
        
        for (var i = 0; i < this.addedPlugins.length; i++) {
            if (this.addedPlugins[i].afterLoadExec) {
                this.addedPlugins[i].afterLoadExec();
            }
        }
    }
};

DU.Core._init();

DU.Functions.addEvent(window, 'load', function() {DU.Core._start();});
DU.Functions.addEvent(document, 'keypress', function(e) {if (DU.Functions.keyE(e, 32) && e.ctrlKey) {DU.Popup.dialogWindow(DU.Core.menu()); e.preventDefault();}});
