PageSourceSearch

https://et-cetera.ru/_js/functions.js?178903615478100

js et-cetera.ru collected 2026-10-02 10:38:25 UTC 78,100 bytes, 1,721 lines download raw bytes

1$(document).ready(function() {
2
3
4    /* Header menu*/
5    $('.nav li').find('ul:first').hide();
6    $('.nav li').hover(function() {
7        $(this).find('ul:first').fadeIn();
8    }, function() {
9        $(this).find('ul:first').hide();
10    });
11
12    $('.shadow').css('height', $(document).height());
13
14    /*
15        $(".perfomanceBlock").click(function() {
16
17                    var perfomance_id = $(this).data('id');
18                    var top = $(window).scrollTop();
19                    $('.popup[data-id="' + perfomance_id + '"]').css({top: top - 400});
20                    $('.shadow,.popup[data-id="' + perfomance_id + '"]').fadeIn();
21
22        });
23    */
24    $('.shadow').click(function() {
25        $('.shadow, .popup').fadeOut();
26        $('.abonPopup').animate({
27            top: -300,
28            opacity: 0,
29        }, 200);
30    });
31
32    $('.abonementsLinks').click(function() {
33        $('.shadow').fadeIn();
34        $('.abonPopup').css('display', 'block').animate({
35            top: -150,
36            opacity: 1,
37        }, 500);
38
39        $('html, body').animate({
40            scrollTop: 230,
41        }, 500);
42        return false;
43    });
44
45    $('.comment-panel').click(function() {
46        $('.shadow').fadeIn();
47        $('.popup_comment').css('display', 'block').animate({
48            top: 0,
49            opacity: 1,
50        }, 500);
51
52        $('html, body').animate({
53            scrollTop: 300,
54        }, 500);
55        return false;
56    });
57
58    $('.forAudience form a').click(function() {
59        var ch = false;
60        if ($('#name').val() === '') {
61            $('#name').addClass('error');
62            ch = true;
63        }
64        if ($('#email').val() === '') {
65            $('#email').addClass('error');
66            ch = true;
67        }
68        if ($('#message').val() === '') {
69            $('#message').addClass('error');
70            ch = true;
71        }
72        if (ch) {
73            return false;
74        }
75    });
76    $('.forAudience form input, .forAudience form textarea').click(function() {
77        $(this).removeClass('error');
78    });
79
80    if ($('.photoGallery').length > 0) {
81        $('.photoGallery a').fancybox();
82    }
83    if ($('.promoRoll').length > 0) {
84        $('.promoRoll').fancybox();
85    }
86
87    // Всплывающее окно АКТЕРЫ
88    $('body').on('click', '.actors', function() {
89        // $(".actors").click( function() {
90        var _id = $(this).attr('data-perfomans-id');
91        var _date = $(this).attr('data-date');
92        console.log('_id ' + _id);
93        console.log('_date ' + _date);
94        // $("body").on("click", ".actors", function() {
95        //    var _id = $('.slide.active').attr("data-perfomans-id");
96        //    var _date = $('.calendar .day.has_action.active').attr("data-date");
97        GetActorsByPerfomanceID(_id, _date);
98        //
99        var top = $(window).scrollTop();
100        // $('.popup_actors').css({
101        //    top: top + 200
102        // });
103        //
104    });
105
106    // Всплывающее окно Подписка на новости театра
107    $('body').on('click', '.mailingLabel', function() {
108        $('.shadow').fadeIn();
109        $('.popup_mailing').fadeIn();
110        var top = $(window).scrollTop();
111    });
112
113    // Всплывающее окно АНКЕТА
114    $('body').on('click', '.questionnaireLabel', function() {
115        $('.shadow').fadeIn();
116        $('.popup_questionnaire').fadeIn();
117        var top = $(window).scrollTop();
118    });
119
120    // Всплывающее окно Актерские составы прошлых лет
121    $('body').on('click', '.previously-cast', function() {
122        var _id = $(this).attr('data-performance-id');
123        getPreviouslyFullCast(_id);
124        $('html, body').animate({
125            scrollTop: 300,
126        }, 500);
127    });
128
129    // Всплывающее окно Новые правила продажи театральных билетов
130    $('body').on('click', '.newRulesOfSales', function() {
131
132        var data = 'Уважаемые зрители!<br>'
133            +'<br><br>'
134 +'С 15 марта 2025 года вводится новое правило посещения спектаклей по именным билетам на основании постановления Правительства Москвы от 20 ноября 2024 г. № 2638-ПП.'
135 +'<br><br>'
136+'Продажа билетов на спектакли, проводимые с 15 марта 2025 года, а также их посещение осуществляется на основании доÐ
136ºÑƒÐ¼ÐµÐ½Ñ‚ов, удостоверяющих личность.'
137+'<br><br>'
138 +'Обращаем внимание на то, что пройти по купленному билету может только тот зритель, чьи данные указаны при покупке билета.'
139+'<br><br>'
140 +'При посещении спектакля каждому зрителю необходимо иметь при себе документ, удостоверяющий личность.'
141+'<br><br>'
142 +'<a href="https://et-cetera.ru/upload/medialibrary/documents/Приложение%20к%20приказу%20№%2012-ОД-25.pdf" target="_blank">Новые правила покупки билетов</a>';
143
144//            +'С 1 июля 2019 года по закону 54-ФЗ мы обязаны выдавать вам кассовый чек вместе с билетом.<br>'
145//            +'А вы должны сохранять чек и билет до конца спектакля.<br>'
146//            +'<br>'
147//            +'На электронные билеты закон не распространяется, и их по-прежнему можно показывать с экрана телефона.';
148        $('.popup_newRulesOfSales').empty().html(data);
149        $('.shadow, .popup.popup_newRulesOfSales').fadeIn();
150
151    });
152$('.newRulesOfSales').click();
153	
154    // Всплывающее окно Новые правила продажи театральных билетов COVID
155    $('body').on('click', '.newRulesOfSalesCOVID', function() {
156
157        var data = 'Уважаемые зрители!'
158
159		+'<br><br>'
160
161		+'<b>Обращаем ваше внимание, что с 28 октября посещение спектаклей возможно только при предъявлении на входе действующего QR-кода (оформленного в соответствии с указом Мэра Москвы от 8 июня 2020 г №68-УМ) и паспорта.</b>'
162		+'<br><br>'
163		+'<b>Лица, не достигшие 18 лет, допускаются на спектакли без QR-кода при наличии средств индивидуальной защиты (масок или респираторов).</b>'
164		+'<br><br>'
165		+'QR-код можно получить:<br>'
166		+' - после вакцинации,<br>'
167		+' - сделав ПЦР-тест (действует 72 часа),<br>'
168		+' - после недавно перенесенного заболевания COVID-19 (действует в течение 6 месяцев с даты выздоровления).<br>'
169		+'<br>'
170		+'Если вы не успеваете получить QR-код до запланированного похода в театр, то билет можно вернуть по месту приобретения.'
171		+'<br>'
172
173
174
175		//+'<br><br>'
176		//+'В связи с распоряжением Департамента культуры города Москвы (приказ 438ОД от 3.08.2020) информируем вас о правилах посещения театра, направленных на недопущение распространения новой коронавирусной инфекции (COVID-19).<br>'
177		//+'<br>'
178		//+'<ul>'
179		//+'<li>Зрители допускаются на площадку мероприятия (спектакль) при наличии защитной маски (респиратора).</li>'
180		//+'<li>Всем зрителям, пришедшим на спектакль, до прохода контроля будет осуществляться измерение температуры тела бесконтактным способом. Лица с температурой тела выше 37ºС и/или имеющие визуальные симптомы респираторных заболеваний (кашель, насморк, слабость) в театр не допускаются.</li>'
181		//+'<li>В случае ожидания на входе зрители должны соблюдать социальную дистанцию 1,5 метра в соответствии с разметкой.</li>'
182		//+'<li>Во всех помещениях театра зрители должны находиться в защитных масках (или респираторах).</li>'
183		//+'<li>Рассадка в зрительном зале осуществляется с учетом соблюдения социального дистанцирования в шахматном порядке с заполняемостью зала в 50%.</li></ul>'
184		+'<br>Более полную информацию вы можете получить по телефону: <a href="tel:+74957817811">+7 (495) 781-781-1</a>'
185		+'<br>Ждем вас в нашем театре!';
186        $('.popup_newRulesOfSalesCOVID').empty().html(data);
187
188        $(this).find('span').empty();
189        $('.shadow, .popup.popup_newRulesOfSalesCOVID').fadeIn();
190
191    });
192	
193    // Всплывающее окно Пушкинская карта
194    $('body').on('click', '.js-pushkinskayaKarta', function() {
195window.location.href = "/tickets/pushkinskaya_karta/"
196        /*$.ajax({
197            url: '/ajax.php',
198            dataType: 'html',
199            type: 'POST',
200            data: {
201                'action': 'getPerformance_PushkinskayaKarta'
202            },
203            success: function(data) {
204                $('.popup_pushkinskayaKarta').empty().html(data);
205                $('.shadow, .popup.popup_pushkinskayaKarta').fadeIn();
206            },
207            error: function(textStatus) {
208                console.log(textStatus);
209            },
210        });*/
211
212    });
213
214    $('.shadow').click(function() {
215        $('.shadow, .popup_actors').fadeOut();
216        $('.shadow, .popup_questionnaire').fadeOut();
217        $('.shadow, .popup_mailing').fadeOut();
218        $('.shadow, .popup').fadeOut();
219        $('.shadow, .popup_comment').fadeOut();
220        $('.shadow, .popup_index').fadeOut();
221        $('.shadow, #popup_seatDesc').fadeOut();
222        $('.shadow, .popup_newRulesOfSales').fadeOut();
223        $('.shadow, .popup_newRulesOfSalesCOVID').fadeOut();
224		$('.shadow, .popup_pushkinskayaKarta').fadeOut();
225		$('.shadow, .popup_artist_of_the_year').fadeOut();
226		$('.shadow, .popup_vote').fadeOut();
227    });
228
229    // Snow
230    //$(document).snowfall({image :"/_images/snow/0.png", minSize: 5, maxSize:20,flakeCount : 50,flakeIndex: 99999});
231
232
233//Звезда Театрала
234//$('div.performance[data-perfomans-id="18278"]>.secondPageWrap>.rightWrap').append('<img onclick="document.location.href=\'https://teatral-online.ru/star/shortlist/\'" src="/upload/medialibrary/images/Logo_StarVote.png" alt="Мандат" style="width: 100px;position: absolute;right: 0px;top: 190px;cursor:pointer;">');
235
236});
237
238function GetEventByID(_perfomans) {
239    $.ajax({
240        url: '/ajax.php',
241        dataType: 'html',
242        type: 'POST',
243        data: {
244            'action': 'get_event_by_id',
245            'perfomans': _perfomans,
246        },
247        success: function(data) {
248            $('.popup').empty().html(data);
249            //            var _top = $(window).scrollTop();
250            //            $('.popup').css({"top": _top + 100 + "px"});
251            $('.shadow, .popup').fadeIn();
252            //            console.log(data);
253            //            $('body,html').animate({scrollTop: 0}, 500);
254        },
255        error: function(textStatus) {
256            console.log(textStatus);
257        },
258    });
259}
260
261function GetActorsByPerfomanceID(_perfomans, _date) {
262    console.log(_date);
263    console.log(_perfomans);
264    $.ajax({
265        url: '/ajax.php',
266        dataType: 'html',
267        type: 'POST',
268        data: {
269            'action': 'get_actors_by_perfomanceid',
270            'perfomans': _perfomans,
271            'date': _date,
272        },
273        success: function(data) {
274            $('.popup_actors').empty().html(data);
275            $('.shadow, .popup_actors').fadeIn();
276            // console.log(data);
277        },
278        error: function(textStatus) {
279            console.log(textStatus);
280        },
281    });
282}
283
284/**
285 * Get previously full cast (lists of actors) by performance ID.
286 * @param {int} performanceID Performance ID.
287 * @return {void}
288 */
289function getPreviouslyFullCast(performanceID) {
290    $.ajax({
291        url: '/ajax.php',
292        dataType: 'html',
293        type: 'POST',
294        data: {
295            'action': 'getPreviouslyFullCast',
296            'id': performanceID,
297        },
298        success: function(data) {
299            $('.popup_actors').empty().html(data);
300            $('.shadow, .popup_actors').fadeIn();
301        },
302        error: function(textStatus) {
303            console.log(textStatus);
304        },
305    });
306}
307
308mih_NEEDTOEXIT = false;
309
310function ajaxCalendar(_date, _perfomans) {
311
312    /* Код постера спектакля для заставки */
313    var PosterHtml = '';
314    /* Время показа постера */
315    var PosterDelay = 1;
316
317    // Постер ведёт на заказ билетов
318    // var mihdata = '<div class="calendar_slides"><a href="/tickets/?ID=5964&from=poster"><img src="/upload/medialibrary/images/Poster_UO_24.09.2015.jpg" alt=""></a></div>';
319
320    // Постер ведёт на страницу спектакля
321    // var mihdata = '<div class="calendar_slides"><a href="/performance/boris-godunov/?from=poster"><img src="/upload/medialibrary/images/Poster_BG_22-23.12.2015=.jpg" alt=""></a></div>';
322    // var mihdata = '<div class="calendar_slides"><a href="/performance/serdtse-ne-kamen/?from=poster"><img src="/upload/medialibrary/images/Poster_SNK_31.12.2015.jpg" alt=""></a></div>';
323    // mihdata = '<div class="calendar_slides"><a href="/performance/komediya_oshibok/?from=poster"><img src="/upload/medialibrary/images/Poster_KO_31.12.2015.jpg" alt=""></a></div>';
324    // var mihdata = '<div class="calendar_slides"><a href="/performance/yubileynyy-vecher-s-teatrom/?from=poster"><img src="/upload/medialibrary/images/Poster_07.12.2015.2.jpg" alt=""></a></div>';
325    // var mihdata = '<div class="calendar_slides"><a href="/performance/yubileynyy-vecher-s-teatrom/?from=poster"><img src="/upload/medialibrary/images/Poster_07.12.2015.jpg" alt=""></a></div>';
326    // var mihdata = '<div class="calendar_slides"><a href="/performance/vse-o-zhenshchinakh/?from=poster"><img src="/upload/medialibrary/images/Poster_VOJ_31.10.2015_.jpg" alt=""></a></div>';
327
328    // Постер "Юбилей театра" 02.02.2017
329    // PosterHtml = '<div class="calendar_slides"><a href="/?from=poster"><img src="/upload/medialibrary/images/Poster_25etc_02.02.2018.jpg" alt=""></a></div>';
330
331    console.log($('.posterLeft').attr('poster-href'));
332    console.log($('.posterLeft').attr('poster-img'));
333    var PosterImg = $.trim($('.posterLeft').attr('poster-img'));
334    var PosterHref = $.trim($('.posterLeft').attr('poster-href'));
335    if (PosterImg != '') {
336        PosterHtml = '<div class="calendar_slides">';
337        if (PosterHref != '') {
338            PosterHtml += '<a href="' + PosterHref + '">';
339        }
340        PosterHtml += '<img src="' + PosterImg + '">';
341        if (PosterHref != '') {
342            PosterHtml += '</a>';
343        }
344        PosterDelay = 4000;
345    }
346    $('.posterLeft').empty().html(PosterHtml);
347    //
348
349    $('.buyTicket').attr('href', 'http://www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/');
350    // $('.buyTicket').attr('href', '/tickets/?ID=6039');
351
352
353    $('.day_num').on('click', function(e) {
354        mih_NEEDTOEXIT = true;
355        return;
356    });
357    if (mih_NEEDTOEXIT) {
358        return;
359    }
360    setTimeout(function() {
361        // -mih
362
363
364        if (mih_NEEDTOEXIT) {
365            return;
366        }
367        $('.posterLeft img').fadeToggle('slow');
368
369        setTimeout(function() {
370
371            if (mih_NEEDTOEXIT) {
372                return;
373            }
374
375            $.ajax({
376                url: '/ajax.php',
377                dataType: 'html',
378                type: 'POST',
379                data: {
380                    'action': 'get_news_for_day',
381                    'date': _date,
382                    'perfomans': _perfomans,
383                },
384                success: function(data) {
385                    $('.posterLeft').empty().html(data);
386                    var $frame = $('.calendar_slides');
387                    var $wrap = $frame.parent();
388                    // Call Sly on frame
389                    $frame.sly({
390                        horizontal: 1,
391                        itemNav: 'basic',
392                        smart: 1,
393                        activateMiddle: 1,
394                        mouseDragging: 0,
395                        touchDragging: 1,
396                        releaseSwing: 1,
397                        scrollSource: null,
398                        startAt: 0,
399                        scrollBy: 0,
400                        speed: 300,
401                        elasticBounds: 1,
402                        easing: 'easeOutExpo',
403                        dragHandle: 1,
404                        dynamicHandle: 1,
405                        clickBar: 1,
406                        cycleBy: 'items', // Enable automatic cycling by 'items' or 'pages'.
407                        cycleInterval: 5000, // Delay between cycles in milliseconds.
408                        pauseOnHover: 0, // Pause cycling when mouse hovers over the FRAME.
409                        pagesBar: $wrap.find('.pages'), // Selector or DOM element for pages bar container.
410                        activatePageOn: 'click', // Event used to activate page. Can be: click, mouseenter, ...
411                        // Buttons
412                        prevPage: $wrap.find('.prev'),
413                        nextPage: $wrap.find('.next'),
414                    });
415                    //
416                    // console.log($("div").find("[data-date='" + _date + "']").val());
417                    // $("div").find("[data-date='" + _date + "']").click();
418                    // $('.has_action').click();
419                    //
420
421// mih 15.04.2020
422                    var buyTicket_PerfomaneID = _perfomans.substring(0, _perfomans.indexOf(','));
423                    $('.buyTicket').attr('href', '/tickets/?ID=' + buyTicket_PerfomaneID);
424
425                },
426                error: function(textStatus) {
427                    console.log(textStatus);
428                },
429            });
430
431        }, 600);
432
433        // mih
434    }, PosterDelay); // Время показа постера
435    // -mih
436
437}
438
439function ajaxCalendarFirst(_date, _perfomans) {
440    if (typeof _perfomans === 'undefined') {
441        _perfomans = 6317;
442    }
443    $.ajax({
444        url: '/ajax.php',
445        dataType: 'html',
446        type: 'POST',
447        data: {
448            'action': 'get_news_for_day',
449            'date': _date,
450            'perfomans': _perfomans,
451        },
452        success: function(data) {
453            $('.posterLeft').empty().html(data);
454            $('.slidee').prepend(mih_current_slidee);
455            $('.prev').addClass('disabled');
456            $('.next').addClass('disabled');
457            var $frame = $('.calendar_slides');
458            var $wrap = $frame.parent();
459            // Call Sly on frame
460            $frame.sly({
461                horizontal: 1,
462                itemNav: 'basic',
463                smart: 1,
464                activateMiddle: 1,
465                mouseDragging: 0,
466                touchDragging: 1,
467                releaseSwing: 1,
468                scrollSource: null,
469                startAt: 0,
470                scrollBy: 0,
471                speed: 300, // 100
472                elasticBounds: 1,
473                easing: 'easeOutExpo',
474                dragHandle: 1,
475                dynamicHandle: 1,
476                clickBar: 1,
477                cycleBy: 'items', // Enable automatic cycling by 'items' or 'pages'.
478                cycleInterval: 200, // 300 5000, // Delay between cycles in milliseconds.
479                pauseOnHover: 0, // Pause cycling when mouse hovers over the FRAME.
480                pagesBar: $wrap.find('.pages'), // Selector or DOM element for pages bar container.
481                activatePageOn: 'click', // Event used to activate page. Can be: click, mouseenter, ...
482                // Buttons
483                // prevPage: $wrap.find('.prev'),
484                // nextPage: $wrap.find('.next')
485            });
486
487            setTimeout(function() {
488                $('.posterLeft').empty().html(data);
489                var $frame = $('.calendar_slides');
490                var $wrap = $frame.parent();
491                // Call Sly on frame
492                $frame.sly({
493                    horizontal: 1,
494                    itemNav: 'basic',
495                    smart: 1,
496                    activateMiddle: 1,
497                    mouseDragging: 0,
498                    touchDragging: 1,
499                    releaseSwing: 1,
500                    scrollSource: null,
501                    startAt: 0,
502                    scrollBy: 0,
503                    speed: 300,
504                    elasticBounds: 1,
505                    easing: 'easeOutExpo',
506                    dragHandle: 1,
507                    dynamicHandle: 1,
508                    clickBar: 1,
509                    cycleBy: 'items', // Enable automatic cycling by 'items' or 'pages'.
510                    cycleInterval: 5000, // 5000, // Delay between cycles in milliseconds.
511                    pauseOnHover: 0, // Pause cycling when mouse hovers over the FRAME.
512                    pagesBar: $wrap.find('.pages'), // Selector or DOM element for pages bar container.
513                    activatePageOn: 'click', // Event used to activate page. Can be: click, mouseenter, ...
514                    // Buttons
515                    prevPage: $wrap.find('.prev'),
516                    nextPage: $wrap.find('.next'),
517                });
518
519
520            }, 400);
521            var buyTicket_PerfomaneID = _perfomans.substring(0, _perfomans.indexOf(','));
522            $('.buyTicket').attr('href', '/tickets/?ID=' + buyTicket_PerfomaneID);
523        },
524
525        error: function(textStatus) {
526            console.log(textStatus);
527        },
528    });
529
530}
531
532// parse a date in yyyy-mm-dd format
533function parseDate(input) {
534    var parts = input.split('.');
535    // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
536    return new Date(parts[2], parts[1] - 1, parts[0]); // Note: months are 0-based
537}
538
539
540$(document).ready(function() {
541
542    // Глобальная переменная, в которой храниться код текущего слайда
543    mih_current_slidee = '';
544
545    // Сколько спектаклей в этот день
546    var PerfCount = 1;
547
548    var TopDays_hasAction = [];
549
550    // Получаем текущую дату
551    // 1 способ
552    // var current_date = $('.days_numbers .today').attr('data-date');
553
554    // 2 способ
555    var current_date = new Date();
556    var dd = current_date.getDate();
557    var mm = current_date.getMonth() + 1; // January is 0!
558    var yyyy = current_date.getFullYear();
559    if (dd < 10) {
560        dd = '0' + dd;
561    }
562    if (mm < 10) {
563        mm = '0' + mm;
564    }
565    current_date = dd + '.' + mm + '.' + yyyy;
566
567    // Заглушка на летние месяцы.
568    // current_date = '01.09.2015';
569
570
571    var counter_date = 0;
572    $('.has_action').each(function(z) {
573        if ((new Date(parseDate($(this).attr('data-date'))) >= new Date(parseDate(current_date))) && !$(this).hasClass('hide_this') && (counter_date < 5)) {
574            // console.log('date ',$(this).attr('data-date'));
575            TopDays_hasAction[counter_date] = this;
576            counter_date++;
577        }
578    });
579
580    var i = 0;
581    has_action_counter = 0;
582
583    $('.has_action').on('click', function(e) {
584        has_action_counter++;
585    });
586
587
588    // Для остановки слайдера 5 спектаклей при нажатии "Актеры"
589    $('.poster').on('click', '.calendar_slides .actors', function(e) {
590        has_action_counter = -1;
591        console.log('actors');
592    });
593
594    if (TopDays_hasAction.length == 0) {} else if (TopDays_hasAction.length == 2) {
595        setTimeout(function() {
596            if (has_action_counter == 0) { $(TopDays_hasAction[1]).click(); } else return;
597            setTimeout(function() {
598                if (has_action_counter == 1) { $(TopDays_hasAction[0]).click(); } else return;
599            }, 5000 * PerfCount);
600        }, 6000);
601    } else if (TopDays_hasAction.length == 3) {
602        setTimeout(function() {
603            if (has_action_counter == 0) { $(TopDays_hasAction[1]).click(); } else return;
604            setTimeout(function() {
605                if (has_action_counter == 1) { $(TopDays_hasAction[2]).click(); } else return;
606                setTimeout(function() {
607                    if (has_action_counter == 2) { $(TopDays_hasAction[0]).click(); } else return;
608                }, 5000 * PerfCount);
609            }, 5000 * PerfCount);
610        }, 6000);
611    } else if (TopDays_hasAction.length == 4) {
612        setTimeout(function() {
613            if (has_action_counter == 0) { $(TopDays_hasAction[1]).click(); } else return;
614            setTimeout(function() {
615                if (has_action_counter == 1) { $(TopDays_hasAction[2]).click(); } else return;
616                setTimeout(function() {
617                    if (has_action_counter == 2) { $(TopDays_hasAction[3]).click(); } else return;
618                    setTimeout(function() {
619                        if (has_action_counter == 3) { $(TopDays_hasAction[0]).click(); } else return;
620                    }, 5000 * PerfCount);
621                }, 5000 * PerfCount);
622            }, 5000 * PerfCount);
623        }, 6000);
624    } else if (TopDays_hasAction.length == 5) {
625        setTimeout(function() {
626            if (has_action_counter == 0) { $(TopDays_hasAction[1]).click(); } else return;
627            setTimeout(function() {
628                if (has_action_counter == 1) { $(TopDays_hasAction[2]).click(); } else return;
629                setTimeout(function() {
630                    if (has_action_counter == 2) { $(TopDays_hasAction[3]).click(); } else return;
631                    setTimeout(function() {
632                        if (has_action_counter == 3) { $(TopDays_hasAction[4]).click(); } else return;
633                        setTimeout(function() {
634                            if (has_action_counter == 4) { $(TopDays_hasAction[0]).click(); } else return;
635                        }, 5000 * PerfCount);
636                    }, 5000 * PerfCount);
637                }, 5000 * PerfCount);
638            }, 5000 * PerfCount);
639        }, 6000);
640    } else {
641        setTimeout(function() {
642            if (has_action_counter == 0) { $(TopDays_hasAction[1]).click(); } else return;
643            setTimeout(function() {
644                if (has_action_counter == 1) { $(TopDays_hasAction[2]).click(); } else return;
645                setTimeout(function() {
646                    if (has_action_counter == 2) { $(TopDays_hasAction[3]).click(); } else return;
647                    setTimeout(function() {
648                        if (has_action_counter == 3) { $(TopDays_hasAction[4]).click(); } else return;
649                        setTimeout(function() {
650                            if (has_action_counter == 4) { $(TopDays_hasAction[5]).click(); } else return;
651                            setTimeout(function() {
652                                if (has_action_counter == 5) { $(TopDays_hasAction[0]).click(); } else return;
653                            }, 5000 * PerfCount);
654                        }, 5000 * PerfCount);
655                    }, 5000 * PerfCount);
656                }, 5000 * PerfCount);
657            }, 5000 * PerfCount);
658        }, 6000);
659    }
660
661    $('body').on('click', '.has_action', function() {
662        if ($(this).hasClass('active')) {
663            return false;
664        }
665        // Получаем текущий активный день
666        mih_current_slidee = $('.slidee').html();
667        // console.log('.day.active', mih_current_active_day);
668        $('.day.active').removeClass('active');
669        $(this).addClass('active');
670        var _date = $(this).attr('data-date');
671        var _perfomans = $(this).attr('data-perfomans-id');
672        ajaxCalendarFirst(_date, _perfomans);
673        PerfCount = (_perfomans.match(/,/g) || []).length;
674        console.log('Количество спектаклей ' + (_perfomans.match(/,/g) || []).length);
675        // mih
676        // var _soldOut = $(this).attr('data-soldOut');
677        // ajaxCalendarFirst_mih(_date, _perfomans, _soldOut)
678        // mih
679    });
680    $.fn.serializeObject = function() {
681        var o = {};
682        var a = this.serializeArray();
683        $.each(a, function() {
684            if (o[this.name] !== undefined) {
685                if (!o[this.name].push) {
686                    o[this.name] = [o[this.name]];
687                }
688                o[this.name].push(this.value || '');
689            } else {
690                o[this.name] = this.value || '';
691            }
692        });
693        return o;
694    };
695
696    // wright us
697    $('.write_us_form').submit(function(e) {
698
699        e.preventDefault();
700
701        var form = $(this);
702        var obj = form.serializeObject();
703
704        var send = 1;
705
706        var fields = form.find('input, textarea');
707
708        $.each(fields, function(index, val) {
709            var val = $(val);
710            var value_f = val.val();
711
712            if (val.attr('name') == 'name') {
713                if (value_f.length < 2 || value_f == 'Имя') {
714                    val.addClass('error');
715                    send = 0;
716                } else {
717                    val.removeClass('error');
718                }
719            }
720            if (val.attr('name') == 'email') {
721                if (!isValidEmailAddress(value_f)) {
722                    val.addClass('error');
723                    send = 0;
724                } else {
725                    val.removeClass('error');
726                }
727            }
728            if (val.attr('name') == 'message') {
729                if (value_f.length < 3 || value_f == 'Сообщение' || value_f == 'Текст письма') {
730                    val.addClass('error');
731                    send = 0;
732                } else {
733                    val.removeClass('error');
734                }
735            }
736        });
737
738        if (send === 1) {
739
740            $.ajax({
741                dataType: 'json',
742                url: '/ajax_form.php',
743                type: 'post',
744                data: {
745                    data: obj,
746                },
747            }).done(function(data) {
748
749                if (data.result === 'ok') {
750                    ShowSuccess('Ваше сообщение отправлено.<br/> В течение некоторого времени<br/> Вам ответят наши менеджеры', 'Спасибо');
751                }
752
753            });
754            return false;
755        }
756    });
757
758
759    $('body').on({
760        click: function() {
761            HideSuccess();
762        },
763    }, '.wrap_button');
764
765    var mr_input = '.write_us_form input, .write_us_form textarea';
766    $(mr_input).focus(function() {
767        $(this).removeClass('error');
768    });
769
770});
771
772// success message
773function ShowSuccess(text, btn_text) {
774
775    var _top = $(document).scrollTop();
776    _top = _top + 100;
777
778    var html_popup = '<div class="modal_win" style="top:' + _top + 'px">\n\
779                        <p class="text">' + text + '</p>\n\
780                        <p class="wrap_button"><span>
780' + btn_text + '</span></p>\n\
781                      </div>';
782
783    $('body').append(html_popup);
784}
785
786function HideSuccess() {
787    $('.modal_win').remove();
788    $('.write_us_form input, .write_us_form textarea').not('input[type=button],input[type=submit],button,input[name=type]').val('');
789}
790
791// email validation
792function isValidEmailAddress(emailAddress) {
793    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
794    return pattern.test(emailAddress);
795}
796
797// скрипты страницы заказа билета
798$(document).ready(function() {
799    var mih;
800    var mih2;
801    if ($('.ticketForm').length) {
802
803
804        var NeedToSelect = $('select#sb_spectacles option[isneedtoselect]').attr('isneedtoselect');
805        mih2 = $('select#sb_spectacles option[isneedtoselect]').attr('id');
806        if (mih2 == 6590) {
807            $('a.buyButton').attr('href', '//www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/zakulise-kvest/?utm_term=etcetera');
808        }
809        console.log('NeedToSelect2 ' + NeedToSelect);
810        if (NeedToSelect) {
811
812
813
814            $('select#sb_spectacles option[isneedtoselect]').attr('selected', 'selected');
815
816            $('.ticketForm table select#sb_spectacles').selectbox({
817                onOpen: function(inst) {
818                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
819                    $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
820                },
821                onChange: function(val, inst) {
822                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
823                    mih2 = $('option:selected', this).attr('id');
824                    if (mih2 == 6590) {
825                        $('a.buyButton').attr('href', '//www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/zakulise-kvest/?utm_term=etcetera');
826                    } else {
827                        $('a.buyButton').attr('href', '//www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/?utm_term=etcetera');
828                    }
829
830                    //
831                    $.ajax({
832                        type: 'POST',
833                        data: {
834                            action: 'getSpecShedule',
835                            select_spectacle: val,
836                        },
837                        url: '/ajax.php',
838                        success: function(data) {
839                            $('.sb_datetime_box').html(data);
840                            // console.log("sb_datetime_box_");
841                            $('#sb_datetime').selectbox({
842                                onOpen: function(inst) {
843                                    $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
844                                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
845                                },
846                                onChange: function(val, inst) {
847                                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
848                                },
849                                effect: 'slide',
850                            });
851                            $('.sb_datetime_box .sbOptions').find('li:eq(0)').css({
852                                'display': 'none',
853                            });
854                        },
855                    });
856                    // console.log("sb_datetime_box-");
857
858
859                    $.ajax({
860                        type: 'POST',
861                        data: {
862                            action: 'getSpecPrice',
863                            VarMih: mih,
864                        },
865                        url: '/ajax.php',
866                        success: function(data) {
867                            $('.sb_prices_box').html(data);
868                            // console.log("sb_prices_box_-", mih);
869                            $('#sb_prices').selectbox({
870                                onOpen: function(inst) {
871                                    $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
872                                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
873                                },
874                                onChange: function(val, inst) {
875                                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
876                                },
877                                effect: 'slide',
878                            });
879                            $('.sb_prices_box .sbOptions').find('li:eq(0)').css({
880                                'display': 'none',
881                            });
882                        },
883                    });
884                    //
885
886                },
887                effect: 'slide',
888            });
889
890
891            mih = $('select#sb_spectacles option:selected').attr('id');
892            // console.log("mih", mih);
893
894            $.ajax({
895                type: 'POST',
896                data: {
897                    action: 'getSpecShedule',
898                    select_spectacle: NeedToSelect,
899                },
900                url: '/ajax.php',
901                success: function(data) {
902                    $('.sb_datetime_box').html(data);
903                    // console.log("sb_datetime_box_");
904                    $('#sb_datetime').selectbox({
905                        onOpen: function(inst) {
906                            $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
907                            $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
908                        },
909                        onChange: function(val, inst) {
910                            $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
911                        },
912                        effect: 'slide',
913                    });
914                    $('.sb_datetime_box .sbOptions').find('li:eq(0)').css({
915                        'display': 'none',
916                    });
917                },
918            });
919            // console.log("sb_datetime_box");
920
921
922            $.ajax({
923                type: 'POST',
924                data: {
925                    action: 'getSpecPrice',
926                    VarMih: mih,
927                },
928                url: '/ajax.php',
929                success: function(data) {
930                    $('.sb_prices_box').html(data);
931                    // console.log("sb_prices_box_", mih);
932                    $('#sb_prices').selectbox({
933                        onOpen: function(inst) {
934                            $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
935                            $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
936                        },
937                        onChange: function(val, inst) {
938                            $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
939                        },
940                        effect: 'slide',
941                    });
942                    $('.sb_prices_box .sbOptions').find('li:eq(0)').css({
943                        'display': 'none',
944                    });
945                },
946            });
947            // console.log("sb_prices_box", mih);
948
949            $('.sb_spectacles_box .sbOptions').find('li:eq(0)').css({
950                'display': 'none',
951            });
952        } else {
953
954            $('.ticketForm table select').selectbox({
955                onOpen: function(inst) {
956                    $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error');
957                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
958                },
959                onChange: function(val, inst) {
960                    $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
961                    mih2 = $('option:selected', this).attr('id');
962                    if (mih2 == 6590) {
963                        $('a.buyButton').attr('href', '//www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/zakulise-kvest/?utm_term=etcetera');
964                    } else {
965                        $('a.buyButton').attr('href', '//www.ticketland.ru/teatry/teatr-et-cetera-p-r-aleksandra-kalyagina/?utm_term=etcetera');
966                    }
967
968                    if (inst.id === 'sb_spectacles') {
969
970                        $('.sb_spectacles_box .sbOptions').find('li:eq(0)').css({
971                            'display': 'none',
972                        });
973
974                        mih = $('option:selected', this).attr('id');
975
976                        //
977                        $.ajax({
978                            type: 'POST',
979                            data: {
980                                action: 'getSpecShedule',
981                                select_spectacle: val,
982                            },
983                            url: '/ajax.php',
984                            success: function(data) {
985                                $('.sb_datetime_box').html(data);
986                                // console.log("sb_datetime_box_");
987                                $('#sb_datetime').selectbox({
988                                    onOpen: function(inst) {
989                                        $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error'); //
990                                        $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
991                                    },
992                                    onChange: function(val, inst) {
993                                        $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
994                                    },
995                                    effect: 'slide',
996                                });
997                                $('.sb_datetime_box .sbOptions').find('li:eq(0)').css({
998                                    'display': 'none',
999                                });
1000                            },
1001                        });
1002                        // console.log("sb_datetime_box-");
1003
1004
1005                        $.ajax({
1006                            type: 'POST',
1007                            data: {
1008                                action: 'getSpecPrice',
1009                                VarMih: mih,
1010                            },
1011                            url: '/ajax.php',
1012                            success: function(data) {
1013                                $('.sb_prices_box').html(data);
1014                                // console.log("sb_prices_box_-", mih);
1015                                $('#sb_prices').selectbox({
1016                                    onOpen: function(inst) {
1017                                        $('#sbHolder_' + $('#' + inst.id).attr('sb')).removeClass('error'); //
1018                                        $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
1019                                    },
1020                                    onChange: function(val, inst) {
1021                                        $('option:selected', this).attr('selected', true).siblings().removeAttr('selected');
1022                                    },
1023                                    effect: 'slide',
1024                                });
1025                                $('.sb_prices_box .sbOptions').find('li:eq(0)').css({
1026                                    'display': 'none',
1027                                });
1028                            },
1029                        });
1030                        //
1031                    }
1032                },
1033                effect: 'slide',
1034            });
1035
1036            $('.sb_spectacles_box .sbOptions').find('li:eq(0)').css({
1037                'display': 'none',
1038            });
1039        }
1040
1041        $('.ticketForm table select').selectbox({
1042            effect: 'slide',
1043        });
1044
1045
1046        var i = 1;
1047        $('.orderTickets .birthday .sbHolder').each(function() {
1048            $(this).addClass('cl' + i);
1049            i++;
1050        });
1051        $('.orderTickets table p input').styler();
1052
1053        $('.orderTickets input').focus(function() {
1054            $(this).removeClass('error');
1055        });
1056
1057        $('.ticketForm').submit(function(event) {
1058            errState = 0;
1059            event.preventDefault();
1060            // проверка выбранности спектакля
1061            if (parseInt($('#sb_spectacles').val()) === 0) {
1062                $('#sbHolder_' + $('#sb_spectacles').attr('sb')).addClass('error');
1063                errState = 1;
1064            }
1065            // проверка выбранности даты и времени
1066            if (parseInt($('#sb_datetime').val()) === 0) {
1067                $('#sbHolder_' + $('#sb_datetime').attr('sb')).addClass('error');
1068                errState = 1;
1069            }
1070            // проверка выбранности цены билета
1071            if (parseInt($('#sb_prices').val()) === 0) {
1072                $('#sbHolder_' + $('#sb_prices').attr('sb')).addClass('error');
1073                errState = 1;
1074            }
1075            // проверка количетсва билетов
1076            var patternNumber = /^\d+$/;
1077            if (!patternNumber.test($('.numberOfTickets').val()) || $('.numberOfTickets').val() == 0 || $('.numberOfTickets').val() > 500) {
1078                $('.numberOfTickets').addClass('error');
1079                errState = 1;
1080            }
1081            // проверка имени
1082            if ($('.fullName').val().length === 0) {
1083                $('.fullName').addClass('error');
1084                errState = 1;
1085            }
1086            // проверка телефона
1087            var patternPhone = /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/;
1088            if (!patternPhone.test($('.contactPhone').val())) {
1089                $('.contactPhone').addClass('error');
1090                errState = 1;
1091            }
1092            // проверка почты
1093            var patternEMail = /^([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*\.[a-zA-Z]{2,6}$/i;
1094            if (!patternEMail.test($('.contactEMail').val())) {
1095                $('.contactEMail').addClass('error');
1096                errState = 1;
1097            }
1098
1099            if (errState === 1) {
1100                // mih
1101                $('body,html').animate({
1102                    scrollTop: 620,
1103                }, 500);
1104                // $(".sbHolder error").animate({scrollTop: 0}, 500);
1105                //
1106                event.preventDefault();
1107                return false;
1108            }
1109            var formData = $('.ticketForm').serializeArray();
1110            formData[0]['value'] = $('#sb_spectacles option:selected').attr('id');
1111            // formData[0]['value'] = $("#sb_spectacles option:selected").val();
1112            formData[1]['value'] = $('#sb_datetime option:selected').text();
1113            // formData[1]['value'] = formData;
1114            // formData['ID_SPEC'] = $("#sb_datetime").val();
1115            // formData['ID_SPEC'] = $("#sb_spectacles option:selected").val();
1116            $.ajax({
1117                type: 'POST',
1118                data: {
1119                    action: 'sendTicket',
1120                    formData: formData,
1121                },
1122                url: '/ajax.php',
1123                success: function(data) {
1124                    console.log('ok: ' + data);
1125                    if (data === 'ok') {
1126                        ShowSuccess('Ваша заявка принята.<br/> В течение некоторого времени<br/> Вам ответят наши менеджеры<audio src="/upload/medialibrary/Ring.mp3" autoplay></audio>', 'Спасибо');
1127                    }
1128                },
1129                error: function(textStatus) {
1130                    console.log(textStatus);
1131                },
1132            });
1133            return true;
1134        });
1135
1136    }
1137
1138    $('.questionnaireForm').submit(function(event) {
1139        event.preventDefault();
1140        var formData = $('.questionnaireForm').serializeArray();
1141
1142        // formData[0]['value'] = $("#sb_spectacles option:selected").attr("id");
1143        // formData[0]['value'] = $("#sb_spectacles option:selected").val();
1144        // formData[1]['value'] = $("#sb_datetime option:selected").text();
1145        // formData[1]['value'] = formData;
1146        // formData['ID_SPEC'] = $("#sb_datetime").val();
1147        // formData['ID_SPEC'] = $("#sb_spectacles option:selected").val();
1148
1149        $.ajax({
1150            type: 'POST',
1151            data: {
1152                action: 'sendQuestionnaire',
1153                formData: formData,
1154            },
1155            url: '/ajax.php',
1156            success: function(data) {
1157                if (data === 'ok') {
1158                    $('.popup_questionnaire').fadeOut();
1159                    ShowSuccess('Ваша анкета принята.', 'Спасибо');
1160                }
1161            },
1162        });
1163        return true;
1164    });
1165});
1166
1167function createSelectbox(sb_name) {
1168    $('#' + sb_name).selectbox({
1169        onOpen: function(inst) {
1170            $(this).parent().find('.sbOptions li:eq(0)').css({ 'display': 'none' });
1171        },
1172        onChange: function(val, inst) {
1173            if (val != 0) { // require a URL
1174                window.location = val; // redirect
1175            }
1176            return false;
1177        },
1178        effect: 'slide',
1179    });
1180
1181    // Несущественное исправление DOM
1182    $('.' + sb_name + '_box li a').each(function() {
1183        $(this).attr('href', $(this).attr('rel'));
1184    });
1185
1186}
1187
1188$(document).on('click', '#voteBlock_button', function() {
1189            $('.shadow, .popup_vote').fadeIn();
1190	});
1191$(document).on('click', '#voteBlock_circle', function() {
1192         //   $('.shadow, .popup_artist_of_the_year').fadeIn();
1193	});
1194
1195$(document).ready(function() {
1196	const queryString = window.location.search;
1197	const urlParams = new URLSearchParams(queryString);
1198	const isShowVote = urlParams.get('showVote');
1199	if (isShowVote) {
1200		$('.voteBlock_cicle').removeClass('hidden');
1201		$('.voteBlock_button').removeClass('hidden');
1202	}
1203});
1204
1205$(document).ready(function() {
1206    if ($('.sb_actors_box').length) {
1207        createSelectbox('sb_actors');
1208    }
1209    if ($('.sb_archive_box').length) {
1210        createSelectbox('sb_archive');
1211    }
1212    if ($('.sb_boss_box').length) {
1213        createSelectbox('sb_boss');
1214    }
1215    if ($('.sb_creators_box').length) {
1216        createSelectbox('sb_creators');
1217    }
1218    if ($('.sb_performance_box').length) {
1219        createSelectbox('sb_performance');
1220    }
1221    if ($('.sb_performance_box_arkhiv-tekushchego-repertuara').length) {
1222        createSelectbox('sb_performance_arkhiv-tekushchego-repertuara');
1223    }
1224    if ($('.sb_performance_box_arkhiv-spektakley').length) {
1225        createSelectbox('sb_performance_arkhiv-spektakley');
1226    }
1227    if ($('.sb_performance_box_arkhiv-spetsialnykh-proektov').length) {
1228        createSelectbox('sb_performance_arkhiv-spetsialnykh-proektov');
1229    }
1230    if ($('.sb_news_box').length) {
1231        createSelectbox('sb_news');
1232    }
1233    if ($('.sb_press_box').length) {
1234        createSelectbox('sb_press');
1235    }
1236    if ($('.sb_smallHall_box').length) {
1237        createSelectbox('sb_smallHall');
1238    }
1239    if ($('.sb_efrHall_box').length) {
1240        createSelectbox('sb_efrHall');
1241    }
1242    if ($('.sb_bigHall_box').length) {
1243        createSelectbox('sb_bigHall');
1244    }
1245
1246    if ($('#popup_seatDesc').length) {
1247        // $(".shadow").css("height", "2000");
1248    }
1249/*
1250    if ($('.creatorsPage').length) {
1251        var MaxHeight = 0;
1252        $('.content').css('width', '1190px');
1253
1254        $('.creatorsColumn').each(function() {
1255            if (MaxHeight < parseInt($(this).css('height'))) {
1256                MaxHeight = parseInt($(this).css('height'));
1257            }
1258        });
1259
1260        $('.creatorsColumn').each(function() {
1261            $(this).css('height', MaxHeight + 'px');
1262        });
1263    }*/
1264
1265    //* ************* Страница СПЕКТАКЛИ *****************//
1266    if ($('.performance').length) {
1267
1268        /*
1269         * Получаем данные о спектаклях из intickets,
1270         * добавляем ссылки на билеты в расписание
1271         */
1272		 try {
1273        $.ajax({
1274            url: 'https://api.intickets.ru/widget/v2_2/shows/',
1275            headers: {
1276                'authorization': 'Bearer 85f62d84-d9b1-ae36-fe67-e7cd8215583d',
1277            },
1278            success: function(data) {
1279                //applyInticketsStatus(data);
1280				
1281				
1282/*	
1283	$('.ticket[data-performance-name="ЛОДОЧНИК"][data-performance-date="2026-08-26T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=69659&performanceId=51273001&agentId=museum111_notmos').attr('target', '_blank');
1284	$('.ticket[data-performance-name="УТРО ТУМАННОЕ"][data-performance-date="2026-08-27T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=71653&performanceId=51276597&agentId=museum111_notmos').attr('target', '_blank');
1285	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-performance-date="2026-08-28T20:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=69606&performanceId=51276634&agentId=museum111_notmos').attr('target', '_blank');
1286	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-performance-date="2026-08-29T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=80652&performanceId=51276654&agentId=museum111_notmos').attr('target', '_blank');
1287	$('.ticket[data-performance-name="ПЯТЬ ЛОЖЕК ЭЛИКСИРА"][data-performance-date="2026-08-30T18:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=115577&performanceId=51280207&agentId=museum111_notmos').attr('target', '_blank');
1288	$('.ticket[data-performance-name="ЗАВТРАК У ПРЕДВОДИТЕЛЯ"][data-performance-date="2026-08-30T18:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=95242&performanceId=51280238&agentId=museum111_notmos').attr('target', '_blank');
1289
1290				
1291	$('.ticket[data-performance-name="ЛОДОЧНИК"][data-performance-date="2026-08-26T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=69659&performanceId=51273001&agentId=museum111&system_name=MOS').attr('target', '_blank');
1292	$('.ticket[data-performance-name="УТРО ТУМАННОЕ"][data-performance-date="2026-08-27T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=71653&performanceId=51276597&agentId=museum111&system_name=MOS').attr('target', '_blank');
1293	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-performance-date="2026-08-28T20:00"]').attr('href', 'https://bilet.mos.ru/event/348291257/').attr('target', '_blank');
1294	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-performance-date="2026-08-29T19:00"]').attr('href', 'https://bilet.mos.ru/event/348291257/').attr('target', '_blank');
1295	$('.ticket[data-performance-name="ПЯТЬ ЛОЖЕК ЭЛИКСИРА"][data-performance-date="2026-08-30T18:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=115577&performanceId=51280207&agentId=museum111&system_name=MOS').attr('target', '_blank');
1296	$('.ticket[data-performance-name="ЗАВТРАК У ПРЕДВОДИТЕЛЯ"][data-performance-date="2026-08-30T18:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=95242&performanceId=51280238&agentId=museum111&system_name=MOS');
1297
1298	$('.ticket[data-performance-name="СЦЕНЫ ИЗ СУПРУЖЕСКОЙ ЖИЗНИ"][data-performance-date="2026-08-29T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=80652&performanceId=51276654&agentId=museum111&system_name=MOS');
1299$('.ticket[data-performance-name="УТРО ТУМАННОЕ"][data-performance-date="2026-08-28T19:00"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=71653&performanceId=51276597&agentId=museum111&system_name=MOS');
1300*/
1301				
1302				
1303            },
1304        });
1305		/*
1306		const mosbilet_eventId = $('.schedule[data-mosbilet-event-id]').attr('data-mosbilet-event-id')
1307        const mosbilet_url = `https://tickets.mos.ru/api/widget/v2/event/${mosbilet_eventId}/performances?date_from=2026-07-12&date_to=&performances_limit_by_days=4&agent_id=museum111`
1308        
1309        $.ajax({
1310            url: mosbilet_url,
1311            success: function(data) {
1312                applyMosbiletStatus(data);
1313            },
1314        });
1315*/
1316/*
1317const mosbiletEventIds = $('.schedule[data-mosbilet-event-id]')
1318    .attr('data-mosbilet-event-id')
1319    .split(/[, ]+/)
1320    .filter(id => id.trim() !== '');
1321
1322// Выполняем запрос для каждого ID
1323mosbiletEventIds.forEach(eventId => {
1324    const mosbilet_url = `https://tickets.mos.ru/api/widget/v2/event/${eventId}/performances?date_from=2026-07-01&date_to=&performances_limit_by_days=100&agent_id=museum111`;
1325    
1326    $.ajax({
1327        url: mosbilet_url,
1328        success: function(data) {
1329            applyMosbiletStatus(data);
1330        },
1331        error: function(xhr, status, error) {
1332            console.error(`Ошибка загрузки данных для event ${eventId}:`, error);
1333        }
1334    });
1335});
1336*/
1337
1338
1339// Получаем все элементы с классом schedule и атрибутом data-mosbilet-event-id
1340var scheduleElements = $('.schedule[data-mosbilet-event-id]');
1341var mosbiletEventIds = [];
1342
1343// Собираем ID из атрибутов
1344for (var i = 0; i < scheduleElements.length; i++) {
1345    var id = scheduleElements[i].getAttribute('data-mosbilet-event-id');
1346    if (id) {
1347        // Разбиваем по запятой или пробелу
1348        var ids = id.split(/[, ]+/);
1349        for (var j = 0; j < ids.length; j++) {
1350            var trimmedId = ids[j].replace(/^\s+|\s+$/g, '');
1351            if (trimmedId !== '') {
1352                mosbiletEventIds.push(trimmedId);
1353            }
1354        }
1355    }
1356}
1357
1358// Выполняем запрос для каждого ID
1359for (var k = 0; k < mosbiletEventIds.length; k++) {
1360    var eventId = mosbiletEventIds[k];
1361    var mosbilet_url = 'https://tickets.mos.ru/api/widget/v2/event/' + eventId + '/performances?date_from=2026-07-01&date_to=&performances_limit_by_days=100&agent_id=museum111';
1362    
1363    // Создаем замыкание для сохранения eventId
1364    (function(id) {
1365        $.ajax({
1366            url: mosbilet_url,
1367            success: function(data) {
1368                applyMosbiletStatus(data);
1369            },
1370            error: function(xhr, status, error) {
1371                console.error('Ошибка загрузки данных для event ' + id + ':', error);
1372            }
1373        });
1374    })(eventId);
1375}
1376
1377
1378
1379
1380
1381
1382
1383        // : скрыть-показать фото
1384        $('.performance .rightWrap .show-hide-panel').addClass('show');
1385        $('.performance .rightWrap .show-hide-panel.show').live('click', function() {
1386            $('.performance .rightWrap .show-hide-panel').removeClass('show');
1387            $('.performance .rightWrap .show-hide-panel').addClass('hide');
1388            $('.performance .rightWrap ul li.hidden').addClass('canbehidden');
1389            $('.performance .rightWrap ul li.canbehidden').removeClass('hidden');
1390        });
1391        $('.performance .rightWrap .show-hide-panel.hide').live('click', function() {
1392            $('.performance .rightWrap .show-hide-panel').removeClass('hide');
1393            $('.performance .rightWrap .show-hide-panel').addClass('show');
1394            $('.performance .rightWrap ul li.canbehidden').addClass('hidden');
1395            $('.performance .rightWrap ul li.hidden').removeClass('canbehidden');
1396        });
1397
1398        // : отзывы
1399        $('.comment_usForm').submit(function(event) {
1400            errState = 0;
1401            event.preventDefault();
1402            // проверка имени
1403            if ($('.COMMENTS').val().length === 0) {
1404                $('.COMMENTS').addClass('error');
1405                errState = 1;
1406            }
1407            // проверка имени
1408            if ($('.FULLNAME').val().length === 0) {
1409                $('.FULLNAME').addClass('error');
1410                errState = 1;
1411            }
1412            // проверка почты
1413            var patternEMail = /^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$/i;
1414            if (!patternEMail.test($('.CONTACTEMAIL').val())) {
1415                $('.CONTACTEMAIL').addClass('error');
1416                errState = 1;
1417            }
1418
1419            if (errState === 1) {
1420                // mih
1421                /*
1422                $("body,html").animate({
1423                	scrollTop: 620
1424                }, 500);
1425                */
1426                event.preventDefault();
1427                return false;
1428            } else {
1429                var formData = $('.comment_usForm').serializeArray();
1430                $.ajax({
1431                    type: 'POST',
1432                    data: {
1433                        action: 'comment_us',
1434                        formData: formData,
1435                    },
1436                    url: '/ajax.php',
1437                    success: function(data) {
1438                        if (data === 'ok') {
1439                            ShowSuccess('Ваш отзыв принят.<br/> В течение некоторого времени<br/>он появится на странице.', 'Спасибо');
1440							$('#sendform.comment_us .send[type="submit"]').val('Отзыв отправлен').attr('disabled', 'disabled').prop('disabled', true);
1441                        }
1442                    },
1443                });
1444                return true;
1445            }
1446        });
1447    } catch(err) {
1448	}
1449	}
1450    //* ************* ****************** *****************//
1451
1452});
1453
1454
1455$('.pageHalls').ready(function() {
1456    $(document).on({
1457        'mouseenter mouseover': function() {
1458            $('.efrHall .label').html('ряд <div id="label_row">' + $(this).attr('row') + '</div>, место <div id="label_seat">' + $(this).attr('seat') + '</div>');
1459        },
1460        'mouseleave': function() {
1461            $('.efrHall .label').html('');
1462        },
1463    }, '.efrHall .element.seat');
1464    $(document).on({
1465        'mouseenter mouseover': function() {
1466            $('.efrHall .label').text('сцена');
1467        },
1468        'mouseleave': function() {
1469            $('.efrHall .label').text('');
1470        },
1471    }, '.efrHall .element.stage');
1472    $(document).on({
1473        'mouseenter mouseover': function() {
1474            $('.efrHall .label').html('ряд <div id="label_row">' + $(this).text() + '</div>');
1475        },
1476        'mouseleave': function() {
1477            $('.efrHall .label').html('');
1478        },
1479    }, '.efrHall .element.rowNumber');
1480    $(document).on({
1481        'mouseenter mouseover': function() {
1482            $('.efrHall .label').text($('.efrHall .choose .element.rowLabel').text());
1483        },
1484        'mouseleave': function() {
1485            $('.efrHall .label').text('');
1486        },
1487    }, '.efrHall .element.rowLabel');
1488
1489
1490    $('.efrHall .choose .element').click(function() {
1491        $(this).siblings().removeClass('active');
1492        $(this).addClass('active');
1493    });
1494    $('.efrHall .plan .row .element').click(function() {
1495        if ($('.efrHall .choose .element.stage').hasClass('active')) {
1496            $(this).removeClass().addClass('element stage').empty();
1497        } else if ($('.efrHall .choose .element.blank').hasClass('active')) {
1498            $(this).removeClass().addClass('element blank').empty();
1499        } else if ($('.efrHall .choose .element.seat').hasClass('active')) {
1500            var seatNumber = $('.efrHall .choose .element.seat.active').attr('seat');
1501            var rowNumber = $('.efrHall .choose .element.seat.active').attr('row');
1502            $(this).removeClass().addClass('element seat');
1503            if ($('.efrHall .choose .element.seat.active').hasClass('typeA')) {
1504                $(this).addClass('typeA');
1505            } else if ($('.efrHall .choose .element.seat.active').hasClass('typeB')) {
1506                $(this).addClass('typeB');
1507            }
1508            $(this).text(seatNumber).attr({ seat: seatNumber }).attr({ row: rowNumber });
1509        } else if ($('.efrHall .choose .element.rowLabel').hasClass('active')) {
1510            var rowLabel = $('.efrHall .choose .element.rowLabel.active').text();
1511            $(this).removeClass().addClass('element rowLabel').text(rowLabel).attr({ rowLabel: rowLabel });
1512        } else if ($('.efrHall .choose .element.rowNumber').hasClass('active')) {
1513            var rowNumber = $('.efrHall .choose .element.rowNumber.active').text();
1514            $(this).removeClass().addClass('element rowNumber').text(rowNumber).attr({ row: rowNumber });
1515        }
1516    });
1517	
1518	
1519	
1520    $(document).on({
1521        'mouseenter mouseover': function() {
1522            $('.smallHall .label').html('ряд <div id="label_row">' + $(this).attr('row') + '</div>, место <div id="label_seat">' + $(this).attr('seat') + '</div>');
1523        },
1524        'mouseleave': function() {
1525            $('.smallHall .label').html('');
1526        },
1527    }, '.smallHall .element.seat');
1528    $(document).on({
1529        'mouseenter mouseover': function() {
1530            $('.smallHall .label').text('сцена');
1531        },
1532        'mouseleave': function() {
1533            $('.smallHall .label').text('');
1534        },
1535    }, '.smallHall .element.stage');
1536    $(document).on({
1537        'mouseenter mouseover': function() {
1538            $('.smallHall .label').html('ряд <div id="label_row">' + $(this).text() + '</div>');
1539        },
1540        'mouseleave': function() {
1541            $('.smallHall .label').html('');
1542        },
1543    }, '.smallHall .element.rowNumber');
1544    $(document).on({
1545        'mouseenter mouseover': function() {
1546            $('.smallHall .label').text($('.smallHall .choose .element.rowLabel').text());
1547        },
1548        'mouseleave': function() {
1549            $('.smallHall .label').text('');
1550        },
1551    }, '.smallHall .element.rowLabel');
1552
1553
1554    $('.smallHall .choose .element').click(function() {
1555        $(this).siblings().removeClass('active');
1556        $(this).addClass('active');
1557    });
1558    $('.smallHall .plan .row .element').click(function() {
1559        if ($('.smallHall .choose .element.stage').hasClass('active')) {
1560            $(this).removeClass().addClass('element stage').empty();
1561        } else if ($('.smallHall .choose .element.blank').hasClass('active')) {
1562            $(this).removeClass().addClass('element blank').empty();
1563        } else if ($('.smallHall .choose .element.seat').hasClass('active')) {
1564            var seatNumber = $('.smallHall .choose .element.seat.active').attr('seat');
1565            var rowNumber = $('.smallHall .choose .element.seat.active').attr('row');
1566            $(this).removeClass().addClass('element seat');
1567            if ($('.smallHall .choose .element.seat.active').hasClass('typeA')) {
1568                $(this).addClass('typeA');
1569            } else if ($('.smallHall .choose .element.seat.active').hasClass('typeB')) {
1570                $(this).addClass('typeB');
1571            }
1572            $(this).text(seatNumber).attr({ seat: seatNumber }).attr({ row: rowNumber });
1573        } else if ($('.smallHall .choose .element.rowLabel').hasClass('active')) {
1574            var rowLabel = $('.smallHall .choose .element.rowLabel.active').text();
1575            $(this).removeClass().addClass('element rowLabel').text(rowLabel).attr({ rowLabel: rowLabel });
1576        } else if ($('.smallHall .choose .element.rowNumber').hasClass('active')) {
1577            var rowNumber = $('.smallHall .choose .element.rowNumber.active').text();
1578            $(this).removeClass().addClass('element rowNumber').text(rowNumber).attr({ row: rowNumber });
1579        }
1580    });
1581});
1582
1583
1584/*
1585 * Добавляем ссылки на билеты в intickets
1586 */
1587function applyInticketsStatus(data) {
1588    var $list = $('.schedule');
1589    $.each(data, function(index, item) {
1590		if (item.event_title.toUpperCase() === "РЕВИЗОР. ВЕРСИЯ") {
1591			item.event_title = "РЕВИЗОР.ВЕРСИЯ";
1592		} else if (item.event_title.toUpperCase() === "ВЕЧЕР ПОЭЗИИ. ПОЭЗИЯ XXI ВЕК") {
1593			item.event_title = "ПОЭЗИЯ. 21 ВЕК. ВЕЧЕР ШЕСТОЙ";
1594		}
1595		
1596		if (item.event_id) {
1597			$('.ticket[data-performance-name="' + item.event_title.toUpperCase() + '"]')
1598			.attr('href', 'https://iframeab-pre0932.intickets.ru/event/' + item.event_id)
1599		}
1600		
1601        var id = '.ticket[data-performance-name="' + item.event_title.toUpperCase() + '"][data-performance-date="' + item.show_start + '"]';
1602
1603		var backstage = 'ЗАКУЛИСЬЕ';
1604		if (item.event_title.toUpperCase().indexOf(backstage) !== -1) {
1605			id = '.ticket[data-performance-name*="' + backstage + '"][data-performance-date="' + item.show_start + '"]';
1606		}
1607
1608        var $ticket = $list.find(id);
1609				//console.log('item',item);
1610				//console.log('ticket',$ticket);
1611
1612        if (!$ticket.hasClass('ticket--soldout')) {
1613            if (item.sold_out) {
1614                $ticket.addClass('ticket--soldout');
1615            } else {
1616                $ticket.attr('href', 'https://iframeab-pre0932.intickets.ru/node/' + item.show_id).attr('title', 'Купить билет').attr('target', '_blank');
1617            }
1618        }
1619    });
1620
1621//	$('a.ticket[data-performance-date="2021-05-18T19:00"]')
1622//	.attr('href', 'https://iframeab-pre0932.intickets.ru/node/' + 11721479).attr('title', 'Купить билет').attr('target', '_blank');
1623//	$('a.ticket[data-performance-date="2021-05-19T19:00"]')
1624//	.attr('href', 'https://iframeab-pre0932.intickets.ru/node/' + 11721543).attr('title', 'Купить билет').attr('target', '_blank');
1625
1626//	$('a.ticket[data-performance-date="2021-10-05T19:00"]')
1627//	.attr('href', 'https://iframeab-pre0932.intickets.ru/seance/11970763').attr('title', 'Купить билет').attr('target', '_blank');
1628
1629
1630//	$('a.ticket[data-performance-name="ПОЭЗИЯ. 21 ВЕК. ВЕЧЕР ПЯТЫЙ"][data-performance-date="2023-03-01T19:00"]')
1631//	.attr('href', 'https://iframeab-pre0932.intickets.ru/seance/13237272').attr('title', 'Купить билет').attr('target', '_blank');
1632
1633//$('a.ticket[data-performance-date="2021-11-23T19:00"]').parent().remove();
1634
1635
1636//$('.ticket[data-performance-name="СКУПОЙ"][data-performance-date="2023-06-13T19:00"]').attr('href', 'https://iframeab-pre7955.intickets.ru/seance/13576935').attr('target', '_blank');
1637//$('.ticket[data-performance-name="СКУПОЙ"][data-performance-date="2023-06-14T19:00"]').attr('href', 'https://iframeab-pre7955.intickets.ru/seance/13576937').attr('target', '_blank');
1638
1639
1640
1641//$('.ticket[data-performance-name="ЗЕМЛЯ ЭЛЬЗЫ"][data-performance-date="2023-10-18T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/seance/13832273').attr('target', '_blank');
1642//$('.ticket[data-performance-name="ЗЕМЛЯ ЭЛЬЗЫ"][data-performance-date="2023-09-19T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/seance/13832273').attr('target', '_blank');
1643
1644//$('.ticket[data-performance-name="ПОЭЗИЯ. 21 ВЕК. ВЕЧЕР СЕДЬМОЙ"][data-performance-date="2025-04-09T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/seance/52914533').attr('target', '_blank');
1645
1646/*
1647	$('a.ticket[data-performance-date="2021-10-24T16:00"]')
1648	.attr('href', 'https://iframeab-pre0932.intickets.ru/seance/12007472').attr('title', 'Купить билет').attr('target', '_blank');*/
1649/*
1650	$('a.ticket[data-performance-date="2021-11-05T16:00"]')
1651	.attr('href', 'https://iframeab-pre0932.intickets.ru/seance/12023523').attr('title', 'Купить билет').attr('target', '_blank');*/
1652
1653// Бокал шампанского в подарок!
1654//$('.ticket[data-performance-name="ТРИ ПЛЮС КОТ"][data-performance-date="2023-12-31T19:00"]').append('<div class="glass_of_champagne" title=""><span class="glass_of_champagne_tooltiptext">Бокал шампанского в подарок!</span></div>');
1655//$('.ticket[data-performance-name="СТАКАН ВОДЫ"][data-performance-date="2023-12-31T18:00"]').append('<div class="glass_of_champagne" title=""><span class="glass_of_champagne_tooltiptext">Бокал шампанского в подарок!</span></div>');
1656
1657
1658//$('.ticket[data-performance-date="2024-04-08T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/14691165').attr('target', '_blank');
1659//$('.ticket[data-performance-date="2024-04-09T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/14700769').attr('target', '_blank');
1660
1661//$('.ticket[data-performance-name*="ГАСТРОЛИ ЛИПЕЦКОГО ТЕАТРА ДРАМЫ ИМ. Л.Н. ТОЛСТОГО"]').attr('href', 'https://www.teatr-tolstogo.ru/buy-tickets/#/event/8378').attr('target', '_blank');
1662
1663//$('.ticket[data-performance-name="ГОРОД КАЛЯГИНСК. ТЕАТР ЖИВЕТ ЛЕГЕНДАМИ"][data-performance-date="2026-05-29T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/72034912').attr('target', '_blank');
1664
1665
1666}
1667
1668
1669$(document).ready(function() {
1670	
1671//    $('.slide a[href="/performance/gorod-kalyaginsk-muzykalnoe-puteshestvie-vokrug-sveta/"]').removeAttr('href')
1672//    $('.slide[onclick="window.location=\'/performance/gorod-kalyaginsk-muzykalnoe-puteshestvie-vokrug-sveta/\';"]').attr("onclick", "").unbind("click");
1673
1674//	$('.afisha p[data-perfomans-id="19974"][data-date="16.03.2026"]').text('Гастроли Липецкого театра драмы им. Л.Н. Толстого');
1675
1676//	$('.ticket[data-performance-name="ЛОДОЧНИК"][data-date="26.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=69659&performanceId=51273001&agentId=museum111_notmos').attr('target', '_blank');
1677//	$('.ticket[data-performance-name="УТРО ТУМАННОЕ"][data-date="27.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=71653&performanceId=51276597&agentId=museum111_notmos').attr('target', '_blank');
1678//	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-date="28.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=69606&performanceId=51276634&agentId=museum111_notmos').attr('target', '_blank');
1679//	$('.ticket[data-performance-name="ЧАЙНАЯ"][data-date="29.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=80652&performanceId=51276654&agentId=museum111_notmos').attr('target', '_blank');
1680//	$('.ticket[data-performance-name="ПЯТЬ ЛОЖЕК ЭЛИКСИРА"][data-date="30.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=115577&performanceId=51280207&agentId=museum111_notmos').attr('target', '_blank');
1681//	$('.ticket[data-performance-name="ЗАВТРАК У ПРЕДВОДИТЕЛЯ"][data-date="30.08.2026"]').attr('href', 'https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=95242&performanceId=51280238&agentId=museum111_notmos').attr('target', '_blank');
1682
1683	
1684//	$('.ticket[data-performance-name][data-performance-date]').attr('href', 'https://iframeab-pre0932.intickets.ru/shows').attr('target', '_blank');
1685//	$('.ticket[data-performance-name="ГОРОД КАЛЯГИНСК. ТЕАТР ЖИВЕТ ЛЕГЕНДАМИ"][data-performance-date="2026-05-29T19:00"]').attr('href', 'https://iframeab-pre0932.intickets.ru/seance/72034916').attr('target', '_blank');
1686//	$('.ticket[data-performance-name="ПЯТЬ ЛОЖЕК ЭЛИКСИРА"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/71356400').attr('target', '_blank');
1687//	$('.ticket[data-performance-name="ЗАВТРАК У ПРЕДВОДИТЕЛЯ"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/67887641').attr('target', '_blank');
1688//	$('.ticket[data-performance-name="СТАРОСВЕТСКИЕ ПОМЕЩИКИ"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/50146921').attr('target', '_blank');
1689//	$('.ticket[data-performance-name="МОЯ ЖИЗНЬ"]').attr('href', 'https://iframeab-pre0932.intickets.ru/event/11232768').attr('target', '_blank');
1690
1691});
1692
1693// $('.afisha a.nav').on('click', function() {
1694//	$('.afisha p[data-perfomans-id="19974"][data-date="16.03.2026"]').text('Гастроли Липецкого театра драмы им. Л.Н. Толстого');
1695// });
1696
1697
1698
1699function applyMosbiletStatus(data) {
1700    $.each(data, function(index, item) {
1701        let $list = $('.schedule');
1702        
1703        // Iterate through each performance in the day
1704        $.each(item.performances, function(pIndex, performance) {
1705            let id = '.ticket[data-performance-date="' + performance.start_datetime.substring(0,16) + '"]';
1706            let $ticket = $list.find(id);
1707            console.log("__id", id);
1708            
1709            if (!$ticket.hasClass('ticket--soldout')) {
1710                if (performance.sold_out) {
1711                    $ticket.addClass('ticket--soldout');
1712                } else {
1713                    const href = `https://tickets.mos.ru/widget/wv2/ticket-selection?eventId=${performance.event_id}&performanceId=${performance.id}&agentId=museum111&system_name=ЕТ_СЕТЕRA`;
1714                    $ticket.attr('href', href)
1715                   
1715        .attr('title', 'Купить билет')
1716                           .attr('target', '_blank');
1717                }
1718            }
1719        });
1720    });
1721}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.