PageSourceSearch

https://betfriend.ru/templates/default/js/core.js?1591175625

js betfriend.ru collected 2026-10-02 19:23:03 UTC 28,413 bytes, 839 lines download raw bytes

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

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.