PageSourceSearch

https://www.aziendabellaria.com/lib/js/portfolioisotope.js?v=B78E0009A8BEFE90AF637FC864D41FEF

js aziendabellaria.com collected 2026-10-05 18:27:07 UTC 27,523 bytes, 563 lines download raw bytes

1
2"use strict";
3/* Chiamata tipo  injectPortfolioAndLoad(id contenitore destinazione, idunico dello scroller , "rif000003", true, true, 6);*/
4/*Da vedere dopo la gestione di questi parametri che per adesso metto globali per farli vedere al pager*/
5
6function InjectPagerPortfolio(pagercontainer, controlid) {
7    var templateHtml = pathAbs + "/lib/template/" + "pagerIsotope.html";
8    $("#" + pagercontainer).load(templateHtml, function () {
9        /*DA COMPLETARE MODIFICANDO NEL PAGER i VALORI IN MODO CHE CHIAMI CON I PARAMETRI GIUSTI IL CARICAMENTO DATI*/
10        $('#' + pagercontainer).find("[id^=replaceid]").each(function (index, text) {
11            var currentid = $(this).prop("id");
12            var replacedid = currentid.replace('replaceid', controlid);
13            $(this).prop("id", replacedid);
14        });
15        initHtmlPager(controlid);
16        CaricaIsotopeData(controlid);
17    });
18}
19
20function injectPortfolioAndLoad(type, container, controlid, page, pagesize, enablepager, listShow, tipologia, categoria, visualData, visualPrezzo, maxelement, testoricerca, vetrina, promozioni, connectedid, categoria2Liv, mostviewed) {
21    //setTimeout(function () {
22    loadref(injectPortfolioAndLoadinner, type, container, controlid, page, pagesize, enablepager, listShow, tipologia, categoria, visualData, visualPrezzo, maxelement, testoricerca, vetrina, promozioni, connectedid, categoria2Liv, mostviewed, lng);
23    //}, 100);
24}
25function injectPortfolioAndLoadinner(type, container, controlid, page, pagesize, enablepager, listShow, tipologia, categoria, visualData, visualPrezzo, maxelement, testoricerca, vetrina, promozioni, connectedid, categoria2Liv, mostviewed) {
26
27    //   console.log('injectPortfolioAndLoadinner' + container);
28    var templateHtml = pathAbs + "/lib/template/" + "isotopeOfferte.html";
29    if (type != null && type != '')
30        templateHtml = pathAbs + "/lib/template/" + type;
31
32    //Correggo l'id dei controlli del template per l'inzializzazione dello scroller con id univoca e corretta
33    $('#' + container).html('');
34
35    //$('#' + container).load(templateHtml, function () {
36    //    $('#' + container).find("[id^=replaceid]").each(function (index, text) {
37    //        var currentid = $(this).prop("id");
38    //        var replacedid = currentid.replace('replaceid', controlid);
39    //        $(this).prop("id", replacedid);
40    //    });
41
42
43    //RICARICO LA PAGINA INIZIALE DALLA SESISONE SE PRESENTE INVECE DI PRENDERE QUELLA PASSATA NEI PARAMETRI
44    getfromsession('objfiltro', function (retval) {
45        var objfiltro = {};
46        var params = {};
47        if (retval != null && retval != '')
48            objfiltro = JSON.parse(retval);
49        params = objfiltro; //Metto in params tutti i valori presenti nell'objfiltro in session
50        //Se presente prendo la pagina in sessione per la selezione di pagina iniziale
51        if (objfiltro != null && objfiltro.hasOwnProperty("page" + controlid)) {
52            var propname = "page" + controlid;
53            page = objfiltro[propname];
54        }
55
56        //Usiamo memoria globale indicizzata con l'id del controllo
57        var pagerdata = {};
58        pagerdata["page"] = page;
59        pagerdata["pagesize"] = pagesize;
60        pagerdata["totalrecords"] = 0;
61        pagerdata["enablepager"] = enablepager;
62        pagerdata["pagerconnectedid"] = connectedid;
63        globalObject[controlid + "pagerdata"] = pagerdata;
64
65        params.templateHtml = templateHtml;
66        params.container = container;/*Inserisco il nome del container nei parametri per uso successivo nel binding*/
67        params.tipologia = tipologia;
68        params.visualData = visualData;
69        params.visualPrezzo = visualPrezzo;
70        params.maxelement = maxelement;
71        params.listShow = listShow;
72        params.categoria = categoria;
73        params.categoria2Liv = categoria2Liv;
74        params.testoricerca = testoricerca;
75        params.vetrina = vetrina;
76        params.promozioni = promozioni;
77        params.mostviewed = mostviewed;
78        //params.regione = regione; //Preso da sessione
79        //params.caratteristica1 = caratteristica1;//Preso da sessione
80        globalObject[controlid + "params"] = params;
81        //console.log("injectPortfolioAndLoadinner params " + JSON.stringify(params));
82
83        if (enablepager == "true" || enablepager == true) {
84            var pagercontainer = container + "Pager";
85            InjectPagerPortfolio(pagercontainer, controlid);
86        }
87        else {
88            CaricaIsotopeData(controlid);
89        }
90    })
91
92    //});
93};
94
95function CaricaIsotopeData(controlid) {
96
97    var page = globalObject[controlid + "pagerdata"].page;
98    var pagesize = globalObject[controlid + "pagerdata"].pagesize;
99    var enablepager = globalObject[controlid + "pagerdata"].enablepager;
100    var connecteid = globalObject[controlid + "pagerdata"].pagerconnectedid;
101
102    /*MEMORIZZO LA PAGINA IN SESSIONE*/
103    getfromsession('objfiltro', function (retval) {
104        var objfiltro = {};
105        if (retval != null && retval != '')
106            objfiltro = JSON.parse(retval);
107        var propname = "page" + controlid;
108        objfiltro[propname] = page;//aggiungo al filtro in session la pagina attuale dalla memoria globale javascript
109        //Modifica per id controlli connessi per mantenere la pagina corretta nella sessione objfiltro al cambio pagina utente
110        if (connecteid != undefined && connecteid != "" && connecteid != null) {
111            try {
112                var pageconnected = globalObject[connecteid + "pagerdata"].page;
113                propname = "page" + connecteid;
114                objfiltro[propname] = pageconnected;
115            }
116            catch (e) { }
117        }
118        putinsession('objfiltro', JSON.stringify(objfiltro), function (ret) { });
119    });
120    //////////////////////////////////////
121
122    $(".loaderrelative").show();
123    var functiontocallonend = renderIsotopeNotPaged;
124    if (enablepager == "true" || enablepager == true)
125        functiontocallonend = renderIsotopePaged;
126
127    var objfiltrotmp = {};
128    objfiltrotmp = globalObject[controlid + "params"];
129    caricaDatiServer(lng, objfiltrotmp, page, pagesize, enablepager,
130        function (result, callafterfilter) {
131            var localObjects = {};
132
133            try {
134
135                // caso particolare in cui potrei sommare i risultati precedenti in memoria q quelli ritornati per avere la modalità VISUALIZZA ALTRI in aggiunta ai presenti
136                if (result != '') {
137                    //Devo ricaricare il template se non presente
138                    var parseddata = JSON.parse(result);
139                    var temp = parseddata["resultinfo"];
140                    localObjects["resultinfo"] = JSON.parse(temp);//Dictionary parserizzato dei parametri calcolati generali
141                    var totalrecords = localObjects["resultinfo"].totalrecords;
142                    globalObject[controlid + "pagerdata"].totalrecords = totalrecords;
143                    var data = "{ \"datalist\":" + parseddata["data"];
144                    data += "}";
145                    localObjects["dataloaded"] = data;
146                    var datalink = parseddata["linkloaded"];  //link creati presi da tabella
147                    //Inserisco i valori nella memoria generale che contiene i valori per tutti i componenti
148                    localObjects["linkloaded"] = JSON.parse(datalink);
149
150                    //Ricarico il template in pagina per il binding(serve se il primo binding è stato fatto lato server altrimrn il template non lo trovo in pagina)
151                    var container = objfiltrotmp.container;
152                    var templateHtml = objfiltrotmp.templateHtml;
153                    $('#' + container).html('');
154                    $('#' + container).load(templateHtml, function () {
155                        $('#' + container).find("[id^=replaceid]").each(function (index, text) {
156                            var currentid = $(this).prop("id");
157                            var replacedid = currentid.replace('replaceid', controlid);
158                            $(this).prop("id", replacedid);
159                        });
160                        callafterfilter(localObjects, controlid);
161                    });
162                }
163            }
164            catch (e) {
165                $(".loaderrelative").hide();
166            }
167        },
168        functiontocallonend);
169};
170
171
172function renderIsotopeNotPaged(localObjects, controlid) {
173    BindIsotope(controlid, localObjects);//I dati sono già paginati all'origine
174};
175function renderIsotopePaged(localObjects, controlid) {
176    /*Da ultimare  con la paginazione e sistemare il paginatore   .......
177     * Passando nella renderPager
178     ................... */
179    renderPager(controlid, function (msgpager) {
180        //Renderizziamo l'html dei dati nella pagina
181        BindIsotope(controlid, localObjects);//I dati sono già paginati all'origine dal chiamante
182    });
183}
184
185function BindIsotope(el, localObjects) {
186
187    try {
188        var objcomplete = JSON.parse(localObjects["dataloaded"]);
189        var data = objcomplete["datalist"]
190        if (!data.length) {
191            $('#' + el).html('');
192            $(".loaderrelative").hide();
193            return;
194        }
195
196        var objfiltrotmp = {};
197        objfiltrotmp = globalObject[el + "params"];
198        var container = objfiltrotmp.container;
199
200        var str = $('#' + el)[0].innerHTML; //elemento da ripetere ( preso dalla pagina )
201        ////////////////////////////////
202        //Memorizzo il template per eventuali rebind lato client
203        //if (!globalObject.hasOwnProperty(el + "template")) {
204        //    globalObject[el + "template"] = $('#' + el)[0].innerHTML;
205        //    str = globalObject[el + "template"];
206        //} else
207        //    str = globalObject[el + "template"];
208        ///////////////////////////////////
209
210        var alternate = ($('#' + el).hasClass('alternatecolor'));
211        var jquery_obj = $(str);
212        //var outerhtml = jquery_obj.outerHTML();
213        //var innerHtml = jquery_obj.html();
214        //  var containeritem = outerhtml.replace(innerHtml, '');/*Prendo l'elemento contenitore vuoto da ripetere*/
215        var htmlout = "";
216        // var htmlitem = "";
217
218        for (var j = 0; j < data.length; j++) {
219            // htmlitem = "";
220            //htmlitem = FillBindControls(jquery_obj, data[j]);
221            //htmlout += $(containeritem).html(htmlitem.html()).outerHTML() + "\r\n";
222            FillBindControls(jquery_obj, data[j], localObjects, "",
223                function (ret) {
224
225                    /*REGIONE PER EFFETTO ALTERNATE DEGLI ITEM DEL REPEATER*/
226                    if (alternate) {
227                        var w = $(window).width();
228                        if (w > 768) {
229                            if (isEven(j)) {
230                                $('.odd', ret).remove();
231                                ret.css("background-color", $('.even', ret).css("background-color")); //Coloro il contenitore come l'elemento attuale
232                            }
233                            else {
234                                $('.even', ret).remove();
235                                ret.css("background-color", $('.odd', ret).css("background-color"));//Coloro il contenitore come l'elemento attuale
236                            }
237                        }
238                        else $('.odd', ret).remove(); //in xs faccio tutte uguali le righe
239                    }
240                    /*END REGIONE PER EFFETTO ALTERNATE DEGLI ITEM DEL REPEATER*/
241
242                    htmlout += (ret.outerHTML()) + "\r\n";
243                });
244        }
245
246        //Inseriamo htmlout nel contenitore  $('#' + el).html e inizializziamo lo scroller
247        $('#' + el).html((htmlout));
248        CleanHtml($('#' + el));
249        InitIsotopeLocal(el, container);
250
251        $(".loaderrelative").hide();
252    } catch (e) { $(".loaderrelative").hide(); }
253};
254
255
256function InitIsotopeLocal(controlid, container) {
257
258
259    $('#' + container + 'Title').show();
260    $('#' + controlid).parent().parent().show(); //Row COntainer
261    $('#' + controlid).parent().parent().parent().parent().show();
262
263    /* ---------------------------------------------- /*
264   * Portfolio  https://isotope.metafizzy.co/methods.html
265   /* ---------------------------------------------- */
266    var worksgrid = $('#' + controlid);
267    var worksgrid_mode;
268    if (worksgrid.hasClass('works-grid-masonry')) {
269        worksgrid_mode = 'masonry';
270    } else {
271        worksgrid_mode = 'fitRows';
272    }
273
274    //Vediamo se già inizializzato in precedenza l'isotope e nel caso eliminiamolo
275    var gridcheck = worksgrid.data('isotope');
276    if (gridcheck != null) {
277        var elems = gridcheck.getFilteredItemElements();
278        worksgrid.isotope('destroy');
279    }
280    // worksgrid.imagesLoaded(function () {
281    var $grid = worksgrid.isotope({
282        layoutMode: worksgrid_mode,
283        itemSelector: '.work-item',
284        isInitLayout: false //disable layout on initialization, so you can use methods or add events before the initial layout (altrimenti layoutcomplete no parte e neppure layout).
285        //fitRows: {
286        //gutter: 10}
287    });
288    // });
289
290    $grid.on('arrangeComplete', function () {
291        console.log('arrangeComplete');
292    }).isotope();
293
294    $grid.on('layoutComplete',
295        function (event, laidOutItems) {
296            lazyLoad();
297            console.log("layoutComplete doc act height: " + $(document).height());
298           // reinitscrollpos(); //Return to previosus scrolltop pos of page
299            setTimeout(function () { enablescrolltopmem = true; }, 3000);
300        });
301
302    worksgrid.imagesLoaded(function () {
303        $grid.isotope('layout');
304    });
305
306
307}
308
309
310/**
311PAGINAZIONE CON BINDING SERVER SIDE -----------------------------------
312 */
313
314function nextpagebindonserver(controlid) {
315
316    var page = globalObject[controlid + "pagerdata"].page;
317    if (!isNaN(Number(page)))
318        page = Number(page) + 1;
319    var pagesnumber = Math.ceil(globalObject[controlid + "pagerdata"].totalrecords / globalObject[controlid + "pagerdata"].pagesize);
320    var pageover = false;
321    if (page > pagesnumber) { page = pagesnumber; pageover = true; };
322    if (page < 1) { page = 1; pageover = true };
323    globalObject[controlid + "pagerdata"].page = page;
324    scrolltotop.setting.scrollduration = 0;
325    scrolltotop.scrollup();
326    /*MEMORIZZO LA PAGINA IN SESSIONE (per mantenere la posizione di pagina al cambio di url)*/
327    getfromsession('objfiltro', function (retval) {
328        var objfiltro = {};
329        if (retval != null && retval != '')
330            objfiltro = JSON.parse(retval);
331        var propname = "page" + controlid;
332        objfiltro[propname] = page;//aggiungo al filtro in session la pagina attuale dalla memoria globale javascript
333        putinsession('objfiltro', JSON.stringify(objfiltro), function (ret) {
334
335            if (!pageover)
336                CaricaDatiServerBinded(lng, globalObject[controlid + "params"], globalObject[controlid + "pagerdata"].page, globalObject[controlid + "pagerdata"].pagesize, globalObject[controlid + "pagerdata"].enablepager, function (result) {
337                    var containerid = globalObject[controlid + "params"].container;
338                    if (result != '') {
339                        try {
340                            //Inserisco un elemento di ancor per appendere i dati in pagina prima del contenitore corrente
341                            if ($("#" + containerid + "-pr") == null || $("#" + containerid + "-pr").length == 0)
342                                $("#" + containerid).before("<span id='" + containerid + "-pr'></span>");
343                            //Elimino i vecchi elementi dal contenitore con la pagina precedente
344                            $("#" + containerid).remove();
345                            $("#" + containerid + "Pager").remove();
346                            var resparsed = JSON.parse(result);
347                            //inseriscso l'html renderizzato nel contenitore
348                            $("#" + containerid + "-pr").after(resparsed["html"]);
349                            // devo scorrere resparsed["jscommands"] e chiamare le funzioni li presenti con  window[itemtocall.name].apply(this, itemtocall.args) o eval ( ...)  .. da finire
350                            if (resparsed != null && resparsed.hasOwnProperty("jscommands"))
351                                for (var key in resparsed["jscommands"]) {
352                                    if (resparsed["jscommands"].hasOwnProperty(key)) {
353                                        try {
354                                            //console.log(key, resparsed["jscommands"][key]);
355                                            eval(resparsed["jscommands"][key]);//Eseguiamo i comandi indicati dal server
356                                        } catch (e) { }
357                                    }
358                                }
359                        } catch (e) { }
360                    }
361                });
362
363        });
364    });
365
366}
367
368function prevpagebindonserver(controlid) {
369
370    var page = globalObject[controlid + "pagerdata"].page;
371    if (!isNaN(Number(page)))
372        page = Number(page) - 1;
373    var pagesnumber = Math.ceil(globalObject[controlid + "pagerdata"].totalrecords / globalObject[controlid + "pagerdata"].pagesize);
374    var pageover = false;
375    if (page > pagesnumber) { page = pagesnumber; pageover = true; };
376    if (page < 1) { page = 1; pageover = true };
377    globalObject[controlid + "pagerdata"].page = page;
378    scrolltotop.setting.scrollduration = 0;
379    scrolltotop.scrollup();
380    /*MEMORIZZO LA PAGINA IN SESSIONE (per mantenere la posizione di pagina al cambio di url)*/
381    getfromsession('objfiltro', function (retval) {
382        var objfiltro = {};
383        if (retval != null && retval != '')
384            objfiltro = JSON.parse(retval);
385        var propname = "page" + controlid;
386        objfiltro[propname] = page;//aggiungo al filtro in session la pagina attuale dalla memoria globale javascript
387        putinsession('objfiltro', JSON.stringify(objfiltro), function (ret) {
388
389            if (!pageover)
390                CaricaDatiServerBinded(lng, globalObject[controlid + "params"], globalObject[controlid + "pagerdata"].page, globalObject[controlid + "pagerdata"].pagesize, globalObject[controlid + "pagerdata"].enablepager, function (result) {
391                    var containerid = globalObject[controlid + "params"].container;
392                    if (result != '') {
393                        try {
394                            //Inserisco un elemento di ancor per appendere i dati in pagina
395                            if ($("#" + containerid + "-pr") == null || $("#" + containerid + "-pr").length == 0)
396                                $("#" + containerid).before("<span id='" + containerid + "-pr'></span>");
397                            //Elimino i vecchi elementi
398                            $("#" + containerid).remove();
399                            $("#" + containerid + "Pager").remove();
400                            var resparsed = JSON.parse(result);
401                            //inseriscso l'html renderizzato nel contenitore
402                            $("#" + containerid + "-pr").after(resparsed["html"]);
403                            // devo scorrere resparsed["jscommands"] e chiamare le funzioni li presenti con  window[itemtocall.name].apply(this, itemtocall.args) o eval ( ...)  .. da finire
404                            if (resparsed != null && resparsed.hasOwnProperty("jscommands"))
405                                for (var key in resparsed["jscommands"]) {
406                                    if (resparsed["jscommands"].hasOwnProperty(key)) {
407                                        try {
408                                            //f(key, resparsed["jscommands"][key]);
409                                            eval(resparsed["jscommands"][key]);
410                                        } catch (e) { }
411                                    }
412                                }
413                        } catch (e) { }
414                    }
415                });
416
417
418        });
419    });
420
421}
422
423function addcontentbindonserver(controlid) {
424
425    var page = globalObject[controlid + "pagerdata"].page;
426    if (!isNaN(Number(page)))
427        page = Number(page) + 1;
428    var pagesnumber = Math.ceil(globalObject[controlid + "pagerdata"].totalrecords / globalObject[controlid + "pagerdata"].pagesize);
429    var pageover = false;
430    if (page > pagesnumber) { page = pagesnumber; pageover = true; };
431    if (page < 1) { page = 1; pageover = true };
432    globalObject[controlid + "pagerdata"].page = page;
433    scrolltotop.setting.scrollduration = 0;
434    scrolltotop.scrollup();
435    /*MEMORIZZO LA PAGINA IN SESSIONE (per mantenere la posizione di pagina al cambio di url)*/
436    getfromsession('objfiltro', function (retval) {
437        var objfiltro = {};
438        if (retval != null && retval != '')
439            objfiltro = JSON.parse(retval);
440        var propname = "page" + controlid;
441        objfiltro[propname] = page;//aggiungo al filtro in session la pagina attuale dalla memoria globale javascript
442        putinsession('objfiltro', JSON.stringify(objfiltro), function (ret) {
443
444            if (!pageover)
445                CaricaDatiServerBinded(lng, globalObject[controlid + "params"], globalObject[controlid + "pagerdata"].page, globalObject[controlid + "pagerdata"].pagesize, globalObject[controlid + "pagerdata"].enablepager, function (result) {
446                    var containerid = globalObject[controlid + "params"].container;
447                    if (result != '') {
448                        try {
449                            //Elimino i vecchi elementi dal contenitore con la pagina precedente
450                            //$("#" + containerid).remove();
451                            $("#" + containerid + "Pager").remove();
452                            var resparsed = JSON.parse(result);
453
454                            var newhtml = $(resparsed["html"]);
455                            //Prendo il pager e lo appendo dopo il conteniteore generale
456                            var newpager = ((newhtml).wrap('<p>').parent().find("#" + containerid + "Pager")).outerHTML();
457                            $("#" + containerid).after(newpager);
458                            //inseriscso l'html renderizzato nella lista ul
459                            var nuovili = ((newhtml).find("#" + controlid)).html();
460                            $("#" + controlid).append(nuovili);
461
462                            // devo scorrere resparsed["jscommands"] e chiamare le funzioni li presenti con  window[itemtocall.name].apply(this, itemtocall.args) o eval ( ...)  .. da finire
463                            if (resparsed != null && resparsed.hasOwnProperty("jscommands"))
464                                for (var key in resparsed["jscommands"]) {
465                                    if (resparsed["jscommands"].hasOwnProperty(key)) {
466                                        try {
467                                            //console.log(key, resparsed["jscommands"][key]);
468                                            eval(resparsed["jscommands"][key]);//Eseguiamo i comandi indicati dal server
469                                        } catch (e) { }
470                                    }
471                                }
472                        } catch (e) { }
473                    }
474                });
475
476        });
477    });
478
479}
480
481/**
482PAGINAZIONE CON BINDING SERVER SIDE END -----------------------------------
483 */
484
485
486
487
488/*Pager functions per client side binding start-------------------------------------------------------------------------------*/
489
490function initHtmlPager(controlid) {
491    $('#' + controlid + 'btnNextPage').attr('onClick', "javascript:nextpage('" + controlid + "')")
492    $('#' + controlid + 'btnPrevPage').attr('onClick', "javascript:prevpage('" + controlid + "')")
493}
494function renderPager(controlid, callback) {
495    //console.log('renderPager');
496    var page = globalObject[controlid + "pagerdata"].page;
497    var pagesize = globalObject[controlid + "pagerdata"].pagesize;
498    var enablepager = globalObject[controlid + "pagerdata"].enablepager;
499    var totalrecords = globalObject[controlid + "pagerdata"].totalrecords;
500
501    var pagesnumber = Math.ceil(totalrecords / pagesize);
502    if (page > pagesnumber) page = pagesnumber;
503    if (page < 1) page = 1;
504    globalObject[controlid + "pagerdata"].page = page;
505
506    $('#' + controlid + 'btnNextPage')[0].innerHTML = baseresources[lng]["pageravanti"];
507    $('#' + controlid + 'btnNextPage').show();
508    $('#' + controlid + 'btnPrevPage')[0].innerHTML = baseresources[lng]["pagerindietro"];
509    $('#' + controlid + 'btnPrevPage').show();
510    $("#" + controlid + "spantotals")[0].innerHTML = baseresources[lng]["pagertotale"] + " " + totalrecords + "<br/>";
511    //$('#' + controlid + 'btnNextPage')[0].innerHTML = 'Avanti';
512    //$('#' + controlid + 'btnPrevPage')[0].innerHTML = 'Indietro';
513    //$("#" + controlid + "spantotals")[0].innerHTML = 'Totale ' + " " + totalrecords + "<br/>";
514    $("#" + controlid + "divactpage")[0].innerHTML = page + "/" + pagesnumber;
515
516    if (pagesnumber > 1)
517        $('#' + controlid + 'divPager').show();
518    else
519        $('#' + controlid + 'divPager').hide();
520    if (callback != null)
521        callback('');
522}
523
524function nextpage(controlid) {
525    //   console.log('nextpage');
526    var page = globalObject[controlid + "pagerdata"].page;
527    if (!isNaN(Number(page)))
528        page = Number(page) + 1;
529    globalObject[controlid + "pagerdata"].page = page;
530
531    var connecteid = globalObject[controlid + "pagerdata"].pagerconnectedid;
532    if (connecteid != undefined && connecteid != "" && connecteid != null) {
533        var pagesize = globalObject[controlid + "pagerdata"].pagesize;
534        var totalrecords = globalObject[controlid + "pagerdata"].totalrecords;
535        var pagesnumber = Math.ceil(totalrecords / pagesize);
536        if (Number(page) < totalrecords)
537            nextpage(connecteid);
538    }
539    renderPager(controlid, function (result) {
540        CaricaIsotopeData(controlid);
541    });
542    scrolltotop.setting.scrollduration = 0;
543    scrolltotop.scrollup();
544}
545function prevpage(controlid) {
546    // console.log('prevpage');
547    var page = globalObject[controlid + "pagerdata"].page;
548    if (!isNaN(Number(page)))
549        page = Number(page) - 1;
550    globalObject[controlid + "pagerdata"].page = page;
551
552    var connecteid = globalObject[controlid + "pagerdata"].pagerconnectedid;
553    if (connecteid != undefined && connecteid != "" && connecteid != null) {
554        if (Number(page) <= 1)
555            prevpage(connecteid);
556    }
557    renderPager(controlid, function (result) {
558        CaricaIsotopeData(controlid);
559    });
560    scrolltotop.setting.scrollduration = 0;
561    scrolltotop.scrollup();
562}
563/*Pager functions per client side binding end-------------------------------------------------------------------------------*/

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.