PageSourceSearch

https://static.goodwearmall.com/resources/js/member/login.js?timestamp=202610061601

js goodwearmall.com collected 2026-10-07 04:09:43 UTC 36,336 bytes, 869 lines download raw bytes

1var login = {
2    returnURL: location.href
3    , dhtml: ''
4    , reqParam: {}
5    , renderJs: {}
6    , loginResult: {}
7    , nonMbrOrderDataObject: {}
8    , loginTarget : '/main'
9    , load: function () {
10        login.renderJs.otool = commonUtil.util;
11        login.loadLoginForm();
12        typeof brazeTracking === 'function' && brazeTracking(braze_login_view);
13        typeof amplitudeTracking === 'function' && amplitudeTracking(ampliLoginJoinMypageEvent.view_login);
14        // Get the last pushed dataLayer object
15        const lastPushedData = window.dataLayer[window.dataLayer.length - 1];
16        typeof airbridgeTrackSignin === 'function' && airbridgeTrackSignin(airbridgeChannelMap[lastPushedData.method], airbridgeBaseInfo.platform);
17    }
18    , loadLoginForm: function (data) {
19        login.cartData = {};
20        login.optionData = {};
21
22        commonUtil.ajaxHTML('/resources/html/member/login.html', data, function (dhtml) {
23            login.dhtml = dhtml;
24
25            $("#login_form").html("");
26            $("#login_form").html($.templates(login.dhtml).render(data, renderHeplerJs));
27
28            if ($("#searchMbrId").val()) {
29                $("#signinClearInput").val($("#searchMbrId").val());
30            }
31
32            if($("#savedId").val()){
33                $("#signinClearInput").val($("#savedId").val());
34                $("#chkSaveId")[0].checked = true;
35            }
36
37            if ($("#nonMbr").val() == 'Y'){
38                login.changeTab('nonMbr');
39            }
40        });
41
42    }
43    /**
44     * ECXT-1711 : 로그인 폼 좌측 마이페이지 메뉴에서 로그인이 필요한 항목을 눌렀을 때.
45     *
46     * 모바일 미로그인 마이페이지(myPageGuest.requireLogin)와 동일하게 확인 후 로그인 페이지로 보낸다.
47     * 이미 로그인 페이지에 있으므로 결과적으로 현재 화면이 다시 로드되지만, loginTarget 이 붙어
48     * LoginController.viewLogin -> #loginTarget hidden -> login.getRedirectUrl() 순으로 전달되어
49     * 로그인 완료 후 클릭했던 메뉴로 이동한다.
50     *
51     * @param targetUrl 로그인 후 이동할 경로
52     */
53    , requireLogin: function (targetUrl) {
54        commonUtil.util.confirm({
55            title: ''
56            , text: '로그인이 필요한 서비스입니다.<br>로그인 후 이용 부탁드립니다.'
57            , btnText: '확인'
58            , btnCancelText: '취소'
59            , agreeFn: function () {
60                location.href = '/public/member/login?loginTarget=' + encodeURIComponent(targetUrl);
61            }
62            , cancelFn: function () {
63                return false;
64            }
65        });
66    }
67    /**
68     * 멤버십 라운지는 전시 도메인이 담당한다. 미로그인도 접근 가능하므로 로그인 확인 없이 바로 이동시킨다.
69     * 도메인은 접속한 몰(굿웨어/탑텐)에 따라 갈린다. (csPageLeft.goLeftStoreInfo 와 동일 방식)
70     */
71    , goMembershipLounge: function () {
72        // 다른 도메인으로 나가므로 이벤트 전송을 보장한 뒤 이동한다(미배선이면 즉시 이동).
73        const go = function () {
74            // 진입 경로(view_path)가 도착지에서 잘리지 않도록 링크 단위 referrer 정책으로 이동한다.
75            const url = "https://" + (commonUtil.util.isToptenMall() ? givenOption.displayToptenDomain : givenOption.displayBaseDomain) + "/mypage/membershipLounge";
76            if (typeof moveWithFullReferrer === 'function') {
77                moveWithFullReferrer(url);
78            } else {
79                location.href = url;
80            }
81        };
82        typeof amplitudeTracking === 'function' && typeof ampliLoginJoinMypageEvent !== 'undefined'
83            ? amplitudeTracking(ampliLoginJoinMypageEvent.click_my_lounge, { navigate: go })
84            : go();
85    }
86    , goLogin() {
87        if ($("#signinClearInput").val() == "" && $("#signinTogglePassword").val() == "") {
88            $("#descLogin").text("아이디와 비밀번호를 입력해 주세요.").attr("style", "display:block;");
89            return;
90        } else if ($("#signinClearInput").val() == null || $("#signinClearInput").val() == "") {
91            $("#descLogin").text("아이디를 입력해 주세요.").attr("style", "display:block;");
92            return;
93        } else if ($("#signinTogglePassword").val() == null || $("#signinTogglePassword").val() == "") {
94            $("#descLogin").text("비밀번호를 입력해주세요.").attr("style", "display:block;");
95            return;
96        } else {
97            typeof amplitudeTracking === 'function' && amplitudeTracking(ampliLoginJoinMyp
97ageEvent.click_login);
98            $.ajax({
99                type: 'post'
100                , url: '/loginProcess'
101                , headers: {'ajax-login': true}
102                , data: {
103                    'userId': $("#signinClearInput").val(),
104                    'password': $("#signinTogglePassword").val(),
105                    'loginTarget': login.getRedirectUrl(),
106                    'loginFlag': 'Mall',
107                    'saveIdMall': $('#chkSaveId').is(":checked"),
108                    'remember-me': false
109                }
110                , beforeSend: function (request) {
111                    var csrfToken = $("meta[name='_csrf']").attr("content");
112                    var csrfName = $("meta[name='_csrf_header']").attr("content");
113                    request.setRequestHeader(csrfName, csrfToken);
114                }
115                , async: false
116                , success: function (data) {
117                    var obj = $.parseJSON(data);
118                    login.loginResult.mbrJoinClubYn = obj.mbrJoinClubYn;
119                    var close7daysPopup = commonUtil.common.getCookie('modal-signin-clubmall');
120                    $("#descLogin").text("").attr("style", "display:none;");
121
122                    if (obj.mbrJoinClubYn == 'N' && close7daysPopup == '' && commonUtil.util.isToptenMall()) {
123                        login.layer.joinClubMallCall();
124
125                    } else if (obj.sucessMessage == "CHKPWD") {
126                        location.href = "/public/member/resetPass90daysPw";
127
128                    } else {
129                        if (obj.loginTarget == undefined || obj.loginTarget == null || obj.loginTarget == "") {
130                            login.loginTarget = "/main";
131                        } else {
132                            login.loginTarget = obj.loginTarget;
133                        }
134
135                        login.callbackLoginAfter();
136                    }
137                }
138                , error: function (xhr) {
139                    try {
140                        var obj = $.parseJSON(xhr.responseText);
141                        var failMessage = obj.failMessage;
142                        var mbrLoginLastFailrCount = obj.mbrLoginLastFailrCount;
143
144                        if (mbrLoginLastFailrCount >= 5) {
145                            $("#descLogin").text("").attr("style", "display:none;");
146                            commonUtil.util.alert({
147                                text: "비밀번호 입력 횟수(5회)를 초과하여 비밀번호 재설정 화면으로 이동합니다.",
148                                btnText: '확인',
149                                agreeFn: function () {
150                                    location.href = "/public/member/searchMbr?searchType=PW";
151                                }
152                            })
153                        } else if(mbrLoginLastFailrCount >= 3){
154                            $("#descLogin").text("5회 이상 로그인 실패 시 해당 비밀번호를 사용할 수 없습니다. 로그인 실패 : "+mbrLoginLastFailrCount+"회").attr("style", "display:block;");
155                        } else if (failMessage == '9999') {
156                            $("#descLogin").text("아이디 또는 비밀번호가 일치하지 않습니다.").attr("style", "display:block;");
157                        } else if (failMessage == 'NOID') {
158                            commonUtil.util.confirm({
159                                text: '회원정보를 찾을 수 없어 가입이 필요합니다. <br>회원가입 하시겠습니까?',
160                                agreeFn: function(){
161                                    location.href = "/public/member/addMemberStep";
162                                }
163                            });
164                        }  else if (failMessage == 'SECSN') {
165                            commonUtil.util.alert({
166                                text: '[' + obj.sescnDateStr + '] 회원 탈퇴를 진행하셨습니다. <br>[' + obj.rejoinDateStr + '] 부터 재가입이 가능합니다.',
167                                btnText: '확인',
168                            });
169                            $("#descLogin").text("탈퇴처리되어 로그인할 수 없는 ID입니다.").attr("style", "display:block;");
170                        } else if (failMessage == "NOPWD") {
171                            login.layer.resetNullPwCall();
172                        } else if (failMessage == "SNSMBR") {
173                            $("#descLogin").text("아이디 또는 비밀번호가 일치하지 않습니다.").attr("style", "display:block;");
174                        }
174 else if (failMessage == "DRMNCY") {
175                            login.loginResult.loginTp = obj.loginTp;
176                            login.loginResult.lastLoginDt = obj.lastLoginDt;
177                            login.loginResult.drmcMbrNo = obj.drmcMbrNo;
178                            location.href = "/public/member/refreshDrmncy"; // 휴면 해제 안내 페이지 이동
179                        } else {
180                            alert("시스템 장애입니다.");
181                        }
182                    } catch (xhr) {
183                        console.log(xhr);
184                    }
185                }
186            })
187        }
188    }, goKakao: function () {
189        kakao.login();
190        typeof amplitudeTracking === 'function' && amplitudeTracking(ampliLoginJoinMypageEvent.click_login_signup, 'kakao');
191        return false;
192    }, goNaver: function () {
193        naver.login();
194        typeof amplitudeTracking === 'function' && amplitudeTracking(ampliLoginJoinMypageEvent.click_login_signup, 'naver');
195        return false;
196    }, goApple: function () {
197        apple.login();
198    }, simpleLogin: function () {
199        $.ajax({
200            type: "POST",
201            url: "/loginProcess",
202            headers: {'ajax-login': true},
203            beforeSend: function (request) {
204                const csrfToken = $("meta[name='_csrf']").attr("content");
205                const csrfName = $("meta[name='_csrf_header']").attr("content");
206                request.setRequestHeader(csrfName, csrfToken);
207            },
208            data:
209                {
210                    'loginTarget': login.getRedirectUrl(),
211                    'loginFlag': 'simple',
212                },
213            async: false,
214            success: function (args) {
215                var obj = $.parseJSON(args);
216
217                if (obj.loginTarget == undefined || obj.loginTarget == null || obj.loginTarget == "") {
218                    login.loginTarget = "/main";
219                } else {
220                    login.loginTarget = obj.loginTarget;
221                }
222
223                var redirect = $('#referer').val();
224                if (redirect || redirect !== "") {
225                    login.loginTarget = redirect;
226                }
227
228                if('N' == obj.mbrJoinClubYn){
229                    login.layer.joinClubMallCall();
230                }else{
231                    login.callbackLoginAfter();
232                    //location.href = login.loginTarget;
233                }
234            },
235            beforeSend: function (request) {
236                var csrfToken = $("meta[name='_csrf']").attr("content");
237                var csrfName = $("meta[name='_csrf_header']").attr("content");
238                request.setRequestHeader(csrfName, csrfToken);
239            },
240            error: function (e) {
241                try {
242                    var text = $.parseJSON(e.responseText);
243
244                    var failMessage = text.failMessage;
245                    if (failMessage == '9999') {
246                        alert('아이디 또는 비밀번호가 일치하지 않습니다.');
247                    } else if (failMessage == 'noSnsUser') {
248                        alert('잘못된 접근입니다.');
249                    } else {
250                        alert('시스템 장애입니다.');
251                    }
252                } catch (e) {
253                    console.log(e);
254                }
255            }
256        });
257
258    }, sessionRemove: function () {
259        $.ajax({
260            url: '<c:url value="/public/member/memberRemoveSession.json"/>'
261            , type: 'get'
262            , dataType: 'json'
263            , data: {}
264            , async: false
265            , beforeSend: function (request) {
266                var csrfToken = $("meta[name='_csrf']").attr("content");
267                var csrfName = $("meta[name='_csrf_header']").attr("content");
268                request.setRequestHeader(csrfName, csrfToken);
269            }
270            , success: function (data) {
271            }
272            , error: function (e) {
273            }
274        });
275    }
276    , getRedirectUrl: function () {
277        var explicitLoginTarget = ($('#loginTarget').val() || '').trim();
278        if (explicitLoginTarget && !explicitLoginTarget.startsWith('/main')) {
279            return explicitLoginTarget;
280        }
281
282        var referer = ($('#referer').val() || '').trim();
283        if (referer && referer.indexOf('/main') < 0) {
284            return referer;
285        }
286
287        return '';
288    }
289
290    , util: {
291        datePrintFormat: function (date) {
292            var year = date.getFullYear();
293            var month = date.getMonth();
294            var day = date.getDate();
295            if (month < 10) {
296                month = "0" + month;
297            }
298
299            if (day < 10) {
300                day = "0" + day;
301            }
302
303            return year + "." + month + "." + day;
304        }
305    }
306    , addGnrlMember() {
307        typeof amplitudeTracking === 'function' && amplitudeTracking(ampliLoginJoinMypageEvent.click_login_signup, 'general');
308        var redirectTarget = $('#referer').val() || $('#loginTarget').val();
309
310        // if (loginTarget && loginTarget.includes('/m/main')) {
311        //     loginTarget = '';
312        // }
313        location.href = "/public/member/addMemberStep?redirect_target=" + redirectTarget;
314    }
315    , searchNonMemberOrder() {
316        location.href = "/public/member/searchNonMemberOrder";
317    }
318    , goNonOrder : function(){
319        let godTurn = commonUtil.util.getUrlSearchParams()['godTurn'];
320        if (godTurn > 0) {
321            return location.href = "/public/cart/list?nonMbrOrder=" + godTurn;
322        }
323
324        location.href = "/public/member/login";
325    }
326    , callbackLoginAfter() {
327
328        let storedData = localStorage.getItem("SSTS-RECENTLY-PCID");
329        console.log("stored data:", storedData)
330        // storedData가 올바른 JSON 객체인지 검사
331        if (!storedData || storedData == 'undefined') {
332            storedData = JSON.stringify({});
333        } else {
334            try {
335                let parsedData = JSON.parse(storedData);
336                // 배열이거나 객체가 아닌 경우 빈 객체로 설정
337                if (Array.isArray(parsedData) || typeof parsedData !== 'object' || parsedData === null) {
338                    storedData = JSON.stringify({});
339                } else {
340                    // 올바른 객체인 경우 그대로 사용
341                    storedData = JSON.stringify(parsedData);
342                }
343            } catch (e) {
344                console.log('stored data parse error or invalid format:', e);
345                storedData = JSON.stringify({});
346            }
347        }
348
349        $.ajax({
350            type:'post'
351            ,url : "/public/member/loginAction.json"
352            ,dataType:'json'
353            ,async : false
354            ,data : storedData
355            ,contentType: "application/json;charset=UTF-8"
356            ,beforeSend: function (request){
357                const csrfToken = $("meta[name='_csrf']").attr("content");
358                const csrfName = $("meta[name='_csrf_header']").attr("content");
359                request.setRequestHeader(csrfName, csrfToken);
360            }
361            ,success : function(args) {
362                // initBukmkStorage 함수 호출을 try-catch로 감싸서 에러 처리
363                try {
364                    commonUtil.common.initBukmkStorage(); //찜하기 초기화
365                } catch (e) {
366                    console.log('initBukmkStorage error:', e);
367                }
368
369                // args.cartCnt가 존재하는 경우에만 localStorage에 저장
370                if (args && args.cartCnt !== undefined && args.cartCnt !== null) {
371                    commonUtil.common.syncCartCntStorage(args.cartCnt);
372                } else {
373                    commonUtil.common.syncCartCntStorage("0"); // 기본값 설정
374                }
375
376                // args.returnRecently가 존재하는 경우에만 localStorage에 저장
377                if (args && args.returnRecently !== undefined && args.returnRecently !== null) {
378                    localStorage.setItem("SSTS-RECENTLY-MBRNO", JSON.stringify(args.returnRecently));
379                } else {
380                    localStorage.setItem("SSTS-RECENTLY-MBRNO", JSON.stringify({})); // 기본값 설정
381                }
382
383                if(args.totalCpnIssuedCnt && args.totalCpnIssuedCnt > 0){
384                    commonUtil.util.alert({
385                        text: "회원님을 위한 쿠폰이 발급되었습니다.<br> 마이페이지 쿠폰함을 확인해 주세요",
386                        agreeFn : function() {
387                            login.loginAfterTagging(args);
388                        },
389                        cancelFn : function() {
390                            login.loginAfterTagging(args);
391                        }
392                    });
393                }else{
394                    login.loginAfterTagging(args);
395                }
396            },
397            error : function(e) {
398                console.log(e);
399            }
400        });
401    }
402
403    ,loginAfterTagging(args) {
404        try{
405            var gender = args.mbr.mbrSexSectCd == 'MALE'?'M':'F';
406            window._eglqueue = window._eglqueue || [];
407            _eglqueue.push(['setVar','cuid', $('#cuid').val()]);  // 해당 cuid
408            _eglqueue.push(['setVar','userId', args.encMbrNo]);  // 회원번호(ex. 1790518)
409            _eglqueue.push(['setVar','gender', gender]);  // 성별(남: M, 여: F)
410            _eglqueue.push(['setVar','age', args.mbrAge]);  // 연령
411            _eglqueue.push(['track', 'user']);
412            (function (s, x) {
413                s = document.createElement('script'); s.type = 'text/javascript';
414                s.async = true; s.defer = true; s.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://logger.eigene.i
414o/js/logger.min.js';
415                x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
416            })();
417        }catch(e){
418            console.log('아이겐 eror' + e);
419        }
420
421        try{
422            var strTag = args.mbr.mbrSexSectCd + "," + args.mbrAge + "," + args.mbr.mbrAtrbCd;
423            if(commonUtil.util.getAppOs() == 'I'){
424                webkit.messageHandlers.setIdentity.postMessage(args.mbr.mbrNo);
425                webkit.messageHandlers.setTag.postMessage(strTag);
426            }else{
427                window.android.setIdentity(args.mbr.mbrNo);
428                window.android.setTag(strTag);
429            }
430        }catch (e){
431            console.log('App Script 삽입 error' + e);
432        }
433
434        try{
435            window.dataLayer = window.dataLayer || [];
436            let method = '';
437            if(login.loginFlag == 'KKO') method = '카카오톡';
438            else if(login.loginFlag == 'NAVER') method = '네이버';
439            else method = '통합';
440
441            let mallType = commonUtil.util.isToptenMall() ? '클럽몰' : '굿웨어몰';
442            let brand = mallType == '클럽몰' ? 'clubmall' : 'goodwearmall';
443            let selectOption = '로그인';
444
445            let fim = commonUtil.common.getCookie("FIM");
446            if (fim == 'CLUB_MALL') {fim = '클럽몰';} else {fim = '굿웨어몰';}
447
448            window.dataLayer.push({
449                event : 'login',
450                method : method,
451                channel : args.channel,
452                mall_type : mallType,
453                select_option : selectOption,
454                is_club_member : args.isClubMember,
455                is_member : '회원',
456                first_visit_mall : fim,
457                brand : brand
458            });
459        }catch (e){
460            console.log("ga4 login error : " + e);
461        }
462        try{
463            // 옴니어스 초기화 작업
464            OpmIO.init(OpmIOKey, {});
465        }catch (e){
466            console.log("login OpmIO error : " + e);
467        }
468        try {
469            typeof brazeSettings === 'function' && brazeSettings(braze_attributes, {
470                member_grade : commonUtil.util.convertOnlneGrdCdToOnlneGrdNm(args.mbr.onlneGrdCd)
471            });
472        } catch (e){
473            console.log("login brazeSettings error : " + e);
474        }
475        try {
476            typeof brazeTracking === 'function' && brazeTracking(braze_login,args.mbr.mbrNo);
477        } catch (e){
478            console.log("login brazeTracking : " + e);
479        }
480
481        try {
482            if (args.benefitTrackingList && args.benefitTrackingList.length > 0) {
483                args.benefitTrackingList.forEach(function(benefitInfo) {
484                    typeof amplitudeTrackGiveMemberBenefit === 'function' && amplitudeTrackGiveMemberBenefit(benefitInfo);
485                });
486            }
487        } catch (e) {
488            console.log("login amplitudeTrackGiveMemberBenefit error : " + e);
489        }
490
491        location.href = login.loginTarget;
492    }
493    ,changeTab(target) {
494        $(".navigator-button").removeClass("active");
495        $(".tab-pane").removeClass("active");
496
497        $("." + target + "-tab").addClass("active");
498    }
499
500    /**
501     * Mobile 유효성, 최대길이 체크
502     * @param object
503     */
504
505    ,inputMobilNo() {
506        const inputText = $("#cstmrMobilNo").val();
507        const regExp = new RegExp("^[0-9]{0,11}$");
508
509        if (!regExp.test(inputText)) {
510            const filteredText = inputText.replace(/[^0-9\\s]/g, "").substr(0, 11);
511            $("#cstmrMobilNo").val(filteredText);
512        }
513    }
514    /**
515     * 최대길이 체크
516     * @param object
517     */
518    , maxlengthCheck : function(object) {
519        if (object.value.length > object.maxLength) {
520            object.value = object.value.slice(0, object.maxLength);
521        }
522    }
523    /**
524     * input에 대한 유효성 체크
525     * @param target
526     */
527    , nonMbrInputChanged: function (target) {
528
529        // REUTNR VALUE
530        const returnData = {
531            msgText: ""
532            , viewText: "N"
533            , testText: $("#" + target).val()
534        };
535
536        // PARAM VALUE
537        login.nonMbrOrderDataObject[target + 'Valid'] = false;
538
539        if (target == 'ordNo') {
540            const regExp = new RegExp("^OD([0-9]{15})$");
541            const blank_pattern = new RegExp(/[\s]/g);
542
543            if (returnData.testText == '' || returnData.testText == null) {
544                returnData.msgText = "주문번호를 입력해 주세요.";
545
546            } else if (blank_pattern.test(returnData.testText)) {
547                const filteredText = returnData.testText.replace(blank_pattern, "")
548                $("#ordNo").val(filteredText);
549                returnData.msgText = "주문번호를 입력해 주세요.";
550
551            } else if (!regExp.test(returnData.testText)) {
552                returnData.msgText = "주문번호가 일치하지 않습니다.";
553            }
554        } else if (target == 'cstmrMobilNo') {
555            const regExp = new RegExp("^01([0|1|6|7|8|9])([0-9]{3,4})([0-9]{4})$");
556
557            if (returnData.testText == '' || returnData.testText == null) {
558                returnData.msgText = "휴대폰번호를 입력해 주세요.";
559            } else if (!regExp.test(returnData.testText)) {
560                returnData.msgText = "휴대폰번호 형식에 맞지 않습니다.";
561            }
562        }
563
564        if (returnData.msgText != "") { // check 실패시 메시지 출력
565            returnData.viewText = "Y";
566        } else {
567            login.nonMbrOrderDataObject['ordNoValid'] = true;
568            login.nonMbrOrderDataObject['cstmrMobilNoValid'] = true;
569            login.nonMbrOrderDataObject['ordNo'] = $('#ordNo').val(); // 입력한 주문번호
570            login.nonMbrOrderDataObject[target] = returnData.testText;
571        }
572
573        login.nonMbrWatchDataObject(returnData);
574    }
575    /**
576     * 입력값에 대한 버튼 유효성
577     * @param returnData
578     */
579    , nonMbrWatchDataObject: function (returnData) {
580        const paramCheck = login.nonMbrOrderDataObject;
581        if (paramCheck.ordNoValid && paramCheck.cstmrMobilNoValid) {
582            $("#btnSearchNonMemberOrder").removeClass("st-disabled");
583        } else {
584            $("#btnSearchNonMemberOrder").addClass("st-disabled");
585        }
586        if (returnData.viewText == "Y") {
587            $("#descMobilNo").text(returnData.msgText).attr("style", "display:block;");
588        } else {
589            $("#descMobilNo").text("").attr("style", "display:none;");
590        }
591    }
592    /**
593     * 비회원 로직체크
594     * @returns {boolean}
595     */
596    , nonMemberOrder: function () {
597        const paramCheck = login.nonMbrOrderDataObject;
598        if (!paramCheck.ordNoValid || !paramCheck.cstmrMobilNoValid) {
599            return false;
600        }
601
602        const loadCallback = function (paramCheck) {
603
604            // ord 정보 있는경우 페이지 이동(상세로 갈지 아직 정확한 로직 체크안됨)
605            if (paramCheck.ordNo) {
606                location.href = "/secured/mypage/listOrder";
607                // 없는경우 nonMbrWatchDataObject 함수호출
608            } else {
609                // REUTNR VALUE
610                const returnData = {
611                    msgText: "입력 정보와 일치하는 주문내역이 없습니다."
612                    , viewText: "Y"
613                };
614                login.nonMbrWatchDataObject(returnData);
615            }
616        }
617
618        commonUtil.ajax("/public/member/nonMbrOrderLogin.json", paramCheck, loadCallback);
619    }
620
621
622    /**
623     * 로그인 시 뜨는 레이어 팝업
624     * 클럽몰 가입, 비밀번호 유실 회원 안내
625     */
626
627    , layer: {
628        joinClubMallCall: function () {
629            commonUtil.ajaxHTML('/resources/html/mypage/member/modal/joinClubMallModal.html', {}, function (dhtml) {
630                if (!$("#clubmall_wrap").hasClass('unique_region')) {
631                    $("body").append("<div id='clubmall_wrap' class='unique_region'></div>");
632                }
633
634                $("#clubmall_wrap").html("");
635                $("#clubmall_wrap").html($.templates(dhtml).render(renderHeplerJs));
636
637                let chkList = $('[id*=check]');
638
639                for (let i = 0; i < chkList.length; i++) {
640                    chkList[i].checked = false;
641                }
642
643                //클럽몰 가입하기 checkbox default 설정
644                $("#checkJoinClubMall")[0].checked = true;
645
646                login.bindJoinClubMallCloseEvent();
647
648                var joinClubModal = new Modal('#modal-signin-clubmall');
649                joinClubModal.open();
650            });
651        }
652        , joinClubMallClose: function () {
653            var joinClubModal = new Modal('#modal-signin-clubmall');
654            joinClubModal.close();
655
656        }
657        , resetNullPwCall() {
658            commonUtil.ajaxHTML('/resources/html/mypage/member/modal/resetNullPwModal.html', {}, function (dhtml) {
659                if (!$("#resetPassword_wrap").hasClass('unique_region')) {
660                    $("body").append("<div id='resetPassword_wrap' class='unique_region'></div>");
661                }
662
663                $("#resetPassword_wrap").html("");
664
665                $("#resetPassword_wrap").html($.templates(dhtml).render(renderHeplerJs));
666
667                var resetNullPwCallModal = new Modal('#modal-signin-reset-password');
668                resetNullPwCallModal.open();
669
670            });
671        }
672    }
673
674
675    /**
676     * 비밀번호 유실(null) 회원
677     * 비밀 번호 재설정 페이지 이동
678     */
679    , goPwAthorize() {
680        location.href = "/public/member/searchMbr?searchType=PW";
681    }
682
683
684    /**
685     * 클럽몰 레이어 팝업 체크박스 toggle
686     */
687
688    , isCheckedBox(obj) {
689        var checkList = $('[id*=check]');
690        var objId = obj.id;
691        var objChecked = obj.checked;
692        var chkMarketing = $("input[name=checkMarketing]");
693
694        if (objId == 'checkJoinClubMall') {
695            if (!objChecked) {
696                for (let i = 0; i < chkMarketing.length; i++) {
697                    chkMarketing.prop("disabled", true);
698                }
699            } else {
700                for (let i = 0; i < chkMarketing.length; i++) {
701                    chkMarketing.prop("disabled", false);
702                }
703            }
704
705        } else if (objId == 'checkMarketingAll') {
706            obj.value = !objChecked;
707            if (obj.value == 'false') {
708                for (let i = 1; i < checkList.length; i++) {
709                    checkList[i].checked = true;
710                }
711            }else{
712                for(let i= 1; i<checkList.length; i++){
713                    checkList[i].checked = false;
714                }
715            }
716        }else {
717            var checkMarketingSms = $('#checkMarketingSms');
718            var checkMarketingEmail = $('#checkMarketingEmail');
719            var checkMarketingAll = $('#checkMarketingAll');
720
721            if (checkMarketingSms.is(':checked') && checkMarketingEmail.is(':checked')) {
722                checkMarketingAll.prop('checked', true);
723            } else {
724                checkMarketingAll.prop('checked', false);
725            }
726
727        }
728    }
729    , close7daysLayer: function (popupNotiId) {
730        var popupnoti = "";
731
732        if ($("#" + popupNotiId).length > 0) {
733            popupnoti = popupNotiId;
734            commonUtil.common.setCookie(popupnoti, 'hide', 7);
735        }
736
737        login.callbackLoginAfter();
738        location.href = login.loginTarget;
739    }
740
741    , ckJoinClubMall() {
742        var chkJoinClubMall = $("#checkJoinClubMall")[0].checked;
743        var chkMarketingSms = $("#checkMarketingSms")[0].checked;
744        var chkMarketingEmail = $("#checkMarketingEmail")[0].checked;
745        var chkClose7daysLayer = $("#close7daysLayer")[0].checked;
746
747        if (chkJoinClubMall == true) {
748            let data = {
749                toptenmallWithJoin: chkJoinClubMall ? "Y" : "N"
750                , toptenmallSmsAgree: chkMarketingSms ? "Y" : "N"
751                , toptenmallEmailAgree: chkMarketingEmail ? "Y" : "N"
752            };
753
754            commonUtil.ajax("/public/member/updateJoinClubMallMbr.json", data, function (args) {
755                login.layer.joinClubMallClose();
756
757                let mbrJoinClubValidCheck = args.mbrJoinClubValidCheck;
758                if (!!mbrJoinClubValidCheck) {
759                    if (mbrJoinClubValidCheck == 'CLUB_VALID_DAY_REJOIN') {
760                        commonUtil.util.alert({
761                            title: '탑텐클럽',
762                            text: '클럽 서비스 해지 다음날부터 가입 가능합니다.',
763                            agreeFn: function(){
764                                // 마이페이지로 이동
765                                return window.location.href = '/secured/mypage/myPage';
766                            }
767                        });
768                    } else {
769                        commonUtil.util.alert({
770                            title: '탑텐클럽',
771                            text: '오류가 발생하였습니다. 잠시 후 다시 시도해주세요.',
772                            agreeFn: function(){
773                                // 마이페이지로 이동
774                                return window.location.href = '/secured/mypage/myPage';
775                            }
776                        });
777                    }
778                }
779
780                if(args.result == "S") {
781                    let channel = args.channel;
782                    commonUtil.util.alert({
783                        text: '탑텐클럽 서비스 가입이 완료되었습니다.',
784                        btnText: '확인',
785                        agreeFn: function () {
786                            try{
787                                let mallType = commonUtil.util.isToptenMall() ? '클럽몰' : '굿웨어몰';
788                                let fim = commonUtil.common.getCookie("FIM");
789                                if (fim == 'CLUB_MALL') {fim = '클럽몰';} else {fim = '굿웨어몰';}
790
791                                window.dataLayer = window.dataLayer || [];
792                                window.dataLayer.push({
793                                    event : 'join_clubmall',
794                                    dataCollectPage : '로그인 페이지',
795                                    channel : channel,
796                                    mall_type : mallType,
797                                    first_visit_mall : fim
798                                });
799
800                            }catch (e){
801                                console.log("ga4 login error : " + e);
802                            }
803
804
805                            login.callbackLoginAfter();
806                            location.href = login.loginTarget;
807                        }
808                    });
809                }
810            });
811
812        } else if (chkClose7daysLayer == true && chkJoinClubMall == false) {
813            login.close7daysLayer('modal-signin-clubmall');
814
815        } else {
816            login.layer.joinClubMallClose();
817            commonUtil.util.alert({
818                text: '탑텐클럽 서비스 가입 시 추가 포인트가 적립됩니다.<br>서비스 가입하시고 추가 혜택 받아가세요!',
819                btnText: '확인',
820                agreeFn: function () {
821                    login.callbackLoginAfter();
822                    location.href = login.loginTarget;
823                }
824            });
825        }
826
827    }
828    , cancelJoinClubMall(event) {
829        if (event) {
830            event.preventDefault();
831            event.stopImmediatePropagation();
832        }
833
834        var chkClose7daysLayer = $("#close7daysLayer")[0].checked;
835
836        if(chkClose7daysLayer == true){
837            login.close7daysLayer('modal-signin-clubmall');
838        }else{
839            login.layer.joinClubMallClose();
840            commonUtil.util.confirm({
841                text: '탑텐클럽 서비스 가입 시 추가 포인트가 적립됩니다.<br>서비스 가입하시고 추가 혜택 받아가세요!',
842                btnText: '가입하러 가기',
843                btnCancelText: '취소',
844                agreeFn: function(){
845                    login.callbackLoginAfter();
846                    location.href = "/secured/mypage/updateMember#topten-service";
847                },
848                cancelFn: function(){
849                    login.callbackLoginAfter();
850                    location.href = login.loginTarget;
851                }
852            });
853            login.bindJoinClubMallConfirmOverlayClose(0);
854        }
855    }
856
857    , bindJoinClubMallConfirmOverlayClose: function (closeAlertValue) {
858        $("#otoolConfirm .modal-overlay").attr("onclick", "commonUtil.util.closeAlert(" + closeAlertValue + ")");
859    }
860
861    , bindJoinClubMallCloseEvent: function () {
862        $("#modal-signin-clubmall .modal-overlay, #modal-signin-clubmall .button-icon, #joinCancelButton")
863            .off("click.joinClubMall")
864            .on("click.joinClubMall", function (event) {
865                login.cancelJoinClubMall(event);
866            });
867    }
868
869}

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.