PageSourceSearch

https://ovenspb.ru/g/s3/misc/form/shop-form/shop-form-minimal.js

js ovenspb.ru collected 2026-09-29 13:43:38 UTC 7,451 bytes, 256 lines download raw bytes

1var s3From = {
2	init: function() {
3		this.initForms();
4	},
5	initForms: function(parent, callback, from_response) {
6		var self = this;
7		if (!parent) parent = document;
8		if ($(parent)[0] === document || !$(parent).is('[data-api-url][data-api-type=form]')) {
9			parent = $(parent).find('[data-api-url][data-api-type=form]');
10		}
11
12		if (!callback) {
13			callback = typeof parent.data('callback') === 'function' ? parent.data('callback') : eval(parent.data('callback'));
14		}
15
16		$(parent).each(function() {
17			var $container = $(this);
18			var $form = $container.is("form") ? $container : $container.find("form");
19			
20			$('.type-calendar_interval').each(function(){
21				var $this = $(this);
22				var $first = $this.find('.calendar-from');
23				var $second = $this.find('.calendar-to');
24				var $firstInput = $first.find('input');
25				
26				if ($firstInput.val()!="") {
27					$second.removeClass('disabled');
28				}
29				
30				$firstInput.on('change', function(){
31					$second.removeClass('disabled');
32				});
33				
34			});
35
36			if ($container.data('s3form_inited')) {
37				return;
38			}
39			if ($form.length) {
40				$form.submit(function() {
41					$.post($container.data('api-url'), $form.serialize(), res);
42					return false;
43				});
44			} else if (!from_response) {
45				$.getJSON($container.data('api-url'), null, res);
46			}
47
48			$container.data('s3form_inited', true);
49
50			function res(response) {
51				if (response.result.success && response.result.redirect_url) {
52					document.location = response.result.redirect_url;
53				} else if (response.result && response.result.html) {
54					var uploaders_inits = '';
55					var scripts = response.result.html.match(/<script[^>]*>[^<]*newSWFU[^<]*<\/script>/gm);
56					if (scripts) {
57						for (var i = 0; i < scripts.length; i++) {
58							uploaders_inits += scripts[i].replace(/<script[^>]*>([^<]+)<\/script>/, "$1");
59						}
60					}
61					var $replacement = $(response.result.html.replace(/[\r\n]/g, '').replace(/<script[^>]*>.*?<\/script>/g, ''));
62					if (!$($replacement).is('[data-api-url][data-api-type=form]')) {
63						$replacement = $($replacement).find('[data-api-url][data-api-type=form]');
64					}
65					$container.replaceWith($replacement);
66					$container = $replacement;
67
68					var $uploads = $container.find('input[type="hidden"][id^="hidUploadField"]');
69
70					if ($uploads.length) {
71						if (typeof window['newSWFU'] !== 'function') {
72							$.getScript('/assets/site/s3/plupload/plupload.all.pack.js', function() {
73								inituploaders();
74							});
75						} else {
76							inituploaders();
77						}
78					}
79
80					function inituploaders() {
81						if (uploaders_inits) {
82							eval(uploaders_inits);
83						}
84					}
85
86					self.initForms($container, callback, true);
87
88					
89					
90					
91					$('.type-calendar_interval').each(function(){
92						var dateInput = $(this).find('.datepicker-interval-result').val(),
93							dateFromInput = dateInput.substr(3,10),
94							dateToInput = dateInput.substr(-10);
95
96						$(this).find('.input-from').val(dateFromInput);
97						
98						if (dateInput.substr().length>20) {
99							$(this).find('.input-to').val(dateToInput);
100						}
101						
102						if (dateInput.substr().length<20) {
103							$(this).find('.input-to').val("");
104						}
105					});
106					
107					formDatePicker.init();
108
109					if (typeof callback === 'function') {
110						callback();
111					}
112				}
113			}
114		})
115	}
116};
117
118var s3PopupForm = {
119	init: function() {
120		this.initPopupForms();
121	},
122	initPopupForms: function(parent, callback) {
123		if (typeof myo) {
124			if (!parent) parent = document;
125			if ($(parent)[0] === document || !$(parent).is('[data-api-url][data-api-type=popup-form]')) {
126				parent = $(parent).find('[data-api-url][data-api-type=popup-form]');
127			}
128			if (parent.data('api-url')) {
129				parent = parent.filter(function() {
130					return !$(this).data('s3form_inited');
131				});
132				if (!callback) {
133					callback = typeof parent.data('callback') === 'function' ? parent.data('callback') : eval(parent.data('callback'));
134				}
135				parent.data('s3form_inited', true).click(function(e) {
136					var $this = $(this);
137					if (myo.show) {
138						myo.show({
139							html: '<div data-api-url="' + $this.data('api-url') + '" data-api-type="form"></div>',
140							clas: $(this).data('wr-class'),
141							afterOpen: function() {
142								var win = this;
143								win.loadDiv.show();
144								s3From.initForms(win.bodyDiv.find('>div.tpl-anketa[data-api-type]'), function() {
145									win.loadDiv.hide();
146									if (typeof callback === 'function') {
147										callback();
148									}
149								});
150							}
151						});
152					} else if (myo.open) {
153						myo.open({
154							html: '<div data-api-url="' + $this.data('api-url') + '" data-api-type="form"></div>',
155							clas: $(this).data('wr-class'),
156							afterOpen: function() {
157								var win = this;
158								win.loadDiv.show();
159								s3From.initForms(win.bodyDiv.find('>div.tpl-anketa[data-api-type]'), function() {
160									win.loadDiv.hide();
161									if (typeof callback === 'function') {
162										callback();
163									}
164								});
165							}
166						});
167					}
168					e.preventDefault();
169					return false;
170				})
171			}
172		}
173	}
174};
175
176
177var formDatePicker = {
178	init: function() {
179		this.setDatePicker();
180	},
181
182	setDatePicker: function (){
183		
184		$.datepicker.regional['ru'] = {
185			closeText: 'Закрыть',
186			prevText: '<Пред',
187			nextText: 'След>',
188			currentText: 'Сегодня',
189			monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
190			monthNamesTitle: ['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек'],
191			dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
192			dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
193			dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
194			weekHeader: 'Нед',
195			dateFormat: 'dd.mm.yy',
196			firstDay: 1,
197			isRTL: false,
198			showMonthAfterYear: false,
199			yearSuffix: ''};
200		$.datepicker.setDefaults($.datepicker.regional['ru']);
201
202		$( ".datepickerInit" ).each(function(index, el) {
203			$(this).datepicker({
204		        minDate:0,
205		        changeMonth: false,
206		        numberOfMonths: 1
207		    });
208		});
209
210		$('.type-calendar_interval').each(function(index, el) {
211			var initFrom = $(this).find('.input-from' );
212		    var initTo = $(this).find('.input-to' );
213		    var initTotal = $(this).find('.datepicker-interval-result' );
214
215		    function setTotalValue () {
216		    	if (initFrom.val() != "") {
217		        	initTotal.val('от ' + initFrom.val() + ' до ' + initTo.val());
218		    	};
219		    };
220
221
222		    initFrom.datepicker({
223		        minDate:0,
224		        changeMonth: false,
225		        numberOfMonths: 1,
226		        onClose: function( selectedDate ) {
227		            initTo.datepicker( 'option', 'minDate', selectedDate );
228		            setTotalValue();
229		        }
230		    });
231		    
232		    initTo.datepicker({
233		        defaultDate: '+1w',
234		        minDate:0,
235		        changeMonth: false,
236		        numberOfMonths: 1,
237		        onClose: function( selectedDate ) {
238		            initFrom.datepicker( 'option', 'maxDate', selectedDate );
239		            setTotalValue();
240		        }
241		    });
242
243		});
244	   
245	}
246};
247
248
249$(function() {
250	s3PopupForm.init();
251	s3From.init();
252});
253
254window.addEventListener('load', function () {
255	formDatePicker.init();
256});

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.