/**
 * @fileoverview    function used for page-related settings
 * @name            Page-related settings
 *
 * @requires    jQuery
 * @requires    jQueryUI
 * @required    js/functions.js
 */

function showSettings (selector) {
    var buttons = {
        [Messages.strApply]: {
            text: Messages.strApply,
            class: 'btn btn-primary',
        },
        [Messages.strCancel]: {
            text: Messages.strCancel,
            class: 'btn btn-secondary',
        },
    };

    buttons[Messages.strApply].click = function () {
        $('.config-form').trigger('submit');
    };

    buttons[Messages.strCancel].click = function () {
        $(this).dialog('close');
    };

    // Keeping a clone to restore in case the user cancels the operation
    var $clone = $(selector + ' .page_settings').clone(true);
    $(selector)
        .dialog({
            classes: {
                'ui-dialog-titlebar-close': 'btn-close'
            },
            title: Messages.strPageSettings,
            width: 700,
            minHeight: 250,
            modal: true,
            open: function () {
                $(this).dialog('option', 'maxHeight', $(window).height() - $(this).offset().top);
            },
            close: function () {
                $(selector + ' .page_settings').replaceWith($clone);
            },
            buttons: buttons
        });
}

function showPageSettings () {
    showSettings('#page_settings_modal');
}

function showNaviSettings () {
    showSettings('#pma_navigation_settings');
}

AJAX.registerTeardown('page_settings.js', function () {
    $('#page_settings_icon').css('display', 'none');
    $('#page_settings_icon').off('click');
    $('#pma_navigation_settings_icon').off('click');
});

AJAX.registerOnload('page_settings.js', function () {
    if ($('#page_settings_modal').length) {
        $('#page_settings_icon').css('display', 'inline');
        $('#page_settings_icon').on('click', showPageSettings);
    }
    $('#pma_navigation_settings_icon').on('click', showNaviSettings);
});
