PageSourceSearch

https://quarto.com/js/Shared/common.js?v=318bde25605a41bbbab1f74a831d6a16

js quarto.com collected 2026-09-24 19:02:23 UTC 26,217 bytes, 723 lines download raw bytes

1var setupBlockUICSS = function () {
2
3    //var maxWidth = 250;
4
5    //var divWidth = 340;
6    //if (divWidth > maxWidth) {
7    //    divWidth = maxWidth;
8    //};
9
10    $.blockUI.defaults.css = {
11        'z-index': '9001',
12        position: 'fixed',
13        //padding: '0px',
14        margin: '0px',
15        width: '50%',
16        //width: '30%',
17        top: '30%',
18        left: '25%',
19        //left: '36%',
20        'text-align': 'center',
21        //color: 'rgb(0, 0, 0)',
22        border: 'none',
23        //'background-color': 'rgba(19, 19, 19, 0.8)',
24        //'border-radius': '25px',
25        //'padding': '10px',
26        cursor: 'wait',
27        //'max-width': '230px',
28    };
29};
30
31var setupBlockUIOverlayCSS = function () {
32    $.blockUI.defaults.overlayCSS = {
33        //backgroundColor: 'rgba(255, 255, 255, 0.45)',
34        'z-index': '8001',
35        backgroundColor: 'rgba(255, 255, 255, 0.4)',
36    };
37};
38
39var StartBlockUI = function () {
40    setupBlockUICSS();
41    setupBlockUIOverlayCSS();
42    $.blockUI({ message: '<div class="noselect" style="background-color: rgba(255, 255, 255, 0.7); max-width: 300px; width: 100%; padding: 30px; margin: auto;-webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px;"><img class="img-fluid img-center" style="max-width:100px;" src="' + ((JS_ROOT_DIRECTORY === '') ? '' : JS_ROOT_DIRECTORY) + '/images/common/loading_v7.gif" /><span class="mt-4 h1" style="font-family: SharpSans-Bold, Arial;font-size:30px;">LOADING</span></div>' });
43    //$.blockUI({ message: '' });
44};
45
46var UiMessageShow = false;
47var StartBlockUIMessage = function (message) {
48    setupBlockUICSS();
49    setupBlockUIOverlayCSS();
50    var msgBox = '<p style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);" class="bg-white text-black">' + message + '</p>';
51    $.blockUI({ message: '<div class="noselect" style="background-color: rgba(255, 255, 255, 0.7); max-width: 300px; width: 100%; padding: 30px; margin: auto;-webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px;">' + msgBox + '</div>' });
52    UiMessageShow = true;
53};
54var UnblockUIMessage = function () {
55    UiMessageShow = false;
56};
57var IsUIMessageShow = function () {
58    return UiMessageShow;
59};
60
61
62var setupNoAccessBlockUICSS = function () {
63    //var maxWidth = 250;
64    //var divWidth = 340;
65    //if (divWidth > maxWidth) {
66    //    divWidth = maxWidth;
67    //};
68
69    $.blockUI.defaults.css = {
70        'z-index': '9001',
71        position: 'fixed',
72        //padding: '0px',
73        margin: '0px',
74        width: '90%',
75        //width: '30%',
76        top: '20%',
77        left: '5%',
78        //left: '36%',
79        'text-align': 'center',
80        //color: 'rgb(0, 0, 0)',
81        border: 'none',
82        //'background-color': 'rgba(19, 19, 19, 0.8)',
83        //'border-radius': '25px',
84        //'padding': '10px',
85        cursor: 'wait',
86        //'max-width': '230px',
87    };
88};
89
90var setupNoAccessBlockUIOverlayCSS = function () {
91    $.blockUI.defaults.overlayCSS = {
92        //backgroundColor: 'rgba(255, 255, 255, 0.45)',
93        'z-index': '8001',
94        backgroundColor: 'rgba(0, 0, 0, 0.9)',
95    };
96};
97
98var StartNoAccessBlockUI = function () {
99    setupNoAccessBlockUICSS();
100    setupNoAccessBlockUIOverlayCSS();
101    var message = '<div style="color: red; font-size: 28px; width:100%">You are not allowed to access to this folder / file.</div><div class="pt-3" style="font-size: 18px;">Click <a style="font-weight: bold;" href="' + ((JS_ROOT_DIRECTORY === '') ? '/' : JS_ROOT_DIRECTORY) + '">here</a> back to login page</div>';
102    $.blockUI({ message: '<div style="background-color: rgba(255, 255, 255, 0.9); max-width: 700px; width: 100%; padding: 30px; margin: auto;-webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px;">' + message + '</div>' });
103};
104
105var var_JS_ACCESS_RIGHTS_ERROR = 'JS_ACCESS_RIGHTS_ERROR';
106
107var ShowErrorWarning = function (result) {
108    //$.unblockUI();
109
110    var errorCode = '';
111    var messageBody = '';
112    var isShow = false;
113    var isAllowClose = false;
114    var textColor = '#fff';
115    var bgColor = '#000';
116    var borderColor = '#000';
117    
118    if ((result !== null) && (result !== undefined)) {
119
120        if (result.ErrorCode !== undefined) {
121            errorCode = result.ErrorCode;
122        }
123        if (result.SystemMessage !== undefined) {
124            messageBody = $.trim(result.SystemMessage);
125        } else if (result !== undefined) {
126            messageBody = $.trim(result);
127        }
128
129        /*
130        if ((messageBody === var_JS_ACCESS_RIGHTS_ERROR)
131            || (messageBody === var_JS_ADMIN_ACCESS_RIGHTS_ERROR)
132            || (messageBody === var_JS_CURRENT_CLIENT_REQUURED)
133            || (messageBody === var_JS_CURRENT_CLIENT_USER_REQUURED)) {
134
135            if (messageBody === var_JS_ACCESS_RIGHTS_ERROR) {
136                isShow = true;
137                isAllowClose = false;
138                textColor = '#004085';
139                bgColor = '#cce5ff';
140                borderColor = '#b8daff';
141
142                messageTitle = 'Logon timeout, please re-login again';
143                messageBody = '<div style="font-size: 18px;">Click <a style="font-weight: bold;" href=' + var_JS_ACCOUNT_LOGIN_LINK + '>here</a> back to login page</div>';
144            } else if (messageBody === var_JS_ADMIN_ACCESS_RIGHTS_ERROR) {
145                isShow = true;
146                isAllowClose = true;
147                textColor = '#856404';
148                bgColor = '#fff3cd';
149                borderColor = '#ffeeba';
150
151                messageTitle = 'Access denied';
152                messageBody = 'You have no permission to access it';
153            } else if (messageBody === var_JS_CURRENT_CLIENT_REQUURED) {
154                isShow = true;
155                isAllowClose = true;
156                textColor = '#856404';
157                bgColor = '#fff3cd';
158                borderColor = '#ffeeba';
159
160                messageTitle = 'Missing client';
161                messageBody = 'Please select client on top left logo';
162            } else if (messageBody === var_JS_CURRENT_CLIENT_USER_REQUURED) {
163                isShow = true;
164                isAllowClose = true;
165                textColor = '#856404';
166                bgColor = '#fff3cd';
167                borderColor = '#ffeeba';
168
169                messageTitle = 'Missing client member';
170                messageBody = var_JS_NO_DEFAULT_CLIENT_USER_SELECTED;
171            } 
172
173        }
174        else if ((result.WarningLevel === var_JS_WARNING_LEVEL_INFO)
175            || (result.WarningLevel === var_JS_WARNING_LEVEL_WARNING)
176            || (result.WarningLevel === var_JS_WARNING_LEVEL_ERROR)) {
177
178            if (result.WarningLevel === var_JS_WARNING_LEVEL_INFO) {
179                isShow = true;
180                isAllowClose = true;
181                textColor = '#004085';
182                bgColor = '#cce5ff';
183                borderColor = '#b8daff';
184
185                messageTitle = result.SystemMessageTitle;
186                messageBody = result.SystemMessage;
187            } else if (result.WarningLevel === var_JS_WARNING_LEVEL_WARNING) {
188                isShow = true;
189                isAllowClose = true;
190                textColor = '#856404';
191                bgColor = '#fff3cd';
192                borderColor = '#ffeeba';
193
194                messageTitle = result.SystemMessageTitle;
195                messageBody = result.SystemMessage;
196            } else if (result.WarningLevel === var_JS_WARNING_LEVEL_ERROR) {
197                isShow = true;
198                isAllowClose = true;
199                textColor = '#721c24';
200                bgColor = '#f8d7da';
201                borderColor = '#f5c6cb';
202
203                messageTitle = result.SystemMessageTitle;
204                messageBody = result.SystemMessage;
205            }
206        }
207        else {
208            if (messageBody !== '') {
209                isShow = true;
210                isAllowClose = true;
211                textColor = '#721c24';
212                bgColor = '#f8d7da';
213                borderColor = '#f5c6cb';
214
215                messageTitle = 'Error! Please capture this error message and send to technical support';
216            }
217        }
218        */
219
220        if (errorCode === var_JS_ACCESS_RIGHTS_ERROR) {
221            isShow = true;
222            isAllowClose = false;
223            textColor = '#004085';
224            bgColor = '#cce5ff';
225            borderColor = '#b8daff';
226
227            messageTitle = 'Logon timeout, ' + messageBody;
228            messageBody = '<div style="font-size: 18px;">Click <a style="font-weight: bold;" href="/Admin/">here</a> back to login page</div>';
229        } else if (messageBody !== '') {
230            isShow = true;
231            isAllowClose = true;
232            textColor = '#721c24';
233            bgColor = '#f8d7da';
234            borderColor = '#f5c6cb';
235
236            messageTitle = 'Error! Please capture this error message and send to technical support';
237        }
238    }
239    if (isShow) {
240        $.blockUI.defaults.css = {
241            'z-index': '9001',
242            position: 'fixed',
243            //padding: '0px',
244            margin: '0px',
245            width: '90%',
246            //width: '30%',
247            top: '10%',
248            left: '5%',
249            //left: '36%',
250            'text-align': 'center',
251            //color: 'rgb(0, 0, 0)',
252            border: 'none',
253            //'background-color': 'rgba(19, 19, 19, 0.8)',
254            //'border-radius': '25px',
255            //'padding': '10px',
256            cursor: 'wait',
257            //'max-width': '230px',
258        };
259        $.blockUI.defaults.overlayCSS = {
260            //backgroundColor: 'rgba(255, 255, 255, 0.45)',
261            'z-index': '9000',
262            backgroundColor: 'rgba(0, 0, 0, 0.8)',
263        };
264        $.blockUI({
265            message:
266                '<div style="background-color:' + bgColor + '; color: ' + textColor + '; border: 1px solid ' + borderColor + '; width: 100%; max-width: 900px; padding: 30px; margin: auto;-webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px;">'
267                + '<div onclick="$.unblockUI();" style="cursor: pointer; /*border: 1px solid gray;*/ color: gray; float: right; font-size: 0px;">' + ((isAllowClose) ? '<i class="fas fa-times" style="font-size: 30px;"></i>' : '') + '</div>'
268                + '<div style="text-decoration: underline; text-align:left; padding-bottom: 10px; font-weight: bold; font-size: 20px;"><i class="fas fa-exclamation-triangle" style="margin-right: 10px; float: left; font-size: 30px;"></i>'
269                + messageTitle + '</div>'
270                + '<div style="font-size: 14px;">' + messageBody + '</div></div>'
271        });
272    } 
273};
274
275//IE has no startWith, add this code for IE
276if (!String.prototype.startsWith) {
277    String.prototype.startsWith = function (value, position) {
278        position = position || 0;
279        return this.indexOf(value, position) === position;
280    };
281}
282
283var CommonFunction = {
284    IsNullOrEmpty: function (value) {
285        return ((!value) || (value === undefined) || (value === 'undefined') || (value === NaN) || (value === 'NaN') || ($.trim(value) === "") || (value.length === 0));
286    },
287    HasValue: function (value) {
288        return ((value !== null) && (value !== undefined) && (value !== 'undefined') && (value !== NaN) && (value !== 'NaN'));
289    },
290    FindArrayValue: function (targetArray, targetValue) {
291        var result = null;
292        for (var i = 0; i < targetArray.length; i++) {
293            //here
294        }
295        return result;
296    },
297    RedirectInternalLink: function (value) {
298        window.location.href = value;
299    },
300    RedirectExternalLink: function (value) {
301
302    },
303    TableFunction: {
304        GetCookieSortDisplayColumn: function (displayField, displayFieldOrderArray, displayFieldArray) {
305            var tmp = new Array();
306            var tmpDisplayFieldArray = displayFieldArray.slice();
307            for (var j = 0; j < displayFieldOrderArray.length; j++) {
308                if ($.inArray(displayFieldOrderArray[j], tmpDisplayFieldArray) >= 0) {
309                    tmp.push(displayFieldOrderArray[j]);
310                    tmpDisplayFieldArray.splice($.inArray(displayFieldOrderArray[j], tmpDisplayFieldArray), 1);
311                }
312            }
313            for (var i = 0; i < displayField.length; i++) {
314                if ($.inArray(displayField[i], tmpDisplayFieldArray) >= 0) {
315                    tmp.push(displayField[i]);
316                }
317            }
318            return tmp;
319        },
320    },
321    DropDownFunction: {
322        MatchingCaseInsensitive: function (obj, v) {
323            return $('#' + obj + ' option').filter(function () {
324                return this.value.toLowerCase() === v.toLowerCase();
325            }).attr('value');
326        },
327    },
328    ViewPassword: function (obj) {
329        if ($('#' + obj).attr('type') === 'password') {
330            $('#' + obj).attr('type', 'text');
331        } else {
332            $('#' + obj).attr('type', 'password');
333        }
334    },
335};
336
337var InternetFunction = {
338    IsMicrosoftInternetExplorer: function () {
339        var ua = window.navigator.userAgent;
340        var msie = ua.indexOf("MSIE ");
341        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer, return version number
342        {
343            //alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
344            return true;
345        }
346        else // If another browser, return 0
347        {
348            //alert('otherbrowser');
349            return false;
350        }
351    },
352    GetMicrosoftInternetExplorerVersion: function () {
353        var rv = -1; // Return value assumes failure.
354        if (navigator.appName == 'Microsoft Internet Explorer') {
355            var ua = navigator.userAgent,
356                re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
357
358            if (re.exec(ua) !== null) {
359                rv = parseFloat(RegExp.$1);
360            }
361        }
362        else if (navigator.appName == "Netscape") {
363            /// in IE 11 the navigator.appVersion says 'trident'
364            /// in Edge the navigator.appVersion does not say trident
365            if (navigator.appVersion.indexOf('Trident') === -1) rv = 12;
366            else rv = 11;
367        }
368        return rv;
369    },
370};
371
372var DateFunction = {
373    IsDateBetween: function (targetDate, dateRangeStart, dateRangeEnd) {
374        var result = false;
375        var startDate = null;
376        var endDate = null;
377        var d = null;
378
379        startDate = new Date(dateRangeStart.replace(/-/g, '/')).getTime();
380        endDate = new Date(dateRangeEnd.replace(/-/g, '/')).getTime();
381        d = new Date(targetDate.replace(/-/g, '/')).getTime();
382
383        if ((d <= endDate) && (d >= startDate)) {
384            result = true;
385        }
386        return result;
387    },
388    IsValidDate1: function (date) {
389        //Date Format: 2019-12-31
390        //var d = new Date(year, month, day);
391        var tmp = date.split('-');
392        var d = new Date(tmp[0] + '/' + tmp[1] + '/' + tmp[2]);
393        return !!(d && (d.getMonth() + 1) === tmp[1] && d.getDate() === Number(tmp[2]));
394    },
395    DateFormat1: function (date) {
396        var d = new Date(date);
397        var dMonth = d.getMonth() + 1;
398        var dDate = d.getDate();
399        var mm = ((dMonth >= 10) ? (dMonth) : ("0" + (dMonth)));
400        var dd = ((dDate >= 10) ? (dDate) : ("0" + (dDate)));
401        return d.getFullYear() + '-' + mm + '-' + dd;
402    },
403    JSONToDate1: function (date) {
404        if (typeof date === 'string') {
405            var tmp = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)(?:([\+-])(\d{2})\:(\d{2}))?Z?$/.exec(date);
406            if (tmp) {
407                var utcMilliseconds = Date.UTC(+tmp[1], +tmp[2] - 1, +tmp[3], +tmp[4], +tmp[5], +tmp[6]);
408                return new Date(utcMilliseconds);
409            }
410        }
411        return date;
412    },
413    JSONToDate2: function (date) {
414        if (typeof date === 'string') {
415            var tmp = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)(?:([\+-])(\d{2})\:(\d{2}))?Z?$/.exec(date);
416            if (tmp) {
417                return (tmp[1] + '-' + tmp[2] + '-' + tmp[3] + ' ' + tmp[4] + ':' +tmp[5]);
418            }
419        }
420        return date;
421    }
422};
423
424//Referemce Link: https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
425var NumericFunction = {
426    IsInteger: function (e) {
427        if (e.keyCode === 13) { // enter key
428            e.stopPropagation();
429            e.preventDefault();
430            return;
431        }
432
433        //86 = v Key 
434        //67 = c Key
435        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||
436            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
437            (e.keyCode >= 35 && e.keyCode <= 40) ||
438            ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 86)) || ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 67))) {
439            return;
440        }
441        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
442            e.preventDefault();
443        }
444    },
445    IsDecimal: function (e, obj) {
446        var dotcontains = $(obj).val().indexOf(".") !== -1;
447        if (dotcontains) {
448            if ((e.keyCode === 190) || (e.keyCode === 110)) {
449                e.preventDefault();
450                return;
451            }
452        }
453
454        if (e.keyCode === 13) { // enter key
455            e.stopPropagation();
456            e.preventDefault();
457            return;
458        }
459
460        //110 & 190 = .
461        //86 = v Key 
462        //67 = c Key
463        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
464            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
465            (e.keyCode >= 35 && e.keyCode <= 40) ||
466            ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 86)) || ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 67))) {
467            return;
468        }
469        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
470            e.preventDefault();
471        }
472    },
473    ToNumeric: function (e, obj, value) {
474        var val = null;
475        var IsObject = false;
476
477        if ((obj !== undefined) && (obj !== 'undefined') && (obj) && (obj !== null)) {
478            IsObject = true;
479            val = $.trim($(obj).val()).replace(/,/g, '');
480        } else if ((value !== undefined) && (value !== 'undefined') && (value) && (value !== null)) {
481            val = value;
482        }
483        else {
484            val = 0;
485        }
486
487        if (IsObject) {
488            $(obj).val(val);
489        }
490        return val;
491    },
492    ToThousandFormat: function (e, obj, value, toDecimalPlace) {
493        var val = null;
494        var result = '';
495        var IsObject = false;
496
497        if ((obj !== undefined) && (obj !== 'undefined') && (obj) && (obj !== null)) {
498            IsObject = true;
499            val = $(obj).val();
500        } else if ((value !== undefined) && (value !== 'undefined') && (value) && (value !== null)) {
501            val = value;
502        }
503        else {
504            val = 0;
505        }
506
507        val = $.trim(val).replace(/,/g, '');
508        val += '';
509        var parts = val.split('.');
510        var part1 = $.trim(parts[0]);
511        var part2 = '';
512
513        if (part1 !== '') {
514            part1 = parseInt(part1).toString();
515
516            if ((parts.length > 1) && (toDecimalPlace > 0)) {
517                part2 = parts[1];
518            }
519            if (toDecimalPlace > 0) {
520                var i = part2.length;
521                for (vari = part2.length; i < (toDecimalPlace); i++) {
522                    part2 += '0';
523                }
524                part2 = '.' + part2;
525            }
526
527            var rgx = /(\d+)(\d{3})/;
528            while (rgx.test(part1)) {
529                part1 = part1.replace(rgx, '$1' + ',' + '$2');
530            }
531        }
532        //return part1 + part2;
533
534        if ((part1) && (part1 !== undefined) && (part1 !== 'undefined') && (part1 !== NaN) && (part1 !== 'NaN')) {
535            result = part1 + part2;
536        } else {
537            result = val;
538        }
539
540        if (IsObject) {
541            $(obj).val(result);
542        }
543        return (result);
544    },
545};
546
547var PostcodeFunction = {
548    IsNumericPostcode: function (e, obj, val) {
549        if (e.keyCode === 13) { // enter key
550            e.stopPropagation();
551            e.preventDefault();
552            return;
553        }
554
555        //86 = v Key 
556        //67 = c Key
557        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||
558            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
559            (e.keyCode >= 35 && e.keyCode <= 40) ||
560            ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 86)) || ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 67))) {
561            return;
562        }
563        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
564            e.preventDefault();
565        }
566    }
567};
568
569var PhoneFunction = {
570    IsPhone: function (e, obj, val) {
571        if (($(obj).val().length !== 0) && (((e.shiftKey) && (e.keyCode === 187)) || ((e.shiftKey) && (e.keyCode === 107)))) {
572            e.preventDefault();
573            return;
574        }
575
576        //var dotcontains = $(obj).val().indexOf("+") !== -1;
577        //if (dotcontains) {
578        //    if ((e.shiftKey) && (e.keyCode === 187) || (e.keyCode === 107)) {
579        //        e.preventDefault();
580        //        return;
581        //    }
582        //}
583
584        if (e.keyCode === 13) { // enter key
585            e.stopPropagation();
586            e.preventDefault();
587            return;
588        }
589
590        //187 & 107 = +
591        //86 = v Key 
592        //67 = c Key
593        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||
594            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
595            (e.keyCode >= 35 && e.keyCode <= 40) || ((e.shiftKey === true) && (e.keyCode === 187)) || ((e.shiftKey === true) && (e.keyCode === 107)) ||
596            ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 86)) || ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 67))) {
597            return;
598        }
599        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
600            e.preventDefault();
601        }
602    },
603    IsNumericPhone: function (e, obj, val) {
604    }
605};
606
607var GeneralFunction = {
608    IsISBN: function (e) {
609        if (e.keyCode === 13) { // enter key
610            e.stopPropagation();
611            e.preventDefault();
612            return;
613        }
614        //86 = v Key 
615        //67 = c Key
616        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 109, 189]) !== -1 ||
617            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
618            (e.keyCode >= 35 && e.keyCode <= 40) ||
619            ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 86)) || ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 67))) {
620            return;
621        }
622        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
623            e.preventDefault();
624        }
625    },
626}
627
628//Obsoleted
629var fadeOutAndHidden = function (obj, speed) {
630    if (!speed) {
631        speed = 'fast';
632    }
633    $(obj).each(function () {
634        $(this).fadeOut(speed, function () {
635            $(this).hide();
636        });
637    });
638};
639
640//Obsoleted
641var fadeInAndShow = function (obj, speed) {
642    if (!speed) {
643        speed = 'fast';
644    }
645    $(obj).each(function () {
646        $(this).fadeIn(speed, function () {
647            $(this).show();
648        });
649    });
650};
651
652$.fn.serializeObject = function () {
653    var arrayData, objectData;
654    arrayData = this.serializeArray();
655    objectData = {};
656
657    $.each(arrayData, function () {
658        var value;
659
660        if (this.value != null) {
661            value = this.value;
662        } else {
663            value = '';
664        }
665
666        if (objectData[this.name] != null) {
667            if (!objectData[this.name].push) {
668                objectData[this.name] = [objectData[this.name]];
669            }
670
671            objectData[this.name].push(value);
672        } else {
673            objectData[this.name] = value;
674        }
675    });
676
677    return objectData;
678};
679
680toastr.options = {
681    "closeButton": true,
682    "debug": false,
683    "newestOnTop": true,
684    "progressBar": true,
685    "positionClass": "toast-top-center",
686    "preventDuplicates": true,
687    "onclick": null,
688    "showDuration": "500",
689    "hideDuration": "1500",
690    "timeOut": "5000",
691    "extendedTimeOut": "1000",
692    "showEasing": "swing",
693    "hideEasing": "linear",
694    "showMethod": "fadeIn",
695    "hideMethod": "fadeOut"
696};
697
698function DatePickerByLocale() {
699    //return IsUk() ? "dd/mm/yyyy" : "mm/dd/yyyy";
700    return "dd M yyyy";
701}
702
703function DateFormatterByLocale() {
704    //return IsUk() ? "dd/mm/yy" : "mm/dd/yy";
705    return "dd M yy";
706}
707
708///return false if breakpoint unchange, new breakpoint if changed
709function GetMediaBreakPoint(breakpoints) {
710    var $useMatchMedia = typeof (window.matchMedia) === 'function';
711    var $breakpoint = 0;
712    var $width = $(window).width();
713    for (var i = breakpoints.length - 1; i >= 0; i--) {
714        if ($useMatchMedia) {
715            if (!window.matchMedia('(min-width: ' + breakpoints[i] + 'px)').matches) continue;
716        } else {
717            if ($width < breakpoints[i]) continue;
718        }
719        $breakpoint = i;
720        break;
721    }
722    return $breakpoint;
723}

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.