PageSourceSearch

https://recording.charlotteclerk.com/js/self/layout.js?v=dpG8_bPYydbCZc6B7qa-Stvf2ZXpV77p3th1ok8_y5Y

js charlotteclerk.com collected 2026-10-06 06:11:36 UTC 28,544 bytes, 768 lines download raw bytes

1
2var attemptCounter = 1;
3var keyStr = "ABCDEFGHIJKLMNOP" +
4    "QRSTUVWXYZabcdef" +
5    "ghijklmnopqrstuv" +
6    "wxyz0123456789+/" +
7    "=";
8
9function encode64(input) {
10    input = escape(input);
11    var output = "";
12    var chr1, chr2, chr3 = "";
13    var enc1, enc2, enc3, enc4 = "";
14    var i = 0;
15
16    do {
17        chr1 = input.charCodeAt(i++);
18        chr2 = input.charCodeAt(i++);
19        chr3 = input.charCodeAt(i++);
20
21        enc1 = chr1 >> 2;
22        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
23        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
24        enc4 = chr3 & 63;
25
26        if (isNaN(chr2)) {
27            enc3 = enc4 = 64;
28        } else if (isNaN(chr3)) {
29            enc4 = 64;
30        }
31
32        output = output +
33            keyStr.charAt(enc1) +
34            keyStr.charAt(enc2) +
35            keyStr.charAt(enc3) +
36            keyStr.charAt(enc4);
37        chr1 = chr2 = chr3 = "";
38        enc1 = enc2 = enc3 = enc4 = "";
39    } while (i < input.length);
40
41    return output;
42}
43
44function decode64(input) {
45    var output = "";
46    var chr1, chr2, chr3 = "";
47    var enc1, enc2, enc3, enc4 = "";
48    var i = 0;
49
50    // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
51    var base64test = /[^A-Za-z0-9\+\/\=]/g;
52    if (base64test.exec(input)) {
53        alert("There were invalid base64 characters in the input text.\n" +
54            "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
55            "Expect errors in decoding.");
56    }
57    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
58
59    do {
60        enc1 = keyStr.indexOf(input.charAt(i++));
61        enc2 = keyStr.indexOf(input.charAt(i++));
62        enc3 = keyStr.indexOf(input.charAt(i++));
63        enc4 = keyStr.indexOf(input.charAt(i++));
64
65        chr1 = (enc1 << 2) | (enc2 >> 4);
66        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
67        chr3 = ((enc3 & 3) << 6) | enc4;
68
69        output = output + String.fromCharCode(chr1);
70
71        if (enc3 != 64) {
72            output = output + String.fromCharCode(chr2);
73        }
74        if (enc4 != 64) {
75            output = output + String.fromCharCode(chr3);
76        }
77
78        chr1 = chr2 = chr3 = "";
79        enc1 = enc2 = enc3 = enc4 = "";
80
81    } while (i < input.length);
82
83    return unescape(output);
84}
85
86
87
88
89$(document).ready(function () {
90    var str = window.location.search;
91    //this is new to no show the user name and the password
92    if (str.startsWith("?aW5OYW1lPVB1YmxpY0BDaGFybG90d")) {
93        Autologin(str);
94    }
95
96    $('#authenticateForm').on('keypress', function (e) {
97        if (e.which == 13) {  // 13 is the Enter key
98            if ($('#txtConfirmationCode').val().length > 0) {
99                e.preventDefault();  // Prevent form submission on Enter key
100            }
101        }
102    });
103
104    // Trigger btnAuthenticate click when Enter is pressed in confirmation code input
105    $('#txtConfirmationCode').on('keypress', function (e) {
106        if (e.which == 13) {  // Enter key was pressed
107            $('#btnAuthenticate').click();  // Trigger Authenticate button action
108        }
109    });
110
111    $('#enterConfirmCodeDiv').css('display', 'none');
112    $('#buttonConfirmRow').show();
113    $('#buttonAuthenticateRow').hide();
114
115    if ($('#IsAuthenticated').data('message') == "Y") {
116        if ($('#nameAuthenticated').data('message') == '[email protected]') {
117            $('#lblLogin').html($('#nameAuthenticated').data('message'));
118        }
119        else {
120            if ($('#nameAuthenticated').data('message') != 'Public') {
121                $('#lblLogin').html("Logout - " + $('#nameAuthenticated').data('message'))
122            }
123            else {
124                $('#lblLogin').html("Logout - " + $('#firstName').data('message') + " " + $('#lastName').data('message'));
125            }
126
127        }
128        $('#loginTextDiv').css('display', 'inline');
129    }
130    if ($('#IsAuthenticated').data('message') == "N") {
131        $('#lblLogin').html("Agent Login");
132        $('#loginTextDiv').css('display', 'inline');
133        $('#lblAuthenticate').html("Authenticate");
134        $('#authenticateTextDiv').css('display', 'inline');
135    }
136
137    $('#authenticateForm').validate({
138
139        errorPlacement: function (error, element) {
140            // name attrib of the field
141            var n = element.attr("name");
142
143            if (n == "firstname")
144                element.attr("placeholder", "Required First Name");
145            else if (n == "lastname")
146                element.attr("placeholder", "Required Last Name");
147            else if (n == "emailauth")
148                element.attr("placeholder", "Invalid Email");
149        },
150        rules: {
151            firstname: {
152                required: true
153            },
154            lastname: {
155                required: true
156            },
157            textingnumber: {
158                required: true,
159                phoneUS: true
160            },
161            emailauth: {
162                required: true,
163                email: true
164            }
165        },
166        highlight: function (element) {
167            // add a class to the label of the element
168            if (element.id == "firstname") {
169                $("#lblfirstname").css("color", '#C52F38');
170                $("#lblfirstname").css("font-weight", 'bold');
171                $("#lblfirstname").text("Required");
172            }
173            if (element.id == "lastname") {
174                $("#lbllastname").css("color", '#C52F38');
175                $("#lbllastname").css("font-weight", 'bold');
176                $("#lbllastname").text("Required");
177            }
178            if (element.id == "textingnumber") {
179                $("#lbltextingnumber").css("color", '#C52F38');
180                $("#lbltextingnumber").css("font-weight", 'bold');
181                $("#lbltextingnumber").text("Invalid Phone");
182            }
183            if (element.id == "emailauth") {
184                $("#lblemailauth").css("color", '#C52F38');
185                $("#lblemailauth").css("font-weight", 'bold');
186                $("#lblemailauth").text("Invalid Email");
187            }
188        },
189        unhighlight: function (element) {
190            if (element.id == "firstname") {
191                $("#lblfirstname").css("color", '#000000');
192                $("#lblfirstname").css("font-weight", 'bold');
193                $("#lblfirstname").text("First Name");
194            }
195            if (element.id == "lastname") {
196                $("#lbllastname").css("color", '#000000');
197                $("#lbllastname").css("font-weight", 'bold');
198                $("#lbllastname").text("Last Name");
199            }
200            if (element.id == "textingnumber") {
201                // remove a class to the label of the element
202                $("#lbltextingnumber").css("color", '#000000');
203                $("#lbltextingnumber").css("font-weight", 'bold');
204                $("#lbltextingnumber").text("Phone Number");
205            }
206            if (element.id == "emailauth") {
207                $("#lblemailauth").css("color", '#000000');
208                $("#lblemailauth").css("font-weight", 'bold');
209                $("#lblemailauth").text("Email");
210            }
211        }
212    });
213
214    $('#firstname').on('change keyup', function (event) {
215        $(this).val(function (index, value) {
216            if (value != "") {
217                return ProperCase(value);
218            }
219        });
220    });
221
222    $('#lastname').on('change keyup', function (event) {
223        $(this).val(function (index, value) {
224            if (value != "") {
225                return ProperCase(value);
226            }
227        });
228    });
229
230    
231
232    $('#agentLogin').on('click', function (event) {
233        event.preventDefault();
234        openForm('L');
235    });
236    $('#manualAuthenticate').on('click', function (event) {
237        event.preventDefault();
238        openForm('A');
239    });
240    
241    $('#btnLoginSubmit').on('click', function (event) {
242        event.preventDefault();
243        login();
244    });
245    
246    $('#btnLoginCancel').on('click', function (event) {
247        event.preventDefault();
248        closeForm('L');
249    });
250    $('#btnAuthenticationCancel').on('click', function (event) {
251        event.preventDefault();
252        closeForm('A');
253    });
254    $('#btnAuthenticationCancel2').on('click', function (event) {
255        event.preventDefault();
256        closeForm('A');
257    });
258
259    $('#btnCartView').on('click', function (event) {
260        event.preventDefault();
261        viewCartLayout();
262    });
263
264    $('#btnGetConfirmationCode').on('click', function (event) {
265        event.preventDefault();
266        GetConfirmationCode();
267    });
268    
269
270    $('#btnAuthenticate').on('click', function (event) {
271        event.preventDefault();
272        CheckAllowAuthentication();
273    });
274
275
276    $.ajax({
277        url: "/messages/opening-message.html",
278        success: function (html) {
279            if ($(html).find("#OpeningMessageBody").prevObject[2]) {
280                let title = $(html).find("#OpeningMessageTitle");
281                let body = $(html).find("#OpeningMessageBody");
282                $("#CharlotteClerkImportantMessageModalTitle").append(
283                    title.prevObject[0].innerHTML
284                );
285                $("#CharlotteClerkImportantMessageModal #important-message").append(
286                    body.prevObject[2].innerHTML
287                );
288                $("#CharlotteClerkImportantMessageModal").modal("show");
289            }
290        },
291    });
292});
293function ProperCase(data) {
294    var words = data.split(' ');
295    var results = [];
296    for (var i = 0; i < words.length; i++) {
297        var letter = words[i].charAt(0).toUpperCase();
298        results.push(letter + words[i].slice(1));
299    }
300    return results.join(' ');
301};
302
303function openForm(from) {
304    $('#loginDiv').css('display', 'none');
305    $('#authenticateDiv').css('display', 'none');
306
307    if (from == 'L') {
308        if ($('#lblLogin').html() == "Agent Login") {
309            $('#loginDiv').css('display', 'inline');
310            $('#authenticateTextDiv').css('display', 'none');
311        } else {
312            if ($('#nameAuthenticated').data('message') !== '[email protected]') {
313                resetForm('L');
314                $.ajax({
315                    url: "/Account/LogOff",
316                    type: "POST",
317                    dataType: "json",
318                    success: function () {
319                        $('#lblLogin').html("Agent Login");
320                        $('#loginTextDiv').css('display', 'inline');
321                        $('#lblAuthenticate').html("Authenticate");
322                        $('#authenticateTextDiv').css('display', 'inline');
323                        window.location.href = "/search/Name";
324                    }
325                });
326            }
327        }
328    }
329    else if (from == 'A') {
330        if ($('#lblAuthenticate').html() == "Authenticate") {
331            $('#loginTextDiv').css('display', 'none');
332            $("#authenticateDiv").css('display', 'block');
333            $('#lblConfirmationCodeMessage').text('');
334        } else {
335            resetForm('A');
336            $('#lblAuthenticate').html("Authenticate");
337            $('#loginTextDiv').css('display', 'inline');
338        }
339    }
340}
341
342function Autologin(str) {
343    $.ajax({
344        url: "/Account/AutoLogin",
345        type: "POST",
346        dataType: "json",
347        data: {
348            inStr: str
349        },
350        beforeSend: function () {
351            // Show image container
352            $("#loader").show();
353        },
354        error: function (response) {
355            $('#lblLogin').html("Login");
356            // Hide image container
357            $("#loader").hide();
358        },
359        success: function (response) {
360            //auth = '(Authenticated.GetClaimValue("IsAuthenticated", Context.Request) ?? "N")';// 
361            window.location.href = "/Search/Name";
362        }
363    });
364}
365
366function login() {
367    grecaptcha.ready(function () {
368        grecaptcha.execute($('#siteKey').data('message'), { action: 'home/login' }).then(function (token) {
369            $.getJSON("/Home/Verify?token=" + token,
370                function (dat) {
371                    if (dat) {
372                        var form = $('#loginForm');
373                        var token = $('input[name="__RequestVerificationToken"]', form).val();
374                        $.ajax({
375                            url: "/Account/JsonLogin",
376                            type: "POST",
377                            dataType: "json",
378                            data: {
379                                __RequestVerificationToken: token,
380                                inUser: $("#email").val()
381                                , inPassword: $("#psw").val()
382                            },
383                            beforeSend: function () {
384                                // Show image container
385                                $("#loader").show();
386                            },
387                            error: function (response) {
388                                $('#loginmessage').html("Login Failed");
389                                $("#loginmessage").css("color", "#C72F3B");
390                                $('#lblLogin').html("Agent Login");
391                                // Hide image container
392                                $("#loader").hide();
393                            },
394                            success: function (response) {
395                                if (response.success) {
396                                    $("#loginmessage").css("color", "#000000");
397                                    document.getElementById("loginDiv").style.display = "none";
398                                    //auth = '(Authenticated.GetClaimValue("IsAuthenticated", Context.Request) ?? "N")';
399                                    window.location.href = "/Search/Name";
400                                }
401                                else {
402                                    $('#loginmessage').html("Login Failed");
403                                    $("#loginmessage").css("color", "#C72F3B");
404                                    $('#lblLogin').html("Agent Login");
405                                    // Hide image container
406                                    $("#loader").hide();
407                                }
408                            }
409                        });
410                    }
411                    else {
412                        $('#loginmessage').html("Login Failed");
413                        $("#loginmessage").css("color", "#C72F3B");
414                        $('#lblLogin').html("Login");
415                        // Hide image container
416                        $("#loader").hide();
417                    }
418                }
419            );
420        });
421    });
422}
423
424function closeForm(from) {
425    if (from == 'L') {
426        $("#loginDiv").css('display', 'none');
427        $("#authenticateTextDiv").css('display', 'inline');
428        resetForm('L');
429    }
430    else if (from == 'A') {
431        $("#authenticateDiv").css('display', 'none');
432        $('#loginTextDiv').css('display', 'inline');
433        resetForm('A');
434
435    }
436}
437
438function resetForm(from) {
439
440    if (from == 'L') {
441        $("#email").val('');
442        $('#psw').val('');
443    }
444    else {
445
446        $('#radio_email').prop('checked', true);
447        $('#textingnumber').val('');
448        $('#emailauth').val('');
449        $("#textingNumberDiv").hide();
450        $("#emailAuthDiv").show();
451        textingnumber = '';
452        emailauth = '';
453        $('#firstname').val('');
454        $('#lastname').val('');
455        $('#txtConfirmationCode').val('');
456        $('#lblConfirmationCodeMessage').text('');
457        $('#btnAuthenticate').show();
458
459        $('#enterConfirmCodeDiv').hide();
460        $('#buttonConfirmRow').show();
461        $('#buttonAuthenticateRow').hide();
462    }
463}
464
465function GetConfirmationCode() {
466
467    // Instruction Message
468    //$('#lblInstructionMessage').html('Please enter your confirmation code.');
469
470    var error = false;
471
472    var firstname = $('#firstname').val();
473    var lastname = $('#lastname').val();
474    var email = $('#emailauth').val();
475
476    // Check if first name is valid
477    if ($("[name='firstname']").valid() == true) {
478        firstname = $('#firstname').val();
479        error = false;
480    }
481    else {
482        $('input[name="firstname"]').valid();
483        return;
484    }
485    // Check if last name is valid
486    if (error == false) {
487        if ($("[name='lastname']").valid() == true) {
488            lastname = $('#lastname').val();
489            error = false;
490        }
491        else {
492            $('input[name="lastname"]').valid();
493            return;
494        }
495    }
496    // If there is no error validate phone or email depending on radio butto selection
497    if (error == false) {
498        var selValue = $('input[name="radio_select"]:checked').val();
499
500        // Validate email
501        if ($("[name='emailauth']").valid() == true) {
502            phone = '';
503            $('#textingnumber').val('');
504            email = $('#emailauth').val();
505            error = false;
506        }
507        else {
508            $('input[name="emailauth"]').valid();
509            return;
510        }
511    }
512    if (error == false) {
513        grecaptcha.ready(function () {
514            grecaptcha.execute($('#siteKey').data('message'), { action: 'home/login' }).then(function (token) {
515                $.getJSON("/Home/Verify?token=" + token,
516                    function (dat) {
517                        if (dat) {
518                            var form = $('#authenticateForm');
519                            var token = $('input[name="__RequestVerificationToken"]', form).val();
520                            url = '/Authenticate/CreateAuthenticateUser';
521                            $.ajax({
522                                url: url,
523                                type: 'POST',
524                                dataType: "json",
525                                data: {
526                                    __RequestVerificationToken: token,
527                                    inFirstName: firstname,
528                                    inLastName: lastname,
529                                    inEmail: email
530                                },
531                                success: function (ConfirmUserCode) {
532                                    if (ConfirmUserCode > 0) {
533                                        $('#enterConfirmCodeDiv').show();
534                                        $('#buttonConfirmRow').hide();
535                                        $('#buttonAuthenticateRow').show();
536                                    }
537                                }
538                            })
539                        }
540                    }
541                );
542            });
543        });
544    }
545}
546
547function CheckAllowAuthentication() {
548
549    //var firstname = $('#firstname').val();
550    // authenticationid = $('#txtConfirmationCode').val()
551    grecaptcha.ready(function () {
552        grecaptcha.execute($('#siteKey').data('message'), { action: 'home/login' }).then(function (token) {
553            $.getJSON("/Home/Verify?token=" + token,
554                function (dat) {
555                    if (dat) {
556                        var form = $('#authenticateForm');
557                        var token = $('input[name="__RequestVerificationToken"]', form).val();
558                        $.ajax({
559                            url: '/Authenticate/UpdateAuthenticateUser',
560                            type: 'POST',
561                            data: {
562                                __RequestVerificationToken: token,
563                                inCode: $('#txtConfirmationCode').val()
564                            },
565                            dataType: 'json',
566                            success: function (data) {
567                                if (data.success) {
568                                    $('#lblConfirmationCodeMessage').text("Correct Confirmation Code ");
569                                    $('#lblConfirmationCodeMessage').css('color', 'green');
570
571                                    $('#enterConfirmCodeCreateDiv').hide();
572
573                                    attemptCounter = 1;
574                                }
575                                else {
576                                    attemptCounter++;
577                                }
578                                $("#authenticateDiv").hide();
579                                
580                                Swal.fire({
581                                    title: "Authentication Successful",
582                                    icon: "info"
583                                }).then((result) => {
584                                        window.location.href = "/Search/Name";
585                                });
586                                
587                            },
588                            error: function (data) { // Handle the error
589                                if (attemptCounter == 3) {
590                                    $('#lblConfirmationCodeMessage').text("You have reached the maximun number of attempts.");
591                                    $('#lblConfirmationCodeMessage').css('color', '#C52F38');
592                                    setTimeout(function () { resetForm('A'); }, 3000);
593                                    $('#enterConfirmCodeCreateDiv').hide();
594                                    $('#btnAuthenticate').hide();
595                                    attemptCounter = 1;
596                                }
597                                else if (attemptCounter == 1) {
598                                    $('#lblConfirmationCodeMessage').text("Incorrect confirmation code. Please try again.");
599                                    $('#lblConfirmationCodeMessage').css('color', '#C52F38');
600                                    $('#txtConfirmationCode').focus;
601                                    attemptCounter = attemptCounter + 1;
602                                }
603                                else if (attemptCounter == 2) {
604                                    $('#lblConfirmationCodeMessage').text("2nd Attempt - Incorrect confirmation code. Please try again.");
605                                    $('#lblConfirmationCodeMessage').css('color', '#C52F38');
606                                    $('#txtConfirmationCode').focus;
607                                    attemptCounter = attemptCounter + 1;
608                                }
609                            }
610                        });
611                    }
612                }
613            );
614        });
615    });
616}
617
618function viewCartLayout() {
619
620    $("#cartLayoutModal").modal('show');
621    var grid = $("#CartGridLayout").data("kendoGrid");
622    if (!grid) {
623        $("#CartGridLayout").kendoGrid({
624            dataSource: {
625                transport: {
626                    read: "/Render/GetDocumentList/",
627                    dataType: "json"
628                },
629                destroy: {
630                    url: "/Render/DeleteDocumentList/",
631                    dataType: "json"
632                },
633                schema: {
634                    model: {
635                        fields: {
636                            myDocumentId: { type: "number" },
637                            myPageCount: { type: "number" },
638                            myBook: { type: "string" },
639                            myPage: { type: "string" },
640                            myDocTypeDescription: { type: "string" },
641                        }
642                    }
643                },
644                serverFiltering: true,
645                serverSorting: true
646            },
647            columns: [
648                {
649                    hidden: true,
650                    field: "myDocumentId"
651                }, {
652                    template: ({ myBook, myPage, myDocTypeDescription }) => `<span>${kendo.htmlEncode(myBook)} /  ${kendo.htmlEncode(myPage)} - ${kendo.htmlEncode(myDocTypeDescription)}</span >`,
653                    width: 275
654                }, {
655                    command: {
656                        name: "view",
657                        iconClass: "k-i-eye",
658                        click: onFromLayoutImageView,
659                        text: ""
660                    },
661                    width: 40
662                }, {
663                    command: {
664                        name: "clear",
665                        iconClass: "k-i-trash",
666                        click: onFromLayoutImageDelete,
667                        text: ""
668                    },
669                    width: 40
670                }
671            ],
672            dataBound: function (e) {
673                if (e.sender.dataSource.total() == 0) {
674                    // Cart Empty
675                    $("#CartGridLayout").hide();
676                    $("#btnProcessLayout").hide();
677                    $("#btnCartView").css("display", "none");
678
679                    if ($('#IsAuthenticated').data('message') == "Y") {
680                        $("#lblCartLayoutMessage").text("Process Cart Electronic Certification");
681                    }
682                    else {
683                        $("#lblCartLayoutMessage").text("Email Required For Electronic Certification");
684                    }
685
686                    $("#divCartLayoutEmpty").show();
687                }
688                else {
689                    // Cart Has Items
690                    $("#divCartLayoutEmpty").hide();
691                    $("#CartGridLayout").show();
692
693                    if ($('#IsAuthenticated').data('message') == "Y") {
694                        $("#lblCartLayoutMessage").text("Process Cart Electronic Certification");
695                        $("#btnProcessLayout").show();
696                    }
697                    else {
698                        $("#lblCartLayoutMessage").text("Email Required For Electronic Certification");
699                        $("#btnProcessLayout").hide();
700                    }
701                }
702            },
703            editable: "inline"
704        });
705    }
706    else {
707        grid.dataSource.read();
708    }
709}
710
711function onFromLayoutImageView(e) {
712    e.preventDefault();
713    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
714    var myUrl = "/Render/ViewDocuments?inFromSearch=Layout"
715        + "&inDocumentId=" + dataItem.myDocumentId
716        + "&inPageCount=" + dataItem.myPageCount;
717
718    window.location.href = myUrl;
719}
720
721function onFromLayoutImageDelete(e) {
722    e.preventDefault();
723    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
724    var title = 'My Document List'
725    var msg = 'Are you sure you want to Delete?'
726
727    var $content = "<div class='dialog-ovelay'>" +
728        "<div class='dialog'><header>" +
729        "<i class='fa fa-book'></i>&nbsp;&nbsp;" +
730        " <h3> " + title + " </h3> " +
731        "</header>" +
732        "<div class='dialog-msg'>" +
733        " <p> " + msg + " </p> " +
734        "</div>" +
735        "<footer>" +
736        "<div class='controls'>" +
737        " <button style='Height:40px' class='btn-danger doAction'>Yes</button> " +
738        " <button style='Height:40px' class='btn-default cancelAction'>Cancel</button> " +
739        "</div>" +
740        "</footer>" +
741        "</div>" +
742        "</div>";
743    $('body').prepend($content);
744    $('.doAction').click(function () {
745        $.ajax({
746            url: '/Render/DeleteListItem',
747            type: 'POST',
748            data: {
749                __RequestVerificationToken: $('#__RequestVerificationToken').val(),
750                inDocumentId: dataItem.myDocumentId
751            }
752        }).done(function () {
753
754            $('#DocumentMessage').html("");
755            viewCartLayout();
756
757        });
758        $(this).parents('.dialog-ovelay').fadeOut(500, function () {
759            $(this).remove();
760        });
761    });
762    $('.cancelAction, .fa-close').click(function () {
763        $(this).parents('.dialog-ovelay').fadeOut(500, function () {
764            $(this).remove();
765        });
766    });
767}
768

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.