let bookingProccessName = "Виджет бронирования"; // Название процесса
let bookingProccessBlockIds = [32822270,32822272,32823120]; // Блоки "Указать значение полей"

function initCalendar(form, onlyBooked = 0) {

window.bookingCombineOptions = {

  form: form, 
  bookingCalendar:'booking-calendar',      
  bookingDateField: 'form-control#'+$('.custom-field:contains("booking-date") input').attr('id'),
  bookingTimeField: 'form-control#'+$('.custom-field:contains("booking-time") input').attr('id'),
  bookingParamsField: 'form-control#'+$('.custom-field:contains("booking-params") textarea').attr('id'),
  bookingCalendarIndexField: 'form-control#'+$('.custom-field:contains("booking-cal-index") input').attr('id'),
    
  eventId: "event-1", // Уникальный ID-события
    
  startTime: '0', // Дата (МСК), после которой будут показываться свободные слоты
    
  endTime: '+7d', // Дата (МСК), до которой будут показываться свободные слоты
   
  closedBefore: 60, // Закрыть запись за N минут до начала события.
    
  canReEnroll: 0, // Может записаться повторно на другую дату [1-да,0-нет]
    
  canCancelUntil: 0, // Время в минутах до начала события, в которое отмена невозможна.
    
  showOccupancy: 1, // Показывать заполняемость слотов (работает, если maxCapacity > 1)  [1-да,0-нет]

  onlyBooked: onlyBooked,
  
  delayedMailings: [
    {
      delay: "-1d", 
      mailingId: "16260639","16269236","16269255",
    },
    {
      delay: "-1h", 
      mailingId: "16260783","16269379","16311688",
    },
    {
      delay: "-15m", 
      mailingId: "16260829","16323600","16323592",
    },
    {
      delay: "+90m", 
      mailingId: "16268934","16415681","16415703",
    },
    {
      delay: "cancel", 
      mailingId: "16260858",
    },
  ],

}

window.bookingOptions = [
{
  /* Календарь 0 Жанна Диденко*/

  c: 31723778, // ID-календаря
    
  duration: 60, // Длительность события в минутах. Свободное время будет делиться на слоты равные длительности.
    
  maxCapacity: 1, // Максимальное кол-во регистраций на одно и то же время.
    
  // Рабочие часы (МСК)
  workingHours: JSON.stringify([
    [ // Воскресенье
      { "start": "15:00", "end": "16:00" },
      { "start": "17:00", "end": "18:00" },
      { "start": "19:00", "end": "20:00" },
    ],
    [ // Понедельник
	  { "start": "15:00", "end": "16:00" },
      { "start": "17:00", "end": "18:00" },
      { "start": "19:00", "end": "20:00" },
    ],
    [ // Вторник
      // Выходной
    ],
    [ // Среда
      // Выходной
    ],
    [ // Четверг
      // Выходной
    ],
    [ // Пятница
      { "start": "15:00", "end": "16:00" },
      { "start": "17:00", "end": "18:00" },
      { "start": "19:00", "end": "20:00" },
    ],
    [ // Суббота
      { "start": "15:00", "end": "16:00" },
      { "start": "17:00", "end": "18:00" },
      { "start": "19:00", "end": "20:00" },
    ],
  ]),
},
{
  /* Календарь 1 Наталья Рыбкина*/

  c: 31689450, // ID-календаря
    
  duration: 60, // Длительность события в минутах. Свободное время будет делиться на слоты равные длительности.
    
  maxCapacity: 1, // Максимальное кол-во регистраций на одно и то же время.
    
  // Рабочие часы (МСК)
  workingHours: JSON.stringify([
    [ // Воскресенье
      // Выходной 
    ],
    [ // Понедельник
      { "start": "09:00", "end": "15:00" }
    ],
    [ // Вторник
      { "start": "07:00", "end": "11:00" }
    ],
    [ // Среда
      { "start": "07:00", "end": "08:00" },
      { "start": "10:00", "end": "16:00" }
    ],
    [ // Четверг
      { "start": "09:00", "end": "10:00" },
      { "start": "11:00", "end": "13:00" }
    ],
    [ // Пятница
      // Суббота
      // Выходной
    ],
  ]),
},
    {
  /* Календарь 2 Елена Андросова*/

  c: 3000254, // ID-календаря
    
  duration: 60, // Длительность события в минутах. Свободное время будет делиться на слоты равные длительности.
    
  maxCapacity: 1, // Максимальное кол-во регистраций на одно и то же время.
    
  // Рабочие часы (МСК)
  workingHours: JSON.stringify([
    [ // Воскресенье
      // Выходной 
    ],
    [ // Понедельник
      { "start": "09:00", "end": "15:00" }
    ],
    [ // Вторник
      { "start": "07:00", "end": "11:00" }
    ],
    [ // Среда
      { "start": "07:00", "end": "08:00" },
      { "start": "10:00", "end": "16:00" }
    ],
    [ // Четверг
      { "start": "09:00", "end": "10:00" },
      { "start": "11:00", "end": "13:00" }
    ],
    [ // Пятница
      // Суббота
      // Выходной
    ],
  ]),
}
]

      
/*******************/
/* Стили календаря */
/*******************/
window.bookingStyleOptions = {

  /* Акцентный цвет */
  '--booking-accent-color': '#8f93ff',

  /* Граница основного блока */
  '--booking-frame-border': '1px solid #ddd',
  '--booking-frame-radius': '0',

  /* Фоновой цвет основного блока до загрузки виджета */
  '--booking-frame-background-color': 'var(--booking-background-color)', 
      
  /* Фоновая картинка основного блока до загрузки виджета (прелоадер) */
  // '--booking-frame-background-image': 'url()', 
  
  /* Фон */
  '--booking-background-color': '#fff',
  '--booking-time-slots-background-color': '#f8f8f8',

  /* Шрифт */
  '--booking-font-family': '-apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
  '--booking-font-size': '14px',
  '--booking-color': '#4a4a4a',
  '--booking-color-secondary': '#9c9c9c',
  '--booking-color-disabled': '#aeaeae',
  '--booking-color-current-date': 'var(--booking-accent-color)',

  /* Скругления углов */
  '--booking-cell-border-radius': '20px',

  /* Границы */
  '--booking-border-color-inner': '#efefef',
  '--booking-border-color-inline': '#d7d7d7',

  /* Стили ячеек календаря */
  '--booking-day-cell-width': '1fr',
  '--booking-day-cell-height': '1fr',
  '--booking-cell-background-color-hover': 'var(--booking-background-color-hover)',
  '--booking-cell-background-color-selected': 'var(--booking-accent-color)',
  '--booking-cell-background-color-selected-hover': 'var(--booking-accent-color)',

  /* Стили ячеек календаря находящихся в сосоднем месяце */
  '--booking-background-color-selected-other-month': 'var(--booking-accent-color)',
  '--booking-background-color-selected-other-month-focused': 'var(--booking-accent-color)',
  '--booking-color-other-month': '#dedede',
  '--booking-color-other-month-hover': '#c5c5c5',

  /* Цвет дней недели и подзаголовка временных слотов */
  '--booking-day-name-color': '#494949',
    
  /* Позиционирование ячеек временных слотов */
  '--booking-time-grid-template': 'repeat(auto-fit, minmax(160px, 1fr))',

  /* Отступы между ячейками временных слотов */
  '--booking-time-grid-gap': '12px 12px',

  /* Отступы основных контейнеров заголока и контента*/
  '--booking-padding': '4px',

  /* Высота и оступы заголовка */
  '--booking-nav-height': '62px',
  '--booking-nav-padding-top': '15px',
  '--booking-title-side-padding': '16px',

  /* Цвет года в заголовке */
  '--booking-nav-color-secondary': 'var(--booking-color-secondary)',

  /* Стрелки навигации в заголовке */
  '--booking-background-color-hover': '#f0f0f0',
  '--booking-background-color-active': '#eaeaea',
  '--booking-nav-arrow-color': 'var(--booking-color-secondary)',
  '--booking-nav-action-size': '14.2857143%',
  '--booking-nav-action-height': '32px',
      
};

}     

if(/\/pl\/tasks\/(task\/|kanban\/task-)view/.test(window.location.pathname)) {  
  $( document ).on( "ajaxSuccess", function( event, xhr, settings ) {
    if (/\/pl\/tasks\/(task|kanban)\/task-scripts/.test(settings.url)) { 
  	  setTimeout(()=>{
        let form = "job-widget-form";
        $.each(bookingProccessBlockIds, (i,id)=>{
  		  if($(`.${form}:contains("${id}")`).length) {
  		    initCalendar(form);
            $(`.${form}`).prepend('<div class="booking-calendar"/>');
            $.getScript("/chtm/app/gc-booking-widget/initCombine");
  	  	  }
        });
      });
    }
  });
}

if(/\/sales\/control\/deal\/update\/id\//.test(window.location.pathname)){
  setTimeout(()=>{
    if($(`a[href*="/pl/tasks/task/view?id"]:contains("${bookingProccessName}")`).length) {
       let onlyBooked = 1;
       let form = "page-main-form > .row-margins > .col-md-8";
  	   initCalendar(form, onlyBooked);
       $(`.page-main-form > .row-margins > .col-md-8`).append('<div class="booking-calendar"/>');
       $.getScript("/chtm/app/gc-booking-widget/initCombine");
    }
  });
}