PageSourceSearch

http://pravkhabarovsk.ru/templates/template1/hostcms.js

js pravkhabarovsk.ru collected 2026-10-02 07:19:46 UTC 16,792 bytes, 578 lines download raw bytes

1var prev_comment = 0;
2
3// Ответ на комментарий
4function cr(comment_id)
5{
6	if (prev_comment && prev_comment != comment_id)
7	{
8		document.getElementById(prev_comment).style.display = 'none';
9	}
10
11	var div = document.getElementById(comment_id);
12
13	if (div.style.display != 'block')
14	{
15		div.style.display = 'block';
16	}
17	else
18	{
19		div.style.display = 'none';
20	}
21
22	prev_comment = comment_id;
23}
24
25var temp_ChildId = '';
26var temp_CurrenElementId = '';
27var menu_timeout_id = 0;
28var filter_timeout_id = 0;
29
30// обработчик наведения мыши на меню
31function TopMenuOver(CurrenElementId, ChildId)
32{
33	clearTimeout(menu_timeout_id);
34
35	if (temp_CurrenElementId != ''
36	&& temp_CurrenElementId != CurrenElementId)
37	{
38		var oTemp_ChildId = document.getElementById(temp_ChildId);
39
40		if (oTemp_ChildId)
41		{
42			oTemp_ChildId.style.display = "none";
43		}
44	}
45
46	temp_ChildId = ChildId;
47	temp_CurrenElementId = CurrenElementId;
48
49	if (CurrenElementId == undefined)
50	{
51		return false;
52	}
53
54	if (ChildId != '')
55	{
56		var oChildId = document.getElementById(ChildId);
57
58		if (oChildId)
59		{
60			oChildId.style.display = "block";
61		}
62	}
63}
64
65// обработчик уведения мыши с меню
66function TopMenuOut(CurrenElementId, ChildId)
67{
68	if (CurrenElementId == undefined)
69	{
70		return false;
71	}
72
73	if (ChildId != '')
74	{
75		var oChildId = document.getElementById(ChildId);
76		if (oChildId)
77		{
78			menu_timeout_id = setTimeout(function (){oChildId.style.display = "none"}, 300);
79		}
80	}
81}
82
83// Функция обратного вызова для AddIntoCart
84function callbackfunction_AddIntoCart(responseJS)
85{
86	// Результат принят
87	sended_request = false;
88
89	if (typeof responseJS != 'undefined')
90	{
91		// Данные.
92		if (typeof responseJS.cart != 'undefined')
93		{
94			var little_cart = document.getElementById('little_cart');
95
96			if (little_cart)
97			{
98				// Создадим скрытый SPAN для IE, в который поместим текст + скрипт.
99				// Если перед <script> не будет текста, нехороший IE не увидит SCRIPT
100				var span = document.createElement("span");
101				span.style.display = 'none';
102				span.innerHTML = "Stupid IE. " + responseJS.cart;
103
104				runScripts(span.getElementsByTagName('SCRIPT'));
105
106				little_cart.innerHTML = responseJS.cart;
107			}
108			else
109			{
110				alert('Ошибка! Краткая корзина не найдена');
111			}
112		}
113	}
114}
115
116function AddIntoCart(shop_path, item_id, item_count)
117{
118	//location.href = shop_path + 'cart/?ajax_add_item_id=' + item_id + '&count=' + item_count;
119	cmsrequest = shop_path + 'cart/?ajax_add_item_id=' + item_id + '&count=' + item_count;
120
121	// Отправляем запрос backend-у
122	sendRequest(cmsrequest, 'get', callbackfunction_AddIntoCart);
123
124	return false;
125}
126
127/**
128* Склонение после числительных
129* int number числительное
130* int nominative Именительный падеж
131* int genitive_singular Родительный падеж, единственное число
132* int genitive_plural Родительный падеж, множественное число
133*/
134function declension(number, nominative, genitive_singular, genitive_plural)
135{
136	var last_digit = number % 10;
137	var last_two_digits = number % 100;
138
139	if (last_digit == 1 && last_two_digits != 11)
140	{
141		var result = nominative;
142	}
143	else
144	{
145		if ((last_digit == 2 && last_two_digits != 12) || (last_digit == 3 && last_two_digits != 13) || (last_digit == 4 && last_two_digits != 14))
146		{
147			var result = genitive_singular;
148		}
149		else
150		{
151			var result = genitive_plural;
152		}
153	}
154
155	return result;
156}
157
158// массив для хранения текущих рейтингов звезд
159var curr_rate = new Array();
160
161// функция работы со звездами рейтинга
162function set_rate(id, new_rate)
163{
164	// устанавливаем атрибуты
165	curr_star = document.getElementById(id);
166	parent_id = parseInt(curr_star.parentNode.id);
167
168	// при первом пересчете ставим рейтинг для группы звезд в 0
169	if (!curr_rate[parent_id])
170	{
171		curr_rate[parent_id] = 0;
172	}
173
174	// устанавливаем новый рейтинг в массив рейтингов и значение скрытого поля
175	if (new_rate != curr_rate[parent_id] && parseInt(new_rate) > 0)
176	{
177		curr_rate[parent_id] = new_rate;
178
179		/*curr_form = document.getElementById('comment_form_0' + (parent_id != 0 ? parent_id : ''));
180		curr_form.comment_grade.value = curr_rate[parent_id].charAt(curr_rate[parent_id].length - 1);*/
181		
182		var curr_form_id = 'comment_form_0' + (parent_id != 0 ? parent_id : '');
183		var comment_grade_value = curr_rate[parent_id].charAt(curr_rate[parent_id].length - 1);
184		$("#"+curr_form_id+" input[name=comment_grade]").val(comment_grade_value);
185		$("#"+curr_form_id+" input[name=shop_comment_grade]").val(comment_grade_value);
186		
187	}
188
189	// пересчет стилей для звезд
190	for (i = 1; i < 6; i++)
191	{
192		if (parent_id != 0)
193		{
194			j = parent_id + '' + i + '_star_' + i;
195		}
196		else
197		{
198			j = i + '_star_' + i;
199		}
200
201		temp_obj = document.getElementById(j);
202
203		if (new_rate == 0)
204		{
205			id = curr_rate[parent_id];
206		}
207
208		if (parseInt(j) > parseInt(id))
209		{
210			temp_obj.className = '';
211		}
212		else
213		{
214			temp_obj.className = 'curr';
215		}
216	}
217}
218
219// Функция обратного вызова для CheckBlogUrl
220function callbackfunction_CheckBlogUrl(responseJS)
221{
222	// Результат принят
223	sended_request = false;
224
225	if (typeof responseJS != 'undefined')
226	{
227		// Данные.
228		if (typeof responseJS.check_url_result != 'undefined')
229		{
230			var check_url = document.getElementById('check_url');
231
232			if (responseJS.check_url_result == 0)
233			{
234				check_url.className = 'error';
235				html = 'Адрес занят.';
236			}
237			else
238			{
239				check_url.className = 'green';
240				html = 'Адрес свободен.';
241			}
242
243			if (check_url)
244			{
245				check_url.innerHTML = html;
246			}
247			else
248			{
249				alert('Ошибка! Блок для вывода результатов запроса не найден');
250			}
251		}
252	}
253}
254
255function CheckBlogUrl(blog_path, blog_url, parent_id, id)
256{
257	cmsrequest = blog_path + '?ajax_check_blog_url=' + blog_url + '&group_parent_id=' + parent_id + '&group_id=' + id;
258
259	var check_url = document.getElementById('check_url');
260
261	if (check_url)
262	{
263		check_url.innerHTML = '<img src="/hostcmsfiles/images/ajax_loader_mini.gif"/>';
264	}
265
266	// Отправляем запрос backend-у
267	sendBackgroundRequest(cmsrequest, 'get', callbackfunction_CheckBlogUrl);
268
269	return false;
270}
271
272// Установка или снятие всех флажков для checkbox'ов элементов.
273function SelectAllItemsByPrefix(ASelect, prefix)
274{
275	element_array = document.getElementsByTagName("input");
276	if (element_array.length > 0)
277	{
278		for (var i = 0; i < element_array.length; i++)
279		{
280			if (element_array[i].name.search(prefix) != -1)
281			{
282				// Устанавливаем checked
283				element_array[i].checked = ASelect;
284			}
285		}
286
287	}
288}
289
290//Проверка ячейки
291function FieldCheckEmail(elementId)
292{
293	return true;
294}
295
296/*
297 * jQuery Личные сообщения
298 */
299
300// список сообщений
301$(function () {
302	function reload_data (new_data) {
303		$("#tmp").html(new_data);
304		$("#messages_list").html($("#tmp #messages_list").html());
305		x();
306	}
307
308	function x ()
309	{
310		// отправка сообщения 
311		$('#send_messages').submit(
312			function () {
313				$.ajax({
314					context: $('#messages_list'),
315					data: 'JsHttpRequest=' + Math.round(new Date().getTime() / 1000) + '-xml&add_message=1&' + $('#send_messages').serialize(),
316					dataType: 'json',
317					success: function (data) {
318						reload_data(data.js.content);
319					}}
320				)
321				return false;
322			}
323		)
324
325		// удаление сообщения 
326		$('.delete').click(function () {
327				curr_url = $(this).attr('href');
328
329				$.ajax({
330					url: curr_url,
331					context: $('#messages_list'),
332					data: 'JsHttpRequest=' + Math.round(new Date().getTime() / 1000) + '-xml',
333					dataType: 'json',
334					success: function (data) {
335						reload_data(data.js.content);
336					}
337				})
338				return false;
339		})
340
341		// отправка формы по Ctrl+Enter
342		$('#send_messages textarea').keydown(function (e) {
343			if (e.ctrlKey && e.keyCode == 13) {
344				$('#send_messages').submit();
345			}
346		});
347
348		// визуализация формы
349		$('.form_msg').click(function () {
350			var opt = {speed: 'fast'},
351			form_msg = $('#form_msg');
352
353			if(form_msg.is(':visible')) {
354				form_msg.fadeOut(opt['speed']);
355			}
356			else {
357				form_msg.fadeIn(opt['speed']);
358			}
359		});
360	}
361
362	x();
363
364	// обновление данных по таймауту
365	setInterval(function () {
366		if ($('#messages_list').length && !$('#form_msg').is(':visible'))
367		{
368			$.ajax({
369				context: $('#messages_list'),
370				data: {'JsHttpRequest': Math.round(new Date().getTime() / 1000) + '-xml'},
371				dataType: 'json',
372				success: function (data) {
373					reload_data(data.js.content);
374				}
375			})
376		}
377	}, 10000);
378})
379
380// окно переписки
381$(function () {
382	var temp_data = $('#temp_data'),
383		send_message = $('#send_message'), // форма отправки сообщения
384		load_messages = $('#load_messages'), // ссылка на подгрузку ранее добавленных сообщений
385		messages_block = $('#message_list'), // окно вывода сообщений 
386		messages_list = $('#message_list table'), // блок вывода сообщений 
387		message_blocks = $('#message_list tr'), // блок вывода сообщения
388		messages_list_height = '500', // максимальная высота оÐ
388ºÐ½Ð° переписки
389		messages_update_limit = '10000', // интервал обновления статуса сообщений
390		auto_scroll = true,  // автоматическая прокрутка
391		status_activity = 0;  // статус активности пользователя
392
393	// изменение статуса активности пользователя
394	$('body').mouseover(function () {
395		status_activity++;
396	});
397
398	// id сообщения в DOM модели 
399	function dom_message_id () {
400		var msg_obj = $('.unread_to,.unread_from'), // первое не прочитанное сообщение
401			dom_msg_id = msg_obj.prev().attr('id'); // id сообщения предшествующее первому не прочитанному
402
403		if (dom_msg_id == undefined) {
404			dom_msg_id = msg_obj.first().attr('id');
405
406			if (dom_msg_id == undefined) {
407				var last_msg = $('#message_list tr:last');
408				dom_msg_id = last_msg.prev().attr('id');
409
410				if (dom_msg_id == undefined) dom_msg_id = last_msg.attr('id');
411			}
412		}
413		return dom_msg_id;
414	};
415
416	// id сообщения в формате int
417	// используется для отправки запроса на сервер
418	function message_id () {
419		return dom_message_id().split('_')['1'];
420	};
421
422	// замена сообщения в списке
423	$.fn.replaceMessage = function () {
424		var new_msg = $(this),
425			old_msg = messages_list.find('[id="' + new_msg.attr('id') +'"]');
426
427		// есть что менять
428		if (old_msg.length) old_msg.replaceWith(new_msg);
429	};
430
431	// добавить в начало
432	$.fn.addToBefore = function (add_list) {
433		$(this).prepend(add_list);
434	};
435
436	// добавить в конец
437	$.fn.addToAffter = function (add_list) {
438		$(this).append(add_list);
439	};
440
441	$.fn.maxHeight = function (max_height) {
442		var height_block = $(this);
443
444		if (height_block.height() > max_height) height_block.height(max_height + 'px');
445		else height_block.height('auto');
446	}
447
448	// отправка формы по Ctrl+Enter
449	send_message.find('textarea').keydown(function (e) {
450		if (e.ctrlKey && e.keyCode == 13) send_message.submit();
451	});
452
453	// отправка/обновлене списка сообщений
454	function update_messages(type, read_status) 
455	{
456		// отправка сообщения
457		if (type == 'add') {
458			var config = {
459				data: 'JsHttpRequest=' + Math.round(new Date().getTime() / 1000) + '-xml&add_message=1&' + send_message.serialize() + '&after_message_id=' + message_id() + '&read_status=1'
460			};
461		}
462		// обновдение списка сообщений
463		else {
464			var config = {
465				data: {
466					JsHttpRequest: Math.round(new Date().getTime() / 1000) + '-xml',
467					after_message_id: message_id(),
468					read_status: read_status
469				}
470			};
471		}
472
473		$.ajax ($.extend({
474			context: messages_list,
475			dataType: 'json',
476
477			success: function (data) {
478
479				// данные во временный блок
480				temp_data.html(data.js.content);
481
482				// удаляем первое сообщение из полученных данных, если блок сообщений обновлялся не полностью
483				if (messages_block.find('tr:first').attr('id') != dom_message_id()) temp_data.find('tr:first').remove();
484
485				var new_messages = temp_data.find('tr');
486
487				// обновление информации о существующих сообщениях
488				new_messages.each(function () {
489					$(this).replaceMessage(message_blocks);
490				});
491
492				// дописать не существующие сообщения в конец пепериски
493				$(this).addToAffter(new_messages);
494
495				// ограничение максимальной высоты окна списка сообщений
496				messages_block.maxHeight(messages_list_height);
497
498				// очистка формы
499				if (type == 'add') {
500					$('#send_message textarea[name=text]').val('');
501					// включаем автоматическую прокрутку
502					auto_scroll = true;
503				}
504
505				// прокрутка списка сообщений в конец
506				if (auto_scroll == true) messages_block.scrollTop(messages_block.children(':first').height());
507			}
508		}, config))
509	}
510
511	// ограничение максимальной высоты окна списка сообщений
512	messages_block.maxHeight(messages_list_height);
513	messages_block.scrollTop(messages_block.children(':first').height());
514
515	// автообновлене списка сообщений
516	if (messages_block.length) {
517		setInterval(function () {
518			if (status_activity > 10 && auto_scroll == true) read_status = 1;
519			else read_status = 0;
520
521			// сброс статуса активности пользователя
522			status_activity = 0;
523
524			update_messages('update', read_status);
525		},messages_update_limit);
526	}
527
528	// отправка сообщения
529	send_message.submit(function () {
530		update_messages('add');
531		return false;
532	});
533
534	// подгрузка старых сообщений
535	load_messages.click(function () {
536		$.ajax({
537			context: messages_list,
538			dataType: 'json',
539
540			data: {
541				JsHttpRequest : Math.round(new Date().getTime() / 1000) + '-xml',
542				load_messages : 1,
543				count_messages : messages_list.find('tr').length - 1
544			},
545
546			success: function (data) {
547				// данные во временный блок
548				temp_data.html(data.js.content);
549
550				var new_messages = temp_data.find('tr');
551
552				// скрываем ссылку на догрузку
553				if (new_messages.is('.first_msg') && load_messages.is(':visible')) load_messages.fadeOut('fast');
554
555				// обновление информации о существующих сообщениях
556				new_messages.each(function () {
557					$(this).replaceMessage(message_blocks);
558				});
559
560				// дописать не существующие сообщения в начало пепериски
561				$(this).addToBefore(new_messages);
562
563				// ограничение максимальной высоты окна списка сообщений
564				messages_block.maxHeight(messages_list_height);
565				// прокрутка списка сообщений в начало
566				messages_block.scrollTop(0);
567			}
568		})
569
570		return false;
571	});
572
573	// прокрутка чата
574	messages_block.scroll(function () { 
575		if (messages_block.scrollTop() >= messages_block.children(':first').height() - messages_list_height - 30) auto_scroll = true;
576		else auto_scroll = false;
577	});
578});

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.