PageSourceSearch

http://premiervietnam.edu.vn/Content/vendor/jquery/script.js?v=20260924

js premiervietnam.edu.vn collected 2026-09-24 12:18:20 UTC 35,634 bytes, 1,183 lines download raw bytes

1function RemoveVietnameseTones(str) {
2    str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
3    str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
4    str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
5    str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
6    str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
7    str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
8    str = str.replace(/đ/g, "d");
9    str = str.replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, "A");
10    str = str.replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, "E");
11    str = str.replace(/Ì|Í|Ị|Ỉ|Ĩ/g, "I");
12    str = str.replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, "O");
13    str = str.replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, "U");
14    str = str.replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, "Y");
15    str = str.replace(/Đ/g, "D");
16    // Some system encode vietnamese combining accent as individual utf-8 characters
17    // Một vài bộ encode coi các dấu mũ, dấu chữ như một kí tự riêng biệt nên thêm hai dòng này
18    str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ""); // ̀ ́ ̃ ̉ ̣  huyền, sắc, ngã, hỏi, nặng
19    str = str.replace(/\u02C6|\u0306|\u031B/g, ""); // ˆ ̆ ̛  Â, Ê, Ă, Ơ, Ư
20    // Remove extra spaces
21    // Bỏ các khoảng trắng liền nhau
22    str = str.replace(/ + /g, " ");
23    str = str.trim();
24    // Remove punctuations
25    // Bỏ dấu câu, kí tự đặc biệt
26    str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'|\"|\&|\#|\[|\]|~|\$|_|`|-|{|}|\||\\/g, '');
27    str = str.replace(/\s/g, '-')
28    return str.toLowerCase();
29}
30
31function PreventScreen(result) {
32    if (GroupPermission != 'NQ00000006') {
33        if (result) {
34            $('body').bind('cut copy', function (e) {
35                e.preventDefault();
36            });
37
38            //$("body").on("contextmenu", function (e) {
39            //    return false;
40            //});
41        }
42        else {
43            $('body').unbind('cut copy');
44        }
45    }
46}
47
48function PreventCopyPaste() {
49    if (GroupPermission != 'NQ00000006') {
50        $('.prevent-copy-paste').bind('cut copy', function (e) {
51            e.preventDefault();
52        });
53    }
54}
55
56function SubStringText(val, length) {
57    if (val != null) {
58        if (val.length > length) {
59            return val.substring(0, length) + '...';
60        }
61        else {
62            return val;
63        }
64    }
65    else {
66        return val;
67    }
68}
69
70function convertToMoney(value) {
71    var res = value.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '')
72    return res;
73}
74
75function repalaceAttachNameFile(value) {
76    var res = value.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '')
77    return res;
78}
79
80function isNull(string) {
81    if (string != null && string != '')
82        return string
83    else {
84        return ''
85    }
86
87}
88
89function isNullOut(string, out) {
90    if (string != null && string != '')
91        return string
92    else {
93        return out
94    }
95
96}
97
98function StartLoading() {
99    $('.loading').css('display', 'block');
100    $('#body').css('opacity', '80%');
101}
102
103function EndLoading() {
104    $('.loading').css('display', 'none');
105    $('#body').css('opacity', '100%');
106}
107
108function getDayInWeek(date) {
109    var thuTrongTuan = "";
110    switch (new Date(date).getDay()) {
111        case 1:
112            thuTrongTuan = "Thứ Hai";
113            break;
114        case 2:
115            thuTrongTuan = "Thứ Ba";
116            break;
117        case 3:
118            thuTrongTuan = "Thứ Tư";
119            break;
120        case 4:
121            thuTrongTuan = "Thứ Năm";
122            break;
123        case 5:
124            thuTrongTuan = "Thứ Sáu";
125            break;
126        case 6:
127            thuTrongTuan = "Thứ Bảy";
128            break;
129        default:
130            thuTrongTuan = "Chủ Nhật";
131    }
132    return thuTrongTuan;
133}
134
135function addDays(dateObj, numDays) {
136    dateObj.setDate(dateObj.getDate() + numDays);
137    return dateObj;
138}
139
140function getDayInWeekShort(date) {
141    var thuTrongTuan = "";
142    switch (new Date(date).getDay()) {
143        case 1:
144            thuTrongTuan = "Mo";
145            break;
146        case 2:
147            thuTrongTuan = "Tu";
148            break;
149        case 3:
150            thuTrongTuan = "We";
151            break;
152        case 4:
153            thuTrongTuan = "Th";
154            break;
155        case 5:
156            thuTrongTuan = "Fr";
157            break;
158        case 6:
159            thuTrongTuan = "Sa";
160            break;
161        default:
162            thuTrongTuan = "Su";
163    }
164    return thuTrongTuan;
165}
166
167function ConvertToDateDDMMYYYY(dateStr) {
168    //var parts = dateStr.split("/")
169    //return new Date(parts[1] - 1, parts[2], parts[0])
170    return dateStr;
171}
172
173function ConvertDateToDDMMYYYY(dateStr) {
174    var today = new Date(dateStr);
175    var dd = String(today.getDate()).padStart(2, '0');
176    var mm = String(today.getMonth() + 1).padStart(2, '0');
177    var yyyy = today.getFullYear();
178    today = yyyy + mm + dd;
179    return today;
180}
181
182function ConvertDateToMMDDYYYY(dateStr) {
183    var today = new Date(dateStr);
184    var dd = String(today.getDate()).padStart(2, '0');
185    var mm = String(today.getMonth() + 1).padStart(2, '0');
186    var yyyy = today.getFullYear();
187    today = mm + '-' + dd + '-' + yyyy;
188    return today;
189}
190
191function DatePicker() {
192    $(".datepicker").datepicker();
193    $(".datepicker").datepicker("option", "dateFormat", "mm/dd/yy");
194}
195
196function scrollData(emlement, divConent, valueFind) {
197    //Set màu cho các class lab-phieu-thu là màu đen
198    $('.' + emlement + '').css('color', 'black');
199    //Set màu cho class lab-phieu-thu, class được tìm thấ
200    $('#' + valueFind + '').find('.' + emlement + '').css('color', 'red');
201    //Đưa scroll lên top
202    $('#' + divConent + '').scrollTop(0);
203    //Thực thi lệnh scroll tới element cần tìm
204    $('#' + divConent + '').animate({
205        scrollTop: $('#' + valueFind + '').offset().top - 200
206    }, 2000);
207}
208
209
210function validateInput() {
211    //Validate Ngày Tháng Năm
212    $('.dateTimeKyNguyen').focusout(function () {
213        var input = $(this).val();
214        var pattern = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
215        if (!pattern.test(input)) {
216            $(this).focus();
217            $(this).css("background-color", "Red");
218        }
219        else {
220            $(this).css("background-color", "white");
221        }
222    });
223
224    //Validate Number Phone
225    $('.NumberPhoneKyNguyen').focusout(function () {
226        var input = $(this).val();
227        var pattern = /^\d{10}$/;
228        if (!pattern.test(input)) {
229            $(this).focus();
230            $(this).css("background-color", "Red");
231        }
232        else {
233            $(this).css("background-color", "white");
234        }
235    });
236
237    //Validate Number Phone
238    $('.MoneyKyNguyen').focusout(function () {
239        var input = $(this).val();
240        var pattern = /^[0-9]\d*(?:\.\d{0,2})?$/;
241        if (!pattern.test(input)) {
242            $(this).focus();
243            $(this).css("background-color", "Red");
244        }
245        else {
246            $(this).css("background-color", "white");
247        }
248    });
249
250    //Validate Number
251    $('.NumberKyNguyen').focusout(function () {
252        var input = $(this).val();
253        var pattern = /^[0-9]\d*(?:\.\d{0,2})?$/;
254        if (!pattern.test(input)) {
255            $(this).focus();
256            $(this).css("background-color", "Red");
257        }
258        else {
259            $(this).css("background-color", "white");
260        }
261    });
262}
263
264var ChuSo = new Array(" không ", " một ", " hai ", " ba ", " bốn ", " năm ", " sáu ", " bảy ", " tám ", " chín ");
265var Tien = new Array("", " nghìn", " triệu", " tỷ", " nghìn tỷ", " triệu tỷ");
266
267//1. Hàm đọc số có ba chữ số;
268function DocSo3ChuSo(baso) {
269    var tram;
270    var chuc;
271    var donvi;
272    var KetQua = "";
273    tram = parseInt(baso / 100);
274    chuc = parseInt((baso % 100) / 10);
275    donvi = baso % 10;
276    if (tram == 0 && chuc == 0 && donvi == 0) return "";
277    if (tram != 0) {
278        KetQua += ChuSo[tram] + " trăm ";
279        if ((chuc == 0) && (donvi != 0)) KetQua += " linh ";
280    }
281    if ((chuc != 0) && (chuc != 1)) {
282        KetQua += ChuSo[chuc] + " mươi";
283        if ((chuc == 0) && (donvi != 0)) KetQua = KetQua + " linh ";
284    }
285    if (chuc == 1) KetQua += " mười ";
286    switch (donvi) {
287        case 1:
288            if ((chuc != 0) && (chuc != 1)) {
289                KetQua += " mốt ";
290            }
291            else {
292                KetQua += ChuSo[donvi];
293            }
294            break;
295        case 5:
296            if (chuc == 0) {
297                KetQua += ChuSo[donvi];
298            }
299            else {
300                KetQua += " lăm ";
301            }
302            break;
303        default:
304            if (donvi != 0) {
305                KetQua += ChuSo[donvi];
306            }
307            break;
308    }
309    return KetQua;
310}
311
312//2. Hàm đọc số thành chữ (Sử dụng hàm đọc số có ba chữ số)
313
314function DocTienBangChu(SoTien) {
315
316    SoTien = SoTien.toString().replace(/,/gi, "");
317
318    var lan = 0;
319    var i = 0;
320    var so = 0;
321    var KetQua = "";
322    var tmp = "";
323    var ViTri = new Array();
324    if (SoTien < 0) return "Số tiền âm !";
325    if (SoTien == 0) return "Không đồng !";
326    if (SoTien > 0) {
327        so = SoTien;
328    }
329    else {
330        so = -SoTien;
331    }
332    if (SoTien > 8999999999999999) {
333        //SoTien = 0;
334        return "Số quá lớn!";
335    }
336    ViTri[5] = Math.floor(so / 1000000000000000);
337    if (isNaN(ViTri[5]))
338        ViTri[5] = "0";
339    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;
340    ViTri[4] = Math.floor(so / 1000000000000);
341    if (isNaN(ViTri[4]))
342        ViTri[4] = "0";
343    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;
344    ViTri[3] = Math.floor(so / 1000000000);
345    if (isNaN(ViTri[3]))
346        ViTri[3] = "0";
347    so = so - parseFloat(ViTri[3].toString()) * 1000000000;
348    ViTri[2] = parseInt(so / 1000000);
349    if (isNaN(ViTri[2]))
350        ViTri[2] = "0";
351    ViTri[1] = parseInt((so % 1000000) / 1000);
352    if (isNaN(ViTri[1]))
353        ViTri[1] = "0";
354    ViTri[0] = parseInt(so % 1000);
355    if (isNaN(ViTri[0]))
356        ViTri[0] = "0";
357    if (ViTri[5] > 0) {
358        lan = 5;
359    }
360    else if (ViTri[4] > 0) {
361        lan = 4;
362    }
363    else if (ViTri[3] > 0) {
364        lan = 3;
365    }
366    else if (ViTri[2] > 0) {
367        lan = 2;
368    }
369    else if (ViTri[1] > 0) {
370        lan = 1;
371    }
372    else {
373        lan = 0;
374    }
375    for (i = lan; i >= 0; i--) {
376        tmp = DocSo3ChuSo(ViTri[i]);
377        KetQua += tmp;
378        if (ViTri[i] > 0) KetQua += Tien[i];
379        if ((i > 0) && (tmp.length > 0)) KetQua += ',';
380    }
381    if (KetQua.substring(KetQua.length - 1) == ',') {
382        KetQua = KetQua.substring(0, KetQua.length - 1);
383    }
384    KetQua = KetQua.substring(1, 2).toUpperCase() + KetQua.substring(2);
385    return KetQua + ' nghìn đồng chẵn.';
386}
387
388
389function formatMoney(n, currency) {
390    return (n.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,")).replace(".00", "") + " " + currency;
391
392}
393
394$(function () {
395    $.ajaxSetup({
396        cache: false
397    });
398});
399$(document).ready(function () {
400    FormatTimepicker();
401});
402
403function MergeDateAndTime(Date, Time) {
404    return Date + ' ' + Time;
405}
406
407function SplitDate(DateTime) {
408    return DateTime.substring(0, 10);
409}
410
411function SplitHour(DateTime) {
412    return DateTime.substring(11).substring(0, 5);
413}
414
415function SplitHourMMSS(DateTime) {
416    return DateTime.substring(11);
417}
418
419
420function FormatDatetimepicker(idDatetimepicker) {
421    /*
422    $(idDatetimepicker).datetimepicker({
423        format: 'yyyy/mm/dd',
424        showTimepicker: false,
425        weekStart: 1,
426        todayBtn: 1,
427        autoclose: 1,
428        todayHighlight: 1,
429        startView: 2,
430        forceParse: 0,
431        showMeridian: 1
432    });
433    */
434    $(idDatetimepicker).datepicker({
435        language: "ja",
436        format: 'yyyy/mm/dd',
437        orientation: "bottom",
438        autoclose: true,
439        useCurrent: false
440    });
441}
442function FormatTimepicker() {
443    //$(".input_time_field").timepicki({
444    //    show_meridian: false
445    //});
446
447    //$(".input_time_field").change(function(){
448    //    alert("d");
449    //});
450}
451function texboxCharacterColor(id) {
452    $(id).ColorPicker({
453        color: '#0000ff',
454        onShow: function (colpkr) {
455            $(colpkr).fadeIn(500);
456            return false;
457        },
458        onHide: function (colpkr) {
459            $(colpkr).fadeOut(500);
460            return false;
461        },
462        onSubmit: function (hsb, hex, rgb, el) {
463            $(el).val("#" + hex);
464
465        }
466    });
467}
468
469function texboxBackgroundColor(id) {
470    $(id).ColorPicker({
471        color: '#0000ff',
472        onShow: function (colpkr) {
473            $(colpkr).fadeIn(500);
474            return false;
475        },
476        onHide: function (colpkr) {
477            $(colpkr).fadeOut(500);
478            return false;
479        },
480        onSubmit: function (hsb, hex, rgb, el) {
481            $(el).val("#" + hex);
482        }
483    });
484}
485
486
487function checkboxAllOn() {
488    $(".btn-check-all-on").click(function () {
489        $(this).parents(".kyoku-content:first").find(":checkbox:not(.checkbox-article)").prop('checked', "checked");
490    })
491}
492
493function checkboxAllOff() {
494    $(".btn-check-all-off").click(function () {
495        $(this).parents(".kyoku-content:first").find(":checkbox:not(.checkbox-article)").prop('checked', false);
496    })
497}
498
499function setEditingFla(rootEle) {
500    var $editFlagEle = rootEle.find(".editedFlg");
501    if ($editFlagEle.val() == "0" || $editFlagEle.val() == "") {
502        $editFlagEle.val("1");// //update
503    }
504}
505
506function getAllData(template) {
507    var dataArray = [];
508    $(template).each(function () {
509        var $this = $(this);
510        var data = mappingDataToJson($this);
511        dataArray.push(data);
512    });
513    return dataArray;
514}
515
516function ButtonCollapse(id) {
517    $(id).click(function () {
518        $(this).find('span').toggleClass('glyphicon glyphicon-plus').toggleClass('glyphicon glyphicon-minus');
519    });
520}
521
522function ConvertChecked(string) {
523    var result = "Checked";
524    if (string != "1")
525        result = "";
526    return result;
527}
528
529function mappingDataToJson(divEle) {
530    var rootEle = $(divEle);
531    var fields = rootEle.find("input,select,textarea");
532    var resultJson = {};
533    fields.each(function (index) {
534        var $this = $(this);
535        var fieldName = $this.attr("data-fieldname");
536        if (typeof fieldName != "undefined") {
537            var fieldvar = $this.val();
538            if (typeof (fieldvar) == 'undefined')
539                fieldvar = $this.attr('value');
540            if ($this.is(":checkbox")) {
541                if ($this.is(":checked"))
542                    fieldvar = 1;
543                else
544                    fieldvar = 0;
545            }
546            else if ($this.is(":radio")) {
547                if ($this[0].checked) {
548                    fieldvar = $this[0].value;
549                }
550                else
551                    return;
552            }
553            else if ($this.is(":button") && $this.hasClass("color-picker")) {
554                fieldvar = $this.data("color");
555                if (typeof (fieldvar) == "undefined") {
556                    fieldvar = $this.attr("data-color");
557                }
558            }
559            resultJson[fieldName] = fieldvar;
560        }
561    });
562
563    return resultJson;
564}
565
566function mappingJsonDataToField(divEle, jsonData) {
567    var rootEle = $(divEle);
568    var fields = rootEle.find("input,select, textarea");
569    fields.each(function (index) {
570        var $this = $(this);
571        var fieldName = $this.attr("data-fieldname");
572        if (typeof fieldName != "undefined") {
573            var data = jsonData[fieldName];
574            if (typeof data != "undefined" && data != null) {
575                //Convert If data is TimeJson
576                if (data.toString().includes("/Date(")) {
577                    data = ConvertStringToDate(data);
578                }
579                //if ($this.attr("data-type") == "date") {
580                //    data = ConvertStringToDate(data);
581                //}
582                if ($this.is(":checkbox")) {
583                    if (data == "1") {
584                        $this.prop("checked", true);
585                    }
586                } else if ($this.is(":button") && $this.hasClass("color-picker")) {
587                    $this.data("color", data);
588                }
589                else if ($this.is("select")) {
590                    $this.val(data);
591                }
592                else if ($this.is(":file")) {
593                    
594                }
595                else {
596                    if (data.constructor.name == 'Number') {
597                        $this.val(formatMoney(data, ''));
598                    }
599                    else {
600                        $this.val(data);
601                    }
602                }
603                //if ($this.is(":color")) {
604                //    $this.css("background-color", fieldvar);
605                //} 
606            }
607            //var valueCode = jsonData["CODE_ID"];
608            //$('option').each(function () {
609            //    var valueCode2 = $('option').val();
610            //    if (valueCode == valueCode2) {
611            //        $(this).prop('selected', true);
612            //    }
613            //});
614        }
615    });
616}
617
618
619function protectScreen(flg, immediately) {
620    if (!flg && typeof (immediately) == "undefined") {
621        setTimeout(function () {
622            protectScreen(false, true);
623        }, 200);
624        return;
625    }
626
627    var allField = $(":button, a");
628    allField.each(function () {
629        var $this = $(this);
630        if (flg) {
631            if ($this.prop("disabled") || !$this.is(":visible")) {
632                return;
633            }
634
635            $this.prop("disabled", true);
636            $this.data("protectedFlg", true);
637        } else {
638            if (!$this.prop("disabled")) {
639                return;
640            }
641            if ($this.data("protectedFlg")) {
642                $this.prop("disabled", false);
643                $this.data("protectedFlg", false);
644            }
645        }
646    });
647
648
649    // sortable protect
650    var allSortTable = $(".ui-sortable");
651    allSortTable.each(function () {
652        var $this = $(this);
653        var disabled = $this.sortable("option", "disabled");
654        if (flg) {
655
656            if (disabled) {
657                return;
658            }
659
660            $this.sortable("disable");
661            $this.data("protectedFlg", true);
662        } else {
663            if (!disabled) {
664                return;
665            }
666            if ($this.data("protectedFlg")) {
667                $this.sortable("enable");
668                $this.data("protectedFlg", false);
669            }
670        }
671    });
672}
673
674function ConvertStringToCode(string) {
675    var subCurrentObj = string.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1');
676    var currentConvertObj = new Date(parseInt(subCurrentObj));
677    var vYear = currentConvertObj.getFullYear();
678
679    var vMonth = currentConvertObj.getDate();
680    vMonth = leftPad(vMonth, "0", 2);
681
682    var vDay = currentConvertObj.getMonth() + 1;
683    vDay = leftPad(vDay, "0", 2);
684
685    var vHH = currentConvertObj.getHours();
686    vHH = leftPad(vHH, "0", 2);
687
688    var vMM = currentConvertObj.getMinutes();
689    vMM = leftPad(vMM, "0", 2);
690
691    var vSS = currentConvertObj.getSeconds();
692    vSS = leftPad(vSS, "0", 2);
693
694    var currentObj = vYear + vMonth + vDay;
695
696    return currentObj;
697}
698
699function ConvertStringToDate(string) {
700    var subCurrentObj = string.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1');
701    var currentConvertObj = new Date(parseInt(subCurrentObj));
702    var vYear = currentConvertObj.getFullYear();
703
704    var vMonth = currentConvertObj.getDate();
705    vMonth = leftPad(vMonth, "0", 2);
706
707    var vDay = currentConvertObj.getMonth() + 1;
708    vDay = leftPad(vDay, "0", 2);
709
710    var vHH = currentConvertObj.getHours();
711    vHH = leftPad(vHH, "0", 2);
712
713    var vMM = currentConvertObj.getMinutes();
714    vMM = leftPad(vMM, "0", 2);
715
716    var vSS = currentConvertObj.getSeconds();
717    vSS = leftPad(vSS, "0", 2);
718
719    var currentObj = vDay + "/" + vMonth + "/" + vYear;
720
721    return currentObj;
722}
723
724function ConvertStringToDateFormatDDMMYYYY(string) {
725    var subCurrentObj = string.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1');
726    var currentConvertObj = new Date(parseInt(subCurrentObj));
727    var vYear = currentConvertObj.getFullYear();
728
729    var vDay = currentConvertObj.getDate();
730    vDay = leftPad(vDay, "0", 2);
731
732    var vMonth = currentConvertObj.getMonth() + 1;
733    vMonth = leftPad(vMonth, "0", 2);
734
735    var vHH = currentConvertObj.getHours();
736    vHH = leftPad(vHH, "0", 2);
737
738    var vMM = currentConvertObj.getMinutes();
739    vMM = leftPad(vMM, "0", 2);
740
741    var vSS = currentConvertObj.getSeconds();
742    vSS = leftPad(vSS, "0", 2);
743
744    var currentObj = vDay + "/" + vMonth + "/" + vYear;
745
746    return currentObj;
747}
748
749function ConvertStringToDateFormatDDMMYYYYHHMM(string) {
750    var subCurrentObj = string.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1');
751    var currentConvertObj = new Date(parseInt(subCurrentObj));
752    var vYear = currentConvertObj.getFullYear();
753
754    var vDay = currentConvertObj.getDate();
755    vDay = leftPad(vDay, "0", 2);
756
757    var vMonth = currentConvertObj.getMonth() + 1;
758    vMonth = leftPad(vMonth, "0", 2);
759
760    var vHH = currentConvertObj.getHours();
761    vHH = leftPad(vHH, "0", 2);
762
763    var vMM = currentConvertObj.getMinutes();
764    vMM = leftPad(vMM, "0", 2);
765
766    var vSS = currentConvertObj.getSeconds();
767    vSS = leftPad(vSS, "0", 2);
768
769    var currentObj = vDay + "/" + vMonth + "/" + vYear + " " + vHH + ":" + vMM;
770
771    return currentObj;
772}
773
774function generatorId() {
775    return "generated" + (Math.round(Math.random() * 100000000000));
776
777}
778
779function leftPad(str, char, length) {
780    return Array(length - String(str).length + 1).join(char || '0') + str;
781}
782
783if (!String.prototype.format) {
784    String.prototype.format = function () {
785        var args = arguments;
786        return this.replace(/{(\d+)}/g, function (match, number) {
787            return typeof args[number] != 'undefined'
788                ? args[number]
789                : match
790                ;
791        });
792    };
793}
794
795jQuery(document).ready(function ($) {
796    ////Datepicker
797    //$('.datepicker').datepicker({
798    //    language: "ja",
799    //    format: "yyyy年mm月dd日",
800    //    orientation: "bottom",
801    //    autoclose: true,
802    //    useCurrent: false,
803    //});
804
805    //$('.date').click(function () {
806    //    var input = $(this).find('input');
807    //    input.focus();
808    //    if (input.is(':focus') == true) {
809    //        if (input.val() == '') {
810    //            input.parent().datepicker("setDate", null);
811
812    //        }
813    //        else {
814    //            input.parent().datepicker("setDate", input.val());
815    //        }
816    //    }
817
818    //    $('.datepicker-dropdown').removeClass("datepicker-orient-top");
819    //    $('.datepicker-dropdown').addClass("datepicker-orient-bottom");
820    //    $('.datepicker-dropdown').css('margin-top', '30px');
821
822    //    if ($(document).height() > $(window).height()) {
823    //        $('.datepicker-dropdown').addClass("datepicker-orient-top");
824    //        $('.datepicker-dropdown').removeClass("datepicker-orient-bottom");
825    //        $('.datepicker-dropdown').css('margin-top', '-265px');
826    //    }
827    //});
828
829    ////Prevent paste char 2 bytes
830    //$(".checkpaste").on('input', function () {
831    //    var res = '';
832    //    var max = 255;
833    //    var str = $(this).val();
834    //    var bytes = new Array(str.length);
835    //    for (var i = 0; i < str.length; ++i) {
836    //        if (str.charCodeAt(i) <= max) {
837    //            res += str.charAt(i);
838    //        }
839    //    }
840    //    $(this).val(res);
841    //});
842
843    //$('.checkNumberKey').on('input', function (e) {
844    //    var value = $(this).val();
845    //    var res = '';
846    //    for (var i = 0; i < value.length; i++) {
847    //        var charCode = ($(this).val()).charAt(i);
848    //        var n = Number(charCode);
849    //        if (!isNaN(n)) {
850    //            res += n;
851    //        }
852    //    }
853    //    $(this).val(res);
854    //});
855
856    ////スムーズスクロール
857    //$('.onTop').click(function () {
858    //    // スクロールスピード
859    //    var speed = 500;
860    //    // トップへ移動する
861    //    var position = 0
862    //    // リンク先へスムーズに移動する
863    //    $("html, body").animate({ scrollTop: position }, speed, "swing");
864    //});
865
866    //$('.control-disabled').prop('disabled', true);
867    //$('.control-enabled').prop('disabled', true);
868    //$('.control-readonly').prop('readonly', true);
869
870    ////Set focus
871    //$('.control-focus').focus();
872
873    //$('button:reset').click(function () {
874    //    $('.control-focus').focus();
875    //})
876
877    //$('input:reset').click(function () {
878    //    $('.control-focus').focus();
879    //})
880
881    //$('.currency').focus(function () {
882    //    var val = $(this).val();
883    //    if (val != 0) {
884    //        val = val.toString().replace(/,/g, '');
885    //    }
886    //    else {
887    //        val = '';
888    //    }
889
890    //    $(this).val(val);
891    //});
892
893    //$('.currency').focusout(function () {
894    //    var val = $(this).val();
895    //    if (val == '' || val == undefined) {
896    //        val = 0;
897    //    }
898    //    else {
899    //        val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
900    //    }
901
902    //    $(this).val(val);
903    //});
904    //// Fix witdh progress
905    //fixWitdhProgress();
906
907    //// Handle checkbox
908    //$('#search-result').on('draw.dt', function () {
909    //    var count = 0;
910    //    if ($('#search-result input.select-checkbox').length > 0) {
911    //        $("#checkAll").prop("disabled", false);
912    //    } else {
913    //        $("#checkAll").prop("disabled", true);
914    //    }
915
916    //    $('#search-result input.select-checkbox').each(function () {
917    //        if ($(this).is(':checked') == true) {
918    //            count++;
919    //        }
920    //    });
921
922    //    if (count == $('#search-result input.select-checkbox').length && count > 0) {
923    //        $('#checkAll').prop('checked', true);
924    //    }
925    //    else {
926    //        $('#checkAll').prop('checked', false);
927    //    }
928    //    $('.dataTables_scrollBody').css('min-height', $('#search-result').attr('datatable-height') + 'px');
929    //});
930
931    //$('textarea[ismaxrows=true]').on('keypress', function (event) {
932    //    var textarea = $(this),
933    //        numberOfLines = (textarea.val().match(/\n/g) || []).length + 1,
934    //        maxRows = parseInt(textarea.attr('rows'));
935
936    //    if (event.which === 13 && numberOfLines === maxRows) {
937    //        return false;
938    //    }
939    //});
940});
941
942////Datepicker
943//; (function ($) {
944//    $.fn.datepicker.dates['ja'] = {
945//        days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"],
946//        daysShort: ["日", "月", "火", "水", "木", "金", "土"],
947//        daysMin: ["日", "月", "火", "水", "木", "金", "土"],
948//        months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
949//        monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
950//        today: "今日",
951//        format: "yyyy年mm月dd日",
952//        titleFormat: "yyyy年mm月",
953//        clear: "クリア"
954//    };
955//}(jQuery));
956
957//TO DO Bao Pagination By dataTable
958function dataTable(page_length) {
959    var patt = new RegExp("^(([0-9]+)(,{0,1})([0-9]+))+$");
960    var test = patt.test(page_length);
961    var KeyPaging = [];
962    var ValuePaging = [];
963    var Menu = [];
964    if (test == true) {
965        var len = page_length.split(',');
966        for (var i = 0; i < len.length; i++) {
967            KeyPaging.push(parseInt(len[i]));
968        }
969        KeyPaging.push(-1);
970        ValuePaging = page_length.split(',');
971        ValuePaging.push("全て");
972        Menu.push(KeyPaging);
973        Menu.push(ValuePaging);
974    }
975    else {
976        Menu = [[10, 20, 50, 100, -1], [10, 20, 50, 100, "全て"]];
977    }
978
979    var $dataTable = $('#search-result');
980
981    function retren(len) {
982        return function (data, type, row) {
983            return type === 'display' && data.length > len ? data.substr(0, len) + '…' : data;
984        }
985
986    }
987
988    var groupcol = $dataTable.find('colgroup');
989    var col = [];
990    groupcol.find('col').each(function () {
991        col.push({ "width": $(this).attr('value') });
992    });
993
994    var options = {
995        info: true,
996        paging: true,
997        ordering: false,
998        searching: false,
999        processing: false,
1000        scrollY: $('#search-result').attr('dt-fixed-height') + 'px',
1001        scrollX: true,
1002        lengthMenu: Menu,
1003        pageLength: KeyPaging[0],
1004        columns: col,
1005        language: {
1006            emptyTable: 'データがありません',
1007            zeroRecords: '条件に一致するデータが見つかりません',
1008            info: '_TOTAL_ 件中 _START_ - _END_ 件目を表示 ',
1009            infoEmpty: '0ä»¶',
1010            infoFiltered: '(全 MAX 件)',
1011            lengthMenu: '_MENU_ 件/ページ',
1012            processing: '処理中…',
1013            search: '検索:',
1014            paginate: {
1015                first: '最初へ',
1016                previous: '前へ',
1017                next: '次へ',
1018                last: '最後へ'
1019            },
1020            aria: {
1021                sortAscending: '昇順に並べ替え',
1022                sortDescending: '降順に並べ替え',
1023                paginate: {
1024                    first: '最初のページに移動',
1025                    previous: '前のページに移動',
1026                    next: '次のページに移動',
1027                    last: '最後のページに移動'
1028                }
1029            }
1030        }
1031    };
1032
1033    // 高さを取得
1034    var dtHeight = $dataTable.data("dt-height");
1035    if (typeof dtHeight === "number") {
1036        options.scrollY = dtHeight;
1037    }
1038
1039    // 固定列数を取得
1040    var dtFixedCols = $dataTable.data("dt-fixed-cols");
1041    if (typeof dtFixedCols === "number") {
1042        options.fixedColumns.leftColumns = dtFixedCols;
1043    }
1044
1045    // 情報を表示するかを取得
1046    var dtInfo = $dataTable.data("dt-info");
1047    if (typeof dtInfo === "boolean") {
1048        options.info = dtInfo;
1049    }
1050
1051    // ページングを行うかを取得
1052    var dtPaging = $dataTable.data("dt-paging");
1053    if (typeof dtPaging === "boolean") {
1054        options.paging = dtPaging;
1055    }
1056
1057    // 変換実行
1058    var table = $dataTable.DataTable(options);
1059    var info = $('#search-result_info').parent();
1060    info.removeClass();
1061    info.addClass('col-xs-4');
1062    info.addClass('col-sm-4');
1063    info.addClass('col-md-4');
1064
1065    var paginate = $('#search-result_paginate').parent();
1066    paginate.removeClass();
1067    paginate.addClass('col-xs-6');
1068    paginate.addClass('col-sm-6');
1069    paginate.addClass('col-md-6');
1070
1071    var length = $('#search-result_length').parent();
1072    length.removeClass();
1073    length.addClass('col-xs-2');
1074    length.addClass('col-sm-2');
1075    length.addClass('col-md-2');
1076    length.css('margin-top', '3px');
1077    length.insertBefore(info);
1078
1079    var paging = $('#search-result_length select');
1080    paging.removeClass();
1081    paging.addClass('fix-control');
1082}
1083
1084//Reset Table
1085function resetTable() {
1086    if ($("#search-result tbody tr td").length > 1) {
1087        $("#search-result tbody tr").detach();
1088        $("#search-result_length").hide();
1089        $("#search-result_info").hide();
1090        $("#search-result_paginate").hide();
1091        var html = '<tr class="odd">
1091<td class="dataTables_empty" valign="top" colspan="100">データがありません</td></tr>';
1092        $("#search-result tbody").append(html);
1093    }
1094}
1095
1096// table has data show page number
1097// table doesn't have data hide page number
1098function pageNumberDisplay() {
1099    var len = $('#search-result tbody tr td').length;
1100    if (len > 1) {
1101        $("#search-result_length").show();
1102        $("#search-result_info").show();
1103        $("#search-result_paginate").show();
1104    }
1105    else {
1106        $("#search-result_length").hide();
1107        $("#search-result_info").hide();
1108        $("#search-result_paginate").hide();
1109    }
1110}
1111
1112// Fix witdh label of progress
1113function fixWitdhProgress() {
1114    var progresses = $('.progress').each(function () {
1115        var path = $(this).find('.path');
1116        path.width($(this).width() - 10);
1117    });
1118
1119}
1120
1121function errorProcess(errorResponse) {
1122    protectScreen(false);
1123    console.log(JSON.stringify(errorResponse));
1124    // window.location.href = jQuery.parseJSON(data.responseText).url;
1125    alert("Error, detail view console");
1126}
1127
1128var executeProcessList = {
1129    queuce: [],
1130    completeCallback: null,
1131    errorCallback: null,
1132    beginExecute: function (completeFunc, errorFunc) {
1133        // console.log("executeProcessList");
1134        this.completeCallback = completeFunc;
1135        this.errorCallback = errorFunc;
1136
1137        this.nextProcess();
1138    },
1139    endCurrentProccess: function () {
1140        this.queuce.shift();
1141        this.nextProcess();
1142    },
1143    stopProcess: function (isComplete) {
1144        if (isComplete) {
1145            if (this.completeCallback != null) {
1146                this.completeCallback.apply(null);
1147            }
1148        } else {
1149            if (this.errorCallback != null) {
1150                this.errorCallback.apply(null);
1151            }
1152        }
1153        queuce = [];
1154    },
1155    nextProcess: function () {
1156        if (this.queuce.length <= 0) {
1157            this.stopProcess(true);
1158            return;
1159        }
1160
1161        var currentFunction = this.queuce[0];
1162        // console.log(currentFunction.toString());
1163        if (typeof (currentFunction) == "function") {
1164            currentFunction.apply(null);
1165            return;
1166        }
1167        currentFunction[0].apply(null, Array.prototype.slice.call(
1168            currentFunction, 1));
1169    }
1170};
1171
1172function checkAllCheckbox(me, parentSelector, flg) {
1173    var div = $(me).parents(parentSelector);
1174    var allCheckBox = div.find(":checkbox");
1175    allCheckBox.prop("checked", flg);
1176    allCheckBox.trigger("change");
1177}
1178
1179function getFileNameInPath(yourstring) {
1180    var fileNameIndex = yourstring.lastIndexOf("/") + 1;
1181    var filename = yourstring.substr(fileNameIndex);
1182    return filename;
1183}

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.