PageSourceSearch

https://onlineservices.nakheel.com/MasterPages/NakheelEServices.Master.js?639089958405992272

js nakheel.com collected 2026-10-02 04:48:35 UTC 24,505 bytes, 765 lines download raw bytes

1function CreateMenu() {
2
3    $("#top-menu").html('');
4
5    try {
6
7        var path = window.location.href;
8        var page = path.split("/").pop();
9        if (sessionStorage.MenuData)
10            var jObj = JSON.parse(sessionStorage.MenuData);
11        else
12            return;
13
14        var sHTML = '';
15
16        //debugger;
17
18        for (var index = 0; index < jObj.length; index++) {
19            if (jObj[index].ParentMenuID == '0') {
20                var sHTMLChilds = '';
21                if (jObj[index].HasChilds) {
22                    sHTMLChilds = getChildMenus(jObj[index], jObj);
23                }
24
25                var sLink = '';
26                if (jObj[index].LinkFlag) {
27                    sLink = jObj[index].Link;
28                }
29                else
30                    sLink = '#';
31                sHTML = sHTML + '<li class="ParentLi"><a href=' + sLink + jObj[index].EncryptedQS + '>' + jObj[index].Caption + '</a>' + sHTMLChilds + '</li>';
32
33            }
34        }
35
36        $("#top-menu").html(sHTML);
37
38
39
40    } catch (e) {
41
42    }
43
44
45}
46
47var ctrlUserPropDDL = "ddlProp";
48var ctrlUserPropDDLLabel = "Property";
49
50var ctrlUserProjectsDDL = "ddlProjects";
51var ctrlUserProjectsDDLLabel = "Projects";
52
53var ctrlUserContractDDL = "ddlContract";
54var ctrlUserContractDDLLabel = "Contract";
55
56var ctrlUserChequeDDL = "ddlCheque";
57var ctrlUserChequeDDLLabel = "Cheques";
58
59var ctrlUserSubCategoryDDL = "ddlSubCategory";
60var ctrlUserSubCategoryDDLLabel = "Activities";
61
62var ctrlUserServiceProviderDDL = "ddlServiceProvider";
63var ctrlUserServiceProviderDDLLabel = "Service Provider";
64
65function getChildMenus(obj, jObjArray) {
66    var retHTML = '';
67
68    for (var i = 0; i < jObjArray.length; i++) {
69        if (jObjArray[i].ParentMenuID == obj.MenuID) {
70            var sHTMLChilds = '';
71            if (jObjArray[i].HasChilds)
72                sHTMLChilds = getChildMenus(jObjArray[i].MenuID, jObjArray);
73
74
75            var sLink = '';
76            var queryString = '';
77            if (jObjArray[i].LinkFlag) {
78                sLink = jObjArray[i].Link;
79            }
80            else
81                queryString = '#';
82
83            retHTML = retHTML + '<li><a onmousedown="SaveCurrentClicked(this)" id="' + 'MId' + jObjArray[i].MenuID + '"  href=' + baseMainUrl + sLink + jObjArray[i].EncryptedQS + '>' + jObjArray[i].Caption + '</a>' + sHTMLChilds + '</li>';
84
85        }
86    }
87
88    if (retHTML)
89        retHTML = "<ul  class=''>" + retHTML + "</ul>";
90    else
91        retHTML = "";
92
93    return retHTML;
94}
95
96
97function FillMenu() {
98    var input = {};
99    //input.registrationID = globalRegistrationID;
100    input.systemID = systemID;
101    input.userRegBO = JSON.parse(sessionStorage.UserObject);
102
103    if (input.registrationID == 0) return;
104
105    // Success Method
106    var successAction = function (result) { sessionStorage.MenuData = JSON.stringify(result); }
107    CallRestMethod('RestServices.svc/GetMenuForUserRegistrationID', JSON.stringify(input), successAction, 'POST', sessionStorage.apiKey, false);
108}
109
110function SaveCurrentClicked(ctrl) {
111
112    sessionStorage.clickedID = ctrl.id;
113    //sessionStorage.FirstStepLink = ctrl;
114    //sessionStorage.FirstStepText = ctrl.innerText;
115}
116
117function detectIE() {
118    var ua = window.navigator.userAgent;
119
120    var msie = ua.indexOf('MSIE ');
121    if (msie > 0) {
122        // IE 10 or older => return version number
123        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
124    }
125
126    var trident = ua.indexOf('Trident/');
127    if (trident > 0) {
128        // IE 11 => return version number
129        var rv = ua.indexOf('rv:');
130        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
131    }
132
133    var edge = ua.indexOf('Edge/');
134    if (edge > 0) {
135        // IE 12 (aka Edge) => return version number
136        return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
137    }
138
139    // other browser
140    return true;
141}
142
143
144
145$.widget("custom.catcomplete", $.ui.autocomplete, {
146    _create: function () {
147        this._super();
148        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
149    },
150    _renderMenu: function (ul, items) {
151        var that = this,
152            currentCategory = "";
153        $.each(items, function (index, item) {
154            var li;
155            if (item.category != currentCategory) {
156                ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
157                currentCategory = item.category;
158            }
159            li = that._renderItemData(ul, item);
160            if (item.category) {
161                li.attr("aria-label", item.category + " : " + item.label);
162            }
163        });
164    }
165});
166function OpenPage(anchorClicked) {
167    //anchorClicked.href = varNakheelURL + anchorClicked.href.substring(anchorClicked.href.lastIndexOf("/") + 1);
168    
169    // Create a URL object from the href
170    var urlObj = new URL(anchorClicked.href);
171
172    // Only get the pathname from the URL object
173    var pathName = urlObj.pathname;
174
175    // Open the new window with the combined URL
176    var win = window.open(varNakheelURL + pathName, '_blank');
177
178    if (win) {
179        // Browser has allowed it to be opened
180        win.focus();
181    }
182
183    return false;
184}
185
186$(document).ready(function () {
187
188    if (!(detectIE() === true || detectIE() > 8)) {
189
190        var pathname = window.location.pathname;
191
192        if (pathname.toLowerCase().indexOf("notsupportedbrowser.aspx") > -1) return;
193
194        window.location.href = baseMainUrl + 'NotSupportedBrowser.aspx';
195    }
196
197    
198 //   var opts = {
199 //       lines: 9 // The number of lines to draw
200 //, length: 28 // The length of each line
201 //, width: 14 // The line thickness
202 //, radius: 42 // The radius of the inner circle
203 //, scale: 1 // Scales overall size of the spinner
204 //, corners: 1 // Corner roundness (0..1)
205 //, color: '#000' // #rgb or #rrggbb or array of colors
206 //, opacity: 0.25 // Opacity of the lines
207 //, rotate: 0 // The rotation offset
208 //, direction: 1 // 1: clockwise, -1: counterclockwise
209 //, speed: 1 // Rounds per second
210 //, trail: 60 // Afterglow percentage
211 //, fps: 20 // Frames per second when using setTimeout() as a fallback for CSS
212 //, zIndex: 2e9 // The z-index (defaults to 2000000000)
213 //, className: 'spinner' // The CSS class to assign to the spinner
214 //, top: '50%' // Top position relative to parent
215 //, left: '50%' // Left position relative to parent
216 //, shadow: false // Whether to render a shadow
217 //, hwaccel: false // Whether to use hardware acceleration
218 //, position: 'absolute' // Element positioning
219 //, color: '#2e6de0' // #rbg or #rrggbb
220
221 //   };
222 //   target = document.getElementById('loadingDiv');
223 //   spinner = new Spinner(opts);
224
225
226 //   // var $loading = $('#loadingDiv').show();
227 //   $(document)
228 //     .ajaxStart(function () {
229 //         //  $loading.show();
230 //         spinner.spin(target);
231 //     })
232 //     .ajaxStop(function () {
233 //         //$loading.show();
234 //         spinner.stop(target);
235
236 //         //setTimeout(function () { spinner.stop(target); }, 3000)
237 //     });
238
239   
240    try {
241
242        $("#lnkLogOut").attr("href", varLO);
243
244        CheckingSeassion();
245
246
247        if (!sessionStorage.MenuData || sessionStorage.MenuData == "[]")
248            FillMenu();
249        
250            CreateMenu();
251            $('#top-menu').prmenu();
252
253
254    } catch (e) {
255
256    }
257
258
259    $('#lnkLogOut').click(function () {
260        sessionStorage.removeItem("MenuData");
261        localStorage.setItem("activetab", null);
262        localStorage.setItem("hrf_QuickPay", '');
263    });
264
265
266
267    // setMyStorage('HUSSEIN', 'this is test value');
268
269    // getMyStorage('HUSSEIN');
270});
271
272
273
274//var storage = new secStore,
275//options = {
276//    encrypt: true,
277//    storage: 'session'
278//};
279
280//function getMyStorage(myKey) {
281//    var res = '';
282//    storage.get(options, function (err, results) {
283//        if (err) throw err;
284//        console.log(results.myKey);
285//    });
286//}
287
288//function setMyStorage(myKey, myValue) {
289//    options.data = {};
290//    options.data.myKey = myValue;
291//    storage.set(options, function (err, results) {
292//        if (err) throw err;
293//        console.log(results);
294//    });
295//}
296
297
298function CheckingSeassion() {
299
300    var pathname = window.location.pathname;
301    //var appDomainEndding = 'login.aspx';
302
303    //if (pathname.toLowerCase().indexOf("login.aspx") > -1 ||
304    //    pathname.toLowerCase().indexOf("forgetpassword.aspx") > -1 ||
305    //    pathname.toLowerCase().indexOf("register.aspx") > -1 ||
306    //    pathname.toLowerCase().indexOf("adminnewservicerequest.aspx") > -1 ||
307    //    pathname.toLowerCase().indexOf("adminservicecontent.aspx") > -1 ||
308    //    pathname.toLowerCase().indexOf("errorpage.aspx") > -1 ||
309    //    pathname.toLowerCase().indexOf("forgetpasswordsuccess.aspx") > -1 ||
310    //    pathname.toLowerCase().indexOf("registrationsuccess.aspx") > -1 ||
311    //    pathname.toLowerCase().indexOf("profileactivation.aspx") > -1 ||
312    //    pathname.toLowerCase().indexOf("notsupportedbrowser.aspx") > -1 ||
313    //    pathname.toLowerCase().indexOf("servicecontent.aspx") > -1
314    //    //|| pathname.toLowerCase().indexOf("allservices.aspx") > -1
315    //    ) return;
316    //|| pathname.indexOf(appDomainEndding, pathname.length - appDomainEndding.length) > -1)
317
318
319    $.ajax({
320        type: "POST",
321        async: false,
322        url: baseMainUrl + "Login.aspx/LogoutCheck",
323        data: "{}",
324        contentType: "application/json; charset=utf-8",
325        dataType: "json",
326        success: function (response) {
327
328            if (response.d == 0 && $('#divNavigation').is(":visible"))
329                window.location = varLO;
330
331            //else if(response.d == 0) {
332            //    window.location = baseMainUrl + "Modules/Services/AllServices.aspx";
333            //}
334        },
335        failure: function (msg) {
336            $.alert({
337                content: 'We are experiencing an internal system error; Please try again. (Error Code:1003)', title: 'System Error'
338                                    , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-ban-circle'
339                                    , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary'
340            });
341           // console.log(msg);
342        }
343    });
344}
345
346
347//function resize() {
348//    var height = document.getElementsByTagName("html")[0].scrollHeight;
349//    window.parent.postMessage(["setHeight", height], "*");
350//}
351
352//function getParameterByName(name) {
353//    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
354//    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
355//        results = regex.exec(location.search);
356//    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
357//}
358
359
360function jsUserName(e) {
361
362    var evt = (e) ? e : window.event;
363    var key = (evt.keyCode) ? evt.keyCode : evt.which;
364
365    if (key == 32 || key == 222)
366        return true;
367    if (key != null) {
368        key = parseInt(key, 10);
369        if ((key < 65 || key > 90) && (key < 97 || key > 122)) {
370            //if ((key < 48 || key > 57) && (key < 96 || key > 105)) {
371            if (!jsIsUserFriendlyChar(key, "Numbers")) {
372                return false;
373            }
374        }
375        else {
376            if (evt.shiftKey) {
377                return true;
378            }
379        }
380    }
381    return true;
382}
383
384
385function jsIsUserFriendlyChar(val, step) {
386    // Backspace, Tab, Enter, Insert, and Delete
387    if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) {
388        return true;
389    }
390    // Ctrl, Alt, CapsLock, Home, End, and Arrows
391    if ((val > 16 && val < 21) || (val > 34 && val < 41)) {
392        return true;
393    }
394    if (step == "Decimals") {
395        if (val == 190 || val == 110) {
396            return true;
397        }
398    }
399    // The rest
400    return false;
401}
402
403function BackToServiceRequests() {
404    window.location.href = window.location.href.split('#')[0];
405}
406
407
408function ValidateDate(sender, args) {
409
410    var dateString = document.getElementById(sender.controltovalidate).value;
411    var regex = /(((0|1)[1-9]|2[1-9]|3[0-1])\/(0[1-9]|1[0-2])\/((19|20)\d\d))$/;
412    if (regex.test(dateString)) {
413        var parts = dateString.split("/");
414        var dt = new Date(parts[1] + "/" + parts[0] + "/" + parts[2]);
415        args.IsValid = (dt.getDate() == parts[0] && dt.getMonth() + 1 == parts[1] && dt.getFullYear() == parts[2]);
416    } else {
417        args.IsValid = false;
418    }
419}
420
421
422function formatDate(date) {
423    var hours = date.getHours();
424    var minutes = date.getMinutes();
425    var ampm = hours >= 12 ? 'pm' : 'am';
426    hours = hours % 12;
427    hours = hours ? hours : 12; // the hour '0' should be '12'
428    minutes = minutes < 10 ? '0' + minutes : minutes;
429    var strTime = hours + ':' + minutes + ' ' + ampm;
430    return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear() + "  " + strTime;
431}
432
433function geformattedDate(date) {
434    return ("0" + date.getDate()).slice(-2) + "/" + ("0" + (date.getMonth() + 1)).slice(-2) + "/" + date.getFullYear();
435}
436
437function NumberLimit(element, max) {
438    var max_chars = max;
439    if (element.value.length > max_chars) {
440        element.value = element.value.substr(0, max_chars);
441    }
442    element.value = element.value.replace(/[^0-9]/g, '');
443    element.value = element.value.replace(/(\..*)\./g, '$1');
444}
445
446function DeceimalNumberLimit(element, max) {
447    var max_chars = max;
448    if (element.value.length > max_chars) {
449        element.value = element.value.substr(0, max_chars);
450    }
451
452    
453    var pos = element.value.indexOf(".");
454    var result;
455    if (pos !== -1) {
456        var part1 = element.value.substr(0, pos);
457        var part2 = element.value.substr(pos + 1);
458        result = clean(part1) + "." + clean(part2);
459    } else {
460        result = clean(element.value);
461    }
462
463    element.value = result;//element.value.replaceAll(^[0-9](\.[0-9]+)?$, '');
464}
465
466function clean(string) {
467    return string.replace(/[^0-9]/g, "");
468}
469
470
471function CheckIsAuth() {
472    var res = false;
473    
474    $.ajax({
475        type: "POST",
476        async: false,
477        url: baseMainUrl + "Login.aspx/LogoutCheck",
478        data: "{}",
479        contentType: "application/json; charset=utf-8",
480        dataType: "json",
481        success: function (response) {
482
483            if (response.d == 1)
484                res = true;
485            else
486                res = false;
487        },
488        failure: function (msg) {
489            $.alert({
490                content: 'We are experiencing an internal system error; Please try again. (Error Code:1015)', title: 'System Error'
491                                    , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-ban-circle'
492                                    , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary'
493            });
494            //console.log(msg);
495
496            res = false;
497        }
498    });
499    
500    return res;
501}
502
503function CallRestMethod(methodName, methodParams, methodSuccess, methodType, serviceToken, isAsync) {
504    //debugger;
505    //$('#loadingmessage').show();
506    var urlS = globalServiceUrl + methodName; //+ '?APIKey=' + serviceToken;
507    var username = RestServiceUserName;
508    var password = RestServicePassword;
509    var token = "Basic " + btoa(username + ':' + password);
510    $.support.cors = true;
511    $.ajax({
512        type: methodType,
513        url: urlS,
514        data: methodParams,
515        beforeSend: function (xhr) {
516            xhr.setRequestHeader('Authorization', token);
517        },
518        contentType: 'application/json; charset=utf-8',
519        crossDomain: true,
520        async: isAsync,
521        dataType: 'json',
522        success: methodSuccess,
523        error: function (jqXHR, exception) {
524            //$('.loader_newSR').hide();
525            $('#loader_new').css('display', 'none');
526            var msg = '';
527            if (jqXHR.status === 0) {
528                //msg = 'Not connect.\n Verify Network.';
529                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1005)';
530            } else if (jqXHR.status == 404) {
531                //msg = 'Requested page not found. [404]';
532                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1006)';
533            } else if (jqXHR.status == 500) {
534                //msg = 'Internal Server Error [500].';
535                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1007)';
536            }
537            else if (jqXHR.status == 406 || jqXHR.status == 401 || jqXHR.status == 401) {
538                msg = jqXHR.statusText + ' (Error Code:1008)';
539            }
540            else if (exception === 'parsererror') {
541                //msg = 'Requested JSON parse failed.';
542                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1009)';
543            } else if (exception === 'timeout') {
544                //msg = 'Time out error.';
545                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1010)';
546            } else if (exception === 'abort') {
547                //msg = 'Ajax request aborted.';
548                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1011)';
549            } else {
550                //msg = 'Uncaught Error. Status: ' + jqXHR.status + ' Exception Text: '+ exception + ' Staus Text: ' + jqXHR.statusText + ' \n' + jqXHR.responseText;
551                msg = 'We are experiencing an internal system error; Please try again. (Error Code:1012)';
552            }
553
554            $.alert({
555                content: msg, title: 'System Error'
556  , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-ban-circle'
557  , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary', columnClass: 'col-xs-12', columnClass: 'col-xs-12'
558            });
559
560           // console.log(jqXHR);
561        },
562
563        headers: {
564            "Authorization": "Basic " + btoa(username + ":" + password)
565        },
566    });
567}
568
569
570String.prototype.replaceAll = function (search, replacement) {
571    var target = this;
572    return target.replace(new RegExp(search, 'g'), replacement);
573};
574
575//String.prototype.replaceAll = function (search, replace) {
576//    //if replace is not sent, return original string otherwise it will
577//    //replace search string with 'undefined'.
578//    if (replace === undefined) {
579//        return this.toString();
580//    }
581
582//    return this.replace(new RegExp('[' + search + ']', 'g'), replace);
583//};
584
585//function EncryptQS(q) {
586//    var result = '';
587
588//    var obj = {};
589//    obj.q = q;
590
591//    $.ajax({
592//        type: "POST",
593//        async: false,
594//        url: baseMainUrl + "Login.aspx/EncryptQS",
595//        data: JSON.stringify(obj),
596//        contentType: "application/json; charset=utf-8",
597//        dataType: "json",
598//        success: function (response) {
599
600//            result = response.d;
601//        },
602//        failure: function (msg) {
603//            $.alert({
604//                content: 'Sorry, An internal error occurred', title: 'System Error'
605//                                    , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-ban-circle'
606//                                    , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary'
607//            });
608//            console.log(msg);
609
610//            result = '';
611//        }
612//    });
613
614//    return result;
615
616//}
617
618
619function getDateFromMSDate(jsonDate) {
620    if (jsonDate) {
621        var sDate = new Date(parseInt(jsonDate.substr(6)));
622        return sDate.getDate() + " / " + (sDate.getMonth() + 1) + " / " + sDate.getFullYear();
623    }
624    else
625        return '';
626}
627
628function populateAndSelectDropdown(id, result, servicePath, valueField, textField, selectedValue) {
629    var successAction = function (data) {
630
631        //$("#" + id).append("<option value='-1'>--Select--</option>");
632
633        for (var i = 0; i < data[result].length; i++) {
634            var option;
635            if (data[result][i][valueField] == selectedValue)
636                option = $("<option selected='selected'  />");
637            else
638                option = $("<option/>");
639
640            option.attr("value", data[result][i][valueField]).text(data[result][i][textField]);
641
642            $("#" + id).append(option);
643        }
644
645
646    }
647
648    CallRestMethod(servicePath, null, successAction, 'POST', true);
649}
650
651function GetOptionTextByValue(id, searchValue) {
652    var value;
653    $("#" + id + " option").each(function () {
654        if (this.value == searchValue)
655            value = this.text;
656    });
657    return value;
658}
659
660
661function ddlBindAndSelectValue(data, id, result, valueField, textField, selectedValue) {
662    for (var i = 0; i < data[result].length; i++) {
663        var option;
664        if (data[result][i][valueField] == selectedValue)
665            option = $("<option selected='selected'  />");
666        else
667            option = $("<option/>");
668
669        option.attr("value", data[result][i][valueField]).text(data[result][i][textField]);
670
671        $("#" + id).append(option);
672    }
673}
674
675function ddlBindByArray(data, id, valueField, textField) {
676    if (data && data.length > 0) {
677        for (var i = 0; i < data.length; i++) {
678            var option = $("<option/>");
679
680            option.attr("value", data[i][valueField]).text(data[i][textField]);
681
682            $("#" + id).append(option);
683        }
684    }
685}
686
687function ddlBindWithIntialText(id,data, result, valueField, textField, intialText) {
688    dllRemoveAllOptions(id);
689    // Fill Intial Value
690    var intialOption = $("<option selected='selected'  />");
691    intialOption.attr("value", '').text(intialText);
692    $("#" + id).append(intialOption);
693    
694
695    for (var i = 0; i < data[result].length; i++) {
696        var option = $("<option/>");
697        option.attr("value", data[result][i][valueField]).text(data[result][i][textField]);
698        $("#" + id).append(option);
699    }
700}
701
702function dllRemoveAllOptions(id) {
703    $('#' + id)
704        .empty()
705        //        .append('<option selected="selected" value="whatever">text</option>')
706        ;
707}
708
709
710
711function uaepasslnkLogOut() {
712    $.ajax({
713        type: "POST",
714        async: false,
715        url: baseMainUrl + "Login.aspx/uaepasslnkLogOut_Click",
716        data: "{}",
717        contentType: "application/json; charset=utf-8",
718        dataType: "json",
719        success: function (response) {
720            if (response.d == '0') { } else {
721                location.href = response.d;
722            }
723            localStorage.setItem("activetab", null);
724            localStorage.setItem("hrf_QuickPay", '');
725        },
726        failure: function (msg) {
727            alert("Something went wrong.");
728        }
729    });
730}
731function clearCustomSession() {
732    $.ajax({
733        type: "POST",
734        async: false,
735        url: baseMainUrl + "Login.aspx/clearCustomSession",
736        data: "{}",
737        contentType: "application/json; charset=utf-8",
738        dataType: "json",
739        success: function (response) {
740        },
741        failure: function (msg) {
742            alert("Something went wrong.");
743        }
744    });
745}
746function checkSession() {
747    var res = 0;
748    $.ajax({
749        type: "POST",
750        async: false,
751        url: baseMainUrl + "Modules/Services/AllServices.aspx/checkSession",
752        data: "{}",
753        contentType: "application/json; charset=utf-8",
754        dataType: "json",
755        success: function (response) {
756           // console.log(response);
757            res = response.d;
758        },
759        failure: function (msg) {
760            //alert("Something went wrong.");
761            res = 0;
762        }
763    });
764    return res;
765}

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.