PageSourceSearch

https://ferritmet.ru/templates/default/widgets/callback/js/script.js?1582700356

js ferritmet.ru collected 2026-10-05 00:09:14 UTC 10,102 bytes, 320 lines download raw bytes

1var icms = icms || {};
2
3icms.goodmade_callback = (function ($) {
4	
5this.widget_id = '';
6this.mail_ismap = 0;
7this.mail_isphone = 0;	
8this.mail_isname = 0;	
9this.mail_issubject = 0;	
10
11this.callback_ismail = 0;	
12this.callback_isname = 0;	
13
14this.pm_userid = 1;	
15this.page_url = $(location).attr('href');
16this.page_title = $("head > title").text();	 
17
18
19this.onDocumentReady = function() {
20	 
21	
22	
23			
24		  		
25   	
26			
27			
28
29}	
30
31$(document).on('click', 'a[href="#getPM"], a[href="/#getPM"]', function(){	  
32
33icms.modal.openAjax('/messages/write/'+icms.goodmade_callback.pm_userid);
34$('#btncollapzion a._collapz_parant').trigger('click');
35return false;
36
37});		
38	
39	
40$(document).on('click', 'a[href="#callbackPhone"], a[href="/#callbackPhone"]', function(){	     
41    var ths = $(this);
42    $(this).addClass('greenPulse'); 
43	var rules_text = $('#widget_callback_rules_text_'+icms.goodmade_callback.widget_id).html();
44	
45vex.dialog.open({
46    unsafeMessage: '<h2 style="margin-top:0">Мы ответим на все ваши вопросы!</h2>',
47	className: 'vex-theme-flat-attack',	
48    input: [               
49	'<style>',
50	    '.vex-custom-field-wrapper {',
51                'margin: 1em 0;',
52            '}',
53            '.vex-custom-field-wrapper > label {',
54                'display: inline-block;',
55                'margin-bottom: .2em;',
56            '}',       
57			'.rules_text {margin:10px 0 10px 0;font-size:11px;color:#888;lin-height:12px;}',   
58			'.rules_text a {color:#888;}', 	
59			'.rules_text input {margin-bottom:-1px;display:inline-block;vertical-align:top;}',   						
60   '</style>',
61        '<input name="name" type="'+(icms.goodmade_callback.callback_isname==0 ? 'hidden' : 'text')+'" data-icon placeholder="Ваше имя" '+(icms.goodmade_callback.callback_isname==0 ? '' : 'required')+' />',
62		'<input name="phone" type="tel" data-icon placeholder="Ваш телефон" required />',
63		'<input name="email" type="'+(icms.goodmade_callback.callback_ismail==1 ? 'email' : 'hidden')+'" data-icon placeholder="Ваш email" />',		
64		'<div class="rules_text"><input name="is_rules" type="checkbox" value="1" checked required />'+rules_text+'</div>',
65		'<div style="margin:10px 0 -5px 0;">Пожалуйста, заполните поля и нажмите на кнопку <i class="material-icons" style="font-size:14px">&#xE5DB;</i></div>',
66    ].join(''),
67    buttons: [
68        $.extend({}, vex.dialog.buttons.YES, { text: 'Перезвоните мне' }),
69        $.extend({}, vex.dialog.buttons.NO, { text: 'Отмена' })
70    ],
71    callback: function (data) {
72
73		   
74		   
75		   if(data){			   
76
77			  
78		    $.post('/callback/ajax_callback_send', {
79			       page_title: icms.goodmade_callback.page_title,
80                   page_url: icms.goodmade_callback.page_url,
81                   name: data.name,
82                   phone: data.phone,
83				   email: data.email,
84				   widget_id: icms.goodmade_callback.widget_id	
85				   
86            }, function(result){	
87			       if(!result.error){					   
88                   vex.dialog.alert({ unsafeMessage:result.info, className: 'vex-theme-flat-attack'	 });			   
89				   }else{					   
90				   vex.dialog.alert({ unsafeMessage:result.info, className: 'vex-theme-flat-attack'	 });						
91				   }
92            $('#btncollapzion a._collapz_parant').trigger('click');				   
93			}, "json");	
94
95			
96		   }
97	
98
99	ths.removeClass('greenPulse');		  
100        
101    }
102});
103
104
105return false;
106
107});		
108	
109$(document).on('click', 'a.callbackPhoneNumber.show_phone span', function(){	
110if(icms.goodmade_callback.phone){
111	$('b',$(this).closest('a')).text(icms.goodmade_callback.phone);
112	$(this).hide();
113}
114return false;
115
116});	
117
118
119$(document).on('click', 'a[href="#soc"], a[href="/#soc"]', function(){	
120$(this).next('.widget_callback_dropdown-content').toggle();
121return false;
122});	
123
124$(document).on('click', 'a[href="#callbackMail"], a[href="/#callbackMail"]', function(){	
125
126    var ths = $(this);
127    $(this).addClass('greenPulse');     
128	var rules_text = $('#widget_callback_rules_text_'+icms.goodmade_callback.widget_id).html();
129
130    vex.dialog.open({
131    unsafeMessage: '<h2 style="margin-top:0">Мы ответим на все ваши вопросы!</h2>',
132	className: 'vex-theme-flat-attack',
133    input: [      
134		'<style>',
135			'.rules_text {margin:10px 0 10px 0;font-size:11px;color:#888;lin-height:12px;}',   
136			'.rules_text a {color:#888;}', 	
137			'.rules_text input {margin-bottom:-1px;display:inline-block;vertical-align:top;}',   						
138        '</style>',
139		'<input name="subject" type="'+(icms.goodmade_callback.mail_issubject==0 ? 'hidden' : 'text')+'" data-icon placeholder="Тема письма" '+(icms.goodmade_callback.mail_issubject==0 ? '' : 'required')+'/>',
140		'<textarea name="message" required style="min-height:100px"></textarea>',
141		'<input name="name" type="'+(icms.goodmade_callback.mail_isname==0 ? 'hidden' : 'text')+'" data-icon placeholder="Ваше имя" '+(icms.goodmade_callback.mail_isname==0 ? '' : 'required')+' />',
142		'<input name="email" type="email" data-icon placeholder="Ваш email" required />',
143		'<input name="phone" type="'+(icms.goodmade_callback.mail_isphone==1 ? 'tel' : 'hidden')+'" data-icon placeholder="Ваш телефон" />',		
144		'<div class="rules_text"><input name="is_rules" type="checkbox" value="1" checked required />'+rules_text+'</div>',
145		'<div style="margin:10px 0 -5px 0;">Пожалуйста, заполните поля и нажмите на кнопку <i class="material-icons" style="font-size:14px">&#xE5DB;</i></div>',
146    ].join(''),
147    buttons: [
148        $.extend({}, vex.dialog.buttons.YES, { text: 'Отправить' }),
149        $.extend({}, vex.dialog.buttons.NO, { text: 'Отмена' })
150    ],
151    callback: function (data) {
152
153		   
154		   
155		   if(data){
156			   
157		   
158		    $.post('/callback/ajax_mail_send', {
159			       page_title: icms.goodmade_callback.page_title,
160                   page_url: icms.goodmade_callback.page_url,
161                   name: data.name,
162                   phone: data.phone,
163				   subject: data.subject,
164				   message: data.message,
165				   email: data.email,
166				   widget_id: icms.goodmade_callback.widget_id	
167				   
168            }, function(result){	
169			       if(!result.error){					   
170                   vex.dialog.alert({ unsafeMessage:result.info, className: 'vex-theme-flat-attack'	 });			   
171				   }else{					   
172				   vex.dialog.alert({ unsafeMessage:result.info, className: 'vex-theme-flat-attack'	 });						
173				   }		
174            $('#btncollapzion a._collapz_parant').trigger('click');				   
175			}, "json");	
176
177			
178		   }
179	
180
181	ths.removeClass('greenPulse');	  
182        
183    }
184});
185
186
187return false;
188
189});			
190	
191
192$(document).on('click', 'a[href="#callbackContacts"], a[href="/#callbackContacts"]', function(){
193	        
194			var ths = $(this);
195          	$(this).addClass('greenPulse');
196			
197			map_html = '';
198			if(icms.goodmade_callback.mail_ismap==1){
199				map_html = '<div id="contacts_map" style="margin-bottom:10px;width::500px;height:400px"></div>';
200			}
201			
202		$.post('/callback/ajax_contacts_get', {
203				widget_id: icms.goodmade_callback.widget_id					   
204            }, function(result){			
205			  
206				
207			    vex.dialog.open({
208                unsafeMessage: '<h2 style="margin-top:0">Наши контакты</h2>'+map_html+result.html+'',
209                className: 'vex-theme-flat-attack vexContentBox',
210                showCloseButton: true,
211                escapeButtonCloses: true,				
212                afterClose: function () {
213                	ths.removeClass('greenPulse');
214                }				
215                });
216				
217				if(result.map_api=="google" && result.map_address){
218			
219					icms.goodmade_callback.getGoogleMap(result.map_address);
220					
221				}else if(result.map_api=="yandex" && result.map_address){
222					
223					icms.goodmade_callback.getYaMap(result.map_address);
224					
225				}
226				
227			}, "json");
228
229return false;
230
231});		
232	
233
234   
235this.getGoogleMap = function(address){
236	
237   
238    geocoder = new google.maps.Geocoder();
239    var latlng = new google.maps.LatLng(46.7, 25.1);
240    var mapOptions = {
241      zoom: 17,
242    center: latlng,
243      mapTypeId: google.maps.MapTypeId.ROADMAP
244    }
245    map = new google.maps.Map(document.getElementById("contacts_map"), mapOptions);
246	
247	
248   	google.maps.event.trigger(map, 'resize');
249   
250    geocoder.geocode( { 'address': address}, function(results, status) {
251      if (status == google.maps.GeocoderStatus.OK) {
252        map.setCenter(results[0].geometry.location);
253        var marker = new google.maps.Marker({
254            map: map,
255            position: results[0].geometry.location,
256            title: address
257        });
258      } else {
259        alert("Geocode was not successful for the following reason: " + status);
260      }
261    });
262   
263}	 
264
265this.getYaMap = function(address){
266
267	var firstGeoObject, myMap; 
268
269   
270        ymaps.geocode(address, { results: 1 }).then(function (res) {
271			// Выбираем первый результат геокодирования
272			firstGeoObject = res.geoObjects.get(0);
273			var points = firstGeoObject.geometry.getCoordinates();
274			myMap = new ymaps.Map("contacts_map", {
275				center: points,
276				zoom: 17,
277				behaviors: ["scrollZoom","drag"]
278			});
279 
280		myMap.balloon.open(
281                // Позиция балуна
282                points, {
283                    // Свойства балуна
284                    contentBody: address
285                }, {                    
286                    closeButton: false
287                });	
288 
289 
290		}, function (err) {
291			// Если геокодирование не удалось,
292			// сообщаем об ошибке
293			console.log(err.message);
294		});
295		
296
297	
298
299   return false;
300   
301}	 
302
303	
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318    return this;
319
320}).call(icms.goodmade_callback || {},jQuery);

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.