Нужна помощь? Звоните:

+375447898080

г. Полоцк, ул. Шенягина, 54

Пн-Пт 8:00-23:00

Сб-Вс 9:00-22:00

SOFIT CLUB

gallery/imgonline-com-ua-transparent-backgr-emuzbyniqfx86

ЗАКАЗАТЬ ОБРАТНЫЙ ЗВОНОК:

Подсказка
Любой возраст
  • Любой возраст
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
Все направления
  • Все направления
  • CrossFit kids
  • CROSS-Fit/тренаж.зал/
  • Dream
  • Electro dance
  • Pro jumping
  • SD BABY концертный состав
  • SD BABY новички 2
  • SD BABY основные
  • SD старшие основные
  • SD старшие, концертый состав
  • Zumba
  • Аэростретчинг
  • Восточные танцы
  • Гимнастика (4-6 лет)
  • Гимнастика (7-9 лет)
  • Детский фитнес
  • Единоборства
  • Идеальное тело
  • Йога
  • Матрешки
  • ОФП(5-8 лет)
  • Пилатес
  • Современные танцы 18+
  • Тренаж. зал+crossfit
  • Тренаж.зал
  • Фитнес
  • Чирлидинг
Все залы
  • Все залы
  • BROWN HALL
  • CROSSFIT
  • LIME HALL
  • MALDIVES HALL
  • ORANGE HALL
  • SAPFIR HALL
  • ТРЕНАЖЁРНЫЙ ЗАЛ
- идет набор в группу
- набор в группу закрыт

LIME HALL

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 09:00-10:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 09:00-10:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 09:00-10:00
10:00
11:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 11:00-12:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 11:00-12:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 11:00-12:00
  • ОФП(5-8 ЛЕТ)
  • Стасев И. А.
  • 11:00-12:00, 5-8
  • ОФП(5-8 ЛЕТ)
  • Стасев И. А.
  • 11:00-12:00, 5-8
12:00
  • SD BABY НОВИЧКИ 2
  • Юренко У. А.
  • 12:10-13:10, 5-9
  • SD BABY НОВИЧКИ 2
  • Юренко У. А.
  • 12:10-13:10, 5-9
13:00
  • ELECTRO DANCE
  • Войтов Д. В.
  • 13:30-14:30, 7-17
14:00
15:00
  • ВОСТОЧНЫЕ ТАНЦЫ
  • Гончарова С. В.
  • 15:00-16:00
  • ВОСТОЧНЫЕ ТАНЦЫ
  • Гончарова С. В.
  • 15:00-16:00
16:00
  • SD СТАРШИЕ, КОНЦЕРТЫЙ СОСТАВ
  • Ракова И. В.
  • 16:00-17:00, 9-12
  • SD СТАРШИЕ, КОНЦЕРТЫЙ СОСТАВ
  • Ракова И. В.
  • 16:00-17:00, 9-12
17:00
  • SD СТАРШИЕ ОСНОВНЫЕ
  • Ракова И. В.
  • 17:00-18:00, 13-17
  • SD СТАРШИЕ, КОНЦЕРТЫЙ СОСТАВ
  • Ракова И. В.
  • 17:00-18:00, 10-16
  • SD СТАРШИЕ ОСНОВНЫЕ
  • Ракова И. В.
  • 17:00-18:00, 13-17
  • SD СТАРШИЕ, КОНЦЕРТЫЙ СОСТАВ
  • Ракова И. В.
  • 17:00-18:00, 10-16
  • SD СТАРШИЕ ОСНОВНЫЕ
  • Ракова И. В.
  • 17:00-18:00, 13-17
  • ФИТНЕС
  • Чаусова О. Л.
  • 17:00-18:00
18:00
  • SD BABY ОСНОВНЫЕ
  • Ракова И. В.
  • 18:00-19:00, 5-9
  • SD BABY КОНЦЕРТНЫЙ СОСТАВ
  • Ракова И. В.
  • 18:00-19:00, 5-9
  • SD BABY ОСНОВНЫЕ
  • Ракова И. В.
  • 18:00-19:00, 5-9
  • SD BABY КОНЦЕРТНЫЙ СОСТАВ
  • Ракова И. В.
  • 18:00-19:00, 5-9
  • SD BABY ОСНОВНЫЕ
  • Ракова И. В.
  • 18:00-19:00, 5-9
19:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 19:00-20:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 19:00-20:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 19:00-20:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 19:00-20:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 19:00-20:00
20:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 20:00-21:00
  • ПИЛАТЕС
  • Катушонок Н. П.
  • 20:00-21:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 20:00-21:00
  • ПИЛАТЕС
  • Катушонок Н. П.
  • 20:00-21:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 20:00-21:00
21:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 21:00-22:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 21:00-22:00
  • ФИТНЕС
  • Катушонок Н. П.
  • 21:00-22:00
22:00

BROWN HALL

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
10:00
11:00
12:00
  • СОВРЕМЕННЫЕ ТАНЦЫ 18+
  • Петроченко В.
  • 12:00-13:00
  • ЧИРЛИДИНГ
  • Костюченко Т. В.
  • 12:00-13:00
13:00
14:00
15:00
16:00
17:00
  • ЧИРЛИДИНГ
  • Костюченко Т. В.
  • 17:00-18:00
18:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 18:00-19:00
  • ДЕТСКИЙ ФИТНЕС
  • Беседина Е. А.
  • 18:00-19:00, от 5-11
  • ФИТНЕС
  • Левашкевич С. А.
  • 18:00-19:00
  • ДЕТСКИЙ ФИТНЕС
  • Беседина Е. А.
  • 18:00-19:00, от 5-11
  • ФИТНЕС
  • Левашкевич С. А.
  • 18:00-19:00
19:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 19:00-20:00
  • ДЕТСКИЙ ФИТНЕС
  • Беседина Е. А.
  • 19:00-20:00, от 5-11
  • ФИТНЕС
  • Левашкевич С. А.
  • 19:00-20:00
  • ДЕТСКИЙ ФИТНЕС
  • Беседина Е. А.
  • 19:00-20:00, от 5-11
  • ФИТНЕС
  • Левашкевич С. А.
  • 19:00-20:00
20:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 20:00-21:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 20:00-21:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 20:00-21:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 20:00-21:00
  • ФИТНЕС
  • Левашкевич С. А.
  • 20:00-21:00
21:00
22:00

ORANGE HALL

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
10:00
11:00
  • ГИМНАСТИКА (4-6 ЛЕТ)
  • Юренко У. А.
  • 11:00-12:00
  • ГИМНАСТИКА (4-6 ЛЕТ)
  • Юренко У. А.
  • 11:00-12:00
12:00
  • ГИМНАСТИКА (7-9 ЛЕТ)
  • Беседина Е. А.
  • 12:00-13:00
  • ГИМНАСТИКА (7-9 ЛЕТ)
  • Беседина Е. А.
  • 12:00-13:00
13:00
14:00
15:00
16:00
17:00
18:00
  • ГИМНАСТИКА (4-6 ЛЕТ)
  • Смородина Н. А.
  • 18:00-19:00
  • ГИМНАСТИКА (4-6 ЛЕТ)
  • Смородина Н. А.
  • 18:00-19:00
  • ГИМНАСТИКА (4-6 ЛЕТ)
  • Смородина Н. А.
  • 18:00-19:00
19:00
  • ЙОГА
  • Тетерук Е. Е.
  • 19:00-20:00
  • МАТРЕШКИ
  • Катушонок Н. П.
  • 19:00-20:00
  • ЙОГА
  • Тетерук Е. Е.
  • 19:00-20:00
  • МАТРЕШКИ
  • Катушонок Н. П.
  • 19:00-20:00
  • ЙОГА
  • Тетерук Е. Е.
  • 19:00-20:00
20:00
  • ЙОГА
  • Тетерук Е. Е.
  • 20:00-21:00
  • ZUMBA
  • Гончарова С. В.
  • 20:00-21:00
  • ЙОГА
  • Тетерук Е. Е.
  • 20:00-21:00
  • ZUMBA
  • Гончарова С. В.
  • 20:00-21:00
  • ЙОГА
  • Тетерук Е. Е.
  • 20:00-21:00
21:00
  • СОВРЕМЕННЫЕ ТАНЦЫ 18+
  • Петроченко В.
  • 21:00-22:00
  • СОВРЕМЕННЫЕ ТАНЦЫ 18+
  • Петроченко В.
  • 21:00-22:00
22:00

SAPFIR HALL

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
10:00
11:00
12:00
  • ЧИРЛИДИНГ
  • Костюченко Т. В.
  • 12:00-13:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
  • ИДЕАЛЬНОЕ ТЕЛО
  • Смородина Н. А., Бережкова Т. В.
  • 19:00-20:00
  • ИДЕАЛЬНОЕ ТЕЛО
  • Смородина Н. А., Бережкова Т. В.
  • 19:00-20:00
  • ИДЕАЛЬНОЕ ТЕЛО
  • Смородина Н. А., Бережкова Т. В.
  • 19:00-20:00
20:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 20:00-21:00
  • ФИТНЕС
  • Чаусова О. Л.
  • 20:00-21:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 20:00-21:00
  • ФИТНЕС
  • Чаусова О. Л.
  • 20:00-21:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 20:00-21:00
21:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 21:00-22:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 21:00-22:00
  • АЭРОСТРЕТЧИНГ
  • Смородина Н. А.
  • 21:00-22:00
22:00

MALDIVES HALL

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
  • ФИТНЕС
  • Чаусова О. Л.
  • 18:00-19:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 18:00-19:00
  • ФИТНЕС
  • Чаусова О. Л.
  • 18:00-19:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 18:00-19:00
  • ФИТНЕС
  • Чаусова О. Л.
  • 18:00-19:00
19:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 19:00-20:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 19:00-20:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 19:00-20:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 19:00-20:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 19:00-20:00
20:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 20:00-21:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 20:00-21:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 20:00-21:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 20:00-21:00
  • PRO JUMPING
  • Авдочёнок О. О.
  • 20:00-21:00
21:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 21:00-22:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 21:00-22:00
  • ФИТНЕС
  • Бережкова Т. В.
  • 21:00-22:00
22:00

ТРЕНАЖЁРНЫЙ ЗАЛ

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
  • ТРЕНАЖ.ЗАЛ
  • 08:00-23:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00

CROSSFIT

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-10:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-10:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-10:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-10:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-10:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-15:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 08:00-15:00
09:00
10:00
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 10:00-11:00, c 18 лет
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 10:00-11:00, 12-14
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 10:00-11:00, c 18 лет
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 10:00-11:00, 12-14
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 10:00-11:00, c 18 лет
11:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 11:00-15:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 11:00-15:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 11:00-15:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 11:00-15:00
  • ТРЕНАЖ. ЗАЛ+CROSSFIT
  • 11:00-15:00
12:00
13:00
14:00
15:00
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 15:00-16:00, 10-17 лет
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 15:00-16:00, 10-17 лет
16:00
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 16:00-17:00, 12-14 мальчики
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 16:00-17:00, 12-14 девочки
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 16:00-17:00, 12-14 мальчики
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 16:00-17:00, 12-14 девочки
17:00
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 17:00-18:00, 5+
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 17:00-18:00, 14-16
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 17:00-18:00, 5+
  • CROSSFIT KIDS
  • Свирский А. Г.
  • 17:00-18:00, 14-16
18:00
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 18:00-19:00, до 9 лет
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 18:00-19:00, до 9 лет
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 18:00-19:00, до 9 лет
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 18:00-19:00, до 9 лет
  • DREAM
  • Бережкова Т. В., Могилев Н. Н.
  • 18:00-19:00, 18+
19:00
  • CROSS-FIT/ТРЕНАЖ.ЗАЛ/
  • Могилев Н. Н.
  • 19:00-20:00, 18-40
  • CROSS-FIT/ТРЕНАЖ.ЗАЛ/
  • Могилев Н. Н.
  • 19:00-20:00, 18-40
  • ЕДИНОБОРСТВА
  • Гурченок С. В.
  • 19:00-20:00, до 9 лет
  • CROSS-FIT/ТРЕНАЖ.ЗАЛ/
  • Могилев Н. Н.
  • 19:00-20:00, 18-40
20:00
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 20:00-21:00, с 18 лет
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 20:00-21:00, с 18 лет
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 20:00-21:00, с 18 лет
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 20:00-21:00, с 18 лет
  • DREAM
  • Могилев Н. Н., Бережкова Т. В.
  • 20:00-21:00, с 18 лет
21:00
22:00

ОКТАГОН

ПОНЕДЕЛЬНИК ВТОРНИК СРЕДА ЧЕТВЕРГ ПЯТНИЦА СУББОТА ВОСКРЕСЕНЬЕ
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
Любой возраст
  • Любой возраст
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
Все направления
  • Все направления
  • CrossFit kids
  • CROSS-Fit/тренаж.зал/
  • Dream
  • Electro dance
  • Pro jumping
  • SD BABY концертный состав
  • SD BABY новички 2
  • SD BABY основные
  • SD старшие основные
  • SD старшие, концертый состав
  • Zumba
  • Аэростретчинг
  • Восточные танцы
  • Гимнастика (4-6 лет)
  • Гимнастика (7-9 лет)
  • Детский фитнес
  • Единоборства
  • Идеальное тело
  • Йога
  • Матрешки
  • ОФП(5-8 лет)
  • Пилатес
  • Современные танцы 18+
  • Тренаж. зал+crossfit
  • Тренаж.зал
  • Фитнес
  • Чирлидинг
Все залы
  • Все залы
  • BROWN HALL
  • CROSSFIT
  • LIME HALL
  • MALDIVES HALL
  • ORANGE HALL
  • SAPFIR HALL
  • ТРЕНАЖЁРНЫЙ ЗАЛ
- идет набор в группу
- набор в группу закрыт
"); /// Показываем окно сообщения msgWin.dialog({ title: title, width: '280px', maxHeight: window.innerHeight, maxWidth: window.innerWidth, modal: true, open: function (event, ui) { $(this).closest('.ui-dialog').css({ 'top': offset }); }, buttons: [{ text: 'ОК', click: function () { msgWin.dialog('close'); } }] }); } function groupEnter(obj) { var elms = d.querySelectorAll('[group_id="' + obj.attributes.group_id.value + '"]'); for (var ii = 0; ii 700) text = text.substr(0, 700 - 3) + '...'; tipObj.innerHTML = text; op = 0.1; tipObj.style.opacity = op; tipObj.style.visibility = 'visible'; /// Настроим расположение на экране подсказки var winWidth = ie ? ietruebody().clientWidth : window.innerWidth; var winHeight = ie ? ietruebody().clientHeight : window.innerHeight; var rect = obj.getBoundingClientRect(); tipObj.style.left = rect.right + 2 + 'px'; if (tipObj.offsetLeft + tipObj.offsetWidth > winWidth) tipObj.style.left = rect.left - tipObj.offsetWidth - 2 + 'px'; tipObj.style.top = rect.top - 10 + 'px'; if (tipObj.offsetTop + tipObj.offsetHeight > winHeight) tipObj.style.top = winHeight - tipObj.offsetHeight - 50 + 'px'; appear(); } function mainTextLeave(obj) { tipObj = d.getElementsByClassName('tooltip_DS')[0]; tipObj.style.visibility = 'hidden'; obj.onmousemove = ''; } function ietruebody() { return (d.compatMode && d.compatMode != 'BackCompat') ? d.documentElement : d.body; } function appear() { if (op -1) { textElm.style.borderColor = 'transparent'; admissionLegendSelected.splice(selected, 1); } else { textElm.style.borderColor = 'gray'; admissionLegendSelected.push(index); } updateFilters(); } function admissionLegendEnter(index) { var rect = d.getElementById(index == 0 ? 'admissionActiveRect' : 'admissionStopRect'); rect.style.visibility = 'visible'; } function admissionLegendLeave(index) { var rect = d.getElementById(index == 0 ? 'admissionActiveRect' : 'admissionStopRect'); rect.style.visibility = 'hidden'; } function listHeaderClick(listHeader) { content = listHeader.parentElement.children[1]; var oldDisplay = content.style.display; setTimeout(function () { content.style.display = oldDisplay ? '' : 'block'; content.style.width = listHeader.clientWidth + 'px'; }, 10); } function listItemClick(event, list) { var item = getEventTarget(event); if (item.className == 'combo_disabled_item_DS' || !item.attributes.id) return; list.style.display = ''; var listHeader = list.previousElementSibling.rows[0].cells[0].children[0]; listHeader.innerHTML = item.innerHTML; listHeader.setAttribute('id', item.attributes.id.value); updateFilters(); } function mobileDayHeaderClick(listHeader) { var items = listHeader.parentElement.querySelectorAll('li'); var action = 'show'; /// Пройдем по занятиям текущей недели for (var jj = 0; jj 2) return true; var ageBegin = -999, ageEnd = 999; /// Указан период возраста if (digits.length == 2) { ageBegin = digits[0]; ageEnd = digits[1]; } else { /// Указано либо начало возраста, либо окончание if (ageText.indexOf('до') > -1) ageEnd = digits[0]; else ageBegin = digits[0]; } /// Возраст подходит if (parseInt(ageBegin) -1 && item.attributes.group_status.value -1 && item.attributes.group_status.value > 1) continue; } removeCell(table, row, cell); } } } } function activateMobileStyle(styleId) { /// Если выбраны все стили, то ничего не фильтруем if (!styleId) return; var headers = d.getElementsByClassName('table_header_DS'); for (var ii = 0; ii -1 && item.attributes.group_status.value -1 && item.attributes.group_status.value > 1) continue; } item.style.display = 'none'; } } } function cellClick(cell) { var style = cell.attributes.style_str.value; var time = cell.attributes.time.value; var date = cell.attributes.date.value; var teacher = cell.attributes.teacher.value; var group = cell.attributes.group_id ? cell.attributes.group_id.value : ''; var status = cell.attributes.group_status ? cell.attributes.group_status.value : ''; var freePlace = cell.attributes.free_place ? cell.attributes.free_place.value : ''; var age = cell.attributes.age.value; ; } function removeCell(table, row, cell) { var nextRow = row; var item = cell.firstElementChild; var day = item.attributes.day.value; var rowSpan = cell.parentElement && cell.parentElement.nextElementSibling ? cell.rowSpan : 1; for (var ii = 0; ii day) { newCellIndex = jj; break; } } var insertIndex = nextRow.cells.length > 0 ? Math.max(newCellIndex, 1) : 0; var newCell = nextRow.insertCell(insertIndex); newCell.setAttribute('class', 'td_DS'); newCell.setAttribute('tmp', 'true'); if (table.rows.length = monday && now 0) continue; if (typeof dbx === 'undefined') { var str = 'Настройте Dropbox-приложение по инструкции интеграции расписания и повторно сделайте выгрузку из конструктора расписания.'; showMsg('Внимание', str, 100); return; } /// Показываем окно загрузки showPreloader(isMobileMode() ? d.firstChild.clientHeight - 500 : 200); /// Считываем файл недели dbx.filesDownload({ path: '/Schedule/' + (isMobileMode() ? 'mobile' : '') + 'week' + selectedWeekIndex + '.html' }) .then(function (response) { var reader = new FileReader(); reader.onload = function () { closePreloader(); tab.outerHTML = reader.result; updateFilters(); }; reader.readAsText(response.fileBlob); }) .catch(function (error) { console.log('Ошибка при скачивании недели. ' + error); }); return true; } return false; } function mobileHideOldItems() { var tables = d.getElementsByClassName('list_DS'); var today = new Date(); today.setHours(0, 0, 0, 0); /// Пройдем по всем табличкам for (var ii = 0; ii 0 && row.cells[0].attributes.class.value == 'td_time_DS'; if (isHourBegin) { /// Начало часа hourRows = []; hourRowEmptyCellsCount = 0; } hourRows.push(row); /// Пройдем по всем ячейкам строки и посчитаем кол-во пустых for (var jj = isHourBegin ? 1 : 0; jj 0 && table.rows[ii + 1].cells[0].attributes.class.value == 'td_time_DS') if (isHourEnd && hourRowEmptyCellsCount == 7 * hourRows.length) { /// Скрываем все строки часа for (var kk = 0; kk ' + date + ' ' + time.slice(0, 5) + '' + group + ''; for (var ll = 0; ll 0) occupiedPlaceCount--; else occupiedPlaceCount++; } } place -= occupiedPlaceCount; if (place > 0) div.innerHTML = "
свободно мест: " + place + "
"; else div.innerHTML = "
нет свободных мест
"; } } } function updateMobileItemPlaces(requireSummary) { if (requireSummary && summary.length == 0) return; var lines = summary.split('\n'); var headers = d.getElementsByClassName('table_header_DS'); /// Пройдем по всем залам и отобразим все дни и занятия for (var ii = 0; ii ' + date + ' ' + time.slice(0, 5) + '' + group + ''; for (var ll = 0; ll 0) occupiedPlaceCount--; else occupiedPlaceCount++; } } place -= occupiedPlaceCount; if (place > 0) div.innerHTML = nonPlaceIndex нет свободных мест"; } } /// Удалим все пустые залы clearMobileEmptyHalls(); } function updateResItemHightlights() { if (!$.cookie) return; var resItems = $.cookie('ds_res_items'); if (!resItems) return; resItems = resItems.split('|'); /// Проверяем: есть ли отписи в ЛК var lkUndescItems = $.cookie('ds_undesc_lk_items'); if (lkUndescItems) { for (var ii = resItems.length - 1; ii >= 0; --ii) { var rItem = resItems[ii]; if (rItem.length = 0) resItems.splice(ii, 1); } } var cells = d.querySelectorAll('td[class="td_DS"]'); for (var ii = 0; ii = 0; --ii) { var rItem = resItems[ii]; if (rItem.length = 0) resItems.splice(ii, 1); } } var headers = d.getElementsByClassName('table_header_DS'); /// Пройдем по всем залам и отобразим все дни и занятия for (var ii = 0; ii -1) continue; if (style_id && cell.attributes.style_id && cell.attributes.style_id.value != style_id) continue; if (age && cell.attributes.age && !isAgeBelong(age, cell.attributes.age.value)) continue; groupIDs.push(groupID); count++; } } } return count; } function getMobileGroupsCount(style_id, hall_id, age) { var count = 0; var groupIDs = []; var headers = d.getElementsByClassName('table_header_DS'); /// Пройдем по всем залам for (var ii = 0; ii -1) continue; if (style_id && item.attributes.style_id && item.attributes.style_id.value != style_id) continue; if (age && item.attributes.age && !isAgeBelong(age, item.attributes.age.value)) continue; groupIDs.push(groupID); count++; } } return count; } function updateComboGrayItems() { var hallComboHeader = d.querySelectorAll('div[tag="hall"]')[0]; var styleComboHeader = d.querySelectorAll('div[tag="style"]')[0]; var ageComboHeader = d.querySelectorAll('div[tag="age"]')[0]; if (!styleComboHeader.attributes.id.value) { var comboList = styleComboHeader.parentElement.parentElement.parentElement.parentElement.nextElementSibling; for (var ii = 0; ii = 1024) return false; return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); } }; function isMobileMode() { return d.getElementsByClassName('section_default_DS')[0].style.display == 'none'; } function updateFilters(fullForce, mobileForce, init) { var mb = init ? isMobile.any() : (isMobileMode() && !fullForce && !mobileForce); /// Если переключили вид расписания, то иногда нужно подгружать неделю if (fullForce || mobileForce) setTimeout(function() { updateFilters(); }, 100); /// Просмотр с мобильного устройства if (mobileForce || (mb && !fullForce)) { if (!sectionFullInnerHTML) sectionFullInnerHTML = d.getElementsByClassName('section_default_DS')[0].innerHTML; d.getElementsByClassName('section_default_DS')[0].style.display = 'none'; d.getElementsByClassName('section_default_DS')[0].innerHTML = ''; d.getElementsByClassName('section_mobile_DS')[0].style.display = 'inline-block'; if (sectionMobileInnerHTML && (fullForce || mobileForce)) d.getElementsByClassName('section_mobile_DS')[0].innerHTML = sectionMobileInnerHTML; /// При необходимости подгрузим неделю if (uploadCurrentWeekIfNeed()) return; var hallComboHeader = d.querySelectorAll('div[tag="hall"]')[0]; var styleComboHeader = d.querySelectorAll('div[tag="style"]')[0]; var ageComboHeader = d.querySelectorAll('div[tag="age"]')[0]; /// Восстановить все занятия recoverMobileHalls(); /// Обновляем кол-во свободных мест из файла сводки updateMobileItemPlaces(true); /// Обновляем подсветку записей updateMobileResItemHightlights(); /// Применяем все фильтры по очереди activateHall(hallComboHeader.attributes.id.value); activateMobileAge(parseInt(ageComboHeader.attributes.id.value)); activateMobileStyle(styleComboHeader.attributes.id.value); activateMobileStatus(); /// Удалим все пустые залы clearMobileEmptyHalls(); /// Обновим лэйбл количества групп d.getElementById('groupCountLabel').innerHTML = 'Количество групп: ' + getMobileGroupsCount(); /// Обновим содержимое комбиков updateComboGrayItems(); return; } /// Просмотр с компьютера if (!sectionMobileInnerHTML) sectionMobileInnerHTML = d.getElementsByClassName('section_mobile_DS')[0].innerHTML; d.getElementsByClassName('section_default_DS')[0].style.display = 'inline-block'; d.getElementsByClassName('section_mobile_DS')[0].style.display = 'none'; d.getElementsByClassName('section_mobile_DS')[0].innerHTML = ''; if (sectionFullInnerHTML && (fullForce || mobileForce)) d.getElementsByClassName('section_default_DS')[0].innerHTML = sectionFullInnerHTML; /// При необходимости подгрузим неделю if (uploadCurrentWeekIfNeed()) return; var tables = d.getElementsByClassName('table_DS'); var hallComboHeader = d.querySelectorAll('div[tag="hall"]')[0]; var styleComboHeader = d.querySelectorAll('div[tag="style"]')[0]; var ageComboHeader = d.querySelectorAll('div[tag="age"]')[0]; /// Восстановить все занятия recoverHalls(); /// Обновляем кол-во свободных мест из файла сводки updateItemPlaces(); /// Обновляем подсветку записей updateResItemHightlights(); /// Применяем все фильтры по очереди activateHall(hallComboHeader.attributes.id.value); activateAge(parseInt(ageComboHeader.attributes.id.value)); activateStyle(styleComboHeader.attributes.id.value); activateStatus(); /// Пройдем по всем залам и удалим пустые строки for (var ii = 0; ii