Девелопер проекта ГК «Гранель» уже сдал в эксплуатацию шесть корпусов.
25 июля 2024
Напомним, что по указу президента Российской Федерации 2024 год объявлен Годом семьи.
25 июля 2024
В Одинцовском округе определили зону регламентированного пребывания иностранных граждан, Июль
25 июля 2024
В это же время закончится модернизация звенигородской школы № 2 имени М.
19 июля 2024
Глава Одинцовского округа Андрей Иванов проверил ход капитального ремонта сетей теплоснабжения в поселке…
19 июля 2024
Глава Одинцовского округа Андрей Иванов вместе с депутатами Андреем Яцышиным и Владимиром Виницким, нача…
19 июля 2024
В посёлке Горбольницы 45 территориального управления Захаровское близится к завершению благоустройство д…
19 июля 2024
«Большое количество обращений связано с транспортной доступностью школы в Немчиновке.
19 июля 2024
Услуга предоставляется бесплатно, а результат направляется в личный кабинет заявителя.
19 июля 2024
В ходе подготовки электросетевого комплекса к предстоящему осенне-зимнему периоду и с целью повышения на…
18 июля 2024
С собой необходимо принести паспорт, полис ОМС и СНИЛС.
18 июля 2024
сезона. Основное время встречи завершилось со счётом 3:0 в пользу подопечных Игоря Звездина.
18 июля 2024
Фото: Министерство жилищной политики Московской области
18 июля 2024
В Одинцовском парке культуры, спорта и отдыха 20 июля пройдёт фитнес-марафон в рамках акции «Ночь в парк…
18 июля 2024
Музей-заповедник А.С.Пушкина - Виджет музея
var globalSetups = {};globalSetups["searchPlaceholder"] = "поиск по справочнику культурных объектов";globalSetups["no-found"] = "<span style='padding: 10px'>не найдено</span>";globalSetups["inTheCity"] = "В городе";globalSetups["inTheTheme"] = "В категории";globalSetups["tgIncFreeName"] = "свободно:";
var openEvent = null; var lang_code = ''; (function(m,e,t,r,i,k,a){ m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a) })(window, document,'script','https://mc.yandex.ru/metrika/tag.js', 'ym'); ym(58983796, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce: "dataLayer" }); window.dataLayer = window.dataLayer || []; var userinfo = {};
var currency_code = '₽'; lang_code = '0'; function tgOnlyTidNormalize(str) { return String(str == null ? '' : str) .toLowerCase() .replace(/ё/g, 'е') .replace(/\s+/g, ' ') .trim(); } function tgOnlyTidDateTs(dateStr) { let p = String(dateStr || '').split('.'); if (p.length !== 3) { return 0; } return new Date( parseInt(p[2], 10), parseInt(p[1], 10) - 1, parseInt(p[0], 10) ).getTime(); } function tgOnlyTidDateLabel(dateStr) { let p = String(dateStr || '').split('.'); if (p.length !== 3) { return dateStr; } let date = new Date( parseInt(p[2], 10), parseInt(p[1], 10) - 1, parseInt(p[0], 10) ); let months = ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек']; let week = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб']; return '' + '<span class="tg-onlytid-date-day">' + parseInt(p[0], 10) + '</span>' + '<span class="tg-onlytid-date-meta">' + months[date.getMonth()] + ' · ' + week[date.getDay()] + '</span>'; } function tgInitOnlyTidFilters($root) { $root = ($root && $root.length) ? $root : $('.step-onlytid'); let $filters = $root.find('.tg-onlytid-filters'); if (!$filters.length) { return; } let $list = $root.children('.container').first(); let $cards = $list.find('.tg-event-element'); let $calendar = $filters.find('.tg-onlytid-calendar'); $filters.show(); // Календарь строим всегда, даже если список мероприятий пустой let themeToday = $filters.attr('data-theme-today') === '1'; if ( $calendar.length && $filters.attr('data-has-calendar') === '1' && !themeToday ) { tgBuildOnlyTidCalendar($calendar, $cards); } else { $calendar.hide().empty(); } // Кнопка Пушкинской карты только если в списке реально есть значок let hasPushka = $cards.find('.tg-pushka-name').length > 0; $filters .find('.tg-onlytid-pushka') .toggle(hasPushka) .removeClass('active'); function refreshSeparators() { let $currentSep = null; let hasVisibleAfterSep = false; function flushSep() { if ($currentSep) { if (hasVisibleAfterSep) { $currentSep.show(); } else { $currentSep.hide(); } } } $list.children('.tg-event-theme_separate, .tg-event-element').each(function() { let $el = $(this); if ($el.hasClass('tg-event-theme_separate')) { flushSep(); $currentSep = $el; hasVisibleAfterSep = false; $el.hide(); return; } if ($el.is(':visible')) { hasVisibleAfterSep = true; } }); flushSep(); } function tgFilterShow($el) { $el.each(function() { this.style.removeProperty('display'); }); } function tgFilterHide($el) { $el.each(function() { this.style.setProperty('display', 'none', 'important'); }); } function applyFilters() { let q = tgOnlyTidNormalize($filters.find('.tg-onlytid-search').val()); let onlyPushka = $filters.find('.tg-onlytid-pushka').hasClass('active'); let visible = 0; let total = $cards.length; $cards.each(function() { let $card = $(this); let text = tgOnlyTidNormalize( ($card.attr('data-search') || '') + ' ' + $card.text() ); let okSearch = !q || text.indexOf(q) !== -1; let okPushka = !onlyPushka || $card.find('.tg-pushka-name').length > 0; let ok = okSearch && okPushka; if (ok) { tgFilterShow($card); visible++; } else { tgFilterHide($card); } }); $filters.find('.tg-onlytid-count').text(visible + ' из ' + total); if (total === 0) { $filters.find('.tg-onlytid-empty') .show() .text('На выбранную дату мероприятий нет. Выберите другую дату в календаре.'); } else { $filters.find('.tg-onlytid-empty') .toggle(visible === 0) .text('По выбранным фильтрам ничего не найдено'); } refreshSeparators(); } $filters.off('.tgOnlyTid'); $filters.on('input.tgOnlyTid', '.tg-onlytid-search', function() { applyFilters(); }); $filters.on('click.tgOnlyTid', '.tg-onlytid-pushka', function(e) { e.preventDefault(); $(this).toggleClass('active'); applyFilters(); }); $filters.on('click.tgOnlyTid', '.tg-onlytid-clear', function(e) { e.preventDefault(); $filters.find('.tg-onlytid-search').val(''); $filters.find('.tg-onlytid-pushka').removeClass('active'); applyFilters(); }); applyFilters(); } globalSetups["step-hall"] = "Выберите свой билет"; globalSetups["step-user"] = "Укажите Заказчика"; //console.log('globalSetups', globalSetups); var device_vk = ''; var hash = ''; var globalStep = 0; var activeDates = []; var device_ym = 0; maxTicket = 9; device_ym = 26816901; ym(26816901, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true }); var sidhash = 'cfa2eb2e-f7c5-4c46-a771-77a8123b69d8'; var port = 1444; var deviceType = 'pc'; var userinfo = {}; var hs = 'f1c1592588411002af340cbaedd6fc33'; var utm_source = getParameterByName('utm_source'); (utm_source || !getCookie('tgutm')) && (document.cookie = "tgutm="+JSON.stringify({ "referrer":encodeURIComponent(document.referrer), "source":utm_source, "medium":getParameterByName('utm_medium'), "campaign":getParameterByName('utm_campaign'), "findreq":"", "ga":getCookie('_ga') ? getCookie('_ga').slice(6) : '', "ya":GetYMCID() })+"; path=/;"); ym(58983796,'reachGoal','tg_startView'); if(device_ym) ym(device_ym,'reachGoal','tg_startView'); if(device_ym) ga('send', 'event', 'tg', 'startView'); if (device_vk) { window._tmr = window._tmr || []; window._tmr.push({ type: 'reachGoal', id: device_vk, goal: 'tg_startView' }); } globalTHEATER = '';globalStep = 1;globalTID='2'; let arr = []; arr[1] = '0'; arr[2] = '0'; arr[3] = '2'; arr[4] = '0'; arr[5] = '0'; arr[6] = '0'; arr[7] = ''; function tgPad2(n) { n = parseInt(n, 10); return n < 10 ? '0' + n : '' + n; } function tgDateDotFromAny(dateStr) { dateStr = String(dateStr || '').trim(); // 05.07.2026 if (/^\d{2}\.\d{2}\.\d{4}$/.test(dateStr)) { return dateStr; } // 05-07-2026 if (/^\d{2}-\d{2}-\d{4}$/.test(dateStr)) { let p = dateStr.split('-'); return p[0] + '.' + p[1] + '.' + p[2]; } // 2026-07-05 if (/^\d{4}-\d{2}-\d{2}/.test(dateStr)) { let p = dateStr.substr(0, 10).split('-'); return p[2] + '.' + p[1] + '.' + p[0]; } return dateStr; } function tgBuildOnlyTidCalendar($calendar, $cards) { let activeDates = {}; $cards.each(function() { let dates = String($(this).attr('data-dates') || '').split('|'); dates.forEach(function(date) { date = tgDateDotFromAny(date); if (date) { activeDates[date] = true; } }); }); let monthNames = [ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь' ]; let weekNames = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']; let $filters = $calendar.closest('.tg-onlytid-filters'); let numOfDays = parseInt($filters.attr('data-days'), 10); if (isNaN(numOfDays) || numOfDays < 1) { numOfDays = 30; } if (numOfDays > 180) { numOfDays = 180; } let startDate = new Date(); startDate.setHours(0, 0, 0, 0); let lastMonth = -1; let lastYear = -1; let html = '' + '<button type="button" class="tg-onlytid-calendar-arrow tg-onlytid-calendar-prev" aria-label="Назад">‹</button>' + '<div class="tg-onlytid-calendar-viewport">' + '<div class="tg-onlytid-calendar-scroll">'; while (numOfDays--) { let year = startDate.getFullYear(); let month = startDate.getMonth(); let day = tgPad2(startDate.getDate()); let monthNum = tgPad2(month + 1); if (lastYear !== year) { lastYear = year; html += '<div class="tg-onlytid-calendar-year">' + year + '</div>'; } if (lastMonth !== month) { lastMonth = month; html += '<div class="tg-onlytid-calendar-month">' + monthNames[month] + '</div>'; } let dotDate = day + '.' + monthNum + '.' + year; let dashDate = day + '-' + monthNum + '-' + year; let isWeekend = startDate.getDay() % 6 === 0; let hasEvents = !!activeDates[dotDate]; let href = '/tickets/f1c1592588411002af340cbaedd6fc33/' + arr[1] + '/' + arr[2] + '/' + arr[3] + '/' + dashDate + ':' + dashDate + '/' + '0/' + (arr[6] ? arr[6] : '') + '/' + (arr[7] ? arr[7] : '') + '/widget4'; html += '' + '<a class="tg-onlytid-calendar-day' + (isWeekend ? ' weekend' : '') + (hasEvents ? ' has-events' : ' no-events') + '" href="' + href + '" data-date="' + dotDate + '">' + '<span class="tg-onlytid-calendar-week">' + weekNames[startDate.getDay()] + '</span>' + '<span class="tg-onlytid-calendar-number">' + day + '</span>' + (hasEvents ? '<span class="tg-onlytid-calendar-dot"></span>' : '') + '</a>'; addDay(startDate); } html += '' + '</div>' + '</div>' + '<button type="button" class="tg-onlytid-calendar-arrow tg-onlytid-calendar-next" aria-label="Вперёд">›</button>'; $calendar.html(html).show(); tgInitOnlyTidCalendarArrows($calendar); } function tgInitOnlyTidCalendarArrows($calendar) { let $viewport = $calendar.find('.tg-onlytid-calendar-viewport'); let $prev = $calendar.find('.tg-onlytid-calendar-prev'); let $next = $calendar.find('.tg-onlytid-calendar-next'); function getStep() { let $day = $calendar.find('.tg-onlytid-calendar-day').first(); if (!$day.length) { return 280; } let dayWidth = $day.outerWidth(true); // примерно 5 дней за одно нажатие return dayWidth * 5; } function updateArrows() { let el = $viewport.get(0); if (!el) { return; } let maxScroll = el.scrollWidth - el.clientWidth; $prev.toggleClass('disabled', el.scrollLeft <= 2); $next.toggleClass('disabled', el.scrollLeft >= maxScroll - 2); } $prev.off('click.tgCalendar').on('click.tgCalendar', function(e) { e.preventDefault(); $viewport.stop(true).animate({ scrollLeft: $viewport.scrollLeft() - getStep() }, 220, updateArrows); }); $next.off('click.tgCalendar').on('click.tgCalendar', function(e) { e.preventDefault(); $viewport.stop(true).animate({ scrollLeft: $viewport.scrollLeft() + getStep() }, 220, updateArrows); }); $viewport.off('scroll.tgCalendar').on('scroll.tgCalendar', updateArrows); setTimeout(updateArrows, 50); } $(document).ready(function() { let $stepEvent = $('.step-event'); let $eventsContain = $('.container', $stepEvent); let $events = $('.tg-events', $eventsContain); let $pageTitle = $('.page-title', $stepEvent); let $l = $('<div class="loading128"></div>').appendTo('body'); $.post("nu", 'eyJ0aGVtZXMiOlsyXSwiZGF0ZV9mcm9tIjoiMjYtMDctMjAyNiIsImRhdGVfdG8iOiIyNC0wOS0yMDI2IiwiZGF0ZV9hdXRvIjoiWSIsImVpZCI6WzBdLCJzaWQiOlswXSwiaXAiOiIxODUuMTkyLjExMS4xMzAiLCJicm93c2VyIjoidW5rbm93biIsImJyb3dzZXJfdmVyc2lvbiI6InVua25vd24iLCJwbGF0Zm9ybSI6InVua25vd24iLCJkZXZpY2VfdHlwZSI6InBjIiwiZ2EiOiIiLCJxdWVyeSI6IiIsImZpbmRyZXEiOiIiLCJjdXJyZW5jeV9pZCI6IjEiLCJ5YSI6IiIsInNvdXJjZV9tYWluIjoiIiwibWVkaXVtX21haW4iOiIiLCJjYW1wYWlnbl9tYWluIjoiIiwicmVmZXJlciI6IiIsInV0bSI6bnVsbCwic2hvd19zZXNzaW9ucyI6ImYiLCJmaXJzdF90aGVhdGVyIjoiMSwyIn0=', (d) => { //cl(d, "nu"); // console.log(d, 'nu'); $l.remove(); //hs console.log(d); let currentThemeAll = {}; if((d.theaters || arr[2]=='all' || arr[2].indexOf(',') !== -1) && true && true){ let $stepTheaters = $('.step-theaters').show(); let $theaters = $('.container', $stepTheaters); console.log('d.theaters', d.theaters); let s = ''; if(!d.theaters) s = 'Площадки недоступны'; else for(const theater of d.theaters){ s += '<div class="theaterContainer transition shadow-md'+(theater.id==arr[2]?' active':'')+'"><a href="/tickets/f1c1592588411002af340cbaedd6fc33/'+ arr[1]+'/'+ theater.id+'/0/0/0/'+(arr[6]?arr[6]:'')+'/' +(arr[7]?arr[7]:'')+'/widget4"><div>'; s += '<div data-id="64" class="tg-theater-element" style="background:url(/api/tickets/files/'+sidhash+'/'+theater.file_id+'_ws.jpg) no-repeat center;"></div>'; s += '<div class="name">'+theater.name+'</div>'; s += '<div class="category">'+theater.thname+'</div>'; s += '<div class="city">'+theater.city+' <span class="address">'+theater.address+'</span></div></div></a>'; s += '<div class="code"><a href="https://'+theater.code+'.muscom.ru" target="_blank"><span>'+theater.code+'.muscom.ru</span></a></div>'; //s += '<div class="preview_text"> <span>'+theater.preview_text+'</span></div>'; s += '</div>'; } $theaters.html(s); if( arr[2] == 'all' || arr[2].indexOf(',') !== -1 ){ $('.step-themes').hide(); return; } } let selectedThemeToday = false; if(d.themes){ let $stepThemes = $('.step-themes'); let $themes = $('.container', $stepThemes); let s = '<div class="page-subtitle"></div>'; s += '<div class="tg-themes tg-theme-menu">'; console.log(d.themes); if (typeof d.themes === "undefined") { }else for (let theme of d.themes){ currentThemeAll[theme.theme_id] = theme; if (typeof theme.cnt === "undefined") theme.cnt =1; if(theme.theme_id=='2'){ if ( String(theme.today).toLowerCase() === 't' ) { selectedThemeToday = true; } // currentTheme = theme; }//show_sessions:Y;hide_sessions:Y; s += '<a class="tg-theme-cnt-' + (theme.cnt?theme.cnt:'0') + '" href="/tickets/f1c1592588411002af340cbaedd6fc33/'+ arr[1]+'/'+arr[2]+'/' +theme.theme_id+'/0/0/'+(arr[6]?arr[6]:'')+'/' + (theme.period?"":"" ) +(arr[7]?arr[7]:'')+'/widget4"><div style="'+ (theme.color?'--theme-color:#'+theme.color+';':'')+'" class="tg-theme-element-container '+((theme.theme_id == arr[3])?'active-theme':'') +'"><div data-id="'+theme.theme_id+'" class="tg-theme-element '+((theme.theme_id == arr[3])?'active-theme':'') +'" style="'+ (theme.color?'border-color: #'+theme.color+';box-shadow: inset 1px 1px 2px 1px #'+theme.color+';':'') +( parseInt(theme.file_id)? 'background:url(/api/tickets/files/'+sidhash+'/'+theme.file_id+'_ws.'+theme.ext+') no-repeat center;':'' /*'background:url(http://194.50.143.85/api/tickets/uploads/files/'+theme.dir+'/ws_'+theme.file_id+'.webp) no-repeat center;'*/ )+'"></div><div class="tg-theme-name">' + theme.themes_name + '</div>'+ ( theme.preview_text ? '<div class="tg-theme-desc">' + (theme.preview_text) + '</div>' : '' )+'</div></a>'; } s += '</div>'; $themes.html(s); } $('.step-onlytid .tg-onlytid-filters') .attr('data-theme-today', selectedThemeToday ? '1' : '0'); if (selectedThemeToday) { $('.step-onlytid .tg-onlytid-calendar').hide().empty(); } if(d.errorEvents){ if( d.errorEvents == "Билет" || d.errorEvents == "К сожалению, все билеты на данное мероприятие распроданы"){ d.errorEvents = d.errorEvents; } $('.step-event .container').html(d.errorEvents); $('.step-hall .container').html(d.errorEvents); $('.step-onlytid .container').html( '<div class="tg-onlytid-no-events">' + d.errorEvents + '</div>' ); if (typeof tgInitOnlyTidFilters === 'function') { tgInitOnlyTidFilters($('.step-onlytid')); } return; } if(d.error){ let errorText = "Ошибка при загрузке"; if( d.error == "http-code: 0"){ errorText = 'Сервер недоступен. Повторите через несколько минут.'; } $('.step-event .container').html(errorText); $('.step-hall .container').html(errorText); $('.step-onlytid .container').html( '<div class="tg-onlytid-no-events">' + errorText + '</div>' ); if (typeof tgInitOnlyTidFilters === 'function') { tgInitOnlyTidFilters($('.step-onlytid')); } return; } var last_date = ''; function showSesName(session, type){ let s = ''; let t = ''; if(last_date!=session.session_date) { s += '<div class="tg-ses-date-name">'+session.session_date+'</div>'; last_date = session.session_date; } t = session.session_time; let price_text = "0"; if(session.prices){ let p_arr = session.prices.split("-"); if(p_arr[0] == p_arr[1]) price_text = (p_arr[0]/ 100).format(2); else price_text = (p_arr[0]/ 100).format(2) + ' - '+(p_arr[1]/ 100).format(2); } s += '<div class="tg-events-session-element-cont"><div><a href="#null"><div eid="'+session.eid+'" sid="'+session.sid+'" hid="'+session.hall_id+'" class="tg-events-session-element tg-open-event'+ ( (session.events_type_id == 2 || session.events_type_id == 4) ? ' complex':'') + '" data-id="'+session.sid+'">'+t+(Object.keys(halls).length > 1?' '+halls[session.hall_id]:'')+'</div></a></div><div class="tg-events-session-element-right"><div class="tg-events-session-element-theater"><div>'+session.t_name+'</div><div class="tg-events-session-element-hall">'+session.hall_name+'</div></div><div class="tg-events-session-element-price">'+price_text+' ₽</div><div class="tg-events-session-element-free">Свободно: '+session.tg_free+'</div></div><div class="tg-events-session-element-button"><a href="#null"><div eid="'+session.eid+'" sid="'+session.sid+'" hid="'+session.hall_id+'" class="tg-events-session-element tg-open-event'+ ( (session.events_type_id == 2 || session.events_type_id == 4) ? ' complex':'') + '" data-id="'+session.sid+'">Купить</div></a></div></div>'; return s; } let events = {}; let halls = {}; let currentTheme = {}; let $stepThemes = $('.step-onlytid'); let $themes = $('.container', $stepThemes); let s = ''; if(d.r && d.r.length){ let eventsPos = {}; for (let k in d.r){ let event = d.r[k]; if(!events [event.eid]){ eventsPos[k] = event.eid; events [event.eid] = {}; events [event.eid]["sessions"] = []; events [event.eid]["ename"] = event.ename; events [event.eid]["age_category"] = event.age_category; events [event.eid]["theme_id"] = event.theme_id; events [event.eid]["short_description"] = event.short_description; events [event.eid]["preview_text"] = event.preview_text; events [event.eid]["detail_text"] = event.detail_text; events [event.eid]["session_date"] = event.session_date; events [event.eid]["session_time"] = event.session_time; events [event.eid]["event_type_name"] = event.event_type_name; events [event.eid]["pushka"] = event.pushka; if(event.is_presale) events [event.eid]["presale_text"] = event.presale_text; if(event.file_id){ //events [event.eid]["preview_file"] = event.file_id+'.'+event.ext; events [event.eid]["preview_file"] = event.file_id+'_wxm.'+event.ext; events [event.eid]["preview_file_300"] = event.file_id+'_ws.'+event.ext; } } if(event.hall_id){ halls[event.hall_id] = event.hall_name; } events [event.eid]["sessions"].push(event); } //console.log('currentThemeAll', currentThemeAll); let lastTheme = ""; for (let ik in eventsPos){ k = eventsPos[ik]; let event = events[k]; let sessions = event.sessions; // console.log('event.theme_id', event.theme_id); //if(!currentThemeAll [ event.theme_id ]) // continue; currentTheme = currentThemeAll [ event.theme_id ]?currentThemeAll [ event.theme_id ]:{ "id":event.theme_id }; let eventFilterDates = []; let eventFilterDateMap = {}; let eventFilterHalls = []; let eventFilterTimes = []; for (let fs of sessions) { if (fs.start_date && !eventFilterDateMap[fs.start_date]) { eventFilterDateMap[fs.start_date] = true; eventFilterDates.push(fs.start_date); } if (fs.hall_name && eventFilterHalls.indexOf(fs.hall_name) === -1) { eventFilterHalls.push(fs.hall_name); } if (fs.session_time && eventFilterTimes.indexOf(fs.session_time) === -1) { eventFilterTimes.push(fs.session_time); } } let eventPushka = ( event.pushka && ['0', 'f', 'false', 'n', 'no'].indexOf(String(event.pushka).toLowerCase()) === -1 ) ? 1 : 0; let eventDescSearch = $('<div>') .html(event.preview_text ? event.preview_text : event.short_description) .text(); let eventFilterSearch = [ event.ename, event.age_category, currentTheme.themes_name || '', eventDescSearch, eventFilterHalls.join(' '), eventFilterTimes.join(' ') ].join(' '); let eventFilterSearchAttr = (typeof tgEscapeHtml === 'function') ? tgEscapeHtml(eventFilterSearch) : String(eventFilterSearch) .replace(/&/g, '&') .replace(/"/g, '"') .replace(/</g, '<') .replace(/>/g, '>'); //if(sessions.length==1){ // arr[6] = sessions[0].sid; //}else arr[6] = 0; console.log('currentTheme', currentTheme); if(currentTheme && lastTheme != currentTheme.themes_name){ lastTheme = currentTheme.themes_name; if(arr[3] != currentTheme.theme_id) s += '<div data-id="'+currentTheme.theme_id+'" class="tg-event-theme_separate"><span>'+currentTheme.themes_name+'</span></div>'; } //console.log(currentTheme, 'currentThemeAll11'); //"/api/tickets/files/"+d.sidhash+'/'+hall.file_id+'.'+hall.ext s += '<div data-id="'+k+'" class="tg-event-element" data-pushka="'+eventPushka+'" data-dates="'+eventFilterDates.join('|')+'" data-search="'+eventFilterSearchAttr+'">'; let a = '<a href="/tickets/f1c1592588411002af340cbaedd6fc33/'+arr[1]+'/'+arr[2]+'/' +(currentTheme.theme_id?currentTheme.theme_id:event.theme_id)+'/' + (arr[4] == '0'?( (currentTheme.today == 't' || ( event["sessions"] && event["sessions"][0]["today"] == 't'))?'today':'0' ):arr[4])+'/'+k+'/'+(arr[6]?arr[6]:'') // +'/'+(currentTheme.today == 't'?'0':'0') +'/'+(arr[7]?arr[7]:'')+'/widget4">'; let a_event = '<a href="/tickets/f1c1592588411002af340cbaedd6fc33/'+arr[1]+'/'+arr[2]+'/' +(currentTheme.theme_id?currentTheme.theme_id:event.theme_id)+'/' + (arr[4] == '0'?( (currentTheme.today == 't' || ( event["sessions"] && event["sessions"][0]["today"] == 't'))?'today':'0' ):arr[4])+'/'+k+'/'+(currentTheme.today == 't'?'0':'0') +'/'+(arr[7]?arr[7]:'')+'/widget4">'; s += '<div class="tg-event-element-name-tr"><div '; if(event.preview_file_300) s += 'style="background:url(/api/tickets/files/'+sidhash+'/'+event.preview_file_300+') no-repeat center;"'; s += ' class="tg-event-element-name"><div class="tg-event-image"'; if(event.preview_file_300) s += 'style="background-image:url(/api/tickets/files/'+sidhash+'/'+event.preview_file_300+');"'; s += '></div><div class="tg-event-flex"><div class="tg-event-theme">' + currentTheme.themes_name+ '</div>' + a + '<h2 class="tg-event-name">' +event.ename+ '</h2><span class="age_category"><span class="age_category_title">Возрастная категория: ' +event.age_category+ '</span></span>'+(eventPushka?'<div class="tg-pushka-name"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="credit-card" class="lucide lucide-credit-card w-4 h-4"><rect width="20" height="14" x="2" y="5" rx="2"></rect><line x1="2" x2="22" y1="10" y2="10"></line></svg> Пушкинская карта</div>':'')+'</a><div class="tg-event-elements-desc">' +(event.preview_text?event.preview_text:event.short_description)+ '</div>'; s += '<div class="tg-event-elements-sessions-group">'; let allHalls = []; let $dc = $('.tg-calendar'); const months = [ 'января','февраля','марта','апреля','мая','июня', 'июля','августа','сентября','октября','ноября','декабря' ]; let dates = []; let dateMap = {}; // собираем уникальные даты for(let session of sessions){ if(allHalls.indexOf(session.hall_name) === -1) allHalls.push(session.hall_name); let dt = session.start_date.split("."); let date = new Date(dt[2], dt[1]-1, dt[0]); let ts = date.getTime(); if(!dateMap[ts]){ dateMap[ts] = true; dates.push({ ts: ts, d: date.getDate(), m: date.getMonth() }); } $('.day[data-date="'+session.start_date+'"]', $dc).addClass('checked'); } dates.sort((a,b)=>a.ts-b.ts); // строим диапазоны let ranges = []; if(dates.length){ let start = dates[0]; let prev = dates[0]; for(let i=1;i<dates.length;i++){ let d = dates[i]; if(d.ts - prev.ts === 86400000){ prev = d; continue; } ranges.push({start:start,end:prev}); start = d; prev = d; } ranges.push({start:start,end:prev}); } // группируем по месяцам let monthGroups = {}; ranges.forEach(r => { let m = r.start.m; if(!monthGroups[m]) monthGroups[m] = []; if(r.start.ts === r.end.ts) monthGroups[m].push(r.start.d.toString()); else monthGroups[m].push(r.start.d + '–' + r.end.d); }); let out = []; for(let m in monthGroups){ out.push( monthGroups[m].join(' • ') + ' ' + months[m] ); } s += '📅 ' + out.join(' • '); if(event.presale_text) s += '<div class="tg-event-elements-sessions-presale">'+event.presale_text+'</div>'; s += '<div class="tg-event-elements-sessions-group-halls">'; for(let hall of allHalls){ s += '<div>'+hall+'</div>'; } s += '</div>'; s += '</div>'; s += '<div class="tg-event-buttons">'; if(event.presale_text) s += '<div class="tg-event-button">'+a_event+'Информация</a></div>'; else if(event.preview_text) s += '<div class="tg-event-button">'+a_event+'Подробнее</a></div>'; else s += '<div class="tg-event-button">'+a+'Купить</a></div>' s += '</div>'; s += '</div></div></div></div>'; } s += ''; $themes.html(s); if (typeof tgInitOnlyTidFilters === 'function') { tgInitOnlyTidFilters($stepThemes); } //console.log(s); let event = events[ d.r[0]['eid'] ] ; s = ''; let se = ''; if(!globalSID && (globalEID && globalEID.indexOf(',')==-1) ){ /*document.querySelector('meta[name="description"]').setAttribute("content", (event.preview_text?event.preview_text:event.short_description)); document.querySelector('meta[name="keywords"]').setAttribute("content", event.ename); $('meta[property=og\\:title]').attr('content', event.ename); $('meta[property=og\\:url]').attr('content', 'https://widget.telegreen.ru/tickets/'+hs+'/'+arr[1]+'/'+arr[2]+'/'+arr[3]+'/'+ arr[4]+'/'+arr[5]+'/0/'+arr[7]+'/widget4'); */ if(event.preview_file){ //$('meta[property=og\\:image]').attr('content', 'https://widget.telegreen.ru/api/tickets/files/'+sidhash+'/'+event.preview_file); $('.col-lg-6', $stepEvent) .css({ 'width': '100%', 'max-width': '100%', 'flex': '0 0 100%' }); se += '<div class="tg-event-detail-img" style="background:url(/api/tickets/files/'+sidhash+'/'+event.preview_file+');"></div><div class="tg-event-detail-image" style="background:url(/api/tickets/files/'+sidhash+'/'+event.preview_file+') center;">'; se += '<h2 class="tg-event-name-image">' +event.ename+ ' <span class="age_category">' +event.age_category+ '</span>'+(event.pushka?'<div class="tg-pushka-name">Возможна оплата по Пушкинской карте</div>':'')+'</h2>'; se += '</div>'; se += '<div class="tg-event-buy-button-scroll" onclick="buyButtonScroll()">Выберите '+(event.event_type_name?event.event_type_name:'сеанс')+'</div>'; }else{ se += '' +event.ename+ ' <span class="age_category">' +event.age_category+ '</span>'; } }else if(globalSID){ //('meta[property=og\\:title]').attr('content', event.ename); //$('meta[property=og\\:url]').attr('content', 'https://widget.telegreen.ru/tickets/'+hs+'/'+arr[1]+'/'+arr[2]+'/'+arr[3]+'/'+ arr[4]+'/'+arr[5]+'/0/0/widget4'); // document.querySelector('meta[name="og:title"]').setAttribute("content", event.ename); //document.querySelector('meta[name="description"]').setAttribute("content", (event.preview_text?event.preview_text:event.short_description)); //document.querySelector('meta[name="keywords"]').setAttribute("content", event.ename); //document.querySelector('meta[name="og:url"]').setAttribute("content", '/tickets/'+hs+'/'+arr[1]+'/'+arr[2]+'/'+arr[3]+'/'+ arr[4]+'/'+arr[5]+'/0/'+arr[7]+'/widget4'); if(event.preview_file){ //$('meta[property=og\\:image]').attr('content', 'https://widget.telegreen.ru/api/tickets/files/'+sidhash+'/'+event.preview_file_300); se += '<div class="tg-event-element-name-tr2"><div class="tg-event-element-name"><div class="tg-event-image"'; if(event.preview_file_300) se += 'style="background-image:url(/api/tickets/files/'+sidhash+'/'+event.preview_file_300+');"'; se += '></div><div class="tg-event-flex"><div class="tg-event-elements-desc">' +(event.preview_text?event.preview_text:event.short_description)+ '</div>'; }else{ se += '' +event.ename+ ' <span class="age_category">' +event.age_category+ '</span>'; } }else{ se += '' +event.ename+ ' <span class="age_category">' +event.age_category+ '</span>'; } $pageTitle.html( se ); $('.eventName').html( event.ename +' <span class="tg-event-session-date">'+event.session_date+'</span> <span class="tg-event-session-time">'+event.session_time +'</span>'); $('.tg-event--short-description').html( event.short_description ); let add = '<div class="tg-detail-boxs">'; if(d.openEvent && d.openEvent.hall){ add += '<div class="tg-detail-box tg-detail-box-hall">'; add += '<div>Место проведения: <div>'+d.openEvent.hall[0].theater_name+'</div></div>'; add += '<div>Адрес: <span class="ymaps-geolink">'+d.openEvent.hall[0].theater_address+'</span></div>'; add += '</div>'; } if(d.openEvent && d.openEvent.hall){ let hall = d.openEvent.hall[0]; let coords = ''; if(hall.theater_coords){ coords = hall.theater_coords.replace(/[()]/g,''); } let fullAddress = ''; if(hall.city_name) fullAddress += hall.city_name + ', '; if(hall.theater_address) fullAddress += hall.theater_address; add += '<div class="tg-detail-box tg-detail-box-hall">'; add += '<div>Место проведения: <div>'+hall.theater_name; if(hall.theater_code && hall.theater_code !== ''){ add += ` <a href="https://${hall.theater_code}.muscom.ru/" target="_blank" class="tg-hall-more" title="Подробнее о площадке"> <span class="tg-hall-more-icon"></span> </a> `; } add += '</div></div>'; add += '<div>Адрес: '; add += '<span class="ymaps-geolink" '+ 'data-type="geo" '+ 'data-description="'+hall.theater_name+'" '+ 'data-coordinates="'+coords+'">'+ fullAddress+ '</span>'; add += '</div>'; add += '</div>'; } if( d.infoBLocks ) { for (let block of d.infoBLocks){ add += '<div class="tg-detail-box tg-detail-box-type-'+block.type+'">'; add += '<div class="tg-detail-box-title tg-detail-box-type-'+block.type+'-title">'+block.name+'</div>'; add += '<div class="tg-detail-box-name tg-detail-box-type-'+block.type+'-name">'+block.value+'</div>'; add += '</div>'; } } add += '</div>'; s+= (event.detail_text?'<div class="tg-detail-container"><div class="tg-detail-text">'+event.detail_text+'</div><div class="tg-detail-add">'+add+'</div></div>'+ '<div class="tg-sessions-check-tilte">Выберите '+(event.event_type_name?event.event_type_name:'сеанс')+'</div>':event.short_description) ; //for (let theme of d.themes){ // console.log(theme); //} s += ''; if( globalSID && (globalEID && globalEID.indexOf(',')==-1) ){ if(d.openEvent){ openEvent = d.openEvent; openEvent.sidhash = d.sidhash; //console.log(openEvent, 'openEvent3'); } let session = d.r[0]; /*s += '<h3>'+session.ename+'</h3><div class=""><button class="select-time-item'+( (session.events_type_id == 2 || session.events_type_id == 4) ? ' complex':'')+'" data-value="'+session.sid+'" data-hid="'+session.hall_id+'"><span>'+session.sname+'</span></button></div>'; $eventsContain.html(s);*/ $stepEvent.addClass("step-one"); $('<button>') .addClass('select-time-item'+( (session.events_type_id == 2 || session.events_type_id == 4) ? ' complex':'')+'') .data('value', session.sid) .data('hid', session.hall_id) .html("Вернуться") .appendTo( $eventsContain ) .click(); }else $stepEvent.removeClass("step-one"); if( !globalSID && (globalEID && globalEID.indexOf(',')==-1) ){ s += ''; if(parseInt(currentTheme.period) > 0 && currentTheme.calendar != 't'){ s += '<div class="tg-event-elements-sessions"><div class="tg-event-elements-session-data">'; last_date = ''; for(let session of d.r){ s += showSesName(session); } s += '</div></div>'; }else{ let $selTime = $('.b-select-time .row', $stepEvent); for (let k in d.r){ let event = d.r[k]; let dt = event.start_date.split("."); activeDates.push(Date.parse(new Date(dt[2], dt[1]-1, dt[0]))); //$selTime.append('<div class="col col-3 col-lg-2"><button class="select-time-item'+((event.events_type_id == 2 || event.events_type_id == 4)?' complex':'')+'" data-value="'+event.sid+'"><span>'+event.session_time+'</span></button></div>'); } $('.datepicker')[0].dispatchEvent(new Event("dateReady", {bubbles: true})); } $events .hide() .html(s) .slideDown(); } }else{ let emptyText = 'К сожалению, активные мероприятия в данной категории отсутствуют'; $pageTitle.html(emptyText); $themes.html('<div class="tg-onlytid-no-events">' + emptyText + '</div>'); if (typeof tgInitOnlyTidFilters === 'function') { tgInitOnlyTidFilters($stepThemes); } } }, 'json'); });
Музей-заповедник А.С.Пушкина - Виджет музея Все события
....
Вернуться к выбору площадки
Выберите категорию билета
Вернуться к выбору категории
Выберите билет
⌕
Пушкинская карта
По выбранным фильтрам ничего не найдено
Вернуться к выбору мероприятия
Вернуться к выбору сеанса
Выберите свой билет
Вы выбрали 0 билетов
Итого 0 ₽
Сервисный сбор: 0 ₽
Оформить
Вернуться к выбору билетов
Укажите Заказчика
Не авторизован
Контакты технической поддержки по электронным билетам
+7(495) 204-23-30
support@telegreen.ru
Правовая информация
Политика обработки ПД Политика cookie
{!help!}
Оплатить
TeleGreen - билетная система
17 июля 2024
Мама троих детей Юлия Журавлева рассказала, как проходили ее роды в стенах Одинцовского роддома.
17 июля 2024
Фотовыставка «Знаменитые люди Звенигорода» открылась в сквере имени Чехова в центре Звенигорода.
17 июля 2024
Официальная трансляция турнира будет доступна на телеканале «Матч ТВ».
17 июля 2024
В деревне Зайцево Одинцовского округа 13 июля прошла экологическая акция «Чистый лес».
17 июля 2024
Московская область сохраняет статус одного из наиболее перспективных и развивающихся регионов России.
17 июля 2024

