/*
 * Ładowacz i uruchamiacz javascryptów skryptów
 *
 * @version 1.10
 */

var loaderFactory = {

    /*
     * Ładowanie javascriptów i uruchomienie po załadowaniu
     */

    createJScriptRunner : function() {

        var loader = new LoadAndRun();

        var script_loader = function() {
            var scripts = loader.getScriptsArray();
            var ok = true;
            for(var i = 0; i <loader.addedCount ; i++ ) {
                try{
                    eval(scripts[i]);
                }catch(e){
                    alert(e);
                    ok |= false;
                    alert('Błąd w ładowanym skrypcie: ' + scripts[i])};
            }
            return ok;
        }

        /* uruchamia dodane skrypty */
        loader.loader = script_loader;

        /* Ładuje skrypt z elementu XML */
        loader.loadJScript = function(scriptTag) {

            var src = scriptTag.attributes.getNamedItem('src');

            if (src) loader.addSource(src.nodeValue);
            else loader.addScript(innerXML(scriptTag));
//            else loader.addScript(scriptTag.firstChild.nodeValue);
        }

        return loader;
    },

    /*
     * Ładowanie stylów kaskadowych
     * parametrem jest elementem lub id elementu związanego
     * z załadowanymi stylami
     */
    createStyleLoader : function(destination) {
        var loader = new LoadAndRun();

        var style_loader = function () {
            var scripts = loader.getScriptsArray();
            var element = $el(destination);

            for (var index in scripts) {
                if (!destination || !element) element = $el(index);
                if (element) element.innerHTML = scripts[i] + element.innerHTML;
                else alert('Brak celu do załadowania stylów');
            }

//            for(var i = 0; i <loader.addedCount ; i++ ) {
//                if (element) element.innerHTML = scripts[i] + element.innerHTML;
//            }

            return true;
        }


        /* uruchamia dodane skrypty */
        loader.loader = style_loader;

        /* Ładuje style z elementu XML */
        loader.loadStyle = function(styleTag, target) {

            var href = styleTag.attributes.getNamedItem('href');

            if (href) loader.addSource(href.nodeValue, target);
            else loader.addScript(innerXML(styleTag), target);
//            else loader.addScript(styleTag.firstChild.nodeValue);
        }

        return loader;

    }


};
