PageSourceSearch

https://www.westelm.co.kr/assets/js/eshop/member/member.js

js westelm.co.kr collected 2026-10-08 23:21:27 UTC 16,213 bytes, 529 lines download raw bytes

1/***********************************
2 * 회원 관련 스크립트
3 ***********************************/
4$(document).ready(function(){
5	
6	//이메일 영숫자만 입력
7    $("input:text[ennumOnly]").keyup(function(event){ 
8	    if (!(event.keyCode >=37 && event.keyCode<=40)) {
9	        var inputVal = $(this).val();
10		    $(this).val(inputVal.replace(/[^a-z0-9._]/gi,''));
11		}
12    });
13	//숫자만 입력
14	$("input:text[numberOnly]").on("keyup", function() {
15	    $(this).val($(this).val().replace(/[^0-9]/g,""));
16	});
17	
18	$("input:text[numberOnly]").on("blur", function() {
19	    $(this).val($(this).val().replace(/[^0-9]/g,""));
20	});
21	
22	$("#pw").on("blur", function(){
23		 
24		 var pwPattern1 = /^(?=.*[a-zA-Z])((?=.*\d)(?=.*\W)).{8,30}$/;	
25		 var pwPattern2 = /[<|>|;|:|`|,|.|\\|?|~|!|@|#|$|%|^|&|*|(|)|_|+|-|=|}|{|[|]|"|']/; 	
26		 var pwPattern3 = /(\w)\1\1/;
27		 if (!pwPattern1.test($("#pw").val())){
28			 $("#pwAlarm").html("영문, 숫자, 특수문자를 포함한 8~30자리 이내로 사용 가능합니다.");
29			 return false;
30		 } 
31		 if(!pwPattern2.test($("#pw").val())){		 
32		 	 $("#pwAlarm").html("사용하신 특수문자는 사용하실 수 없습니다. ");
33		 	 return false;
34		 }  		
35		 if(pwPattern3.test($("#pw").val()) ){
36		 	  $("#pwAlarm").html("3자 이상 연속되거나 동일한 문자는 사용하실 수 없습니다.");
37		 	  return false;
38		 }
39		 
40		 var idArr = [];
41		 var cIdx = 3;
42		 var mbrId = $('#mbrId').val();
43		 for(var i=0; i+cIdx <= mbrId.length; i++){
44			 idArr[i] = mbrId.substring(i, i+cIdx);
45			
46			 if($("#pw").val().search(idArr[i]) > -1 )
47			 {
48				 $("#pwAlarm").html("ID와 연속 3자리 이상 중복된 비밀번호는 사용하실 수 없습니다.");
49				 return false;
50			 }
51		 }		 
52		 $("#pwAlarm").html("");		 
53	});
54
55
56	$("#pwc").on("blur", function(){
57		if( $("#pw").val() != $("#pwc").val() ){
58			if( !util.isEmpty( $("#pwc").val() ) ){
59				$("#pwcAlarm").html("입력하신  비밀번호가 일치하지 않습니다. 다시 입력해 주세요.");	
60			}
61		}else{
62			$("#pwcAlarm").html("");
63		}
64	});
65	
66	$('#bday-year').on("change",function(){
67		if($('#bday-year').val() !="" || ! util.isEmpty($('#bday-year').val())){					
68			$('#bday-month').attr("disabled",false);
69		}else{
70			$('#bday-month').attr("disabled",true);
71			$('#bday-day').attr("disabled",true);
72		}
73		$('#bday-month').val("");
74		$('#bday-day').val("");	
75	});
76
77	$('#bday-month').on("change",function(){
78		
79		$('#bday-day').val("");	
80		
81		if($('#bday-month').val() !="" || ! util.isEmpty($('#bday-month').val())){		
82			$('#bday-day').attr("disabled",false);
83			
84			var maxDay = fnCalculateDate('bday');
85			var option =   "<option value=''>일</option>";
86			$('#bday-day').html(option)
87			
88			for(var i = 1; i <= maxDay; i++){
89				var val;
90				
91				if(i<10){
92					val = '0'+i;
93				}else{
94					val = i;
95				}	        
96				option = $("<option value="+val+">"+i+"일</option>");
97		        $('#bday-day').append(option);
98		    }				 
99		}else{
100			$('#bday-day').attr("disabled",true);		
101		}	
102	});	
103    
104});
105
106//이메일 select 변경시 호출
107function fnEmlChange(obj){
108	if( $(obj).val() == "00" ){
109		$("#email2").val("");
110		$("#email2").removeAttr("readonly");		
111	}else if( $(obj).val() == "99" ){		
112		$("#email2").val("");		
113		$("#email2").attr("readonly",true);
114	}
115	else{
116		$("#email2").val( $(obj).val() );
117		$("#email2").attr("readonly",true);	
118	}
119}
120
121//휴대폰 체크
122function hpCheck(){
123	if( util.isEmpty( $("#hpNo1").val() ) ){
124		alert("휴대폰번호 첫번째 자리를 입력해주세요.");
125		$("#hpNo1").focus();
126		return false;
127	}
128	if( util.isEmpty( $("#hpNo2").val() ) ){
129		alert("휴대폰번호 두번째 자리를 입력해주세요.");
130		$("#hpNo2").focus();
131		return false;
132	} else if ($("#hpNo2").val().length < 3){
133		alert("휴대폰번호 두번째 자리를 3자이상 입력해주세요.");
134		$("#hpNo2").focus();
135		return false;
136	}
137	
138	if( util.isEmpty( $("#hpNo3").val() ) ){
139		alert("휴대폰번호 세번째 자리를 입력해주세요.");
140		$("#hpNo3").focus();
141		return false;
142	}  else if ($("#hpNo3").val().length != 4){
143		alert("휴대폰번호 세번째 자리를 4자 입력해주세요.");
144		$("#hpNo3").focus();
145		return false;
146	}
147	return true;
148
149}
150
151//생년월일, 결혼기념일 날짜 세팅
152function fnSetMbrInfo($year, $month){
153	
154	var year = new Date().getFullYear();		
155	for(var i = year; i >= 1900; i--){
156		
157	    var option = $("<option value="+i+">"+i+"년</option>");
158	    $year.append(option);
159	}
160	
161	for(var i = 1; i <= 12; i++){
162		var val;
163		
164		if(i<10){ 
165			val = '0'+i; 
166		}else{
167			val = i;
168		}
169	    var option = $("<option value="+val+">"+i+"월</option>");
170	    $month.append(option);
171	}
172}
173
174//이메일 유효성 체크
175function emailCheck(){
176	// 이메일 주소 체크
177	var emailReg = /^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;
178	if( util.isEmpty($("#email1").val()) || util.isEmpty($("#email2").val()) ) {
179		 alert("이메일주소 은(는) 필수 입력항목입니다.");
180		 $("#email1").focus();
181		  return false; 
182	} else {
183		var email = $("#email1").val()+ "@" + $("#email2").val();
184	    if(!emailReg.test(email)) { 
185		      alert("이메일 주소가 유효하지 않습니다");
186		      $("#email1").focus();
187		      return false; 
188		} 
189	}
190	return true;
191}
192
193//초기화
194function fnResetFrm(){
195	
196	//초기화 
197	if( confirm("입력하신 정보를 초기화 하시겠습니까?") ){
198		$("form[name=joinForm]").each(function(){
199		    this.reset();
200		  });
201	}
202	
203}
204
205
206//아이디 체크
207function fnIdDuplChk(){
208	if( util.isEmpty($("#mbrId").val()) ) {
209		$("#idAlarm").html("아이디 은(는) 필수 입력 항목입니다.");
210	}else{
211		 var pattern1 = /^(?!(?:[0-9]+)$)([a-zA-Z]|[0-9a-zA-Z]){4,20}$/; //영문, 혹은 영문+숫자 조합
212		 if (!pattern1.test($("#mbrId").val())) {
213			$("#idAlarm").html("4~20자 이내  영문,숫자 또는 영문과 숫자로 구성해야 합니다.");
214			return false;
215		 }
216        $.ajax({
217            url : "/mbr/selectchkduplid",
218            type : "post",
219            dataType : "JSON",
220            data: { "mbrId" : $("#mbrId").val() },
221            success : function (result) {
222            	if (result.resultCode == "00") {
223    				if( result.resultData == "0000" ){
224    					$("#idAlarm").html("사용 가능한 아이디 입니다.");
225    					$('#mbrId').data('checkId', true);
226    				}else if (result.resultData == "1000"){
227    					$("#idAlarm").html("이미 사용 중인 아이디 입니다.");
228    					$('#mbrId').data('checkId', false);
229    					$("#mbrId").val('');
230    				} else if (result.resultData =="1001") {
231    					$("#idAlarm").html("해당 아이디는 사용할 수 없습니다.");
232    					$('#mbrId').data('checkId', false);
233    					$("#mbrId").val('');
234    				}
235            	} else {
236            		alert(result.resultMsg);
237            	}
238            }
239        });			
240	}
241}
242
243//약관 전체 동의 클릭시 호출
244function fnChgAgrmAll(obj){
245	if( $(obj).prop("checked") ){
246		$(".clsAgrm").each(function(){
247			$(this).prop("checked", true);
248		});
249	}else{
250		$(".clsAgrm").each(function(){
251			$(this).prop("checked", false);
252		});
253	}
254}
255
256//약관 동의 클릭시 호출
257function fnChgAgrm(obj){
258	
259	// 전체선택
260	var chkCnt = 0;
261	
262	$(".clsAgrm").each(function(){
263		if( !$(this).prop("checked") ){ // 체크가 안되어있을시
264			chkCnt++;
265		}
266	});
267	
268	if( chkCnt > 0 ){
269		$("#chk2-agree-1").prop("checked", false);
270	}else{
271		$("#chk2-agree-1").prop("checked", true);
272	}
273	
274	// 마케팅 활용 동의 선택
275	if( $(obj).attr("id") == 'chk-agree-7' ){
276		if( !$(obj).prop("checked") ){
277			$(".clsMktgAgrm").each(function(){
278				$(this).prop("checked", false);
279			});
280		}
281	}
282	
283	// 마케팅 활용 중 SMS, 이메일 선택
284	if( $(obj).hasClass("clsMktgAgrm") ){
285		chkCnt = 0;
286		if( $(obj).prop("checked") ){
287			$("#chk-agree-7").prop("checked", true);
288		}else{
289			$(".clsMktgAgrm").each(function(){
290				if( $(this).prop("checked") ){
291					chkCnt++;
292				}
293			});
294			
295			if( chkCnt == 0){
296				$("#chk-agree-7").prop("checked", false);	
297			}
298		}
299	}
300	
301}
302
303//인증번호 입력 카운트다운
304var checkTime=180;  //필요한 초만큼 입력
305function fnTimeCheck() {
306    if(checkTime > 0){
307		if (checkTime == 180)
308		{
309			document.getElementById("countTime").innerHTML = "3:00";
310		} else {
311			var m = Math.floor(checkTime/60);
312			var s = checkTime%60;
313			if (s < 10 ) { s = "0"+s; }
314			var time = m+":" + s;
315			document.getElementById("countTime").innerHTML = time;
316		}
317		checkTime=checkTime-1;        
318        setTimeout("fnTimeCheck()", 1000);
319
320    } else {
321   		document.getElementById("countTime").innerHTML = "0:00";
322   		
323   	    if( !$("#hpNo").data('checkHpNo') ){
324       		alert("입력시간을 초과했습니다.");
325   		}	
326    }
327}
328//시작시 호출 함수
329function fnOnload()
330{	
331	// 인증번호 타입인 경우
332	if ($("#certNo").length > 0) {
333		fnTimeCheck();
334	
335	/*	if (!(event.keyCode >=37 && event.keyCode<=40)) {
336		var inputVal = $(this).val();
337		$(this).val(inputVal.replace(/[^a-z0-9]/gi,''));
338		}*/
339	}		
340}
341
342//HPoint 아이디, 패스워드 로그인
343function fnHpointLogin(id, password, kbn) {
344	var loginResult;
345	
346	 $.ajax({
347         type:"post",
348         url:"/mbr/dohlogin",
349         data:{custId:id,custPwd:password, kbn:kbn},
350         dataType:"JSON",
351         cache:false,
352         async:false,
353         success : function(data) {
354        	 if( data.resultCode == '00'){
355        		 var hInfo = data.resultData.response; // HPoint 로그인 후 정보
356
357            	 if( hInfo.code == '0000' ){ // 성공
358            		 
359            		 //2020.07.27 WSI 휴면해제 처리
360            		 var checkResult = checkDrmcMbr(hInfo.mcustNo);
361            		 if(checkResult =="00"){//휴면회원
362            			updateDrmcMbrRelease(hInfo.mcustNo);
363           			 	loginResult = "drmc";
364            		 }
365            		 else{
366            			 $("#mcustNo").val(hInfo.ssoMcustNo);
367            			 if( kbn == '2'){
368            				 $("#loginHp").val("N");
369            			 }
370            			 gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnCallback);
371            		 }
372            	 }else if( hInfo.code == 'L001' ){ // 로그인 오류
373            		 if(data.resultData.lckYn == "Y"){
374            			 if(confirm("비밀번호를 10회 이상 잘못 입력하셨습니다.\n 보안강화를 위해 비밀번호 찾기를 통해 변경 후 이용 가능합니다.\n 비밀번호 찾기 페이지로 이동하시겠습니까?")){
375            				 if(data.resultData.dev == "Y"){
376            					 openTab('https://dev.h-point.co.kr:29835/cu/config/findCustPwd.nhd', 'popHInfPwdChg', '800', '650');
377            				 }else{
378            					 openTab('https://www.h-point.co.kr/cu/config/findCustPwd.nhd', 'popHInfPwdChg', '800', '650');
379            				 }
380            			 }
381            		 
382            		 }else if(data.resultData.lckCnt > 0){
383            			 //alert("로그인 오류("+data.resultData.lckCnt+"/10회)\n10회 이상 로그인 오류 시 보안을 위해 로그인이 제한됩니다.");
384						 alert("등록되지 않은 아이디 이거나, 아이디 또는 비밀번호를 잘못 입력하셨습니다.");
385            		 }else{
386            			 alert("등록되지 않은 아이디 이거나, 아이디 또는 비밀번호를 잘못 입력하셨습니다.");
387            		 }
388            	 	return false;
389            	 }else if( hInfo.code == 'L002' ){ // 휴면고객
390            		 if( confirm("휴면고객입니다. 휴면을 해제하시겠습니까?") ){
391            			 fnHUserDrmcClr(hInfo.mcustNo);
392            			 
393            			 //WSI 휴면고객 해제처리 2020.07.29추가
394            			 updateDrmcMbrRelease(hInfo.mcustNo);
395            			 fnHpointLogin(id, password, kbn);
396            		 }
397            	 }else if( hInfo.code == 'L004' ){ // 패스워드 갱신대상
398            		 gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnHInfPwChgCallback);
399            	 }else if( hInfo.code == '9999' && data.resultData.mcustActingYn == "Y"){ // 통합멤버십 로그인 대행
400            		 $("#mcustNo").val(hInfo.ssoMcustNo);
401            		 mcustActingAjax(hInfo.ssoMcustNo, fnCallback, data.resultData.mcustActingYn);
402            	 }else{
403            		 alert("처리중 오류가 발생하였습니다.");
404            		 return false;
405            	 }
406        	 }
407         }
408   }); 
409	 
410	 return loginResult;
411
412}
413
414//휴면해제요청
415function fnHUserDrmcClr(mcustNo){
416	$.ajax({
417        type:"post",
418        url:"/mbr/doHUserDrmcClr",
419        //data:{custId:$("#j_username").val(),custPwd:$("#j_password").val(), mcustNo:mcustNo},
420        data:{mcustNo:mcustNo},
421        dataType:"JSON",
422        cache:false,
423        async:false,
424        success : function(data) {
425        	
426        	if( data.resultCode == '00'){
427        		var hInfo = data.resultData.response;
428            	if( hInfo.code == '0000' ){ // 정상처리
429            		$("#mcustNo").val(hInfo.ssoMcustNo);
430            		gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnCallback);
431            	}else if( hInfo.code == 'L001' ){ // 로그인오류
432            		alert("등록되지 않은 아이디 이거나, 아이디 또는 비밀번호를 잘못 입력하셨습니다.");
433            		return false;
434            	}else if( hInfo.code == 'L004' ){ // 패스워드 갱신처리
435           			$("#mcustNo").val(hInfo.ssoMcustNo);
436           			gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnHInfPwChgCallback);
437            	}else{
438            		alert("처리중 오류가 발생하였습니다.");
439           		 	return false;
440            	}
441        	}
442        }
443  });
444	
445}
446
447function kakaoLogin() {
448
449	$.ajax({
450		type:"post",
451		url:"/mbr/doKakaoLogin",
452		data:{},
453		dataType:"JSON",
454		cache:false,
455		async:false,
456		success : function(data) {
457			if( data.resultCode == '00'){
458				var hInfo = data.resultData.response; // HPoint 로그인 후 정보
459
460				if( hInfo.code == '0000' ){ // 성공
461					$("#mcustNo").val(hInfo.ssoMcustNo);
462					if( kbn == '2'){
463						$("#loginHp").val("N");
464					}
465					gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnCallback);
466				}else if( hInfo.code == 'L001' ){ // 로그인 오류
467					alert("등록되지 않은 아이디 이거나, 아이디 또는 비밀번호를 잘못 입력하셨습니다.");
468					return false;
469				}else if( hInfo.code == 'L002' ){ // 휴면고객
470					if( confirm("휴면고객입니다. 휴면을 해제하시겠습니까?") ){
471						fnHUserDrmcClr(hInfo.mcustNo);
472						return false;
473					}
474				}else if( hInfo.code == 'L004' ){ // 패스워드 갱신대상
475					gfnReqSSoToknIssuAjax(hInfo.ssoMcustNo, hInfo.ssoAuthCd, fnHInfPwChgCallback);
476				}else if( hInfo.code == '1111' ){ // 통합멤버십 서버 오류
477					alert("처리중 오류가 발생하였습니다.");
478					return false;
479				}else{
480					alert("처리중 오류가 발생하였습니다.");
481					return false;
482				}
483			}
484		}
485	});
486
487}
488
489
490//통멤회원 WSI 휴면해제요청
491function updateDrmcMbrRelease(mcustNo){
492	
493	$.ajax({
494        type:"post",
495        url:"/mbr/HdrmcMbrRelease",
496        data:{mcustNo:mcustNo},
497        dataType:"JSON",
498        cache:false,
499        async:false,
500        success : function(data) {
501        }
502	});
503}
504
505//WSI 휴면회원 여부 체크 2020.07.29 추가
506function checkDrmcMbr(mcustNo){
507	
508	var result;
509	
510	$.ajax({
511        type:"post",
512        url:"/mbr/CheckdrmcMbr",
513        data:{mcustNo:mcustNo},
514        dataType:"JSON",
515        cache:false,
516        async:false,
517        success : function(data) {
518        	
519        	if( data.resultCode == '00'){
520        		result ="00"; //휴면회원
521        	}
522        	else{
523        		result = "01"; //정상회원
524        	}
525        }
526	});
527	
528	return result;
529}

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.