PageSourceSearch

https://console.ifin.ua/JavaScripts/ifin.js?bv1000=b01757354cca4866822c4850ec6697b3?v=3

js ifin.ua collected 2026-10-04 10:33:35 UTC 25,441 bytes, 887 lines download raw bytes

1var availableUnitNames = [
2			"шт", "кг", "к-кт", "т", "ваг", "л","бут","упак.","ящ","п.","бл","кор","конт","под.","цис.","м","км","кв.м","куб.","экз.","КВт*ч","місце","пог.м","год","грн","послуга","г"
3];
4
5
6function changeSelectedCompany(element) {
7
8    var companyId = element.val();
9    $('#CompanyId').val(companyId);
10    $.cookie('CompanyId', companyId, { expires: 7, path: '/' });
11    $("#ActionName").val('');
12    var reportType = $("#ReportType").val();
13
14    if (reportType != undefined) {
15        $("#Regenerate").val('');
16        $("#ReportType").val('0');
17    }
18    var form = element.closest('form');
19    if (form.length > 0) {
20        form.attr("method", "get");
21        form.submit();
22    } else {
23        window.location.href = window.location.href.toString().replace("#", '');
24    }
25
26}
27
28function GetVatPercent(dateValue) {
29
30    var parseDate = $.datepicker.parseDate('dd.mm.yy', dateValue);
31    var endDate20 = $.datepicker.parseDate('dd.mm.yy', '31.12.2013');
32
33    if (parseDate <= endDate20)
34        return 0.2;
35
36    return 0.17;
37}
38
39
40
41
42function JsError(text, level) {
43    LogJsError(text, level);
44}
45
46function JsSignerError(signerNew, level) {
47
48    try {
49        if (signerNew != null) {
50            LogJsError(signerNew.GetLastError(), level);
51        }
52    } catch (e) {
53
54    }
55}
56
57
58
59function showLoading() {
60
61    LoadingText('');
62}
63
64function hideLoading() {
65
66    $("#loadingDiv").stop().hide();
67    $('#loaderText').html('');
68}
69
70
71function LoadingText(text) {
72    $('#loadingDiv').stop().show();
73    $('#loaderText').html(text);
74}
75
76
77function GetWaitImg(addclass) {
78    var img = $('<div class="small-wait ' + addclass + '" />');
79    return img;
80}
81
82
83var modelMessageTimer;
84function displayModelMessage(isAlert, timeout, position) {
85
86    clearTimeout(modelMessageTimer);
87
88    if (isAlert == undefined)
89        isAlert = false;
90
91    var hideTimeOut = 4000;
92
93    if (isAlert) {
94        hideTimeOut = 10000;
95        $("#modalMessage #container").addClass("message-alert");
96    } else {
97        $("#modalMessage #container").addClass("message");
98    }
99
100    if (timeout != null)
101        hideTimeOut = timeout;
102
103    $("#modalMessage").fadeIn(800);
104
105
106    $("#modalMessage").center(-200, null);
107    modelMessageTimer = setTimeout('hideModalMessage()', hideTimeOut);
108
109}
110
111
112
113
114function ShowMessage(text, timeOut, position) {
115
116    if (typeof (text) == "object") {
117        var objClone = text;
118        if (!objClone.is(":visible")) {
119            objClone.show();
120        }
121        $("#modalMessage #container").append(objClone);
122    } else {
123        $("#modalMessage #container").html(text);
124    }
125
126    displayModelMessage(false, timeOut, position);
127}
128
129function ShowAlert(text, timeOut, position) {
130    console.log(text);
131    $("#modalMessage #container").html(text);
132    displayModelMessage(true, timeOut, position);
133}
134
135function ShowClosedAlert(text) {
136    ShowAlert(text, 60000);
137}
138
139function hideModalMessage() {
140    $("#modalMessage").hide();
141}
142
143
144
145
146function MarkRow() {
147
148    var counter = 1;
149    $(".ItemRow").each(function () {
150
151        counter++;
152        if (counter % 2 == 0) {
153            $(this).addClass("odd");
154        } else {
155            $(this).removeClass("odd");
156        }
157    });
158}
159
160
161
162function MarkTableRow(table) {
163
164    var counter = 1;
165    table.find('tr').each(function () {
166
167        counter++;
168        if (counter % 2 == 0) {
169            $(this).addClass("odd");
170        } else {
171            $(this).removeClass("odd");
172        }
173    });
174}
175
176
177
178function SuccessAsyncUpdate(data) {
179    if (data != null && data.Success) {
180        showLoading();
181        window.location.href = data.RedirectUrl;
182    }
183}
184
185function ValidateInt(element) {
186
187    var valueSalary = Number(element.val());
188    if (isNaN(valueSalary)) {
189        element.val('0');
190    } else {
191        element.val(valueSalary.toFixed(0).replace('.', ','));
192    }
193}
194
195
196
197
198function IsValidElement(element) {
199    if (element.attr("data-val") == null) {
200        return true;
201    }
202    var validators = element.closest('form');
203    if (validators.length == 0) {
204        return true;
205    }
206
207    var validator = validators.validate();
208
209    if (!validator.element(element)) {
210        element.addClass("field-validation-error");
211
212        return true;
213    } else {
214        element.removeClass("field-validation-error");
215        return false;
216    }
217}
218
219
220function ValidateDouble(element) {
221   if (element.val() == element.attr('displayValue'))
222        return;
223
224    var maxValue = element.attr('maxValue');
225    if (maxValue != null) {
226        maxValue = Globalize.parseFloat(maxValue);
227    }
228    var valueSalary = Number(element.val().replace(',', '.').replaceAll(' ', '').replaceAll(' ', ''));
229    var precision = parseInt(element.attr("precision")) || 2;
230    if (isNaN(valueSalary)) {
231        valueSalary = 0;
232    } else {
233        if (valueSalary > maxValue) {
234            valueSalary = maxValue;
235            SetQtip(element, "Значення не може бути більше ніж " + maxValue, null, "focus");
236        } else {
237            element.qtip("destroy");
238        }
239    }
240    //if (typeof showChangeRoundPrecisionDialog == 'function' && element.attr("precision") != null
241    //    && parseInt(valueSalary * Math.pow(10, precision)) < valueSalary * Math.pow(10, precision)) {
242    //    showChangeRoundPrecisionDialog(element);
243    //}
244
245    //element.val(valueSalary.toFixed(precision).replace('.', ','));
246    element.val(roundToLowerIfNegative(valueSalary, -precision).toFixed(precision).replace('.', ','));
247    element.attr('fullValue', valueSalary);
248    element.attr('displayValue', element.val());
249    if (element.attr("name") != undefined && element.attr("name").length > 0) {
250        var hiddenValue = $('input[name="' + element.attr("name").replace('_display', '') + '"]');
251        hiddenValue.val(valueSalary.toString().replace('.', ',').replaceAll(' ', ''));
252        IsValidElement(hiddenValue);
253    }
254}
255
256function ValidateAfetHiddenDoubleChange(element) {
257    var valueSalary = Number(element.val().replace(',', '.'));
258    var precision = parseInt(element.attr("precision")) || 2;
259    if (isNaN(valueSalary)) {
260        valueSalary = 0;
261    }
262    element.val(valueSalary.toFixed(precision).replace('.', ','));
263    element.attr('fullValue', valueSalary);
264    element.attr('displayValue', element.val());
265}
266
267
268
269function ChangeHiddenDouble(element) {
270    IsValidElement(element);
271    var displayElement = $('input[name="' + element.attr("name") + '_display"]');
272    displayElement.val(element.val());
273    ValidateAfetHiddenDoubleChange(displayElement);
274    element.change();
275}
276
277
278function SetQtip(element, text, width, eventName, content, hideWhen, contentClass) {
279    if (typeof text === 'string' || text instanceof String) {
280        if (text.includes("null")) {
281            return false;
282        }
283    }
284    else {
285        if (text != null || text != undefined) {
286            text = text[0].outerHTML;
287        }       
288    }
289
290    if (width == null)
291        width = 'auto';
292
293    if (hideWhen == null)
294        hideWhen = 'unfocus';
295
296    if (eventName == null)
297        eventName = false;
298
299    if (content == null) {
300        content = {
301            text: text,
302        };
303    }
304
305    if (!$(element).is(':visible')) {
306        var searchResult = element.parent().find("input[elementname='" + element.attr('name') + "']");
307        if (searchResult.length > 0) {
308            element = searchResult;
309        }
310    }
311
312    if ($('#reportTemplateContainer').length > 0) {
313
314        $('#reportTemplateContainer').animate({
315            //scrollTop: $('#reportTemplateContainer').scrollTop() + element.offset().top - 200
316        }, 1000, function() {
317            InnerSetQTip(element, content, eventName, hideWhen, contentClass, width);
318        });
319
320    } else {
321        InnerSetQTip(element, content, eventName, hideWhen, contentClass, width);
322    }
323}
324
325function InnerSetQTip(element, content, eventName, hideWhen, contentClass, width) {
326    $(element).removeData('qtip').qtip({
327        content: content,
328        position: {
329            //my: 'top center'
330            adjust: { screen: true }
331        },
332        hide: hideWhen,
333        show: {
334            event: eventName,
335            solo: true,
336            ready: true
337        },
338        style: {
339            width: width,
340            classes: contentClass
341        }
342    });
343
344}
345
346
347
348function ToolBoxBtnClick(element) {
349
350    if ($(element).attr("href") != "#" || $(element).attr("nonalert") != null) {
351        return true;
352    }
353
354    var hasElement = false;
355
356    $("input[name='si']:checked").each(function () {
357        hasElement = true;
358    });
359
360    if (hasElement) {
361        return true;
362    }
363
364    if ($(element).attr("nonchecked") == "ok") {
365        return true
366    }
367
368    SetQtip($(element), 'Оберіть необхідний елемент зі списку', 350, 'focus');
369
370    return hasElement;
371}
372
373function AjaxOrder(element, field, orderType) {
374    var orderByFiled = element.closest('form').find('input[name$="OrderBy"]');
375
376    if (orderByFiled.length == 0) {
377        element.closest('form').append('<input name="OrderBy"  type="hidden" value=' + field + ' />');
378    } else {
379        orderByFiled.val(field);
380    }
381
382
383    var orderTypeFiled = element.closest('form').find('input[name$="OrderType"]');
384
385    if (orderTypeFiled.length == 0) {
386        element.closest('form').append('<input name="OrderType"  type="hidden" value=' + orderType + ' />');
387    } else {
388        orderTypeFiled.val(orderType);
389    }
390
391    element.closest('form').submit();
392    return true;
393}
394
395
396function BindDataFilterEvents(selector, submitFormOnChange) {
397    if (selector == null) {
398        selector = $(document);
399    }
400
401    if (submitFormOnChange == null) {
402        submitFormOnChange = true;
403    }
404
405    var dates = selector.find("#fromDate, #toDate, .fromDate, .toDate, #fromPaymentDate, .fromPaymentDate, #fromProxyNumberDate, .fromProxyNumberDate, #toPaymentDate, .toPaymentDate, #toProxyNumberDate, .toProxyNumberDate");
406
407    dates.datepicker({
408        //                defaultDate: "+1w",
409        changeMonth: true,
410        //                numberOfMonths: 2,
411        onSelect: function (selectedDate) {
412            if (!dateFormarter($(this))) {
413                return false;
414            } 
415
416            var option = this.id == "fromDate" ? "minDate" : "maxDate",
417					instance = $(this).data("datepicker"),
418					date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
419            var minDate = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, $("#fromDate").val(), instance.settings);
420            var maxDate = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, $("#toDate").val(), instance.settings);
421            if (minDate > maxDate && minDate != null && maxDate != null) {
422                ShowAlert("Некоректний інтервал дат. ");
423                return;
424            }
425            if (option == "minDate") {
426                selector.find("#toDate,.toDate").datepicker("option", "minDate", minDate);
427            }
428            dates.not(this).datepicker("option", option, date);
429
430            $(this).change();
431        }
432    });
433    selector.find("#toDate,.toDate").datepicker("option", "minDate", selector.find("#fromDate").val());
434
435    dates.change(function () {
436
437        if (!dateFormarter($(this))) return;
438
439        var onchangeevent = $(this).attr('onchangeevent');
440
441        if (onchangeevent != null) {
442            var fn = window[onchangeevent];
443            if (typeof fn === 'function') {
444                fn($(this));
445            }
446        }
447
448        if (submitFormOnChange) {
449            submitClosestsForm($(this));
450        }
451
452    });
453
454
455
456    var time;
457    selector.find(".search").keyup(function (event) {
458        if (selector.find(".search").parent().hasClass("no-submit")) {
459            return;
460        }
461        var searchInput = $(this);
462
463        if (event.which == 13) {
464            event.preventDefault();
465            selector.find(searchInput).closest('form').submit();
466        } else {
467            clearTimeout(time);
468            time = setTimeout(function () {
469                selector.find(searchInput).closest('form').submit();
470            }, 2000);
471        }
472    });
473}
474
475function dateFormarter(selector) {
476    var checkDateStr = selector.val();
477    var dateStr = checkDateStr.toString().replaceAll('.', '').replaceAll(' ', '').replaceAll(' ', '');
478    if (dateStr.length != 8) {
479        ShowAlert("Некоректний формат дати.");
480        return false;
481    }
482    var dd = dateStr.slice(0, 2);
483    var mm = dateStr.slice(2, 4);
484    var yy = dateStr.slice(4, 8);
485    if (dd < 32 && mm < 13 && yy > 999) {
486        var newDate = dd + "." + mm + "." + yy;
487        selector.val(newDate);
488        return true;
489    } else {
490        ShowAlert("Некоректний формат дати.");
491        return false;
492    }
493}
494
495function PostItems(action, params, formHtml) {
496
497    var postForm = $('#postFrameForm');
498    $(postForm).attr('action', action);
499    postForm.empty();
500
501    for (var i = 0; i < formHtml.split('&').length; i++) {
502        var param = formHtml.split('&')[i];
503        if (param.toLowerCase().indexOf("si") < 0) {
504            var inputHdnForm = $('<input type="hidden" />').attr('name', param.split('=')[0]).val(param.split('=')[1]);
505            $(postForm).append(inputHdnForm);
506        }
507    }
508
509    var index = 0;
510    $("input[name='si']:checked").each(function () {
511        var inputHdn = $('<input type="hidden" />').attr('name', '[' + index + '].Id').val($(this).val());
512        $(postForm).append(inputHdn);
513        if ($(this).attr('ReportType') != undefined) {
514            var inputHdnType = $('<input type="hidden" />').attr('name', '[' + index + '].ReportType').val($(this).attr('ReportType'));
515            $(postForm).append(inputHdnType);
516        }
517        index++;
518    });
519
520    if (params != null) {
521        $.each(params, function (key, value) {
522            var inputHdn = $('<input type="hidden" />').attr('name', key).val(value);
523            $(postForm).append($(inputHdn));
524        });
525    }
526
527    $(postForm).submit();
528    $(postForm).empty();
529}
530
531
532
533
534$().ready(function () {
535
536    if ($("select#CompanyId").attr("type") != "hidden") {
537        var companyId = $("select#CompanyId");
538        if (companyId.length > 0) {
539           $("select#CompanyId").chosen({ no_results_text: "Такої компанії не знайдено" });
540            }
541
542
543
544
545        $('#CompanyId_chosen input').attr('placeholder', 'Пошук');
546
547
548
549    }
550    $('a[actionname]').click(function () {
551        var form = $(this).closest('form');
552        if (form.length == 0)
553            return true;
554
555        form.find("[name=ActionName]").attr('value', $(this).attr('actionname'));
556
557        var method = $(this).attr('method');
558        if (method != null) {
559            if (method == 'none')
560                return false;
561
562            form.attr("method", method);
563            form.submit();
564        }
565    });
566
567
568
569    $(document).ajaxStop($.unblockUI);
570
571    $(":input[data-val-required]").each(function () {
572        if ($.trim($(this).attr('type')) == 'input' || $.trim($(this).attr('type')) == 'text') {
573            if ($(this).hasClass("wide")) {
574                $(this).addClass("Required");
575            }
576            //$(this).css({ 'background': 'white' });
577        }
578    });
579
580
581    var searchWord = gup("SearchWord");
582
583    if ($.trim(searchWord) != '') {
584        $(".search").each(function () {
585            var elem = $(this);
586            elem.focus();
587        });
588    }
589
590    /* IE6 #main-menu li:hover fix */
591    $('#main-menu li').hover(function () {
592        $(this).addClass('hover');
593    }, function () {
594        $(this).removeClass('hover');
595    });
596
597    $('.with-popup').hover(function () {
598        $(this).children('.popup').show();
599        $(this).children('.popup-company').show();
600    }, function () {
601        $(this).children(".popup").hide();
602        $(this).children(".popup-company").hide();
603    });
604
605    $(".send-ajax").click(function () {
606        sendAjax(this);
607    });
608
609    $(".show-dialog-form-btn").click(function () {
610        var url = $(this).attr("action");
611        $(this).DialogForm({
612            url: url
613        });
614    });
615});
616
617function sendAjax(obj) {
618    var url = $(obj).attr("action");
619    var withReload = $(obj).hasClass("with-reload");
620    $.ajax({
621        type: 'post',
622        url: url,
623        success: function (data) {
624            if (data.success === true) {
625                if (withReload) {
626                    window.location.href = window.location.href.toString().replace("#", '');
627                } else {
628                    ShowMessage("Done!", 3000);
629                }
630            } else {
631                ShowAlert(data.message, 6000);
632            }
633        }
634    });
635}
636
637function submitClosestsForm(element) {
638    element.closest('form').submit();
639}
640
641$(function () {
642    BindDataFilterEvents();
643
644    $("#selectAll").click(function () {
645
646        var checked = $("#selectAll").attr("checked") == "checked";
647        $.each($("input[name='si']"), function () {
648            if (checked) {
649                $(this).attr("checked", "checked");
650            } else {
651                $(this).removeAttr("checked");
652            }
653        });
654    });
655
656
657    $('#headerMessage .close').bind('click', function () {
658        var hideInterval = 500;
659        $('#headerMessage').hide("slide", { direction: "up" }, hideInterval, function () {
660            $('#wrapper').css('margin-top', 0);
661            var key = $('#headerMessage').attr('messageid');
662            var userMessages = GetObjectFromStorage("userMessages");
663            userMessages[key] = true;
664            window.localStorage.setItem('userMessages', JSON.stringify(userMessages));
665            $(window).scroll();
666        });
667        $('#wrapper').animate({ 'margin-top': 0 }, hideInterval);
668    });
669
670
671    $(".videoContainer").each(function () {
672        var container = $(this);
673        var key = container.attr('src');
674        var userMessages = GetObjectFromStorage("userMessages");
675        var isShowed = userMessages[key] != null;
676        if (!isShowed) {
677            container.show();
678        }
679        container.find('a.closeVideo').bind('click', function () {
680
681            userMessages[key] = true;
682            window.localStorage.setItem('userMessages', JSON.stringify(userMessages));
683            container.fadeOut('slow');
684        });
685    });
686});
687
688function correctFloatNumber(value) {
689    if (isNaN(value)) return 0;
690    return Number(value.toPrecision(15));
691}
692
693function getDecimalPrecision(value, maxPrecision) {
694    if (!isFinite(value)) return 0;
695    value = Math.round10(value, -maxPrecision);
696    var e = 1;
697    var precision = 0;
698    while (Math.round(value * e) / e !== value) {
699         e *= 10; precision++;
700    }
701    if (precision < 2) {
702        precision = 2;
703    }
704    return precision;
705}
706
707function accountingRound(value) {
708    return roundToLowerIfNegative(parseFloat(value), -2);
709}
710
711function roundToLowerIfNegative(value, precision) {
712    if (value >= 0) {
713        return Math.round10(value, precision);
714    } else if (value < 0) {
715        return -Math.round10(-value, precision);
716    } else {
717        return 0;
718    }
719}
720
721function getDoubleValue(element) {
722    return correctFloatNumber(Number(element.attr("fullValue").replace(',', '.')));
723}
724
725function CorrectValuePrecision(element, precision) {
726    var value;
727    if (element.attr("fullValue") == null) {
728        value = Number(element.val().replace(',', '.').replaceAll(' ', '').replaceAll(' ', ''));
729        if (isNaN(value)) {
730            value = 0;
731        }
732    } else {
733        value = getDoubleValue(element);
734    }
735    var valuePrecision = getDecimalPrecision(value, 12);
736    value = roundToLowerIfNegative(value, -valuePrecision);
737
738    var correctedPrecision = (valuePrecision < precision) ? valuePrecision : precision;
739    element.attr("precision", correctedPrecision);
740    //
741    element.attr("fullValue", value);
742    var displayedValue = roundToLowerIfNegative(value, -precision).toFixed(correctedPrecision).replace('.', ',');
743    element.val(displayedValue);
744    element.attr("displayValue", displayedValue);
745}
746
747
748function decimalAdjust(type, value, exp) {
749    // Если степень не определена, либо равна нулю...
750    if (typeof exp === 'undefined' || +exp === 0) {
751        return Math[type](value);
752    }
753    value = +value;
754    exp = +exp;
755    // Если значение не является числом, либо степень не является целым числом...
756    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
757        return NaN;
758    }
759    // Сдвиг разрядов
760    value = value.toString().split('e');
761    value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
762    // Обратный сдвиг
763    value = value.toString().split('e');
764    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
765}
766
767// Десятичное округление к ближайшему
768if (!Math.round10) {
769    Math.round10 = function (value, exp) {
770        return decimalAdjust('round', value, exp);
771    };
772}
773// Десятичное округление вниз
774if (!Math.floor10) {
775    Math.floor10 = function (value, exp) {
776        return decimalAdjust('floor', value, exp);
777    };
778}
779// Десятичное округление вверх
780if (!Math.ceil10) {
781    Math.ceil10 = function (value, exp) {
782        return decimalAdjust('ceil', value, exp);
783    };
784}
785
786function ShowHeaderMessage(showForce, text, id) {
787
788    var userMessages = GetObjectFromStorage("userMessages");
789    var isShowed = userMessages[id] != null;
790
791    if (isShowed && !showForce)
792        return;
793
794
795    if (!String.IsNullOrEmpty($('#headerMessage #message').html())) {
796        return;
797    }
798
799    $('#headerMessage #message').html(text);
800    $('#headerMessage').attr('messageid', id);
801
802
803    var showInterval = 500;
804    var headerMessageHeight = $('#headerMessage').height();
805    $('#wrapper').animate({ 'margin-top': headerMessageHeight }, showInterval);
806    $('#headerMessage').show("slide", { direction: "up" }, showInterval, function () {
807        $(window).scroll();
808    });
809}
810
811
812function OnSubmitCanceled() {
813    if (typeof (placeholder) == "function") {
814         $('input[placeholder], textarea[placeholder]').placeholder();
815    }
816}
817
818
819(function ($) {
820    OnSubmitCanceled();
821
822    jQuery.fn.ParentDialog = function (element) {
823        var parentElement = element;
824        while (parentElement != null && parentElement.data('dialog') == null) {
825            parentElement = parentElement.parent;
826        }
827
828        return parentElement;
829    };
830})($);
831
832
833function isEmptyObject(object) {
834    if (object === undefined) {
835        return true;
836    }
837    for (var property in object) {
838        if (object.hasOwnProperty(property)) {
839            return false;
840        }
841    }
842    return JSON.stringify(object) === JSON.stringify({});
843}
844
845function savingSettings() {
846    $('#SettingsDialog').dialog("open");
847
848    $("#SettingsDialog").dialog({
849        dialogClass: 'no-title SettingsDialog',
850        width: '286',
851        modal: true,
852        buttons: {
853            'continue': {
854                'class': 'lowPriority',
855                text: 'Продовжити налаштування',
856                click: function () {
857                    $(this).dialog("close");
858                },
859            },
860            'redirect': {
861                'class': 'lowPriority goPrices',
862                text: 'Перейти у розділ Ціни',
863                click: function () {
864                    $(this).dialog("close");
865                    $('#сompanySettingsDialog').dialog('close');
866                    var url = '/Payment/Prices';
867                    window.location.href = url;
868                },
869            },
870            'Cancel': {
871                'class': 'lowPriority',
872                text: 'Закрити',
873                click: function () {
874                    $(this).dialog("close");
875                    $('#сompanySettingsDialog').dialog('close');
876                },
877            },
878        },
879        open: function () {
880
881        }
882    });
883
884    var template =
885        "<div id=\"SettingsDialog\" style=\"font-size: 25px;text-align: center;margin-top: 30px;height: 25px; \"><span>Зміни збережені</span></div>";
886    $("#SettingsDialog").html(template);
887}

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.