1var icms = icms || {}; 2 3$(document).ready(function(){ 4 5 for(var module in icms){ 6 if ( typeof(icms[module].onDocumentReady) === 'function' ) { 7 icms[module].onDocumentReady(); 8 } 9 } 10 11 renderHtmlAvatar(); 12 13 $('.widget_tabbed').each(function(){ 14 15 $('.tabs .tab a', $(this)).click(function(){ 16 var wid = $(this).data('id'); 17 var block = $(this).parent('li').parent('ul').parent('.tabs').parent('.widget_tabbed'); 18 $('.body', block).hide(); 19 $('.links-wrap', block).hide(); 20 $('#widget-'+wid, block).show(); 21 $('#widget-links-'+wid, block).show(); 22 $('.tabs a', block).removeClass('active'); 23 $(this).addClass('active'); 24 return false; 25 }); 26 27 }); 28 29 $('.messages.ajax-modal a').on('click', function(){ 30 $('#popup-manager').addClass('nyroModalMessage'); 31 }); 32 33}); 34 35icms.menu = (function ($) { 36 37 this.allow_mobile_select = true; 38 39 this.onDocumentReady = function(){ 40 41 $(document).on('click', function(event) { 42 if ($(event.target).closest('.dropdown_menu').length) { 43 $('.dropdown_menu > input').not($(event.target).closest('.dropdown_menu > input')).prop('checked', false); 44 return; 45 } 46 $('.dropdown_menu > input').prop('checked', false); 47 }); 48 49 if(this.allow_mobile_select){ 50 51 var dropdown = $('<select class="mobile_menu_select" />').appendTo("nav"); 52 $("<option value='/'></option>").appendTo(dropdown); 53 54 $("nav .menu li > a").each(function() { 55 var el = $(this); 56 var nav_level = $("nav .menu").parents().length; 57 var el_level = $(this).parents().length - nav_level; 58 var pad = (el_level-2 + 1) >= 1 ? new Array(el_level-2 + 1).join('-') + ' ' : ''; 59 var attr = { 60 value : el.attr('href'), 61 text : pad + el.text() 62 }; 63 if(window.location.pathname.indexOf(el.attr('href')) === 0){ 64 attr.selected = true; 65 } 66 $("<option>", attr).appendTo(dropdown); 67 }); 68 69 $("nav select.mobile_menu_select").change(function() { 70 window.location = $(this).find("option:selected").val(); 71 }); 72 73 $(".tabs-menu").each(function() { 74 75 var tabs = $(this); 76 77 var dropdown = $('<select class="mobile_menu_select" />').prependTo(tabs); 78 $("> ul > li > a", tabs).each(function() { 79 var el = $(this); 80 var attr = { 81 value : el.attr('href'), 82 text : el.text() 83 }; 84 if(el.parent('li').hasClass('active')){ 85 attr.selected = true; 86 } 87 $("<option>", attr).appendTo(dropdown); 88 }); 89 90 $(dropdown).change(function() { 91 window.location = $(this).find("option:selected").val(); 92 }); 93 }); 94 } 95 96 if($('div.widget.fixed_actions_menu').length){ 97 var $menu_target = $('#breadcrumbs').length ? $('#breadcrumbs') : ($('#body section article').length ? $('#body section article') : null); 98 if ($menu_target){ 99 $menu_target.prepend($('div.widget.fixed_actions_menu')); 100 $('div.widget.fixed_actions_menu').on('click', function (e){ 101 var $menu = $(this); 102 if ($(e.target).closest('.body a').length) { 103 return; 104 } 105 if ($menu.hasClass('clicked')) { 106 $menu.removeClass('clicked'); 107 } else { 108 $menu.addClass('clicked'); 109 setTimeout(function(){ 110 $(document).one('click', function(event) { 111 if ($(event.target).closest($menu).length) { return; } 112 $menu.removeClass('clicked'); 113 }); 114 }, 10); 115 } 116 }); 117 } else { 118 $('div.widget.fixed_actions_menu').removeClass('fixed_actions_menu'); 119 } 120 }; 121 122 this.initActionConfirm(); 123 }; 124 125 this.initActionConfirm = function(){ 126 $('a.icms-action-confirm, .icms-action-confirm > a').on('click', function(){ 127 let confirm_text = $(this).data('confirm'); 128 if (confirm_text) { 129 if(!confirm(confirm_text)){ return false; } 130 } 131 }); 132 }; 133 134 return this; 135 136}).call(icms.menu || {},jQuery); 137 138icms.forms = (function ($) { 139 140 this.wysiwygs_insert_pool = {insert: {}, add: {}, init: {}, save: {}}; 141 this.submitted = false;
142 this.form_changed = false; 143 this.csrf_token = false; 144 145 var _this = this; 146 147 this.addWysiwygsInsertPool = function (field_name, callback){ 148 this.wysiwygs_insert_pool.insert[field_name] = callback; 149 }; 150 151 this.addWysiwygsAddPool = function (field_name, callback){ 152 this.wysiwygs_insert_pool.add[field_name] = callback; 153 }; 154 155 this.addWysiwygsInitPool = function (field_name, callback){ 156 this.wysiwygs_insert_pool.init[field_name] = callback; 157 }; 158 159 this.addWysiwygsSavePool = function (field_name, callback){ 160 this.wysiwygs_insert_pool.save[field_name] = callback; 161 }; 162 163 this.wysiwygBeforeSubmit = function (){ 164 for(var field_name in this.wysiwygs_insert_pool.save) { 165 if(this.wysiwygs_insert_pool.save.hasOwnProperty(field_name)){ 166 if (typeof(this.wysiwygs_insert_pool.save[field_name]) === 'function') { 167 this.wysiwygs_insert_pool.save[field_name](field_name); 168 } 169 } 170 } 171 return this; 172 }; 173 174 this.wysiwygInit = function (field_name, callback){ 175 if (typeof(this.wysiwygs_insert_pool.init[field_name]) === 'function') { 176 this.wysiwygs_insert_pool.init[field_name](field_name, callback); 177 } else if(typeof(callback) === 'function') { 178 callback(); 179 } 180 return this; 181 }; 182 183 this.wysiwygInsertText = function (field_name, text){ 184 if (typeof(this.wysiwygs_insert_pool.insert[field_name]) === 'function') { 185 this.wysiwygs_insert_pool.insert[field_name](field_name, text); 186 } else { 187 $('#'+field_name).val(text).focus(); 188 } 189 return this; 190 }; 191 192 this.wysiwygAddText = function (field_name, text){ 193 if (typeof(this.wysiwygs_insert_pool.add[field_name]) === 'function') { 194 this.wysiwygs_insert_pool.add[field_name](field_name, text); 195 } else { 196 addTextToPosition($('#'+field_name), text); 197 } 198 return this; 199 }; 200 201 this.getCsrfToken = function (){ 202 if(this.csrf_token === false){ 203 this.csrf_token = $('meta[name="csrf-token"]').attr('content'); 204 } 205 return this.csrf_token; 206 }; 207 208 this.setCsrfToken = function (csrf_token){ 209 this.csrf_token = csrf_token; 210 }; 211 212 this.getFilterFormParams = function(form){ 213 214 var form_params = _this.toJSON(form); 215 216 var o = {}; 217 for(var name in form_params){if(form_params.hasOwnProperty(name)){ 218 if(name === 'page'){ continue; } 219 if(form_params[name] && form_params[name] !== '0'){ 220 o[name] = form_params[name]; 221 } 222 }} 223 224 return o; 225 226 }; 227 228 this.initFilterForm = function(selector){ 229 230 var change = function (){ 231 232 var form = $(this.closest('form')); 233 234 var sbutton = $(form).find('.buttons button[type = submit]'); 235 var spinner = $(form).find('.spinner.filter_loader'); 236 237 $(sbutton).prop('disabled', true); 238 $(spinner).show(); 239 240 var o = _this.getFilterFormParams(form); 241 242 if(Object.keys(o).length > 0 || $(form).find('.cancel_filter_link').length == 0){ 243 var submit_uri = $(form).attr('action'); 244 } else { 245 var submit_uri = $(form).find('.cancel_filter_link').attr('href'); 246 } 247 248 o.show_count = 1; 249 250 var query_string = $.param(o); 251 252 $.get(submit_uri+'?'+query_string, function(result){ 253 if(result.filter_link){ 254 $(form).data('filter_link', result.filter_link); 255 } else { 256 $(form).removeData('filter_link'); 257 } 258 $(sbutton).val(result.hint).prop('disabled', false).find('span').text(result.hint); 259 $(spinner).fadeOut('slow'); 260 icms.events.run('icms_content_filter_changed', form); 261 }, 'json'); 262 263 }; 264 265 var delay = function () { 266 var timer = 0; 267 return function () { 268 var context = this, args = arguments; 269 clearTimeout(timer); 270 timer = setTimeout(function () {
271 change.apply(context, args); 272 }, 500); 273 }; 274 }; 275 276 $(selector).find('select, input[type=checkbox]').on('change', change); 277 $(selector).find('input:not([type=checkbox]), textarea').on('input', delay()); 278 279 $(selector).find('.buttons button[type = submit]').on('click', function (){ 280 281 var form = $(this.closest('form')); 282 283 var filter_link = $(form).data('filter_link'); 284 285 if(filter_link){ 286 window.location.href = filter_link; 287 return false; 288 } 289 290 var submit_uri = $(form).attr('action'); 291 292 var o = _this.getFilterFormParams(form); 293 294 var query_string = $.param(o); 295 296 if(query_string.length > 0){ 297 window.location.href = submit_uri+'?'+query_string; 298 } else { 299 300 var cancel_filter_link = $(form).find('.cancel_filter_link').attr('href'); 301 302 if(!cancel_filter_link){ 303 cancel_filter_link = submit_uri; 304 } 305 306 window.location.href = cancel_filter_link; 307 } 308 309 return false; 310 311 }); 312 313 }; 314 315 this.initUnsaveNotice = function(){ 316 317 var init_data = {}; 318 319 $('form').each(function(i){ 320 init_data[i] = _this.toJSON($(this)); 321 $(this).attr('data-notice_id', i); 322 }); 323 324 $(document).on('change', '.form-tabs input, .form-tabs select, .form-tabs textarea', function (e) { 325 var form = $(this).closest('form'); 326 _this.form_changed = (JSON.stringify(init_data[form.attr('data-notice_id')]) !== JSON.stringify(_this.toJSON(form))) ? true : false; 327 }); 328 $(document).on('submit', 'form', function () { 329 icms.forms.submitted = true; 330 }); 331 $(window).on('beforeunload', function (e) { 332 if (icms.forms.form_changed && !icms.forms.submitted) { 333 var e = e || window.event; 334 var msg = LANG_SUBMIT_NOT_SAVE; 335 if (e) { 336 e.returnValue = msg; 337 } 338 return msg; 339 } 340 }); 341 342 }; 343 344 this.initCollapsedFieldset = function(){ 345 $('.is_collapsed legend').on('click', function (){ 346 var _fieldset = $(this).closest('.is_collapsed'); 347 $(_fieldset).toggleClass('is_collapse do_expand'); 348 $.cookie('icms[fieldset_state]['+$(_fieldset).attr('id')+']', $(_fieldset).hasClass('do_expand')); 349 }); 350 $('.is_collapsed').each(function (){ 351 if($(this).find('.field_error').length > 0 || $.cookie('icms[fieldset_state]['+$(this).attr('id')+']') === 'true'){ 352 $(this).addClass('do_expand').removeClass('is_collapse'); return; 353 } 354 }); 355 }; 356 357 this.toJSON = function(form) { 358 _this.wysiwygBeforeSubmit(); 359 var o = {}; 360 var a = form.serializeArray(); 361 $.each(a, function() { 362 if (o[this.name] !== undefined) { 363 if (!o[this.name].push) { 364 o[this.name] = [o[this.name]]; 365 } 366 o[this.name].push(this.value || ''); 367 } else { 368 o[this.name] = this.value || ''; 369 } 370 }); 371 return o; 372 }; 373 374 this.submit = function(selector){ 375 selector = selector || '.button-submit'; 376 icms.forms.submitted = true; 377 if (selector && (selector.indexOf('to_draft') !== -1 || selector.indexOf('draft') !== -1)) { 378 var form = $(selector).closest('form'); 379 if (!form.length) form = $('form:has(.button-submit), form:has(.buttons)'); 380 if (!$('input[type="hidden"][name="to_draft"]', form).length) { 381 form.append('<input type="hidden" name="to_draft" value="1" />'); 382 } 383 } 384 var btn = $(selector); 385 if (btn.length && btn[0].click) { 386 btn[0].click(); 387 } else if (btn.length) { 388 btn.trigger('click'); 389 } else { 390 var form = $(selector).closest('form'); 391 if (!form.length) form = $('form'); 392 form.submit(); 393 } 394 }; 395 396 this.initFieldsetChildList = function (form_id){ 397 $('#'+form_id+' .icms-form-tab__demand').each(function (){ 398 var demand_wrap = $(this).attr('href'); 399 var url = $(this).data('parent_url'); 400 $('#'+$(this).data('parent')).on('change', function (){ 401 var value = $(this).val(); 402 $.post(url, {value: value, form_id: form_id}, function(result){ 403 $(demand_wrap).html(result); 404 }, 'html'); 405 }); 406 }); 407 }; 408 409 this.updateChildList = function (child_id, url, value, current_value, filter_field_name) { 410 411 var child_list = $('#' + child_id); 412 413 if ($('#f_' + child_id + ' .loading').length === 0) { 414 $('#f_' + child_id + ' label').append(' <div class="loading"></div>'); 415 } 416 417 child_list.html(''); 418 419 current_value = current_value || ''; 420 421 if (!$.isArray(current_value)) { 422 current_value = [current_value]; 423 } 424 425 $.post(url, {value: value}, function (result) { 426 427 for (var k in result) { 428 if (result.hasOwnProperty(k)) { 429 if (typeof result[k].value !== 'undefined') { 430 var _value = result[k].value; 431 var title = result[k].title; 432 } else { 433 var _value = k; 434 var title = result[k]; 435 } 436 child_list.append('<option value="' + _value + '"' + ($.inArray(_value, current_value) !== -1 ? ' selected' : '') + '>
436' + title + '</option>'); 437 } 438 } 439 440 $(child_list).trigger('chosen:updated'); 441 442 $('#f_' + child_id + ' .loading').remove(); 443 444 icms.events.run('icms_forms_updatechildlist', { 445 result: result, 446 child_id: child_id, 447 value: value, 448 current_value: current_value, 449 filter_field_name: filter_field_name 450 }); 451 452 }, 'json'); 453 454 }; 455 456 this.submitAjax = function(form, additional_params){ 457 458 icms.forms.submitted = true; 459 460 var form_data = this.toJSON($(form)); 461 462 if(additional_params){ 463 $.extend(form_data, additional_params); 464 } 465 466 var url = $(form).attr('action'); 467 468 var submit_btn = $(form).find('.button-submit'); 469 470 $(submit_btn).prop('disabled', true); 471 472 $.post(url, form_data, function(result){ 473 474 $(submit_btn).prop('disabled', false); 475 476 if (result.errors === false){ 477 if ("callback" in result){ 478 479 var params = result.callback.split('.'); 480 481 var calling_func = window; 482 for(var id in params){ 483 calling_func = calling_func[params[id]]; 484 } 485 486 calling_func.apply(form, [form_data, result]); 487 488 return; 489 } 490 if (result.success_text){ 491 icms.modal.alert(result.success_text); 492 } 493 if (result.redirect_uri){ 494 window.location.href = result.redirect_uri; 495 } 496 return; 497 } 498 499 if (typeof(result.errors) === 'object'){ 500 501 $('.field_error', form).removeClass('field_error'); 502 $('.error_text', form).remove(); 503 504 for(var field_id in result.errors){ 505 var id = field_id.replace(':', '_'); 506 $('#f_'+id, form).addClass('field_error'); 507 $('#f_'+id, form).prepend('<div class="error_text">' + result.errors[field_id] + '</div>'); 508 $(form).find('ul.tabbed > li > a[href = "#'+$('#f_'+id, form).parents('.tab').attr('id')+'"]').trigger('click'); 509 } 510 511 icms.events.run('icms_forms_submitajax', result); 512 513 icms.modal.resize(); 514 515 icms.forms.submitted = false; 516 517 return; 518 519 } 520 521 }, 'json'); 522 523 return false; 524 525 }; 526 527 this.initSymbolCount = function (field_id, max, min){ 528 $('#f_'+field_id).append('<div class="symbols_count"><span class="symbols_num"></span><span class="symbols_spell"></span></div>'); 529 var symbols_count = $('#f_'+field_id+' > .symbols_count'); 530 var symbols_num = $('.symbols_num', symbols_count); 531 var symbols_spell = $('.symbols_spell', symbols_count); 532 if(max){ 533 var type = 'left'; 534 } else { 535 var type = 'total'; 536 } 537 if(min){ 538 type = 'total'; 539 } 540 var field_id_el = $('#'+field_id); 541 542 $(symbols_num).on('click', function (){ 543 if(max){ 544 if(type === 'total'){ 545 type = 'left'; 546 } else { 547 type = 'total'; 548 } 549 render_symbols_count(); 550 } 551 }); 552 var render_symbols_count = function (){ 553 var num = +$(field_id_el).val().length; 554 if(!num){ 555 $(symbols_num).html(''); $(symbols_count).hide(); return; 556 } 557 if(min){ if(num < min){ 558 $(symbols_num).addClass('overflowing_min'); 559 } else { 560 $(symbols_num).removeClass('overflowing_min'); 561 }} 562 if(max && num > max){ 563 $(symbols_num).addClass('overflowing'); 564 } else { 565 $(symbols_num).removeClass('overflowing'); 566 } 567 if(type === 'total'){ 568 $(symbols_count).fadeIn(); 569 $(symbols_num).html(num); 570 $(symbols_spell).html(spellcount(num, LANG_CH1, LANG_CH2, LANG_CH10)); 571 } else { 572 $(symbols_count).fadeIn(); 573 if(num > max){ 574 num = max; 575 $(field_id_el).val($(field_id_el).val().substr(0, max)); 576 } 577 $(symbols_num).html((max - num)); 578 $(symbols_spell).html(spellcount(num, LANG_CH1, LANG_CH2, LANG_CH10)+' '+LANG_ISLEFT); 579 } 580 }; 581 $(field_id_el).on('input', render_symbols_count); 582 icms.events.on('autocomplete_select', function(){ render_symbols_count(); }); 583 render_symbols_count(); 584 }; 585 586 this.getInputVal = function(el){ 587 if($(el).is(':checkbox,:radio')){ 588 var v = $(el+':checked').val(); 589 return typeof v === 'undefined' ? '0' : v; 590 } 591 return $(el).val(); 592 }; 593 this.inputNameToId = function(name){ 594 name = name.replace(/\:|\|/g,'_'); 595 return name; 596 }; 597 this.inputNameToElName = function(name){ 598 name = name.split(':'); 599 return (typeof name !== 'string' && name.length > 1) ? name.shift()+'['+name.join('][')+']' : name; 600 }; 601 this.VDisDisplay = function(field_value, type){ 602 var display; 603 if (Array.isArray(field_value) && field_value.length > 0) { 604 for (var show_key in type) { 605 if ($.inArray(type[show_key], field_value) !== -1) { 606 display = true; 607 } else { 608 display = false;
609 break; 610 } 611 } 612 } else { 613 if (Array.isArray(field_value)) { 614 field_value = ''; 615 } 616 if ($.inArray(field_value, type) !== -1) { 617 return true; 618 } else { 619 display = false; 620 } 621 } 622 return display; 623 }; 624 this.VDListeners = {}; 625 this.VDListenersInitialized = []; 626 this.VDRules = {from:{},depends:{}}; 627 this.addVisibleDepend = function(form_id, field_id, rules){ 628 if(typeof this.VDRules.depends[form_id+'-'+field_id] === 'undefined'){ /* здеÑÑ Ð²Ñе завиÑимоÑÑи Ð¿Ð¾Ð»Ñ field_name */ 629 this.VDRules.depends[form_id+'-'+field_id] = rules; /* array('is_cats' => array('show' => array('1'))) */ 630 }else{ 631 $.extend(this.VDRules.depends[form_id+'-'+field_id], rules); 632 } 633 for(var f in rules){if(rules.hasOwnProperty(f)){ 634 if(typeof this.VDRules.from[form_id+'-'+f] === 'undefined'){this.VDRules.from[form_id+'-'+f] = {};} 635 if(typeof this.VDRules.from[form_id+'-'+f][field_id] === 'undefined'){ /* здеÑÑ Ð²Ñе, кÑо завиÑÐ¸Ñ Ð¾Ñ Ð¿Ð¾Ð»Ñ f */ 636 this.VDRules.from[form_id+'-'+f][field_id] = rules[f]; /* array('show' => array('1')) */ 637 }else{ 638 $.extend(this.VDRules.from[form_id+'-'+f][field_id], rules[f]); 639 } 640 if(typeof this.VDListeners[form_id+'-'+f] === 'undefined'){ 641 this.VDListeners[form_id+'-'+f] = '#'+form_id+' [name="'+this.inputNameToElName(f)+'"]'; 642 $('#'+form_id+' [name="'+this.inputNameToElName(f)+'"]').on('change input', function (){ 643 for(var field in _this.VDRules.from[form_id+'-'+f]){if(_this.VDRules.from[form_id+'-'+f].hasOwnProperty(field)){ /* пеÑÐµÐ±Ð¾Ñ ÑÐµÑ , кÑо завиÑÐ¸Ñ Ð¾Ñ ÑÑого Ð¿Ð¾Ð»Ñ f */ 644 var display = null; /* еÑли не бÑÐ´ÐµÑ show */ 645 646 for(var _from in _this.VDRules.depends[form_id+'-'+field]){if(_this.VDRules.depends[form_id+'-'+field].hasOwnProperty(_from)){ /* пеÑÐµÐ±Ð¾Ñ ÑÐµÑ , Ð¾Ñ ÐºÐ¾Ð³Ð¾ завиÑÐ¸Ñ Ð¿Ð¾Ð»Ðµ field */ 647 if(typeof _this.VDRules.depends[form_id+'-'+field][_from]['show'] !== 'undefined'){ 648 display = _this.VDisDisplay(_this.getInputVal('#'+form_id+' [name="'+_this.inputNameToElName(_from)+'"]'), _this.VDRules.depends[form_id+'-'+field][_from]['show']); 649 if(display === true){ break; } 650 } 651 }} 652 653 if(display === null){display = true;} 654 655 if(display){ /* ÑкÑÑÑие ÑилÑнее показа */ 656 for(var _from in _this.VDRules.depends[form_id+'-'+field]){if(_this.VDRules.depends[form_id+'-'+field].hasOwnProperty(_from)){ /* пеÑÐµÐ±Ð¾Ñ ÑÐµÑ , Ð¾Ñ ÐºÐ¾Ð³Ð¾ завиÑÐ¸Ñ Ð¿Ð¾Ð»Ðµ field */ 657 if(typeof _this.VDRules.depends[form_id+'-'+field][_from]['hide'] !== 'undefined'){ 658 display = !_this.VDisDisplay(_this.getInputVal('#'+form_id+' [name="'+_this.inputNameToElName(_from)+'"]'), _this.VDRules.depends[form_id+'-'+field][_from]['hide']); 659 if(display === false){ break; } 660 } 661 }} 662 } 663 664 if(display){ 665 $('#f_'+_this.inputNameToId(field)).removeClass('hide_field').prev('.field_tabbed').removeClass('hide_field'); 666 } else { 667 $('#f_'+_this.inputNameToId(field)).addClass('hide_field').prev('.field_tabbed').addClass('hide_field'); 668 } 669 670 }} 671 }); 672 } 673 }} 674 return this; 675 }; 676 this.VDReInit = function(){ 677 for(var l in this.VDListeners){if(this.VDListeners.hasOwnProperty(l)){ 678 if(this.VDListenersInitialized.indexOf(this.VDListeners[l]) === -1) { 679 $(this.VDListeners[l]).triggerHandler('change'); 680 $(this.VDListeners[l]).triggerHandler('input'); 681 this.VDListenersInitialized.push(this.VDListeners[l]); 682 } 683 }} 684 }; 685 686 return this; 687 688}).call(icms.forms || {},jQuery); 689 690icms.events = (function ($) { 691 692 this.listeners = {}; 693 694 this.on = function(name, callback){ 695 if (typeof(this.listeners[name]) == 'object'){ 696 this.listeners[name].push(callback); 697 } else { 698 this.listeners[name] = [callback]; 699 } 700 return this; 701 }; 702 703 this.run = function(name, params){ 704 params = params || {}; 705 for(var event_name in this.listeners[name]) { 706 if(this.listeners[name].hasOwnProperty(event_name)){ 707 if (typeof(this.listeners[name][event_name]) == 'function') { 708 this.listeners[name][event_name](params); 709 } 710 } 711 } 712 return this; 713 }; 714 715 return this; 716 717}).call(icms.events || {},jQuery); 718 719icms.pagebar = function(id, initial_page, has_next, is_modal){ 720 721 initial_page = initial_page || 1; 722 723 var page = 1; 724 725 var link = $(id); 726 727 var showMore = function(){ 728 729 var list_wrap = $(link).prev(); 730 731 if(!has_next){ 732 if(initial_page > 1){ 733 return true; 734 } 735 $('body,html').animate({ 736 scrollTop: $(list_wrap).offset().top 737 }, 500 738 ); 739 return false;
740 } 741 742 $(link).addClass('show_spinner'); 743 744 page += 1; 745 746 var post_params = $(link).data('url-params'); 747 post_params.page = page; 748 749 $.post($(link).data('url'), post_params, function(data){ 750 751 var first_page_url = $(link).data('first-page-url'); 752 753 $(link).removeClass('show_spinner'); 754 755 if (!data.html) { return; } 756 757 has_next = data.has_next; 758 page = data.page; 759 760 $(list_wrap).append(data.html); 761 762 if(!has_next){ 763 $('span', link).html($('span', link).data('to-first')); 764 $(link).attr('href', first_page_url); 765 } 766 767 var _sep = first_page_url.indexOf('?') !== -1 ? '&' : '?'; 768 769 if(!is_modal){ 770 window.history.pushState({link: first_page_url+_sep+'page='+page}, '', first_page_url+_sep+'page='+page); 771 } 772 773 if(is_modal){ 774 icms.modal.resize(); 775 } 776 777 }, 'json'); 778 779 return false; 780 781 }; 782 783 $(link).on('click', function (){ 784 return showMore(); 785 }); 786 787}; 788 789$.expr[':'].Contains = $.expr.createPseudo(function(arg) { 790 return function( elem ) { 791 return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; 792 }; 793}); 794function setCaretPosition(field, pos) { 795 var $field = $(field); 796 if ($field[0].setSelectionRange) { 797 $field.focus(); 798 $field[0].setSelectionRange(pos, pos); 799 } else if ($field[0].createTextRange) { 800 var range = $field[0].createTextRange(); 801 range.collapse(true); 802 range.moveEnd('character', pos); 803 range.moveStart('character', pos); 804 range.select(); 805 } 806} 807function getCaretPosition(field) { 808 var $field = $(field); 809 if($field.length){ 810 if (document.selection) { 811 $field.focus(); 812 var Sel = document.selection.createRange(); 813 Sel.moveStart ('character', -$field.val().length); 814 return Sel.text.length; 815 } else { 816 return $field[0].selectionStart || 0; 817 } 818 } 819 return 0; 820} 821function addTextToPosition(field_id, text, spacer, spacer_stop){ 822 var field = $(field_id); 823 var value = $(field).val(); 824 var pos = getCaretPosition(field); 825 var value1 = value.substring(0, pos); 826 var value2 = value.substring(pos, value.length); 827 if(spacer){ 828 var check1 = function(spacer){ // пÑовеÑка пеÑед вÑÑавлÑемÑм 829 if(value1.length >= spacer.length){ 830 if(value1.substring(pos - spacer.length, pos) !== spacer){ 831 return true; 832 } 833 } 834 return false; 835 }; 836 var check2 = function(spacer){ // пÑовеÑка поÑле вÑÑавлÑемого ÑекÑÑа 837 if(value2.length >= spacer.length){ 838 if(value2.substring(0, spacer.length) !== spacer){ 839 return true; 840 } 841 } 842 return false; 843 }; 844 var insert1 = true, insert2 = true; 845 if(spacer_stop){ 846 for(var ss in spacer_stop){if(spacer_stop.hasOwnProperty(ss)){ 847 if(insert1 && (!spacer_stop[ss] || spacer_stop[ss] == 1) && !check1(ss)){ 848 insert1 = false; 849 } 850 if(insert2 && (!spacer_stop[ss] || spacer_stop[ss] == 2) && !check2(ss)){ 851 insert2 = false; 852 } 853 }} 854 } 855 856 if(insert1 && check1(spacer)){ 857 text = spacer+text; 858 } 859 if(insert2 && check2(spacer)){ 860 text += spacer; 861 } 862 } 863 $(field).val(value1 + text + value2).trigger('input'); 864 setCaretPosition(field, pos+text.length); 865 return false; 866} 867function toggleFilter(){ 868 var filter = $('.filter-panel'); 869 $('.filter-link', filter).toggle('fast'); 870 $('.filter-container', filter).slideToggle('fast'); 871} 872function goBack(){ 873 window.history.go(-1); 874} 875function spellcount (num, one, two, many){ 876 if (num%10==1 && num%100!=11){ 877 str = one; 878 } else if(num%10>=2 && num%10<=4 && (num%100<10 || num%100>=20)){ 879 str = two; 880 } else { 881 str = many; 882 } 883 return str; 884} 885function renderHtmlAvatar(wrap){ 886 wrap = wrap || document; 887 $('div.default_avatar', wrap).each(function(){ 888 var a = this; 889 var i = $('img', this);
890 var isrc = $(i).attr('src'); 891 $(i).attr('src', ''); 892 $(i).attr('src', isrc); 893 $(i).load(function() { 894 var h = +$(this).height(); 895 $(a).css({ 896 'line-height': h+'px', 897 'font-size': Math.round((h*0.625))+'px' 898 }); 899 }); 900 }); 901} 902function initMultyTabs(selector, tab_wrap_field){ 903 tab_wrap_field = tab_wrap_field || '.field'; 904 $(selector).each(function(indx, element){ 905 var tab = $(' > li > a', $(this)); 906 $(tab).closest('li').eq(0).addClass('active'); 907 $(tab).on('click', function() { 908 var tab_field = $(this).attr('href'); 909 $(this).closest('li').addClass('active').siblings().removeClass('active'); 910 $(element).nextAll(tab_wrap_field+':lt('+$(tab).closest('li').length+')').hide(); 911 $(tab_field).show(); 912 return false; 913 }); 914 }); 915} 916function initTabs(selector){ 917 $(selector+' .tab').hide(); 918 $(selector+' .tab').eq(0).show(); 919 $(selector+' ul.tabbed > li').eq(0).addClass('active'); 920 $(selector+' ul.tabbed > li > a').click(function(){ 921 $(selector+' li').removeClass('active'); 922 $(this).parent('li').addClass('active'); 923 $(selector+' .tab').hide(); 924 $(selector+' '+$(this).attr('href')).show(); 925 icms.events.run('icms_tab_cliked', this); 926 return false; 927 }); 928 $(selector+' .field').each(function(indx, element){ 929 if($(element).hasClass('field_error')){ 930 $(selector+' ul.tabbed > li > a[href = "#'+$(element).parents('.tab').attr('id')+'"]').trigger('click'); 931 } 932 }); 933 $('select.mobile_menu_select', selector).change(function() { 934 $(selector+' ul.tabbed > li > a[href = "'+$(this).find("option:selected").val()+'"]').trigger('click'); 935 }); 936} 937function insertJavascript(filepath, onloadCallback) { 938 if ($('head script[src="'+filepath+'"]').length > 0){ 939 return; 940 } 941 var el = document.createElement('script'); 942 el.setAttribute('type', 'text/javascript'); 943 el.setAttribute('src', filepath); 944 if (typeof(onloadCallback) == 'function') { 945 el.setAttribute('onload', function() { 946 onloadCallback(); 947 }); 948 } 949 $('head').append(el); 950}
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.