PageSourceSearch

https://jiasoft.kr/js/app.js?v=1790262299

js jiasoft.kr collected 2026-09-24 15:05:09 UTC 10,502 bytes, 330 lines download raw bytes

1
2/* scroll */
3// $(document).ready(function(){ navbarScroll(); });
4// $(document).scroll(function() { navbarScroll(); });
5//
6// let delta = true;
7
8// function navbarScroll() {
9    /* header */
10    // let lastScrollTop = 0;
11    // let delta = 5;
12    // let navbarHeight = $('header').outerHeight();
13    //
14    // window.scroll(function(event) {
15    //     let st = $(this).scrollTop();
16    //
17    //     if(Math.abs(lastScrollTop - st) <= delta)
18    //         return;
19    //
20    //     if (st > lastScrollTop && st > navbarHeight) {
21    //         // Scroll Down
22    //         $('header').css('display', 'none');
23    //     } else if (st + $(window).height() < $(document).height()) {
24    //         // Scroll Up
25    //         $('header').css('top', '0px');
26    //     }
27    //
28    //     lastScrollTop = st;
29    // });
30// }
31
32$(document).ready(function() {
33    if ($('.sub-nav').length) {
34        let $scroller = $('.sub-nav');
35        let scrollTo = $('.sub-nav .active').position().left - 60;
36        $scroller.animate({'scrollLeft': scrollTo}, 0);
37    }
38
39    let nav_list = $(".multi-nav");
40    let nav_active = nav_list.index($(".multi-nav.active"));
41
42    nav_list.hover(
43        function() {
44            if (nav_active !== -1) {
45                nav_list.eq(nav_active).removeClass("active");
46            }
47            $(this).addClass("multi-nav-show");
48        },
49        function() {
50            $(this).removeClass("multi-nav-show")
51            if (nav_active !== -1) {
52                nav_list.eq(nav_active).addClass("active");
53            }
54        }
55    );
56
57    let $sidebar = $("#sidebar" );
58
59    $sidebar.simplerSidebar({
60        opener: "sidebar-trigger",
61        align: "right",
62        attr: "sidebar",
63        selectors: {
64            trigger: "#sidebar-trigger",
65            quitter: ".quitter"
66        },
67        sidebar: {
68            width: '100%',
69        },
70        animation: {
71            easing: "easeOutQuint"
72        },
73        events: {
74            callbacks: {
75                animation: {
76                    open: function (){
77                        $("body").css('overflow', 'hidden');
78                    },
79
80                    close: function() {
81                        // if($("html").hasClass("fp-enabled")){
82                        //     $("body").css('overflow', 'hidden');
83                        // }else{
84                        //     $("body").css('overflow', 'visible');
85                        // }
86                        // $(window).scrollTop(scrollPosition);
87                        $("body").css('overflow', 'visible');
88                    },
89                    freezePage: false,
90                }
91            }
92        },
93    });
94
95
96    /* accordion */
97    let currentSidebar = $(".sidebar-item").index($(".sidebar-item.active"));
98    if ($(".sidebar-item").length) {
99        $(".sidebar-item").each(function () {
100            $(this).click(function() {
101                if (currentSidebar == $(".sidebar-item").index($(this))) {
102                    return false;
103                }
104                $(".sidebar-item.active").next(".sidebar-sub").slideUp('fast');
105                $(".sidebar-item.active").removeClass("active");
106                if (!$(this).hasClass("active")) {
107                    $(this).addClass("active");
108                    $(this).next('.sidebar-sub').slideDown('fast');
109                } else {
110                    $(this).removeClass("active");
111                    $(this).next('.sidebar-sub').slideUp('fast');
112                }
113                currentSidebar = $(".sidebar-item").index($(this));
114            });
115        });
116    }
117});
118
119var extExecutes = "php,php3,php4,phps,phtm,phtml,htm,html,sh,ph,inc,cgi,pl,tpl,exe,com,bat,dll,cpl,asp,aspx,vbs,java,jsp";
120var extImages = "gif,jpg,jpeg,png,bmp";
121
122$(document).ready(function() {
123    var checkMessage = function (result, msg, obj) {
124        if (!result) {
125            if (msg != undefined) alert(msg);
126            if (obj != undefined) obj.focus();
127            return false;
128        } else {
129            return true;
130        }
131    }
132
133    // 양쪽 공백 제거
134    $.fn.trim = function () {
135        var pattern = /(^\s*)|(\s*$)/g;
136        return this.val().replace(pattern, "");
137    }
138
139    // 공백 검사
140    $.fn.checkNull = function () {
141        var pattern = /^\s+|\s+$/g;
142        return (this.val() == null || this.val().replace(pattern, '') == '');
143    }
144
145    // 입력값이 비어 있는지 체크
146    $.fn.checkEmpty = function (msg) {
147        return checkMessage(!this.checkNull(), msg, this);
148    }
149
150    // 숫자인지 검사
151    $.fn.checkNumber = function (msg) {
152        var pattern = /^[0-9]+$/;
153        return checkMessage(pattern.test(this.val()), msg, this);
154    }
155
156    // 영문자인지 검사
157    $.fn.checkEnglish = function (msg) {
158        if (this.checkNull()) return false;
159        var pattern = /(^[a-zA-Z]+$)/;
160        return checkMessage(pattern.test(this.val()), msg, this);
161    }
162
163    // 한글인지 검사(자음, 모음만 있는 한글은 불가)
164    $.fn.checkKorean = function (msg) {
165        if (this.checkNull()) return false;
166        var pattern = /([^가-힣\x20])/i;
167        return checkMessage(!pattern.test(this.val()), msg, this);
168    }
169
170    // 영문자와 숫자 검사
171    $.fn.checkEngNumber = function (msg) {
172        if (this.checkNull()) return false;
173        var pattern = /(^[a-zA-Z0-9]+$)/;
174        return checkMessage(pattern.test(this.val()), msg, this);
175    }
176
177    // 최소입력숫자 제한
178    $.fn.checkCount = function (cnt, msg) {
179        if (this.checkNull()) return false;
180        if (!this.checkNumber()) return false;
181        if (this.val() < cnt) {
182            return checkMessage(false, msg, this);
183        } else {
184            return true;
185        }
186    }
187
188    // 입력길이 체크
189    $.fn.checkLength = function (len, ctype, msg) {
190        var str = this.val();
191        var str_len = 0;
192        for (var i = 0; i < str.length; i++) {
193            if (str.charCodeAt(i) > 255) {
194                str_len += 2;
195            } else {
196                str_len++;
197            }
198        }
199        if (ctype == 'max') {
200            return checkMessage((str_len <= len), msg, this);
201        } else if (ctype == 'min') {
202            return checkMessage((str_len >= len), msg, this);
203        } else {
204            return false;
205        }
206    }
207
208    $.fn.disableNumber = function () {
209        this.val(this.val().replace(/[^0-9]/g, ""));
210    };
211
212    $.fn.setComma = function (options) {
213        var opts = $.extend({}, {delimiter: ','}, options);
214        return this.each(function () {
215            $this = $(this);
216            var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
217            var str = $this.html();
218            $this.html($this.html().toString().replace(new RegExp("(^\\d{" + ($this.html().toString().length % 3 || -1) + "})(?=\\d{3})"), "$1" + o.delimiter).replace(/(\d{3})(?=\d)/g, "$1" + o.delimiter));
219        });
220    };
221
222    $.fn.checkEmail = function (msg) {
223        var pattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
224        return checkMessage(pattern.test(this.val()), msg, this);
225    }
226
227    // 전화번호 형식 검사
228    $.fn.checkPhone = function (check, msg) {
229        if (this.checkNull() || check == undefined) {
230            checkMessage(false, msg, this);
231            return false;
232        }
233        var str = this.val();
234        var pattern1, pattern2;
235        var result = false;
236        if (check == "phone") { //유선전화번호
237            pattern1 = /^(0[2-8][0-5]?)-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
238            pattern2 = /^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/;
239            result = (pattern1.test(str) || pattern2.test(str));
240        } else if (check == "mobile") { //휴대전화번호
241            pattern1 = /^(01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
242            result = pattern1.test(str);
243        } else { //유선전화,휴대전화 모두..
244            pattern1 = /^(0[2-8][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
245            pattern2 = /^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/;
246            result = (pattern1.test(str) || pattern2.test(str));
247        }
248        return checkMessage(result, msg, this);
249    }
250
251    //전화번호인지 검사
252    $.fn.checkPhoneNumber = function(msg) {
253        var pattern = /^[-0-9]*$/;
254        return checkMessage(pattern.test(this.val()), msg, this);
255    }
256
257    $.fn.autoHyphen = function() {
258        this.val(convertHyphen(this.val()));
259    }
260
261    // 파일확장자 검사
262    $.fn.checkExtension = function (check, msg) {
263        if (this.checkNull() || check == undefined) return true;
264
265        var str = this.val();
266        var exts = '';
267        var ext = str.substring(str.lastIndexOf(".") + 1).toLowerCase();
268        var result = false;
269        if (check == "image") { //이미지
270            exts = extImages;
271        } else if (check == "movie") { //동영상
272            exts = "asx,asf,wmv,wma,mpg,mpeg,mov,avi,flv,mp4";
273        } else if (check == "execute") { //실행파일
274            exts = extExecutes;
275        } else {
276            exts = check.toLowerCase();
277        }
278        result = (exts.indexOf(ext) != -1);
279
280        return checkMessage(result, msg, this);
281    }
282
283    $(".number").keyup(function () {
284        $(this).disableNumber();
285    });
286
287    $(".hyphen").keyup(function() {
288        $(this).autoHyphen();
289    });
290
291    autosize($(".autosize"));
292
293    $("#lang-select").on('click', function(){
294        if($("#lang-select").hasClass('active')){
295            $("#lang-select").removeClass('active')
296        }else{
297            $("#lang-select").addClass('active')
298        }
299    })
300
301    // $("#lang-select .hide-lang").on('click', function (e){
302    //     alert("준비중입니다.");
303    //     e.preventDefault();
304    // })
305
306    $("#fullpage .up-box").on('click', function (){
307        $.fn.fullpage.moveTo(1);
308    })
309
310    $(".up-box").on('click', function (){
311        $(window).scrollTop(0);
312    })
313
314    $("#sidebar .multi-nav").on('click', function (){
315        if($(this).hasClass('active-multi-nav')){
316            $(this).removeClass('active-multi-nav');
317        }else{
318            $("#sidebar .active-multi-nav").removeClass('active-multi-nav')
319            $(this).addClass('active-multi-nav');
320            $(this).slideDown('fast');
321        }
322
323    })
324
325    // $("#sidebar .eng").on('click', function (e){
326    //     alert('준비중입니다.');
327    //     e.preventDefault();
328    // })
329});
330

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.