PageSourceSearch

https://rusarmstroy.ru/modules/mod_joomly_callback/js/callback_default.js

js rusarmstroy.ru collected 2026-10-05 00:33:31 UTC 10,070 bytes, 290 lines download raw bytes

1function call_callback(){
2	var callback_ids = callback_ids || [];
3	callback_ids.push(callback_module_id);
4	var callback_sending_flag = callback_sending_flag || [];
5	if (callback_sending_flag[callback_module_id] == undefined)
6	{
7		callback_sending_flag[callback_module_id] = getCallbackSendingFlag(callback_module_id);
8	}
9	function getCallbackCookie(name) {
10	  var matches = document.cookie.match(new RegExp(
11		"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
12	  ));
13	  return matches ? decodeURIComponent(matches[1]) : undefined;
14	}
15	function getCallbackSendingFlag(m_id){
16		var sendingalert = getCallbackCookie("callback-sending-alert"),
17			alerttype = getCallbackCookie("callback-alert-type"),
18			sflag = 0;
19		if ((typeof sendingalert !== 'undefined') && (sendingalert == m_id))
20		{
21			al = document.getElementById("special-alert" + m_id);
22			if (alerttype == 'success')
23			{
24				sflag = 1;
25			} else if (alerttype == 'captcha')
26			{
27				sflag = 2;
28				al.childNodes[1].style.backgroundColor = "red";
29				al.childNodes[3].childNodes[1].innerHTML = captcha_error;
30			} else if (alerttype == 'defense')
31			{
32				sflag = 3;
33				al.childNodes[1].style.backgroundColor = "red";
34				al.childNodes[3].childNodes[1].innerHTML = defense_error;
35			}
36			document.cookie = 'callback-sending-alert=333; Path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
37			document.cookie = 'callback-alert-type=;Path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
38		} else 
39		{
40			sflag = 0;
41		}	
42		return sflag;
43	}
44	window.addEventListener('DOMContentLoaded', function() { joomly_callback(callback_ids); } , false); 
45	function joomly_callback(m){	
46		m.forEach(function(mod_id, i, arr) {		
47			var slider = document.getElementById('button-joomly-callback-form' + mod_id);
48			document.body.addEventListener( 'click', function ( event ) {
49
50				var target = event.target || event.srcElement;
51				
52				if( target.classList.contains('joomly-callback') == true || target.classList.contains("joomly-callback-" + mod_id) == true || target.id == "button-joomly-callback-form" + mod_id){
53					var lightbox = document.getElementById("joomly-callback" + mod_id),
54						dimmer = document.createElement("div"),
55						close = document.getElementById("joomly-callback-close" + mod_id);
56
57					dimmer.className = 'dimmer';
58					
59					dimmer.onclick = function(){
60						if (slider)
61						{
62							slider.classList.toggle('closed');	
63						}
64						dimmer.parentNode.removeChild(dimmer);			
65						lightbox.style.display= 'none';
66					}
67						
68					close.onclick = function(){
69						if (slider)
70						{
71							slider.classList.toggle('closed');	
72						}	
73						dimmer.parentNode.removeChild(dimmer);			
74						lightbox.style.display= 'none';
75					}
76					
77					if (slider)
78					{
79						slider.classList.toggle('closed');	
80					}
81
82					document.body.appendChild(dimmer);
83					var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
84					lightbox.style.display= 'block';
85					if (window.innerHeight > lightbox.offsetHeight )
86					{
87						lightbox.style.top = scrollTop + (window.innerHeight- lightbox.offsetHeight)/2 + 'px';
88					} else
89					{
90						lightbox.style.top = scrollTop + 10 + 'px';
91					}
92
93					if (window.innerWidth>400){
94						lightbox.style.width = '400px';
95						lightbox.style.left = (window.innerWidth  - lightbox.offsetWidth)/2 + 'px';
96					} else {
97						lightbox.style.width = (window.innerWidth - 70) + 'px';
98						lightbox.style.left = (window.innerWidth  - lightbox.offsetWidth)/2 + 'px';
99					}	
100					
101					return false;		
102				}
103			});			
104					
105			var box_time_today=document.getElementById("time-today" + mod_id);
106			if (box_time_today !== null)
107			{
108				var box_day=document.getElementById("day" + mod_id);
109				var box_time_any=document.getElementById("time-any" + mod_id);
110				var cur_time=document.getElementById("cur-time" + mod_id);
111				box_day.onchange=function (){
112					if (box_day.selectedIndex == 0){
113						box_time_today.style.display = "inline-block";
114						box_time_any.style.display = "none";
115						cur_time.value = 0;
116					} else{
117
118						box_time_today.style.display = "none";
119						box_time_any.style.display = "inline-block";
120						cur_time.value = 1;
121					}	
122				}
123			}
124			
125			var st = document.getElementsByName("callback_module_hash");
126			for (var i=0; i < st.length; i++) {
127				st[i].value = styles;
128			}
129			if (callback_sending_flag[mod_id] >= 1){
130				var lightbox = document.getElementById("special-alert" + mod_id),
131				dimmer = document.createElement("div"),
132				close = document.getElementById("callback-alert-close" + mod_id);
133				
134				dimmer.className = 'dimmer';
135				
136				dimmer.onclick = function(){
137					dimmer.parentNode.removeChild(dimmer);			
138					lightbox.style.display= 'none';
139				}
140				
141				close.onclick = function(){
142					dimmer.parentNode.removeChild(dimmer);			
143					lightbox.style.display= 'none';
144				}
145					
146				document.body.appendChild(dimmer);
147				document.body.appendChild(lightbox);
148				var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
149				lightbox.style.display= 'block';
150				if (window.innerHeight > lightbox.offsetHeight )
151				{
152					lightbox.style.top = scrollTop + (window.innerHeight- lightbox.offsetHeight)/2 + 'px';
153				} else
154				{
155					lightbox.style.top = scrollTop + 10 + 'px';
156				}
157					
158				if (window.innerWidth>400){
159					lightbox.style.width = '400px';
160					lightbox.style.left = (window.innerWidth  - lightbox.offsetWidth)/2 + 'px';
161				} else {
162					lightbox.style.width = (window.innerWidth - 70) + 'px';
163					lightbox.style.left = (window.innerWidth  - lightbox.offsetWidth)/2 + 'px';
164				}	
165				
166				setTimeout(callback_remove_alert, 6000);
167				
168				function callback_remove_alert()
169				{
170					if (lightbox.style.display  != "none")
171					{
172						dimmer.parentNode.removeChild(dimmer);			
173						lightbox.style.display = 'none';
174					}
175				}
176			}	
177			callback_sending_flag[mod_id] = 0;	
178		});	
179		callback_ids = [];
180	}
181}
182function callback_validate(element)
183{
184	var inputs = element.getElementsByClassName("joomly-callback-field"),
185		errorMessages = element.getElementsByClassName("callback-error-message");
186	for ( var i = errorMessages.length; i > 0; i-- ) {
187			errorMessages[ i - 1].parentNode.removeChild( errorMessages[ i - 1] );
188			console.log(i);
189		}
190	
191	for (var i = 0; i < inputs.length; i++) {
192		if ((inputs[i].hasAttribute("required")) &&(inputs[i].value.length == 0)) { 
193			event.preventDefault();	
194			parent = inputs[i].parentNode;
195			parent.insertAdjacentHTML( "beforeend", "<div class='callback-error-message'>" + 
196			   type_field +
197				"</div>" );
198				console.log("ad" + i)
199		}
200	}	
201}
202function joomly_callback_analytics(mod_id){
203	if (callback_params[mod_id].yandex_metrika_id)
204	{
205		if (typeof Ya.Metrika !== "undefined"){
206			var yaCounter= new Ya.Metrika(callback_params[mod_id].yandex_metrika_id);
207			yaCounter.reachGoal(callback_params[mod_id].yandex_metrika_goal);
208		} else if (typeof Ya.Metrika2 !== "undefined"){
209			var yaCounter= new Ya.Metrika2(callback_params[mod_id].yandex_metrika_id);
210			yaCounter.reachGoal(callback_params[mod_id].yandex_metrika_goal);
211		}
212	}
213	if (callback_params[mod_id].google_analytics_action)
214	{
215		if (typeof ga === 'function') {
216    		ga('send', 'event', callback_params[mod_id].google_analytics_category, callback_params[mod_id].google_analytics_action, callback_params[mod_id].google_analytics_label, callback_params[mod_id].google_analytics_value);
217 		}
218		if (typeof gtag === 'function') {
219			var gtag_object = {};
220			if (callback_params[mod_id].google_analytics_category){
221				gtag_object.event_category = callback_params[mod_id].google_analytics_category;
222			}
223			if (callback_params[mod_id].google_analytics_label){
224				gtag_object.event_label = callback_params[mod_id].google_analytics_label;
225			}
226			if (callback_params[mod_id].google_analytics_value){
227				gtag_object.value = callback_params[mod_id].google_analytics_value;
228			}
229			gtag('event', callback_params[mod_id].google_analytics_action, gtag_object);
230		}
231	}
232}
233function onloadCallbackOld(){
234	var captchas = document.getElementsByClassName("g-callback-recaptcha");
235	for (var i=0; i < captchas.length; i++) {
236		var sitekey = captchas[i].getAttribute("data-sitekey");
237		if ((captchas[i].innerHTML === "") && (sitekey.length !== 0))
238		{
239			grecaptcha.render(captchas[i], {
240	          'sitekey' : sitekey,
241	          'theme' : 'light'
242	        });		
243		}
244	};
245}
246function onloadCallback() {
247	var tok = document.getElementsByName("module_token");	
248	grecaptcha.ready(function() {
249	    grecaptcha.execute(tok[0].getAttribute("data-sitekey"), {action: 'feedback'}).then(function(token) {
250	        for (var i=0; i < tok.length; i++) {
251				tok[i].value =  token;
252			}
253	    });
254	});	
255}; 
256function joomlyHandleMask(event, mask) {
257    with (event) {
258        stopPropagation()
259        preventDefault()
260        if (!charCode) return
261        var c = String.fromCharCode(charCode)
262        if (c.match(/\D/)) return
263        with (target) {
264            var val = value.substring(0, selectionStart) + c + value.substr(selectionEnd)
265            var pos = selectionStart + 1
266        }
267    }
268    var nan = count(val, /\D/, pos)
269    val = val.replace(/\D/g,'');
270
271    var mask = mask.match(/^(\D*)(.+\d)(\D*)$/)
272    if (!mask) return
273    if (val.length > count(mask[2], /\d/)) return
274
275    for (var txt='', im=0, iv=0; im<mask[2].length && iv<val.length; im+=1) {
276        var c = mask[2].charAt(im)
277        txt += c.match(/\D/) ? c : val.charAt(iv++)
278    }
279
280    with (event.target) {
281        value = mask[1] + txt + mask[3]
282        selectionStart = selectionEnd = pos + (pos==1 ? mask[1].length : count(value, /\D/, pos) - nan)
283    }
284
285    function count(str, c, e) {
286        e = e || str.length
287        for (var n=0, i=0; i<e; i+=1) if (str.charAt(i).match(c)) n+=1
288        return n
289    }
290}

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.