/*
 * Basis-Utils
 */
var Myweb2goBase = {
  domLoading : true,
    loaded : { css : {}, js : {} },
    addJavascript : function(javascripts, prefix) {
        var headNode = document.getElementsByTagName('head')[0];
        var jsText = [];
        for(var i=0;i<javascripts.length;i++) {
            var javascript = javascripts[i];
            if(!this.loaded.js[javascript]) {
                if(!javascript.match(/(\.js|\.php)/)) {
                    javascript += '.js';
                }
                var file = prefix + '/'+javascript;
                if(!this.domLoading) {
                    var JS = document.createElement('script');
                    JS.setAttribute('type', 'text/javascript');
                    JS.setAttribute('src', file);
                    headNode.appendChild(JS);
                }
                else {
                    var text = '<script type="text/javascript" src="' + file + '"></script>';
                    document.write(text);
                }
                this.loaded.js[javascript] = true;            }
        }
    },
    addCSS : function(csss, prefix) {
        var headNode = document.getElementsByTagName('head')[0];
        for(var i=0;i<csss.length;i++) {
            var cssFile = csss[i];
            if(!this.loaded.css[cssFile]) {
                var file = prefix+'/' + cssFile + '.css';
                if(!this.domLoading) {
                    var CSS = document.createElement('link');
                    CSS.setAttribute('type', 'text/css');
                    CSS.setAttribute('rel', 'stylesheet');
                    CSS.setAttribute('href', file);
                    headNode.appendChild(CSS);
                }
                else {
                    document.write('<link type="text/css" rel="stylesheet" href="'+ file +'">');
                }
                this.loaded.css[cssFile] = true;
            }
        }
    }
};

/*
 * Konfiguration
 */

if(typeof jsConfig == 'undefined') {
    var jsConfig = {};
}
if(typeof donotusePrototype != 'undefined') {
    jsConfig.usePrototype = !donotusePrototype;
}

if(typeof myweb2goJavascriptDebug == 'undefined') {
    jsConfig.myweb2goDebug = jsConfig.myweb2goDebug || false;
}
else {
    jsConfig.myweb2goDebug = myweb2goJavascriptDebug;
}

if(!jsConfig.path) {
    jsConfig.path = (typeof javascriptPath == 'undefined')?"myweb2go/ntlsapi/javascript":javascriptPath;
}
if(!jsConfig.mw2gPath) {
    jsConfig.mw2gPath = (typeof myweb2goJavascriptPath == 'undefined')?'myweb2go/js':myweb2goJavascriptPath;
}

/*
 * Startskripts werden von myweb2go/ntlsapi/javascript/base.js aufgerufen
 * wg. Prototype-Abhaengigkeit so zu machen
 */
if(typeof NtlsLibInitHooks == 'undefined') {
    var NtlsLibInitHooks = [];
}
NtlsLibInitHooks.push(
    function() {
        if(jsConfig.usePrototype)  {
            if(jsConfig.myweb2goDebug) {
                Myweb2goBase.addJavascript(['yuiutils', 'ajax', 'formutils','rules','wysiwyg','filter', 'formvalidators' ], jsConfig.mw2gPath + "/src");
            }
            else {
                Myweb2goBase.addJavascript(['myweb2golib'], jsConfig.mw2gPath);
            }
        }
        if(!jsConfig.skipTranslation)
        	Myweb2goBase.addJavascript(['translations.php'], jsConfig.mw2gPath);
    }
);

function initMyweb2go() {
    Myweb2goBase.domLoading = false;
    if(typeof(Prototype) != "undefined") {
        Object.extend(Rules, Myweb2goRules);
        EventSelectors.start(Rules);
        if(typeof _markErrorFields == 'function' ) {
            Ajax.Responders.register({
                onComplete: function() {
                    _markErrorFields();
                }
            });
        }
    }
}

/*
 * NTLSAPI starten
 */
Myweb2goBase.addJavascript(['base'], jsConfig.path);
