PageSourceSearch

https://pogovorim.by/engine/ajax/board/board.js

js pogovorim.by collected 2026-10-02 10:56:38 UTC 18,166 bytes, 613 lines download raw bytes

1//==============================
2// Автор: REZER
3// http://rezer.net/ 
4// Специально для DLE Board
5//==============================
6
7//---------------------------------------------
8//	Комментарии
9//---------------------------------------------
10
11var BoardAnserCommentsID = new Array();
12var TreeComWysiwyg = false;
13
14// Цитирорование выделенного текста
15function BoardQuoteSelectedText( name ) {
16	
17	if ( !document.getElementById( "addcomments_form" ) ) return false;
18	var input = document.getElementById( "comments" );
19	var finalhtml = "";
20	
21	if( dle_txt != "" )
22		{
23			input.value += dle_txt;
24		}
25			else
26		{ 
27			input.value += "[b]" + name + "[/b]," + "\n";
28		}	
29}
30
31// Создание формы ответа на комментарий
32function BoardAnswerComment( id ){
33
34	if( !BoardAnserCommentsID[ id ] )
35		{
36			BoardCancelAnswer();			
37			document.getElementById( "tree_comments_form-" + id ).innerHTML = form_test;
38			BoardAnserCommentsID[ id ] = 1;
39			document.getElementById( "addcomments_form" ).innerHTML = "";
40			document.getElementById( "cancel_answer" ).style['display'] = "";
41			document.getElementById( "cancel_answer" ).innerHTML = "<input type=\"button\" onclick=\"BoardAnswerComment( '" + id + "' ); return false;\" class=\"bbcodes\" value=\"Отменить\" /><input type=\"hidden\" name=\"answer_id\" value=\"" + id + "\">";
42		}
43			else
44		{
45			BoardAllCancelAnswer();
46		}
47}
48
49// Отмена ответа на комментарий
50function BoardAllCancelAnswer(){
51	
52	BoardCancelAnswer();
53	document.getElementById( "addcomments_form" ).innerHTML = form_test;
54	document.getElementById( "cancel_answer" ).style['display'] = "none";	
55}
56
57// Убирание формы ответа на комментарий
58function BoardCancelAnswer(){
59
60	var com_search = document.getElementById( "dle-content" );
61	var com_answer = com_search.getElementsByTagName( "div" );
62	var count_com = com_answer.length;
63	for( var i = 0; i < count_com; i++ )
64		{
65			if( com_answer[ i ] != null )
66				{
67					if( /tree_comments_form-[0-9]/i.exec( com_answer[ i ].id ) != null )
68						{
69							com_answer[ i ].innerHTML = "";
70							var answer_id = com_answer[ i ].id.match( /[0-9]{1,50}/ );
71							BoardAnserCommentsID[ answer_id[ 0 ] ] = 0;
72							delete( answer_id );
73						}
74				}
75		}
76}
77
78// Навигация по комментариям
79function BoardComPage( page, board_id, link_tpl ){
80	
81	BoardAllCancelAnswer();
82	if( document.getElementById( "status-nav-com" ) != null )
83		{
84			document.getElementById( "status-nav-com" ).innerHTML = "<img src=\"/templates/" + dle_skin + "/board/style/horizont-ajax.gif\" border=\"0\" alt=\"Загрузка\" align=\"absmiddle\" />";
85		}
86	
87	$.ajax({
88		url: "/engine/ajax/board/com-navigation.php",
89		data: "com_page=" + page + "&board_id=" + board_id + "&link_tpl=" + link_tpl,
90		success: function( data ){
91			$( "#board_comments" ).html( data );
92			window.location = "#comment";
93		},
94		dataType: "html",
95		type: "POST"
96	});
97	
98}
99
100// Добавлеение комментария
101function BoardAddComments(){
102
103	var Url = "";
104	var form = document.forms['AddBoardComment'];
105    ShowLoading( "" );
106	
107	for( var i=0; i < form.elements.length; i++ )
108		{
109			var ElementForm = form.elements[i];
110			switch( ElementForm.type ){
111				
112				case "checkbox": {
113					if( ElementForm.checked == true )
114						{
115							Url += "&" + ElementForm.name + "=" + ElementForm.value;
116						}
117					break
118				}
119				
120				default: {
121					Url += "&" + ElementForm.name + "=" + ElementForm.value;
122					break
123				}
124			}
125		}
126
127	$.ajax({
128		url: dle_root + "engine/ajax/board/addcomments.php",
129		data: Url,
130		success: function( data ){
131			
132			HideLoading( "" );
133			if( /script language/i.exec( data ) == null )
134				{
135					if( form.answer_id )
136						{
137							$( "#tree_comments_form-" + form.answer_id.value ).html( data );
138							document.getElementById( "button_answer_to_" + form.answer_id.value ).innerHTML = "";
139						}
140							else
141						{
142							var new_id = Math.floor( Math.random() * ( 100 - 5 + 1 ) ) + 5;
143							var Element = document.createElement( "div" );
144							document.getElementById( "BoardCommentsList" ).appendChild( Element );
145							Element.id = "new_comment_" + new_id;
146							$( "#" + Element.id ).html( data );					
147						}
148						
149					if( document.getElementById( "BoardNotComment" ) != null )
150						{
151							var DelElement = document.getElementById( "BoardNotComment" );
152							DelElement.parentNode.removeChild( DelElement );
153						}
154						
155					if( form.answer_id )
156						{
157							var ObjCom = document.getElementById( "tree_comments_form-" + form.answer_id.value );
158							ObjCom.id = "tree_comments_result-" + form.answer_id.value;
159							BoardAllCancelAnswer();
160						}
161						
162					if( dle_group == 5 )
163						{
164							form.name.value = "";
165							form.com_mail.value = "";
166						}
167					
168					form.comments.value = "";
169					
170				}
171					else
172				{
173					var new_id = Math.floor( Math.random() * ( 100 - 5 + 1 ) ) + 5;
174					var Element = document.createElement( "div" );
175					document.getElementById( "BoardCommentsList" ).appendChild( Element );
176					Element.id = "new_comment_" + new_id;
177					$( "#" + Element.id ).html( data );	
178				}
179			
180			if( document.getElementById( "dle-captcha") != null )
181				{
182					BoardReCaptcha();
183					form.sec_code.value = "";
184				}
185		},
186		dataType: "html",
187		type: "POST"
188	});
189}
190
191// Удаление комментариев
192function BoardDelCom( id, board_id ){
193	
194	var Quest = confirm( "Вы действительно желаете удалить данный комментарий?" );
195	if( Quest )
196		{
197			document.getElementById( "comm-id-" + id ).innerHTML = "Происходит удаление, дождитесь ответа...";	
198			
199			$.ajax({
200				url: dle_root + "engine/ajax/board/com-del.php",
201				data: "id=" + id + "&board_id=" + board_id,
202				success: function( data ){
203					$( "#comm-id-" + id ).html( data );
204				},
205				dataType: "html",
206				type: "POST"
207			});	
208		}	
209}
210
211// Редактирование комментариев
212var BoardCasheComEdit = new Array();
213function BoardEditCom( id ){
214	
215	if( !BoardCasheComEdit[ id ] ) BoardCasheComEdit[ id ] = document.getElementById( "comm-id-" + id ).innerHTML;
216	document.getElementById( "comm-id-" + id ).innerHTML = "Загрузка, дождитесь ответа...";	
217	
218	$.ajax({
219		url: dle_root + "engine/ajax/board/com-edit.php",
220		data: "id=" + id,
221		success: function( data ){
222			$( "#comm-id-" + id ).html( data );
223			fombj = document.forms['AddBoardComment'];
224		},
225		dataType: "html",
226		type: "POST"
227	});
228}
229
230// Сохранение редактирования комментария
231function BoardSaveEditCom( id, photo_id ){
232	
233	var Comment = document.getElementById( "dleeditcomments" + id ).value;
234		
235	document.getElementById( "comm-id-" + id ).innerHTML = "Сохранение, дождитесь ответа...";
236	
237	$.ajax({
238		url: dle_root + "engine/ajax/board/com-edit.php",
239		data: "id=" + id + "&comments=" + Comment + "&save=1",
240		success: function( data ){
241			$( "#comm-id-" + id ).html( data );
242		},
243		dataType: "html",
244		type: "POST"
245	});
246}
247
248// Отмена редактирования комментария
249function CanceBoardEditCom( id ){
250	document.getElementById( "comm-id-" + id ).innerHTML = BoardCasheComEdit[ id ];
251	BoardCasheComEdit[ id ] = "";
252}
253
254//---------------------------------------------
255//	Вывод доп. полей при выборе категории
256//---------------------------------------------
257
258function CategorySelect(){
259	BoardTypeSetCategory();
260	BoardFieldsSetCategory();
261}
262
263function BoardTypeSetCategory(){
264		
265	var Select = "";
266	var SelectCategory = document.getElementById( "BoardSelectCategory" ).value;
267	var SelectType = document.getElementById( "BoardTypeSelect" ).value;
268	for( var i = 0; i < BoardTypeCat[ SelectCategory ].length; i++ )
269		{
270			var id = BoardTypeCat[ SelectCategory ][ i ];
271			var name = BoardTypeName[ id ];
272			var selected = SelectType == id ? " selected=\"selected\"" : "";
273			Select += "<option value=\"" + id + "\"" + selected + ">" + name + "</option>";
274		}
275		
276	Select = "<select name=\"board_type\" id=\"BoardTypeSelect\">" + Select + "</select>";
277	document.getElementById( "boardType" ).innerHTML = Select;
278}
279
280function BoardFieldsSetCategory(){
281	
282	var SelectCategory = document.getElementById( "BoardSelectCategory" ).value;
283	var field_search = document.getElementById( "BoardFields" );
284	var field_id = field_search.getElementsByTagName( "tr" );
285	var count_field = field_id.length;
286	for( var i = 0; i < count_field; i++ )
287		{
288			if( field_id[ i ] != null )
289				{
290					if( /BoardField_[0-9]/i.exec( field_id[ i ].id ) != null )
291						{
292							field_id[ i ].style['display'] = "none";
293							var this_field_id = field_id[ i ].id.match( /[0-9]{1,50}/ );
294							
295							if( BoardFields[ SelectCategory ] != null )
296								{
297									for( var c = 0; c < BoardFields[ SelectCategory ].length; c++ )
298										{
299											if( this_field_id == BoardFields[ SelectCategory ][ c ] )
300												{
301													field_id[ i ].style['display'] = "";
302												}
303										}
304								}
305							
306							if( field_id[ i ].style['display'] != "" && BoardFields['all'] != null )
307								{
308									for( var c = 0; c < BoardFields['all'].length; c++ )
309										{
310											if( this_field_id == BoardFields['all'][ c ] )
311												{
312													field_id[ i ].style['display'] = "";
313												}
314										}
315								}
316						}
317				}
318		}
319}
320
321//---------------------------------------------
322//	Другие функции
323//---------------------------------------------
324
325// Выбор страны
326function SelectCountry( Prefix, CityName, CityID ){
327		
328	CityID = !CityID ? "" : CityID;
329	Prefix = !Prefix ? "" : Prefix;
330	CityName = !CityName ? "" : CityName;
331	var CountryID = document.getElementById( "SelectListCountry" + Prefix ).value;
332	document.getElementById( "SelectCity" + Prefix ).disabled = true;
333	document.getElementById( "FormSelectCityStatus" + Prefix ).innerHTML = "<img src=\"/engine/inc/board/style/images/arrow-ajax.gif\" alt=\"Загрузка...\" border=\"0\" align=\"absmid
333dle\" />";
334	
335	$.ajax({
336		url: "/engine/ajax/board/set.country.php",
337		data: "country_id=" + CountryID + "&prefix=" + Prefix + "&CityID=" + CityID + "&CityName=" + CityName,
338		success: function( data ){
339			$( "#FormSelectCity" + Prefix ).html( data );
340		},
341		dataType: "html",
342		type: "POST"
343	});
344}
345
346// Обновление капчи
347function BoardReCaptcha( id ){
348	if( !id ) var id = "dle-captcha";
349	var rndval = new Date().getTime(); 
350	if( document.getElementById( id ) != null ) document.getElementById( id ).innerHTML = "<img src=\"/engine/modules/antibot/antibot.php?rndval=" + rndval + "\" border=\"0\" width=\"120\" height=\"50\" onclick=\"BoardReCaptcha( '" + id + "' ); return false;\" style=\"cursor: pointer;\" />";
351}
352
353// Добавление и удаление объявления из блокнота
354function BoardNotepad( id, type ){
355	
356	document.getElementById( "BoardPostNotepad_" + id ).innerHTML = "<img src=\"/engine/inc/board/style/images/status.gif\" alt=\"Загрузка...\" border=\"0\" align=\"absmiddle\" />";
357	
358	$.ajax({
359		url: "/engine/ajax/board/notepad.php",
360		data: "id=" + id + "&type=" + type,
361		success: function( data ){
362			$( "#BoardPostNotepad_" + id ).html( data );
363		},
364		dataType: "html",
365		type: "POST"
366	});
367}
368
369var OkSelectCity = false;
370function SelectRegion( CityID ){
371	
372	if( OkSelectCity === false )
373		{
374			SelectCountry( "", "Выберите", CityID );
375			OkSelectCity = true;
376		}
377		
378	ShowOrHide( "SelectCountryForm" );
379}
380
381function BoardformSubmit( nameForm, file, IdResult, img, imgId ){		
382		
383	if( !IdResult ) IdResult = "";
384	if( !img ) img = "";
385	if( !imgId ) ShowLoading( "" );
386	if( !file ) return false;
387		
388	var Url = "";
389	var formSend = document.forms[ nameForm ];
390		
391	if( imgId ) document.getElementById( imgId ).innerHTML = "<img src=\"/engine/inc/board/style/images/" + img + "\" border=\"0\" alt=\"Загрузка\" />";
392		
393	for( var i = 0; i < formSend.elements.length; i++ )
394		{
395			var ElementForm = formSend.elements[i];
396			switch( ElementForm.type )
397				{
398					case "checkbox": {
399						if( ElementForm.checked == true )
400							{
401								Url += "&" + ElementForm.name + "=" + ElementForm.value;
402							}
403						break
404					}
405						
406					case "select-multiple": {
407						for( var imultiple = 0; imultiple < ElementForm.options.length; imultiple++ )
408							{
409								if( ElementForm.options[ imultiple ].selected )
410									{
411										Url += "&" + ElementForm.name + "=" + ElementForm.options[imultiple].value;
412									}
413							}
414						break
415					}
416					
417					case "radio": {
418						var radioObj = formSend[ ElementForm.name ];
419						for( var imultiple = 0; imultiple < radioObj.length; imultiple++ )
420							{
421								if ( radioObj[ imultiple ].checked == true )
422									{
423										Url += "&" + ElementForm.name + "=" + radioObj[ imultiple ].value;
424										radio = true;
425									}
426							}
427						break
428					}
429						
430					case "hidden": {
431						Url += "&" + ElementForm.name + "=" + ElementForm.value;
432						break
433					}
434						
435					case "text": {
436						Url += "&" + ElementForm.name + "=" + ElementForm.value;
437						break
438					}
439						
440					default: {
441						Url += "&" + ElementForm.name + "=" + ElementForm.value;
442						break
443					}
444				}
445		}
446		
447	$.ajax({
448		url: "/engine/ajax/board/" + file,
449		data: Url,
450		success: function( data ){
451			if( !imgId ) HideLoading( "" );
452			if( IdResult ) $( "#" + IdResult ).html( data );
453		},
454		dataType: "html",
455		type: "POST"
456	});
457}
458
459var BoardModal = [];
460function BoardSendEmail( id ){
461	
462	if( BoardModal[ "SendEmail-" + id ] == 1 )
463		{
464			$( "#BoardSendEmail_" + id ).dialog( ( $( "#BoardSendEmail_" + id ).dialog( "isOpen" ) ? "close" : "open" ) );
465			return true;
466		}
467			else
468		{
469			$( "#BoardSendEmail_" + id ).dialog({
470				autoOpen: false,
471				hide: "fade",
472				title: "Отправить письмо",
473				show: "slide",
474				width: 450,
475			});
476			
477			$( "#BoardSendEmail_" + id ).html( "<div align=\"center\"><br /><br /><img src=\"/engine/inc/board/style/images/preloader.gif\" alt=\"Загрузка\" /></div>" );
478			
479			$.ajax({
480				url: "/engine/ajax/board/send.email.php",
481				data: "id=" + id,
482				success: function( data ){
483					$( "#BoardSendEmail_" + id ).html( data );
484				},
485				dataType: "html",
486				type: "POST"
487			});
488			
489			BoardModal[ "SendEmail-" + id ] = 1;
490			return BoardSendEmail( id );
491		}
492	
493	return false;
494}
495
496
497function BoardSendEmailFriend( id ){
498	
499	if( BoardModal[ "SendEmailFriend-" + id ] == 1 )
500		{
501			$( "#BoardSendEmailFriend_" + id ).dialog( ( $( "#BoardSendEmailFriend_" + id ).dialog( "isOpen" ) ? "close" : "open" ) );
502			return true;
503		}
504			else
505		{
506			$( "#BoardSendEmailFriend_" + id ).dialog({
507				autoOpen: false,
508				hide: "fade",
509				title: "Отправить письмо другу",
510				show: "slide",
511				width: 450,
512			});
513			
514			$( "#BoardSendEmailFriend_" + id ).html( "<div align=\"center\"><br /><br /><img src=\"/engine/inc/board/style/images/preloader.gif\" alt=\"Загрузка\" /></div>" );
515			
516			$.ajax({
517				url: "/engine/ajax/board/send.email.friend.php",
518				data: "id=" + id,
519				success: function( data ){
520					$( "#BoardSendEmailFriend_" + id ).html( data );
521				},
522				dataType: "html",
523				type: "POST"
524			});
525			
526			BoardModal[ "SendEmailFriend-" + id ] = 1;
527			return BoardSendEmailFriend( id );
528		}
529	
530	return false;
531}
532
533function BoardVip( id ){
534	
535	if( BoardModal[ "Vip-" + id ] == 1 )
536		{
537			$( "#BoardSetVip_" + id ).dialog( ( $( "#BoardSetVip_" + id ).dialog( "isOpen" ) ? "close" : "open" ) );
538			return true;
539		}
540			else
541		{
542			var new_id = Math.floor( Math.random() * ( 100 - 5 + 1 ) ) + 5;
543			var Element = document.createElement( "div" );
544			document.body.appendChild( Element );
545			Element.id = "BoardSetVip_" + id;
546			
547			$( "#BoardSetVip_" + id ).dialog({
548				autoOpen: false,
549				hide: "fade",
550				title: "Поднять объявление",
551				show: "slide",
552				width: 450,
553			});
554			
555			$( "#BoardSetVip_" + id ).html( "<div align=\"center\"><br /><br /><img src=\"/engine/inc/board/style/images/preloader.gif\" alt=\"Загрузка\" /></div>" );
556			
557			$.ajax({
558				url: "/engine/ajax/board/vip.php",
559				data: "id=" + id,
560				success: function( data ){
561					$( "#BoardSetVip_" + id ).html( data );
562				},
563				dataType: "html",
564				type: "POST"
565			});
566			
567			BoardModal[ "Vip-" + id ] = 1;
568			return BoardVip( id );
569		}
570	
571	return false;
572}
573
574function BoardColor( id ){
575	
576	if( BoardModal[ "Color-" + id ] == 1 )
577		{
578			$( "#BoardSetColor_" + id ).dialog( ( $( "#BoardSetColor_" + id ).dialog( "isOpen" ) ? "close" : "open" ) );
579			return true;
580		}
581			else
582		{
583			var new_id = Math.floor( Math.random() * ( 100 - 5 + 1 ) ) + 5;
584			var Element = document.createElement( "div" );
585			document.body.appendChild( Element );
586			Element.id = "BoardSetColor_" + id;
587			
588			$( "#BoardSetColor_" + id ).dialog({
589				autoOpen: false,
590				hide: "fade",
591				title: "Выделить объявление",
592				show: "slide",
593				width: 450,
594			});
595			
596			$( "#BoardSetColor_" + id ).html( "<div align=\"center\"><br /><br /><img src=\"/engine/inc/board/style/images/preloader.gif\" alt=\"Загрузка\" /></div>" );
597			
598			$.ajax({
599				url: "/engine/ajax/board/color.php",
600				data: "id=" + id,
601				success: function( data ){
602					$( "#BoardSetColor_" + id ).html( data );
603				},
604				dataType: "html",
605				type: "POST"
606			});
607			
608			BoardModal[ "Color-" + id ] = 1;
609			return BoardColor( id );
610		}
611	
612	return false;
613}

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.