import { Controller } from 'stimulus';
const loader = require("./../components/loader.js");
const helper = require("./../components/helper.js");

/*
 * This is an example Stimulus controller!
 *
 * Any element with a data-controller="default" attribute will cause
 * this controller to be executed. The name "default" comes from the filename:
 * default_controller.js -> "default"
 *
 * Delete this file or adapt it for your use!
 */
export default class extends Controller {
    connect() {
        const alertSystem = this.element;
         
        loader.loadSDK('system').then(function(webSDK) {
            webSDK.on('init', function() {
                runWebSDK(alertSystem, webSDK); 
            });
        })

        if (location.pathname.indexOf('/case-history') != '-1') {
            if (location.hash == '#error') {
                var msg = 'Что то пошло не так, повторите попытку позже.';
                helper.addAlert(msg, alertSystem, 'alert-case-history-error');
            }

            if (location.hash == '#online') {
                var msg = 'При отсутствии оплаты в течение 5 мин. онлайн консультация будет автоматически отменена';
            
                helper.addAlert(msg, alertSystem, 'alert-case-history-online');
            }

            if (location.hash == '#pay-success') {
                var msg = 'Спасибо, оплата прошла успешно.';
            
                helper.addAlert(msg, alertSystem, 'alert-case-history-info', 'alert-success');
            }
            if (location.hash == '#doctor-success') {
                var msg = 'Спасибо, вы успешно записались на прием.';
            
                helper.addAlert(msg, alertSystem, 'alert-case-history-info', 'alert-success');
            }
        }
    
        if (window.location.href.includes("sovamed")) {

            const osa = `Онлайн консультация проводится через личный кабинет, никаких приложений устанавливать не нужно. Рекомендуем изучить <a href="/docs/online.pdf">инструкцию по онлайн консультированию</a> или  <a href="/docs/onlinegos.pdf">инструкцию по онлайн консультированию через Госуслуги</a><br>
            Возврат средств при несостоявшейся консультации производится в разделе приемы – история записей. <a href="/docs/vozvrat.pdf">Инструкция по возврату средств</a>`;
            
            if (window.location.href.includes("onlineMode")) {
                if (alertSystem.dataset.auth === "false") {
                    const onlineSpecialstAlert = `Для онлайн-консультации рекомендуем пройти авторизацию через <a href="/login">Госуслуги</a>.</br> 
                        Если Вы уже были в клинике и у Вас есть логин и пароль, при авторизации Вы можете использовать его. 
                        Ознакомиться с инструкцией по онлайн-консультированию вы можете, пройдя по <a href="/docs/online.pdf">ссылке</a>.
                    `;
                    
                    helper.addAlert(onlineSpecialstAlert, alertSystem, 'alert-online-mode', 'alert-info');
                } else {
                    helper.addAlert(osa, alertSystem, 'alert-online-mode', 'alert-info');
                }
            }
    
            if (window.location.href.includes("/online-specialists")) {         
                helper.addAlert(osa, alertSystem, 'alert-online-mode', 'alert-info');
            }
        }

        if (alertSystem.dataset.auth === "false") {
            if (location.pathname.indexOf('/info') != '-1') {
                var msg = 'Если Вы хотите, чтобы справка была направлена сразу в ФНС, в Ваш кабинет налогоплательщика, то авторизуйтесь через имеющийся логин/пароль или с помощью Госуслуг и заполните данные пациента.';

                helper.addAlert(msg, alertSystem, 'alert-info');
            }

            if (location.pathname.indexOf('/specialist') != '-1' & !window.location.href.includes("onlineMode")) {
                var msg = '* вы можете записать себя или другого человека без авторизации, но при этом запись не сохранится в личном кабинете и отменить/перенести ее в случае необходимости будет возможно только по звонку в колл-центр.';
            
                helper.addAlert(msg, alertSystem, 'alert-not-auth');
            }
        }

        let runWebSDK = function (alertSystem, webSDK) {
            if (alertSystem.dataset.techMaintenance === 'true') {
                var msg = 'Ведутся технические работы, функционал может быть доступен не полностью';
                helper.addAlert(msg, alertSystem, 'alert-warning');
            }

            if (webSDK.data.user.authenticated) {
                const userAllows = webSDK.data.user.allows;

                if (userAllows.caseHistory == false || userAllows.payments == false || userAllows.reservation == false) {
                
                    var msg = 'Ваша учетная запись имеет статус "Неподтвержденная регистрация", запись на прием через портал работает в ограниченном режиме. Вы можете записаться на прием не более одного раза к одному специалисту. Полный доступ на портал Вам будет предоставлен в регистратуре при следующем посещении клиники.';

                    helper.addAlert(msg, alertSystem, 'alert-info');
                }
            }
        }
    }
}
