/* ------------------------------------------------------------------------------
 *
 *  # Buttons and button dropdowns
 *
 *  Demo JS code for components_buttons.html page
 *
 * ---------------------------------------------------------------------------- */


// Setup module
// ------------------------------

var Buttons = function() {


    //
    // Setup module components
    //

    // Progress buttons
    // var _componentLadda = function() {
    //     if (typeof Ladda == 'undefined') {
    //         console.warn('Warning - ladda.min.js is not loaded.');
    //         return;
    //     }

    //     // Button with spinner
    //     Ladda.bind('.btn-ladda-spinner', {
    //         dataSpinnerSize: 16,
    //         timeout: 2000
    //     });

    //     // Button with progress
    //     Ladda.bind('.btn-ladda-progress', {
    //         callback: function(instance) {
    //             var progress = 0;
    //             var interval = setInterval(function() {
    //                 progress = Math.min(progress + Math.random() * 0.1, 1);
    //                 instance.setProgress(progress);

    //                 if( progress === 1 ) {
    //                     instance.stop();
    //                     clearInterval(interval);
    //                 }
    //             }, 200);
    //         }
    //     });
    // };

    // Loading button
    var _componentLoadingButton = function() {
        const btnLoadingElement = document.querySelectorAll('.btn-loading');

        if(btnLoadingElement) {  
            btnLoadingElement.forEach(function(button) {
                button.addEventListener('click', function() {
                    const initialText = button.dataset.initialText,
                        loadingText = button.dataset.loadingText;
                    button.innerHTML = loadingText;
                    button.classList.add('disabled');
                    setTimeout(function () {
                        button.innerHTML = initialText;
                        button.classList.remove('disabled');
                    }, 3000);
                });
            });
        }
    };


    //
    // Return objects assigned to module
    //

    return {
        init: function() {
            // _componentLadda();
            _componentLoadingButton();
        }
    }
}();


// Initialize module
// ------------------------------

document.addEventListener('DOMContentLoaded', function() {
    Buttons.init();
});
