(function () {
    /**
     * Set Modal options
     * @type {{name: string, element: string}}
     */
    const options = {
        name: 'affiliation',
        element: '#modal-affiliation',
    };

    const me = Modals.set(function () {
        function _init() {
            $(document).ready(function () {
                // Open the Affiliation Modal
                $('body').on('click', '.modal-affiliation-open', function () {
                    me.open('affiliation');
                });

                // Close the Affiliation Modal
                $('body').on('click', '#modal-affiliation .modal-close, .modal-affiliation-close', function () {
                    me.close('affiliation');
                    localStorage.setItem('affiliationModalEverViewed', true);
                });

                // When Copy button is clicked
                $('body').on('click', '.modal-affiliation-copy', function () {
                    const link = $(this).data('affiliate');

                    if (LootSDK.isSignedIn() !== false && link !== '') {
                        let $temp = $("<input>");
                        $('body').append($temp);
                        $temp.val($(this).data('affiliate')).select();
                        document.execCommand('copy');
                        $temp.remove();

                        $(this).removeClass('is-primary').addClass('is-success')
                            .html('<i class="fas fa-check fa-fw"></i>&nbspLink copied to the clipboard !');

                        setTimeout(function () {
                            console.log('test');
                            $('.modal-affiliation-copy').removeClass('is-success').addClass('is-primary').html('Copy Referral Link');
                        }, 1500);
                    } else {
                        LootSDK.signIn();
                    }
                });
            });
        }

        _init();

        return {
            onOpen: function () {
                //
            },
            onClose: function () {
                //
            },
        };
    }, options);
})();
