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.