function supply_import(form) {
    if (form == undefined) {
        form = {
            '_csrf': yii.getCsrfToken()
        };
    } else {
        form = new FormData(form);
    }

    $.ajax({
        url: '/profile/import',
        type: 'post',
        dataType: 'json',
        data: form,
        processData: false,
        contentType: false,
        success:  page_profile_response_success,
        error: page_profile_response_error
    });
};

function page_profile_settings(form) {
    if (form == undefined) {
        form = {
            '_csrf': yii.getCsrfToken()
        };
    } else {
        form = $(form).serialize();
    }

    $.ajax({
        url: '/profile',
        type: 'post',
        dataType: 'json',
        data: form,
        success:  page_profile_response_success,
        error: page_profile_response_error
    });
}

function page_profile_monitoring(change = 1) {
    // Инициализация
    url = new URL(document.location);
    search = url.searchParams.get('search');

    if (search == undefined) {
        search = 1;
    }

    $.ajax({
        url: '/profile/monitoring',
        type: 'post',
        dataType: 'json',
        data: {
            '_csrf': yii.getCsrfToken(),
            'search': +search + change
        },
        success: function (data) {
            // Запись параметра в URL
            url.searchParams.set('search', data.search);
            history.pushState('', document.title, url.toString());

            if (data.main !== undefined) {
                // Обновление документа
                document.getElementsByTagName('main')[0].innerHTML = data.main;
            }
            if (data._csrf !== undefined) {
                $('meta[name=csrf-token]').prop("content", data._csrf);
            }

            return false;
        },
        error: function (data) {
            if (data.responseJSON.main !== undefined) {
                // Обновление документа
                document.getElementsByTagName('main')[0].innerHTML = data.responseJSON.main;
            }
            if (data.responseJSON._csrf !== undefined) {
                // Обновление документа
                $('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
            }

            return true;
        }
    });

    return true;
};

function page_profile_response_success(data, status) {
    if (data.main !== undefined) {
        main = document.getElementsByTagName('main')[0];

        // Обновление документа
        main.innerHTML = data.main;

        // Реинициализация
        reinitialization(main);
    }
    if (data.redirect !== undefined) {
        // Перенаправление
        history.pushState({}, document.title, data.redirect);
    }
    if (data._csrf !== undefined) {
        // Обновление документа
        $('meta[name=csrf-token]').prop("content", data._csrf);
    }
};

function page_profile_response_error(data, status) {
    if (data.responseJSON.main !== undefined) {
        main = document.getElementsByTagName('main')[0];

        // Обновление окна результатов поиска
        main.innerHTML = data.main;

        // Реинициализация
        reinitialization(main);
    }
    if (data.responseJSON._csrf !== undefined) {
        // Обновление документа
        $('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
    }
};