PageSourceSearch

https://www.vizit-dance.ru/style/js/main.js?x10339

js vizit-dance.ru collected 2026-09-30 11:46:21 UTC 7,504 bytes, 167 lines download raw bytes

1const getMetrikaParams = (form) => {
2	let data = new FormData(form)
3	let params = {}
4	params.phone = data.get('fldphone')?.replace(/\D/g, "")
5	params.page = data.get('fld7694')
6	return params
7}
8
9const loadModalWidget = (rootId, widgetId) => {
10	$('body').append('<div id="' + rootId + '" style="display: none;"></div>');
11	$.ajaxSetup({ cache: true });
12	$.getScript('https://app.moyklass.com/api/site/widget/?id=' + widgetId, function() {
13		setTimeout(() => WdgMoyklass[widgetId].init());
14	});
15}
16
17$(document).ready(function() {
18
19	const FORM_HEADERS = {
20		form_book_trible: "Приходите на пробный урок!",
21		form_book_stretch: "Приходите на пробный урок!",
22		form_book_latina: "Приходите на пробный урок!",
23		form_book_classic: "Приходите на пробный урок!",
24		form_book_flamenco: "Приходите на пробный урок!",
25		form_book_belly: "Приходите на пробный урок!",
26		form_book_body: "Приходите на пробный урок!",
27		form_book_other: "Приходите на пробный урок!",
28		form_book_child_classic: "Приходите на пробный урок!",
29		form_book_hiphop: "Приходите на пробный урок!",
30		form_book_zumba: "Приходите на пробный урок!",
31		default: "Приходите на пробный урок!",
32	}
33
34	/* Enable Moy Klass Modals */
35	var modals = $('.lead-modal');
36	if (modals.length) {
37		let modalId = '01X1T9sVwju9k261fwLME1Ft5L8o9nuUxAax';
38		let modalHiddenField = '#wdgMoyklass74244Form7694'
39		loadModalWidget('SiteWidgetMoyklass74244', modalId);
40
41		modals.click(function() {
42			// Set Hidden Field Value (Comment)
43			var that = this;
44			if (WdgMoyklass[modalId].modalElement && WdgMoyklass[modalId].modalElement.open) {
45				if (!WdgMoyklass[modalId].modalElement._open)
46					WdgMoyklass[modalId].modalElement._open = WdgMoyklass[modalId].modalElement.open;
47
48				WdgMoyklass[modalId].modalElement.open = (function() {
49					WdgMoyklass[modalId].modalElement._open();
50					let formInfo = that.getAttribute('form-info');
51					let formMetrika = that.getAttribute('form-metrika') || 'form_book_other';
52					let formHeader = FORM_HEADERS[formMetrika] || FORM_HEADERS['default'];
53					let formEl = $(WdgMoyklass[modalId].modalElement.content).find('form');
54					formEl.attr('form-metrika', formMetrika);
55					$(WdgMoyklass[modalId].modalElement.modalContainerModal).find('.wdgMoyklass-h1').text(formHeader);
56					$(WdgMoyklass[modalId].modalElement.modalContainerModal).find(modalHiddenField).val(formInfo);
57					let widget = WdgMoyklass[modalId];
58					if (!widget._viewSuccess) {
59						widget._viewSuccess = widget.viewSuccess;
60						widget.viewSuccess = (function(string) {
61							this._viewSuccess(string);
62							let target = $(this.modalElement.content).find('form')[0].getAttribute('form-metrika') || 'form_book_other';
63							let formElement = $(this.modalElement.content).find('form')[0];
64							let params = getMetrikaParams(formElement);
65							ym(445213, 'reachGoal', target, params);
66							console.log('New Goal: ' + target, params);
67						}).bind(widget);
68					}
69				}).bind(WdgMoyklass[modalId]);
70			}
71			
72			// Open Modal
73			WdgMoyklass[modalId].loadLeadFormByModal();
74		});
75	}
76	
77	/* Set Hidden Field Value (Open Forms) */
78	let form = $('.sendform[form-info]');
79	if (form.length) {
80		let formId = '01pb1dgPKq7RchvBl6Tg0BCjY3zSFXdDrszW';
81		let formHiddenField = '#wdgMoyklass74578Form7694';
82		var intervalId = setInterval(() => {
83			if (form.find('form input[type=submit]').length) {
84				let formInfo = form[0].getAttribute('form-info');
85				let formMetrika = form[0].getAttribute('form-metrika') || 'form_book_other';
86				let formHeader = FORM_HEADERS[formMetrika] || FORM_HEADERS['default'];
87				$(WdgMoyklass[formId].baseElement).find('.wdgMoyklass-h1').text(formHeader);
88				let field = $(WdgMoyklass[formId].baseElement).find(formHiddenField);
89				if (field.length) {
90					field.val(formInfo);
91				}
92
93				let widget = WdgMoyklass[formId];
94				if (!widget._viewSuccess) {
95					widget._viewSuccess = widget.viewSuccess;
96					widget.viewSuccess = (function(string) {
97						this._viewSuccess(string);
98						let target = $(this.baseElement).parent('.sendform')[0].getAttribute('form-metrika') || 'form_book_other';
99						let formEl = $(this.baseElement).parent('.sendform').find('form')[0];
100						let params = getMetrikaParams(formEl);
101						ym(445213, 'reachGoal', target, params);
102						console.log('New Goal: ' + target, params);
103					}).bind(widget);
104				}
105				clearInterval(intervalId);
106			}
107		}, 100);
108	}
109	
110	/* Auto Modal */
111	
112	
113	let modalDelay = 30000;
114	let modalCloseDelay = 2000;
115	let modalOpenInterval = 12 * 60 * 60; // seconds (12 hours)
116	let now = parseInt(Date.now() / 1000);
117	let lastModalOpen = parseInt(localStorage.getItem('lastModalOpen') || 0);
118
119	if (Date.now() / 1000 - lastModalOpen > modalOpenInterval) {
120		let modalId = '01ovYhWgvxIt0AepVgs3zRUbGNABJJBAmpqH';
121		let modalHiddenField = '#wdgMoyklass100108Form7694';
122		loadModalWidget('SiteWidgetMoyklass100108', modalId);
123
124		setTimeout(() => {
125			let formInfo = 'Автоматически всплывающая форма записи';
126			let formDesc = '<p style="font-weight:bold;">Действует при покупке абонемента в день посещения пробного урока.</p><p style="margin-top:10px;margin-bottom:10px;">Оставьте свои контакты, мы свяжемся с вами и подберем направление и удобное расписание.</p>';
127			let formMetrika = 'form_book_auto';
128
129			let widget = WdgMoyklass[modalId];
130			if (widget.modalElement && WdgMoyklass[modalId].modalElement.open) {
131				if (!widget.modalElement._open)
132					widget.modalElement._open = WdgMoyklass[modalId].modalElement.open;
133
134				widget.modalElement.open = (function() {
135					widget.modalElement._open();
136					let formEl = $(widget.modalElement.content).find('form');
137					formEl.attr('form-metrika', formMetrika);
138					$(widget.modalElement.modalContainerModal).find('.WdgMoyklassModalItem-body > .wdgMoyklass-h3').html(formDesc);
139					$(widget.modalElement.modalContainerModal).find(modalHiddenField).val(formInfo);
140					if (!widget._viewSuccess) {
141						widget._viewSuccess = widget.viewSuccess;
142						widget.viewSuccess = (function(string) {
143							this._viewSuccess(string);
144							let target = $(this.modalElement.content).find('form')[0].getAttribute('form-metrika') || 'form_book_other';
145							let formElement = $(this.modalElement.content).find('form')[0];
146							let params = getMetrikaParams(formElement);
147							ym(445213, 'reachGoal', target, params);
148							console.log('New Goal: ' + target, params);
149						}).bind(widget);
150					}
151				}).bind(widget);
152			}
153
154			if (!widget.modalElement._close)
155				widget.modalElement._close = widget.modalElement.close;
156
157			widget.modalElement.close = () => {}
158			widget.modalElement.modalContainerClose.style.display = 'none';
159			localStorage.setItem('lastModalOpen', parseInt(Date.now() / 1000));
160			widget.loadLeadFormByModal();
161			setTimeout(() => {
162				widget.modalElement.close = widget.modalElement._close;
163				widget.modalElement.modalContainerClose.style.display = 'block';
164			}, modalCloseDelay)
165		}, modalDelay)
166	}
167});

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.