/**
 *
 */
var AVT_Loader = {
    'environment': '',
    'version': '',
    'scripts': [],
    'styleSheets': [],
    'addScript': function(url) {
        if (url.constructor == Array) {
            this.scripts = this.scripts.concat(url);
        } else {
            this.scripts.push(url);
        }
    },
    'addCss': function(url) {
        if (url.constructor == Array) {
            this.styleSheets = this.styleSheets.concat(url);
        } else {
            this.styleSheets.push(url);
        }
    },
    'load': function() {
        if (window.AVT_environment) {
            this.environment = AVT_environment;
        }
        if (window.AVT_version) {
            this.version = AVT_version;
        }
        // Load files
        if (this.styleSheets.length > 0) {
            this.loadStyleSheets();
        }
        if (this.scripts.length > 0) {
            this.loadScripts();
        }

        this.reset();
    },
    'loadScripts': function() {
        var len = this.scripts.length;
        var loadUrl = '/min/b=js&f=';
        for (var i = 0; i < len; i++) {
            if (this.environment == 'development') {
                // Put scripts directly in document
                document.write('<script src="/js/', this.scripts[i], '?v=' + this.version + '" type="text/javascript"></script>');
            } else {
                // Otherwise we'll use minifier
                loadUrl += encodeURI(this.scripts[i] + ',');
            }
        }
        loadUrl = loadUrl.substring(0, (loadUrl.length - 1));
        switch (this.environment) {
            case 'development':
                break;
            case 'test':
                loadUrl += '&debug=1';
                // Fall Through to default after appending the debug (NO BREAK HERE ON PURPOSE)
            default:
                document.write('<script src="', loadUrl, '?v=' + this.version + '" type="text/javascript"></script>');
                break;
        }
    },
    'loadStyleSheets': function() {
        var len = this.styleSheets.length;
        var loadUrl = '/min/b=css&f=';
        for (var i = 0; i < len; i++) {
            if (this.environment == 'development') {
                // Put sheets directly in document
                document.write('<link rel="stylesheet" type="text/css" href="/css/', this.styleSheets[i], '?v=', this.version, '"></link>');
            } else {
                // Otherwise we'll use minifier
                loadUrl += encodeURI(this.styleSheets[i] + ',');
            }
        }
        loadUrl = loadUrl.substring(0, (loadUrl.length - 1));
        switch (this.environment) {
            case 'development':
                break;
            case 'test':
                loadUrl += '&debug=1';
                // Fall Through to default after appending the debug (NO BREAK HERE ON PURPOSE)
            default:
                document.write('<link rel="stylesheet" type="text/css" href="', loadUrl, '?v=' + this.version + '"></link>');
                break;
        }
    },
    'reset': function() {
        // Empty arrays so subsequent calls to load don't re-load files
        this.scripts = [];
        this.scripts.length = 0;
        this.styleSheets = [];
        this.styleSheets.length = 0;
    }
};
