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