PageSourceSearch

https://freeknife.ru/media/k2/assets/js/k2.frontend.js?v=2.8.0&sitepath=/

js freeknife.ru collected 2026-10-03 01:06:19 UTC 9,460 bytes, 286 lines download raw bytes

1/**
2 * @version    2.8.x
3 * @package    K2
4 * @author     JoomlaWorks http://www.joomlaworks.net
5 * @copyright  Copyright (c) 2006 - 2017 JoomlaWorks Ltd. All rights reserved.
6 * @license    GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
7 */
8
9var $K2 = jQuery.noConflict();
10
11$K2(document).ready(function(){
12
13	// Magnific popup
14	if(typeof($K2.magnificPopup) !== 'undefined') {
15		// --- Backwards compatibility for users with overrides - START ---
16		// First remove possible attached events of the core modal in case it is loaded by a third party extension
17		$K2('.itemImage a.modal, .itemEditLink a.modal, .catItemEditLink a.modal, .catItemAddLink a.modal, .userItemAddLink a.modal, .userItemEditLink a.modal, .k2UserBlockActions a.modal, .k2UserBlockRenderedMenu a.modal, .commentToolbar a.modal').unbind('click');
18
19		// Item image
20		$K2('.itemImage a.modal').magnificPopup({type:'image', image: {titleSrc: function() {return '';}}});
21
22		// Edit links
23		$K2('.itemEditLink a.modal, .catItemEditLink a.modal, .catItemAddLink a.modal, .userItemAddLink a.modal, .userItemEditLink a.modal').magnificPopup({type:'iframe', modal: true});
24
25		// Any other link
26		$K2('.k2UserBlockActions a.modal, .k2UserBlockRenderedMenu a.modal, .commentToolbar a.modal').magnificPopup({type:'iframe'});
27		// --- Backwards compatibility for users with overrides - FINISH ---
28
29		// New layouts
30		// Images
31		$K2('[data-k2-modal="image"]').magnificPopup({type:'image', image: {titleSrc: function() {return '';}}});
32		// Edit links
33		$K2('[data-k2-modal="edit"]').magnificPopup({type:'iframe', modal: true});
34		// Generic iframe
35		$K2('[data-k2-modal="iframe"]').magnificPopup({type:'iframe'});
36	}
37
38	// Generic function to get URL params passed in .js script include
39	function getUrlParams(targetScript, varName) {
40		var scripts = document.getElementsByTagName('script');
41		var scriptCount = scripts.length;
42		for (var a = 0; a < scriptCount; a++) {
43			var scriptSrc = scripts[a].src;
44			if (scriptSrc.indexOf(targetScript) >= 0) {
45				varName = varName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
46				var re = new RegExp("[\\?&]" + varName + "=([^&#]*)");
47				var parsedVariables = re.exec(scriptSrc);
48				if (parsedVariables !== null) {
49					return parsedVariables[1];
50				}
51			}
52		}
53	}
54
55	// Set the site root path
56	var K2SitePath = getUrlParams('k2.frontend.js', 'sitepath');
57
58	// Comments
59	$K2('#comment-form').submit(function(event){
60		event.preventDefault();
61		$K2('#formLog').empty().addClass('formLogLoading');
62		$K2.ajax({
63			url: $K2('#comment-form').attr('action'),
64			type: 'post',
65			dataType: 'json',
66			data: $K2('#comment-form').serialize(),
67			success: function(response){
68				$K2('#formLog').removeClass('formLogLoading').html(response.message).addClass(response.cssClass);
69				if(typeof(Recaptcha) != "undefined"){
70					Recaptcha.reload();
71				}
72				if (response.refresh) {
73					window.location.reload();
74				}
75			}
76		});
77	});
78
79	$K2('.commentRemoveLink').click(function(event){
80		event.preventDefault();
81		var element = $K2(this);
82		$K2(element).parent().addClass('commentToolbarLoading');
83		$K2.ajax({
84			url: $K2(element).attr('href'),
85			type: 'post',
86			data: $K2('#comment-form input:last').serialize(),
87			success: function(response){
88				$K2(element).parent().removeClass('commentToolbarLoading');
89				if(response=='true'){
90					$K2(element).parent().parent().remove();
91				}
92			}
93		});
94	});
95
96	$K2('.commentApproveLink').click(function(event){
97		event.preventDefault();
98		var element = $K2(this);
99		$K2(element).parent().addClass('commentToolbarLoading');
100		$K2.ajax({
101			url: $K2(element).attr('href'),
102			type: 'post',
103			data: $K2('#comment-form input:last').serialize(),
104			success: function(response){
105				$K2(element).parent().removeClass('commentToolbarLoading');
106				if(response=='true'){
107					$K2(element).parent().parent().removeClass('unpublishedComment');
108				}
109			}
110		});
111	});
112
113	$K2('.k2ReportUserButton').click(function(event){
114		event.preventDefault();
115		if (confirm(K2Language[0])) {
116			var element = $K2(this);
117			$K2(element).parent().addClass('commentToolbarLoading');
118			$K2.ajax({
119				url: $K2(element).attr('href'),
120				type: 'GET',
121				success: function(response){
122					$K2(element).parent().removeClass('commentToolbarLoading');
123					alert(response);
124				}
125			});
126		}
127
128	});
129
130	$K2('#k2ReportCommentForm').submit(function(event){
131		event.preventDefault();
132		$K2('#k2ReportCommentFormLog').empty().addClass('formLogLoading');
133		$K2.ajax({
134			url: $K2('#k2ReportCommentForm').attr('action'),
135			type: 'post',
136			data: $K2('#k2ReportCommentForm').serialize(),
137			success: function(response){
138				$K2('#formLog').removeClass('formLogLoading').html(response).css('display','block');
139				if(typeof(Recaptcha) != "undefined"){
140					Recaptcha.reload();
141				}
142			}
143		});
144	});
145
146	// Text Resizer
147	$K2('#fontDecrease').click(function(event){
148		event.preventDefault();
149		$K2('.itemFullText').removeClass('largerFontSize');
150		$K2('.itemFullText').addClass('smallerFontSize');
151	});
152	$K2('#fontIncrease').click(function(event){
153		event.preventDefault();
154		$K2('.itemFullText').removeClass('smallerFontSize');
155		$K2('.itemFullText').addClass('largerFontSize');
156	});
157
158	// Smooth Scroll
159	$K2('.k2Anchor').click(function(event){
160		event.preventDefault();
161		var target = this.hash;
162		$K2('html, body').stop().animate({
163			scrollTop: $K2(target).offset().top
164		}, 500);
165	});
166
167	// Rating
168	$K2('.itemRatingForm a').click(function(event){
169		event.preventDefault();
170		var itemID = $K2(this).attr('rel');
171		if(!itemID) {
172			itemID = $K2(this).data('id');
173		}
174		var log = $K2('#itemRatingLog' + itemID).empty().addClass('formLogLoading');
175		var rating = $K2(this).html();
176		$K2.ajax({
177			url: K2SitePath+"index.php?option=com_k2&view=item&task=vote&format=raw&user_rating=" + rating + "&itemID=" + itemID,
178			type: 'get',
179			success: function(response){
180				log.removeClass('formLogLoading');
181				log.html(response);
182				$K2.ajax({
183					url: K2SitePath+"index.php?option=com_k2&view=item&task=getVotesPercentage&format=raw&itemID=" + itemID,
184					type: 'get',
185					success: function(percentage){
186						$K2('#itemCurrentRating' + itemID).css('width', percentage + "%");
187						setTimeout(function(){
188							$K2.ajax({
189								url: K2SitePath+"index.php?option=com_k2&view=item&task=getVotesNum&format=raw&itemID=" + itemID,
190								type: 'get',
191								success: function(response){
192									log.html(response);
193								}
194							});
195						}, 2000);
196					}
197				});
198			}
199		});
200	});
201
202	// Classic popup
203	$K2('.classicPopup').click(function(event){
204		event.preventDefault();
205		if($K2(this).attr('rel')){
206			var json = $K2(this).attr('rel');
207			json = json.replace(/'/g, '"');
208			var options = $K2.parseJSON(json);
209		} else {
210			var options = {x:900,y:600}; /* use some default values if not defined */
211		}
212		window.open($K2(this).attr('href'),'K2PopUpWindow','width='+options.x+',height='+options.y+',menubar=yes,resizable=yes');
213	});
214
215	// Live search
216	$K2('div.k2LiveSearchBlock form input[name=searchword]').keyup(function(event){
217		var parentElement = $K2(this).parent().parent();
218		if($K2(this).val().length>3 && event.key!='enter'){
219			$K2(this).addClass('k2SearchLoading');
220			parentElement.find('.k2LiveSearchResults').css('display','none').empty();
221			parentElement.find('input[name=t]').val($K2.now());
222			parentElement.find('input[name=format]').val('raw');
223			var url = 'index.php?option=com_k2&view=itemlist&task=search&' + parentElement.find('form').serialize();
224			parentElement.find('input[name=format]').val('html');
225			$K2.ajax({
226				url: url,
227				type: 'get',
228				success: function(response){
229					parentElement.find('.k2LiveSearchResults').html(response);
230					parentElement.find('input[name=searchword]').removeClass('k2SearchLoading');
231					parentElement.find('.k2LiveSearchResults').css('display', 'block');
232				}
233			});
234		} else {
235			parentElement.find('.k2LiveSearchResults').css('display','none').empty();
236		}
237	});
238
239	// Calendar
240	if (typeof($K2().live) == "undefined") {
241		$K2('.k2CalendarBlock').on('click', '.calendarNavLink', function(event){
242			event.preventDefault();
243			var parentElement = $K2(this).parent().parent().parent().parent();
244			var url = $K2(this).attr('href');
245			parentElement.empty().addClass('k2CalendarLoader');
246			$K2.ajax({
247				url: url,
248				type: 'post',
249				success: function(response){
250					parentElement.html(response);
251					parentElement.removeClass('k2CalendarLoader');
252				}
253			});
254		});
255	}
256	else {
257		$K2('a.calendarNavLink').live('click',  function(event){
258			event.preventDefault();
259			var parentElement = $K2(this).parent().parent().parent().parent();
260			var url = $K2(this).attr('href');
261			parentElement.empty().addClass('k2CalendarLoader');
262			$K2.ajax({
263				url: url,
264				type: 'post',
265				success: function(response){
266					parentElement.html(response);
267					parentElement.removeClass('k2CalendarLoader');
268				}
269			});
270		});
271	}
272
273	// Generic Element Scroller (use .k2Scroller in the container and .k2ScrollerElement for each contained element)
274	$K2('.k2Scroller').css('width',($K2('.k2Scroller').find('.k2ScrollerElement:first').outerWidth(true))*$K2('.k2Scroller').children('.k2ScrollerElement').length);
275
276});
277
278// Equal block heights for the "default" view
279$K2(window).load(function () {
280	var blocks = $K2('.subCategory, .k2EqualHeights');
281	var maxHeight = 0;
282	blocks.each(function(){
283		maxHeight = Math.max(maxHeight, parseInt($K2(this).css('height')));
284	});
285	blocks.css('height', maxHeight);
286});

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.