/**
 * Klasse mit allgemeinen Funktionen zum Laden der Dateien.
 */
var CM_Load = {
    /**
     * Die Basis Url.
     * 
     * @var String
     */
    baseUrl: undefined,

    /**
     * Die Parameter die der Datei übergeben wurden.
     * 
     * @var String
     */
    queryParams: undefined,



    /**
     * Ermittelt die Url und lädt die übergebenen Dateien.
     */
    initialize: function() {
        CM_Load.getBaseUrl();

        if(window['Prototype'] == undefined) {
            CM_Load.require('modules/prototype.js');
        }

        var regex = /&(?:amp;)?load=([^&]+)/;
        if (regex.test(CM_Load.queryParams)) {
            var files = CM_Load.queryParams.match(regex)[1].split(',');
            CM_Load.queryParams = CM_Load.queryParams.replace(regex, '');

            for (var i = 0; i < files.length; i++) {
                CM_Load.require(files[i] + '.js');
            }
        }
    },



    /**
     * Ermittelt die Basis Url.
     */
    getBaseUrl: function() {
        var regex = /^(.*)js\/Load\.js(.*)$/;
        var scripts = document.getElementsByTagName('script');

        for (var i = 0; i < scripts.length; i++) {
            if (regex.test(scripts[i].src)) {
                CM_Load.baseUrl = scripts[i].src.match(regex)[1];
                CM_Load.queryParams = scripts[i].src.match(regex)[2];
                break;
            }
        }
    },



    /**
     * Lädt eine Datei.
     * 
     * @param   String  file    Die zu ladende Datei.
     */
    require: function(file) {
        document.write('<script type="text/javascript" src="' + CM_Load.baseUrl + 'js/' + file + '"></script>');
    }
}

CM_Load.initialize();