var BASE_PATH = ''

$.getLazyScript = function(url, callback){
    $.ajax({ type: 'GET', url: BASE_PATH + url, success: callback, dataType: 'script', cache: true, async: false });
}; 

var loaderArray = {
    'sifr': {'enabled': false, 'selector': '.fontSifr', 'paths': ['/www/_js/internal/firefly.sifr.js']},
    'lightbox': {'enabled': false, 'selector': '.lightbox', 'paths': ['/www/_js/internal/firefly.lightbox.js']},
    'slider': {'enabled': false, 'selector': '.slider', 'paths': ['/www/_js/internal/firefly.common.js']},
    'sliderLightbox': {'enabled': false, 'selector': '.sliderLightbox', 'paths': ['/www/_js/internal/firefly.common.js']},
    'list': {'enabled': false, 'selector': '#list', 'paths': ['/www/_js/internal/firefly.common.js']},
    'scrollpane': {'enabled': false, 'selector': '.scrollContainer', 'paths': ['/www/_js/internal/firefly.common.js']}
};

defaultsArray = ['/www/_js/internal/firefly.utils.js', '/www/_js/internal/firefly.iefix.js'];

function initModules(moduleParams) {
    if (loaderArray['list']['enabled']) {
        FireflyList.construct();
        loaderArray['list']['enabled'] = false;
    }
    if (loaderArray['lightbox']['enabled']) {
        FireflyLightbox.initialize();
        loaderArray['lightbox']['enabled'] = false;
    }
    if (loaderArray['slider']['enabled']) {
        FireflySlider.init('.slider');
        loaderArray['slider']['enabled'] = false;
    }
    if (loaderArray['sliderLightbox']['enabled']) {
        FireflySlider.init('.sliderLightbox');
        loaderArray['sliderLightbox']['enabled'] = false;
    }
    if (loaderArray['scrollpane']['enabled']) {
        FireflyScrollpane.init();
        loaderArray['scrollpane']['enabled'] = false;
    }
    if (loaderArray['sifr']['enabled']) {
        FireflySifr.init(moduleParams);
        loaderArray['sifr']['enabled'] = false;
    }
}
    
function fireflyLoadModule(moduleName, moduleParams) {
    loaderArray[moduleName]['enabled'] = true;
    $.each(loaderArray[moduleName]['paths'], function(i, modulePath) {
        $.getLazyScript(modulePath);
    });
    initModules(moduleParams);
}

function fireflyInit() {
    $.each(defaultsArray, function(i, modulePath) {
        $.getLazyScript(modulePath);
    });
 
    $.each(loaderArray, function(moduleName, moduleValues) {
        if ($(moduleValues['selector']).is('*')) {
            loaderArray[moduleName]['enabled'] = true;
            fireflyLoadModule(moduleName);
        }
    });
}

$(document).ready(function() {
    fireflyInit();
});