PageSourceSearch

https://www.fpi.it/templates/dylan/js/custom.js

js fpi.it collected 2026-10-02 12:44:01 UTC 27,638 bytes, 816 lines download raw bytes

1/**
2 * Equalizer selector
3 * Date: 31/01/2023
4 * Alessandro Gammieri
5 *
6 */
7function equalizer(container, selector) {
8    var maxHeight = 0;
9    $(container).each(function () {
10        $(this).find(selector).height("auto");
11        $(this).find(selector).each(function () {
12            if (maxHeight < $(this).height()) {
13                maxHeight = $(this).height();
14            }
15        });
16    });
17
18    $(container + " " + selector).each(function () {
19        $(this).height(maxHeight);
20    });
21}
22
23/**
24 * Province Bolzano/Trento
25 * Date: 07/02/2024
26 * Alessandro Gammieri
27 *
28 */
29function provBolzanoTrento() {
30    if ($("#javascript_palestre").length > 0) {
31        if ($("#javascript_palestre").hasClass("palestre-bolzano")) {
32            let prov = $("#id_provincia").children();
33            prov.each(function () {
34                if ($(this).text().includes("Trento")) {
35                    $(this).remove();
36                }
37            });
38        } else if ($("#javascript_palestre").hasClass("palestre-trento")) {
39            let prov = $("#id_provincia").children();
40            prov.each(function () {
41                if ($(this).text().includes("Bolzano")) {
42                    $(this).remove();
43                }
44            });
45        }
46    }
47}
48
49jQuery(function ($) {
50
51    /**
52     * Titoli card tesseramento
53     * Date: 08/02/2024
54     * Alessandro Gammieri
55     *
56     */
57    try {
58        if ($("body").hasClass("com-callrestapi") && $("#lista_elementi").length > 0) {
59            equalizer("#lista_elementi", ".card-header");
60            $(window).on("resize", function () {
61                equalizer("#lista_elementi", ".card-header");
62            }).trigger("resize");
63        }
64    } catch (error) {
65        console.error("Titoli card tesseramento: " + error);
66    }
67
68    /**
69     * Ricerca Palestre Comitati doppi
70     * Date: 06/02/2024
71     * Alessandro Gammieri
72     *
73     */
74    try {
75        if ($("body").hasClass("home-comitato") && $("#form_palestre").length > 0) {
76            if ($("#id_regione").attr("type") != "hidden") {
77                $("#id_regione").on("select2:select", function (e) {
78                    let selection = e.params.data.text.toLowerCase();
79                    if (selection.includes("aosta")) {
80                        selection = "valledaosta";
81                    }
82                    $("#form_palestre").attr("action", `palestre/${selection}.html`);
83                });
84            }
85        }
86    } catch (error) {
87        console.error("Ricerca Palestre Comitati doppi: " + error);
88    }
89
90    /**
91     * Show Slider Eventi
92     * Date: 25/01/2024
93     * Alessandro Gammieri
94     *
95     */
96    try {
97        if ($("#slider-events").length > 0) {
98            setTimeout(() => {
99                $("#slider-events").css("visibility", "visible");
100            }, 1000);
101        }
102    } catch (error) {
103        console.error("Show Slider Eventi: " + error);
104    }
105
106    /**
107     * Equalizer Eventi LoadMore
108     * Date: 16/01/2024
109     * Alessandro Gammieri
110     *
111     */
112    try {
113        if ($("body.com-rseventspro").length > 0) {
114            $("#rsepro_loadmore").on("click", function () {
115                setTimeout(() => {
116                    equalizer(".rs_event_detail", ".titolo-evento");
117                    $(window).on("resize", function () {
118                        equalizer(".rs_event_detail", ".titolo-evento");
119                    }).trigger("resize");
120                }, 1000);
121            });
122        }
123    } catch (error) {
124        console.error("Equalizer Eventi LoadMore: " + error);
125    }
126
127    /**
128     * Equalizer Box Video
129     * Date: 08/11/2023
130     * Alessandro Ferri
131     *
132     */
133    try {
134        if ($("body.homepage").length > 0 || $("body.mini-home").length > 0 || $("body.home-museo").length > 0) {
135            equalizer("#video .sppb-addon-header", ".sppb-addon-title");
136            $(window).on("resize", function () {
137                equalizer("#video .sppb-addon-header", ".sppb-addon-title");
138            }).trigger("resize");
139        }
140    } catch (error) {
141        console.error("Equalizer Eventi: " + error);
142    }
143
144    /**
145     * Offcanvas Museo del Pugilato
146     * Date: 20/11/2023
147     * Alessandro Gammieri
148     *
149     */
150    try {
151        if ($("body").hasClass("museo-pugilato") && $("#hamburger-museo").length > 0) {
152            $(window).on("resize", function () {
153                if ($(window).width() < 1200) {
154                    $("#hamburger-museo").on("click", function () {
155                        $("body.museo-pugilato").addClass("offcanvas-active");
156                    });
157                }
158            }).trigger("resize");
159        }
160    } catch (error) {
161        console.error("Offcanvas Museo del Pugilato: " + error);
162    }
163
164    /**
165     * Offcanvas Comitato
166     * Date: 20/11/2023
167     * Alessandro Ferri
168     *
169     */
170    try {
171        if ($("body").hasClass("comitato") && $("#hamburger-comitato").length > 0) {
172            $(window).on("resize", function () {
173                if ($(window).width() < 1200) {
174                    $("#hamburger-comitato").on("click", function () {
175                        $(".comitato").addClass("offcanvas-active");
176                    });
177                }
178            }).trigger("resize");
179        }
180    } catch (error) {
181        console.error("Offcanvas Comitato: " + error);
182    }
183
184    /**
185     * Equalizer Montly
186     * Date: 08/11/2023
187     * Alessandro Ferri
188     *
189     */
190    try {
191        if ($("body.com-monthlyarchive").length > 0) {
192            equalizer(".ma-articles-list .ma-article", ".article-header");
193            $(window).on("resize", function () {
194                equalizer(".ma-articles-list .ma-article", ".article-header");
195            }).trigger("resize");
196        }
197    } catch (error) {
198        console.error("Equalizer Eventi: " + error);
199    }
200
201    /**
202     * Equalizer News
203     * Date: 08/11/2023
204     * Alessandro Ferri
205     *
206     */
207    try {
208        if ($("body.com-content").length > 0) {
209            equalizer(".article-list .article ", ".article-header");
210            $(window).on("resize", function () {
211                equalizer(".article-list .article ", ".article-header");
212            }).trigger("resize");
213        }
214    } catch (error) {
215        console.error("Equalizer Eventi: " + error);
216    }
217
218    /**
219     * Equalizer Eventi
220     * Date: 07/11/2023
221     * Alessandro Ferri
222     *
223     */
224    try {
225        if ($("body.com-rseventspro").length > 0) {
226            equalizer(".rs_event_detail", ".titolo-evento");
227            $(window).on("resize", function () {
228                equalizer(".rs_event_detail", ".titolo-evento");
229            }).trigger("resize");
230        }
231    } catch (error) {
232        console.error("Equalizer Eventi: " + error);
233    }
234
235    /**
236     * Equalizer Logo Row
237     * Date: 31/10/2023
238     * Alessandro Gammieri
239     *
240     */
241    try {
242        if ($("#logo-row").length > 0) {
243            equalizer("#logo-row .sppb-addon-text", "h4");
244            $(window).on("resize", function () {
245                equalizer("#logo-row .sppb-addon-text", "h4");
246            }).trigger("resize");
247        }
248    } catch (error) {
249        console.error("Equalizer Gallery: " + error);
250    }
251
252    /**
253     * Equalizer Video Gallery
254     * Date: 31/10/2023
255     * Alessandro Ferri
256     *
257     */
258    try {
259        if ($("body.com-cnvideos").length > 0) {
260            equalizer("#cnvideos .element-video", ".title");
261            $(window).on("resize", function () {
262                equalizer("#cnvideos .element-video", ".title");
263            }).trigger("resize");
264        }
265    } catch (error) {
266        console.error("Equalizer Video Gallery: " + error);
267    }
268
269    /**
270     * Equalizer Button Row
271     * Date: 31/10/2023
272     * Alessandro Gammieri
273     *
274     */
275    try {
276        if ($("#button-row").length > 0) {
277            equalizer("#button-row .sppb-row-column", ".sppb-btn");
278            $(window).on("resize", function () {
279                equalizer("#button-row .sppb-row-column", ".sppb-btn");
280            }).trigger("resize");
281        }
282    } catch (error) {
283        console.error("Equalizer Gallery: " + error);
284    }
285
286    /**
287     * Equalizer Gallery
288     * Date: 24/10/2023
289     * Alessandro Ferri
290     *
291     */
292    try {
293        if ($("body").hasClass("com-igallery")) {
294            equalizer(".igui-scope>.ig-menu-grid", ".ig-menu-grid-text");
295            $(window).on("resize", function () {
296                equalizer(".igui-scope>.ig-menu-grid", ".ig-menu-grid-text");
297            }).trigger("resize");
298        }
299    } catch (error) {
300        console.error("Equalizer Gallery: " + error);
301    }
302
303    /**
304     * Equalizer News
305     * Date: 20/10/2023
306     * Alessandro Ferri
307     *
308     */
309    try {
310        equalizer("#news-home .sppb-addon-content .sppb-articles-carousel-column .sppb-articles-carousel-content", ">a");
311        $(window).on("resize", function () {
312            equalizer("#news-home .sppb-addon-content .sppb-articles-carousel-column .sppb-articles-carousel-content", ">a");
313        }).trigger("resize");
314    } catch (error) {
315        console.error("Equalizer Eventi: " + error);
316    }
317
318
319    /*********************************************************/
320    /********************* CALL-REST API *********************/
321    /*********************************************************/
322
323    // Vista Corsi
324    try {
325        if ($('#javascript_corsi').length > 0) {
326
327            if ($("select#tipologia").length > 0) {
328                $("#tipologia").select2();
329            }
330
331            if ($("select#stagione").length > 0) {
332                $("#stagione").select2();
333            }
334
335            if ($("select#id_regione").length > 0) {
336                $("#id_regione").select2();
337            }
338        }
339    } catch (error) {
340        console.log("Vista Corsi: " + error);
341    }
342
343    // Vista atleti
344    try {
345
346        if ($('#javascript_atleti').length > 0) {
347
348            if ($("select#id_comitato_atleti").length > 0) {
349                $("#id_comitato_atleti").select2();
350            }
351            if ($("select#id_societa").length > 0) {
352                $("#id_societa").select2();
353            }
354            if ($("select#sesso").length > 0) {
355                $("#sesso").select2();
356            }
357            if ($("select#id_tipo_tessera").length > 0) {
358                $("#id_tipo_tessera").select2();
359            }
360            if ($("select#id_qualifica").length > 0) {
361                $("#id_qualifica").select2();
362            }
363            if ($("select#id_peso").length > 0) {
364                $("#id_peso").select2();
365            }
366
367            var comitato_ok = $('#comitato_ok').val();
368            var tessera_ok = $('#tessera_ok').val();
369            var sesso_ok = $('#sesso_ok').val();
370            var qualifica_ok = $('#qualifica_ok').val();
371            var peso_ok = $('#peso_ok').val();
372            var societa_ok = $('#societa_ok').val();
373
374            $('#id_comitato_atleti').change(function () {
375                $("#id_societa").html('<option value="">Società</option>');
376                var id_comitato = $("#id_comitato_atleti option:selected").val();
377                if (!id_comitato) { id_comitato = comitato_ok; }
378                $.ajax({
379                    type: "GET",
380                    url: "/index.php?option=com_callrestapi&task=json_societa",
381                    dataType: "html",
382                    data: "id_comitato=" + id_comitato,
383                    success: function (msg) {
384                        $("#id_societa").html(msg);
385                        if (societa_ok) {
386                            $("#id_societa").val(societa_ok);
387                        }
388                    },
389                    error: function () {
390                        alert("Chiamata fallita!");
391                    }
392                });
393            });
394
395            $('#id_tipo_tessera, #sesso').change(function () {
396                $("#id_qualifica").html('<option value="">Qualifica</option>');
397                var id_tipo_tessera = $("#id_tipo_tessera option:selected").val();
398                var sesso = $("#sesso option:selected").val();
399                $.ajax({
400                    type: "GET",
401                    url: "/index.php?option=com_callrestapi&task=json_qualifiche",
402                    dataType: "html",
403                    data: {
404                        'id_tipo_tessera': id_tipo_tessera,
405                        'sesso': sesso
406                    },
407                    success: function (msg) {
408                        $("#id_qualifica").html(msg);
409                        if (qualifica_ok) {
410                            $("#id_qualifica").val(qualifica_ok);
411                            $('#id_qualifica').change();
412                        }
413                    },
414                    error: function () {
415                        alert("Chiamata fallita!");
416                    }
417                });
418            });
419
420            $('#id_qualifica').change(function () {
421                $("#id_peso").html('<option value="">Peso</option>');
422                var id_tipo_tessera = $("#id_tipo_tessera option:selected").val();
423                var sesso = $("#sesso option:selected").val();
424                var qualifica = $("#id_qualifica option:selected").val();
425                $.ajax({
426                    type: "GET",
427                    url: "/index.php?option=com_callrestapi&task=json_peso",
428                    dataType: "html",
429                    data: {
430                        'qualifica': qualifica,
431                        'id_tipo_tessera': id_tipo_tessera,
432                        'sesso': sesso
433                    },
434                    success: function (msg) {
435                        $("#id_peso").html(msg);
436                        if (peso_ok) {
437                            $("#id_peso").val(peso_ok);
438                        }
439                    },
440                    error: function () {
441                        alert("Chiamata fallita!");
442                    }
443                });
444
445            });
446
447            if (comitato_ok != '') {
448                $('#id_comitato_atleti').change();
449            }
450            if (tessera_ok != '' || sesso_ok != '') {
451                $('#id_tipo_tessera').change();
452            }
453
454            openModal();
455        }
456
457    } catch (e) {
458        console.log(e);
459    }
460
461    // Vista tecnici
462    try {
463
464        if ($('#javascript_tecnici').length > 0) {
465
466            $('#tipo_tecnico').change(function () {
467                var tecnico = $("#tipo_tecnico option:selected").val();
468                if (tecnico == 'Societario') {
469                    if ($("body").hasClass("comitato")) {
470                        $("#form_tecnici").attr('action', '/tecnici/tecnici-societari.html');
471                    } else {
472                        $("#form_tecnici").attr('action', '/tecnici-societari.html');
473                    }
474                } else {
475                    if ($("body").hasClass("comitato")) {
476                        $("#form_tecnici").attr('action', '/tecnici/tecnici-federali.html');
477                    } else {
478                        $("#form_tecnici").attr('action', '/tecnici-federali.html');
479                    }
480                }
481            });
482
483            if ($("select#id_comitato_tecnici").length > 0) {
484                $("#id_comitato_tecnici").select2();
485            }
486            if ($("select#tipo_tecnico").length > 0) {
487                $("#tipo_tecnico").select2();
488            }
489            if ($("select#id_categoria").length > 0) {
490                $("#id_categoria").select2();
491            }
492        }
493
494    } catch (e) {
495        console.log(e);
496    }
497
498    // Vista palestre
499    try {
500
501        if ($('#javascript_palestre').length > 0) {
502
503            if ($("select#id_regione").length > 0) {
504                $("#id_regione").select2();
505            }
506            if ($("select#id_provincia").length > 0) {
507                $("#id_provincia").select2();
508            }
509
510            var regione_ok = $('#regione_ok').val();
511            var provincia_ok = $('#provincia_ok').val();
512
513            $('#id_regione').change(function () {
514                $("#id_provincia").html('<option value="">Provincia</option>');
515                var id_regione = $("#id_regione option:selected").val();
516                if (!id_regione) { id_regione = regione_ok; }
517                $.ajax({
518                    type: "GET",
519                    url: "/index.php?option=com_callrestapi&task=json_province",
520                    dataType: "html",
521                    data: "id_regione=" + id_regione,
522                    success: function (msg) {
523                        $("#id_provincia").html(msg);
524                        if (provincia_ok) {
525                            $("#id_provincia").val(provincia_ok);
526                            provBolzanoTrento();
527                        }
528                    },
529                    error: function () {
530                        alert("Chiamata fallita!");
531                    }
532                });
533            });
534
535            if (regione_ok != '') {
536                $('#id_regione').change();
537            }
538        }
539
540    } catch (e) {
541        console.log(e);
542    }
543
544    // Slide infomazioni aggiuntive comitato 
545    try {
546
547        $("#dirigenti").on("click", function () {
548            $("#elenco_dirigenti").slideToggle();
549        });
550        $("#societa").on("click", function () {
551            $("#elenco_societa").slideToggle();
552        });
553        $("#giudici").on("click", function () {
554            $("#elenco_giudici").slideToggle();
555        });
556
557    } catch (e) {
558        console.log(e);
559    }
560
561    // Info nascoste nei moduli in HP
562    if ($("body").hasClass("homepage")) {
563        $("#titolo_atleti").hide();
564        $("#sesso").parent().hide();
565        $("#id_tipo_tessera").parent().hide();
566        $("#id_qualifica").parent().hide();
567        $("#id_peso").parent().hide();
568        $("#titolo_tecnici").hide();
569        $("#id_categoria").parent().hide();
570        $("#titolo_palestre").hide();
571    }
572
573    // PAGINAZIONE VISTE
574    getAtletiPagination();
575    getTecniciPagination();
576    getPalestrePagination();
577    getCorsiPagination();
578
579    function openModal() {
580        $(".incontri").on("click", function () {
581            var matricola = $(this).attr("data-id");
582            $('#modal-' + matricola + ' .modal-body').empty();
583            $('#modal-' + matricola + ' .modal-title').empty();
584            $('#modal-' + matricola + ' .modal-title').append("Riepilogo Incontri");
585
586            //console.log(matricola);
587
588            $.ajax({
589                type: "GET",
590                url: "/index.php?option=com_callrestapi&task=json_incontri",
591                dataType: "html",
592                data: { 'matricola': matricola },
593                success: function (msg) {
594                    $('#modal-' + matricola + ' .modal-body').append(msg);
595                },
596                error: function () {
597                    alert("Chiamata fallita!");
598                }
599            });
600        });
601
602        $(".record").click(function () {
603            var matricola = $(this).attr("data-id");
604            $('#modal-' + matricola + ' .modal-body').empty();
605            $('#modal-' + matricola + ' .modal-title').empty();
606            $('#modal-' + matricola + ' .modal-title').append("Record");
607
608            $.ajax({
609                type: "GET",
610                url: "/index.php?option=com_callrestapi&task=json_totalizzatori",
611                dataType: "html",
612                data: { 'matricola': matricola },
613                success: function (msg) {
614                    $('#modal-' + matricola + ' .modal-body').append(msg);
615                },
616                error: function () {
617                    alert("Chiamata fallita!");
618                }
619            });
620        });
621    }
622
623    function getAtletiPagination() {
624        try {
625            $("#pagination-atleti .page-link").on("click", function () {
626                let page = $(this).attr("data-value");
627                let id_comitato_atleti = $("#id_comitato_atleti").val();
628                let cognome = $("#cognome").val();
629                let id_societa = $("#id_societa").val();
630                let id_tipo_tessera = $("#id_tipo_tessera").val();
631                let id_peso = $("#id_peso").val();
632                let id_qualifica = $("#id_qualifica").val();
633                let sesso = $("#sesso").val();
634                let stagione = $("#stagione").val();
635
636                if (page) {
637
638                    $.ajax({
639                        url: '/index.php?option=com_callrestapi&view=atleti&format=json',
640                        type: 'POST',
641                        dataType: 'json',
642                        data: {
643                            'page': page,
644                            'stagione': stagione,
645                            'id_comitato_atleti': id_comitato_atleti,
646                            'cognome': cognome,
647                            'id_societa': id_societa,
648                            'id_tipo_tessera': id_tipo_tessera,
649                            'id_peso': id_peso,
650                            'id_qualifica': id_qualifica,
651                            'sesso': sesso
652
653                        },
654                    }).done(function (response) {
655                        let html = $(response.content).find("#lista_elementi").html();
656                        $("#lista_elementi").html("");
657                        $("#lista_elementi").append(html);
658                        openModal();
659                        getAtletiPagination();
660
661                        equalizer("#lista_elementi", ".card-header");
662                        $(window).on("resize", function () {
663                            equalizer("#lista_elementi", ".card-header");
664                        }).trigger("resize");
665
666                    }).fail(function (textStatus, errorThrown) {
667                        console.log(textStatus + ': ' + errorThrown);
668                    });
669
670                }
671
672            });
673        } catch (error) {
674            console.log("getAtletiPagination", error);
675        }
676    }
677
678    function getTecniciPagination() {
679        try {
680            $("#pagination-tecnici .page-link").on("click", function () {
681                let page = $(this).attr("data-value");
682                let id_comitato_tecnici = $("#id_comitato_tecnici").val();
683                let cognome = $("#cognome").val();
684                let tipo_tecnico = $("#tipo_tecnico").val();
685                let id_categoria = $("#id_categoria").val();
686                let stagione = $("#stagione").val();
687
688                if (page) {
689
690                    $.ajax({
691                        url: '/index.php?option=com_callrestapi&view=tecnici&format=json',
692                        type: 'POST',
693                        dataType: 'json',
694                        data: {
695                            'page': page,
696                            'stagione': stagione,
697                            'id_comitato_tecnici': id_comitato_tecnici,
698                            'cognome': cognome,
699                            'tipo_tecnico': tipo_tecnico,
700                            'id_categoria': id_categoria
701                        },
702                    }).done(function (response) {
703                        let html = $(response.content).find("#lista_elementi").html();
704                        $("#lista_elementi").html("");
705                        $("#lista_elementi").append(html);
706                        getTecniciPagination();
707
708                        equalizer("#lista_elementi", ".card-header");
709                        $(window).on("resize", function () {
710                            equalizer("#lista_elementi", ".card-header");
711                        }).trigger("resize");
712
713                    }).fail(function (textStatus, errorThrown) {
714                        console.log(textStatus + ': ' + errorThrown);
715                    });
716
717                }
718
719            });
720        } catch (error) {
721            console.log("getTecniciPagination", error);
722        }
723    }
724
725    function getPalestrePagination() {
726        try {
727            $("#pagination-palestre .page-link").on("click", function () {
728                let page = $(this).attr("data-value");
729                let id_regione = $("#id_regione").val();
730                let denominazione = $("#denominazione").val();
731                let id_provincia = $("#id_provincia").val();
732                let stagione = $("#stagione").val();
733
734                if (page) {
735
736                    $.ajax({
737                        url: '/index.php?option=com_callrestapi&view=palestre&format=json',
738                        type: 'POST',
739                        dataType: 'json',
740                        data: {
741                            'page': page,
742                            'stagione': stagione,
743                            'id_regione': id_regione,
744                            'denominazione': denominazione,
745                            'id_provincia': id_provincia
746
747                        },
748                    }).done(function (response) {
749                        let html = $(response.content).find("#lista_elementi").html();
750                        $("#lista_elementi").html("");
751                        $("#lista_elementi").append(html);
752                        getPalestrePagination();
753
754                        equalizer("#lista_elementi", ".card-header");
755                        $(window).on("resize", function () {
756                            equalizer("#lista_elementi", ".card-header");
757                        }).trigger("resize");
758
759                    }).fail(function (textStatus, errorThrown) {
760                        console.log(textStatus + ': ' + errorThrown);
761                    });
762
763                }
764
765            });
766        } catch (error) {
767            console.log("getPalestrePagination", error);
768        }
769    }
770
771    function getCorsiPagination() {
772        try {
773            $("#pagination-corsi .page-link").on("click", function () {
774                let page = $(this).attr("data-value");
775                let id_regione = $("#id_regione").val();
776                let denominazione = $("#denominazione").val();
777                let tipologia = $("#tipologia").val();
778                let stagione = $("#stagione").val();
779
780                if (page) {
781
782                    $.ajax({
783                        url: '/index.php?option=com_callrestapi&view=corsi&format=json',
784                        type: 'POST',
785                        dataType: 'json',
786                        data: {
787                            'page': page,
788                            'stagione': stagione,
789                            'id_regione': id_regione,
790                            'denominazione': denominazione,
791                            'tipologia': tipologia
792
793                        },
794                    }).done(function (response) {
795                        let html = $(response.content).find("#lista_elementi").html();
796                        $("#lista_elementi").html("");
797                        $("#lista_elementi").append(html);
798                        getCorsiPagination();
799
800                        equalizer("#lista_elementi", ".card-header");
801                        $(window).on("resize", function () {
802                            equalizer("#lista_elementi", ".card-header");
803                        }).trigger("resize");
804
805                    }).fail(function (textStatus, errorThrown) {
806                        console.log(textStatus + ': ' + errorThrown);
807                    });
808
809                }
810
811            });
812        } catch (error) {
813            console.log("getCorsiPagination", error);
814        }
815    }
816});

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.