PageSourceSearch

https://biz.kbcard.com/cxo/js/secuKeyASTx2.js?2026072203

js kbcard.com collected 2026-09-24 09:46:36 UTC 21,017 bytes, 832 lines download raw bytes

1var isSecuInited 	= false;
2var isVirtualPc 	= false;
3var isSafeKeypad	= false;
4var _keypadInput 	= null;
5var isLinuxMac		= false;
6var pwNum			= null;
7var pwNumCnt		= 0;
8var isE2e			= false;
9var e2eType1Input 	= null;
10var isNoSetup 		= false;
11var isNoSetupInited = false;
12var astxBeforeObj 	= null;
13var secuKeyInitCallback = "";
14
15var pwdListForVir;
16/*
17 * 1. ÀԷ ŸÀÔÀÌ ºñ¹Ð¹øÈ£ °´Ã¼ÀÎ °æ¿ì ÇØ´ç form ÀÇ submit ÀÛ¾÷ Àü ó¸®
18 *     - 2015.12.15 / ÁÖÀçÇö
19 * 2. ajax Àü¼Û ÀÛ¾÷ Àü ó¸®
20 *     - 2015.12.18 / ÁÖÀçÇö
21 */
22function secuKeyProc()
23{
24	var pwList 	= $(":password");
25	
26	if(typeof vKpd === "undefined") {	
27	} else {
28		vKpd.hideAll();
29	}
30	
31	// ¸®´ª½º ¹× ¸ÆÀº Űº¸µå º¸¾È »ç¿ë¾ÈÇÔ / 2016.1.7 / ÁÖÀçÇö (SI¿äûÀ¸·Î Ãß°¡)
32	if(navigator.userAgent.match(/Linux/i) || navigator.userAgent.match(/Mac OS X/i))
33	{
34		isLinuxMac = true;
35		secuKeyInit();
36		return false;
37	}
38	
39	secuKeyInit();
40	
41	var runAjax = $.ajax;
42	$.ajax = function()
43	{
44		var isSend = false;
45		var last_Keypad_Name = null;
46		var last_Keypad_value = null;
47		
48		if(_keypadInput != null){
49			last_Keypad_Name 	= _keypadInput.name+"_askd_1_pwd__";
50		    $ASKD2.doneSafeKeypad(_keypadInput);
51		    last_Keypad_value 	= document.getElementsByName(last_Keypad_Name)[0].value;  //20170725 °¡»óŰÆÐµå ajaxÀÇ °æ¿ì submit½Ã ÀÚµ¿À¸·Î °ªÀ» ³Ö¾îÁØ´Ù.
52		    last_Keypad_Name 	= encodeURIComponent(last_Keypad_Name);
53 			last_Keypad_Name 	= last_Keypad_Name.replace(/%/g,'%25');
54 			last_Keypad_value 	= encodeURIComponent(last_Keypad_value);
55 			last_Keypad_value 	= last_Keypad_value.replace(/%/g,'%25');
56		}
57		   
58		try {	
59			if (arguments != null && arguments != 'undefined')
60			{
61				var dataset = arguments[0];
62				if (dataset != null && dataset != 'undefined')
63				{
64					var frmObjAjax  = null;
65					var oriStr		= null;
66					var encodeStr   = null;
67
68					for (var pwIdx=0; pwIdx<pwList.length; pwIdx++)
69					{
70						oriStr		= pwList[pwIdx].name;						
71						encodeStr 	= encodeURIComponent(oriStr);
72						encodeStr 	= encodeStr.replace(/%/g,'%25');
73
74						if ( (dataset.data.indexOf(oriStr+"=") != -1 
75							&& dataset.data.indexOf(oriStr+"=&") == -1
76							&& dataset.data.length != dataset.data.indexOf(oriStr+"=")+oriStr.length+1)
77								|| 
78							(dataset.data.indexOf(encodeStr+"=") != -1 
79							&& dataset.data.indexOf(encodeStr+"=&") == -1
80							&& dataset.data.length != dataset.data.indexOf(encodeStr+"=")+encodeStr.length+1) )
81						{
82							frmObjAjax = pwList[pwIdx].form;
83							break;
84						}
85					}
86					
87					if (frmObjAjax != null)
88					{
89						isSend = true;
90						var aparams = arguments;
91						var adatast = aparams[0];
92						
93						//¿©±â¼­ °ªÀ» ÀúÀåÇØ¾ß ÇÔ. ÀÛ¾÷Àº ¾Æ·¡¿¡¼­ ÇØ¾ßÇÔ.
94						
95						if(last_Keypad_value != null){
96						  adatast.data +="&_askd_forminit_askd_1__="+frmObjAjax._askd_forminit_askd_1__.value+"&"+last_Keypad_Name+"="+last_Keypad_value;
97						}
98						aparams[0] = adatast;
99						return runAjax.apply($, aparams);;
100							
101					
102					}
103				}
104			}
105		} catch(e){}
106		
107		if (!isSend)
108		{
109			return runAjax.apply($, arguments);
110		}
111		else
112		{
113			return true;
114		}		
115	}
116}
117
118function secuKeyInit()
119{
120	if (isSecuInited && $(":password").attr("e2e_inputid") == 1)
121		return;
122	
123	isSecuInited = true;
124	secuKeyAhnlabInit(-1);
125}
126
127/*
128 * °¡»ó¸Ó½Å ȯ°æ ÆÇ´Ü
129 * 2016. 5. 12 / ÃÖÁ¾¼®
130 */
131function isVirtualPC() {
132	$ASTX2.isVmRemoteEnv(
133		function onReceive(value, errno) {
134			if(errno == 0 && value == 1) {
135			    
136		    // °³¹ß¼­¹ö ¹°¸®Å°º¸µå »ç¿ëÇÒ ¼ö ÀÖµµ·Ï º¯°æ / 2017.9.13 / ÁÖÀçÇö
137				if (_systemmode != "O" && _devAstxOnly == "Y") {
138					$ASTX2.initE2E();
139				} else {
140					$ASTX2.initE2E();
141					onFocusKeypad();
142				}
143			        
144			} else if(value ==0) {
145				//alert("ÀϹÝPC");
146				if (isLinuxMac) {
147					onFocusKeypad();
148				} else {
149          			$ASTX2.initE2E();
150				}
151			} else {
152				//alert("¿À·ùPC" + errno);
153				if (isLinuxMac) {
154					onFocusKeypad();
155				}
156			}
157			
158			return;
159		}
160	);		
161}
162
163function onFocusKeypad()
164{
165	isVirtualPc 	= true;
166	isSecuInited 	= false;
167	pwdListForVir 	= $('input:password');
168
169	for(var i = 0; i < pwdListForVir.length; i++) {
170		pwdListForVir[i].onfocus = function() {	
171			if (isVirtualPc)
172			{
173				// À×Ä« °¡»óŰÆÐµå ¿À·ù¹ß»ý ½Ã ¾È·¦ °¡»óŰÆÐµå Ȱ¼ºÈ­ / 2017.5.19 / ÁÖÀçÇö
174				// vKpd.setKeypadUse(this.id, true);
175				try
176				{
177					vKpd.setKeypadUse(this.id, true);
178				}
179				catch(e)
180				{
181					if ( isPwNumChange() ) {
182						secuKeyAhnlabInit(-1);
183					}
184					startSafeKeypad(this, true);
185				}
186			}
187		};
188	}
189}
190
191/*
192 * ¾È·¦ °¡»óŰÆÐµå ¹öưÀÌ Á¸ÀçÇÏ´ÂÁö ¿©ºÎ
193 * 2017.7.10 / ÁÖÀçÇö
194 */
195function isAskd2Button(input)
196{
197	var imgList = $(":image");
198    for(var imgIdx=0, imgLen=imgList.length; imgIdx<imgLen; imgIdx++)
199	{
200	    var imgVal = imgList[imgIdx].getAttribute("onclick");
201	    if (imgVal != null && imgVal != "undefined")
202	    {
203	        var pwId = input.id;
204	        if (imgVal.indexOf("startSafeKeypad") != -1 && imgVal.indexOf(pwId) != -1)
205				return true;
206	    }
207	}
208	return false;
209}
210
211/*
212 * ¾È·¦ ÃʱâÈ­ ÇÔ¼ö È£Ã⠽à pwNum data µ¿±âÈ­
213 * secuKeyAhnlabInit È£Ãâ½Ã¿Í DOMSubtreeModified µ¿À۽ÿ¡ ¸ðµÎ »ç¿ë °¡´ÉÇϵµ·Ï º°µµ ÇÔ¼ö·Î ºÐ¸® / 2018.10.23
214 * ¼Óµµ Çâ»óÀ» À§ÇÏ¿© ·ÎÁ÷ °³¼± / 2018.11.07
215 * À̴뱤
216 */
217function syncPwNum(){
218	
219	var inputs = document.getElementsByTagName("input");
220	pwNum = [];
221	pwNumCnt = 0;
222	
223	for ( var i=0; i<inputs.length; i++ ) {
224		if ( inputs[i].getAttribute("type")=="password" || ( inputs[i].getAttribute("e2e_type") != null && inputs[i].getAttribute("e2e_type")=="1" ) ) {
225			pwNum.push(inputs[i]);
226			pwNumCnt++;
227		}
228	}
229	
230}
231
232/*
233 * pwNum data µ¿±âÈ­ Çʿ俩ºÎ È®ÀÎ
234 * ºñ±³·ÎÁ÷ÀÌ Ãß°¡µÇ¾î °øÅëÀ¸·Î °ü¸®Çϱâ À§ÇÏ¿© º°µµ ÇÔ¼ö·Î ºÐ¸® / 2018.10.23
235 * ¼Óµµ Çâ»óÀ» À§ÇÏ¿© ·ÎÁ÷ °³¼± / 2018.11.07
236 * À̴뱤
237 */
238function isPwNumChange(){
239	var result = false;
240	
241	var inputs = document.getElementsByTagName("input");
242	var nowCnt = 0;
243	
244	for ( var i=0; i<inputs.length; i++ ) {
245		if ( inputs[i].getAttribute("type")=="password" || ( inputs[i].getAttribute("e2e_type") != null && inputs[i].getAttribute("e2e_type")=="1" ) ) {
246			nowCnt++;
247		}
248	}
249	
250	if ( pwNumCnt != nowCnt ) {
251		result = true;
252	}
253	
254	
255	
256	return result;
257}
258
259/*
260 * ¾È·¦ ÃʱâÈ­ ÇÔ¼ö º°µµÃ³¸®
261 * 2016.1.7 / ÁÖÀçÇö
262 */
263function secuKeyAhnlabInit(eDay)
264{
265  
266  astxSetBeforeObj();
267  syncPwNum();
268  
269  for(var a=0;a<pwNum.length;a++){
270    if(pwNum[a].id != ""){    // password °¡ ÀÖÁö¸¸ id°¡ ¾ø´Â °æ¿ì.
271      isE2e = true;
272      break;
273    }
274  }
275  
276  /* 
277   * ·¹ÀÌ¾î ÆË¾÷¿¡¼­ ŰÆÐµå ¶ßÁö ¾Ê´Â ISSUE·Î ÀÎÇÏ¿© ÇØ´ç ºÐ±â¹® Á¦°Å(ÇÏ´Ü DOMSubtreeModified »ý¼º ºÎºÐ ºÐ±â Á¦°Å)
278   * Á¦°ÅÇÑ ºÎºÐ : if(pwNum.length == 0 || isE2e == false)
279   * 2018.10.17 / À̴뱤
280  */
281  /*
282  // ÇØ´ç À̺¥Æ®°¡ ÃֽŠchrome ¿¡¼­ »èÁ¦µÇ¾î º¯°æ / 2025.08.12 / ÁÖÀçÇö
283  document.body.addEventListener('DOMSubtreeModified', function(e){
284    if ( isPwNumChange() ) {
285		secuKeyAhnlabInit(-1);
286	}
287  });
288  */
289  var mObs = new MutationObserver(function(mutations){
290  	for (var i=0; i<mutations.length; i++){
291  		var mutation = mutations[i];
292  		if (mutation.type == 'childList'){
293  			if ( isPwNumChange() ) {
294  				secuKeyAhnlabInit(-1);
295  			}
296  		}
297  	}
298  });
299  mObs.observe(document.body, {childList: true, subtree: true});
300	
301  $ASTX2.setOption({autofocus:false, e2eform:true});
302  if(isE2e){
303//	jShowProgress();
304    $ASTX2.init
305  	(
306  		function onSuccess() 
307  		{
308  			
309  			$ASTX2.setE2EAllExceptInputs();
310 			isVirtualPC();
311  		  	isSecuInited = true;
312 // 		    jHideProgress();
313			 if ( typeof(secuKeyInitCallback) == "function" ) {
314			 	secuKeyInitCallback();
315			 	secuKeyInitCallback = null;
316			 }
317
318  		},
319  		function onFailure() 
320  		{
321//  			jHideProgress();
322  			isSecuInited = false;
323  			
324  			var errno = $ASTX2.getLastError();
325  			$_astxu.log('ASTX.init() failure: errno='+errno);
326  			if (errno == $ASTX2_CONST.ERROR_NOTINST) 
327  			{
328  				var setupCMS = "/CMN/DVIEW/HOBMCXCRSCSC0089";
329  				
330  				if (window.location.pathname != setupCMS)
331  				{
332  					var mobileNumber = getMobileDevice();
333  					if (mobileNumber == -1)
334  					{
335  						// °³º° ¼³Ä¡¸ðµâÀÌ ÇÊ¿äÇÑ °æ¿ì À̵¿ / 2017.9.7 / ÁÖÀçÇö
336  						try
337  						{
338  							setupSecurity();
339  						}
340  						catch(e)
341  						{
342  							alert("¾ÈÀüÇÑ ÀÎÅͳݼ­ºñ½º¸¦ À§ÇÏ¿© º¸¾ÈÇÁ·Î±×·¥ ¼³Ä¡°¡ ÇÊ¿äÇÕ´Ï´Ù.\n[È®ÀÎ]À» Ŭ¸¯ ÇÏ½Ã¸é ¼³Ä¡ÆäÀÌÁö·Î À̵¿ÇÕ´Ï´Ù.");
343  							
344							// »ï¼ºÆäÀÌ ÆË¾÷âÀÏ °æ¿ì ¼³Ä¡ÆäÀÌÁö º°µµÁöÁ¤
345							if ($(window).height() <= 500) {
346								//setupCMS = "/CXCRSCSC0100.cms";
347								document.location.href = "/CXCRSCSC0100.cms";
348								return false;
349							}
350							
351  							// ¼³Ä¡ÆäÀÌÁö À̵¿./ST/img/cxc/event/mgr/thumb/thumb.tar
352  							if (_SITE_SystemMode == "real") {
353  								document.location.href = "https://card.kbcard.com"+setupCMS;
354  							} else {
355  								if (_systemmode == "S") {
356  									document.location.href = "https://tcard.kbcard.com"+setupCMS;
357  								} else {  								
358  									document.location.href = "https://rcard.kbcard.com"+setupCMS;
359  								}
360  							}
361  						}
362  					}
363  				}
364  			}
365  			else 
366  			{
367  				// ¾È·¦ Äݼ¾ÅÍ ¹®ÀÇ
368  				alert("Űº¸µå º¸¾È ÇÁ·Î±×·¥\nÃʱâÈ­ ÀÛ¾÷ Áß ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.");
369  				return false;
370  			}
371  		}
372  	);
373  }
374}
375
376/*
377 * °¡»óŰÆÐµå¿¡¼­ »ç¿ëÇÏ´Â ÇÔ¼ö ÀçÁ¤ÀÇ
378 * SI °³¹ßÆÀ
379 */
380function SetExtE2EFields() 
381{ 
382	secuKeyProc(); 
383}
384
385
386/* 
387 * ¾È·¦ °¡»óŰº¸µå ¹× ŰÆÐµå ŸÀÔÁ¤ÀÇ / 2017.5.2 / ÁÖÀçÇö 
388 * letter : ¹®ÀÚ
389 * qwerty : ¹®ÀÚ + Ư¼ö¹®ÀÚ
390 * number : ¼ýÀÚ
391 * number_shuffle : ¼ýÀÚ¼¯±â
392 * qspace : ¹®ÀÚ + Ư¼ö¹®ÀÚ + ½ºÆäÀ̽º¹Ù
393*/
394var $ASKD2_TYPE={letter:'letter',qwerty:'qwerty',number:'number',number_shuffle:'number_shuffle',qspace:'qspace'};
395
396/*
397 * °¡»óŰÆÐµå ÃʱâÈ­ ÀÛ¾÷
398 * ¾È·¦Á¦°ø / 2017.4.28 / ÁÖÀçÇö
399*/
400function startSafeKeypad(input, isKpdOn)
401{
402	// Enter key ÀÔ·Â ½Ã À̹ÌÁö¹öư onclick event ¹ß»ýÇÏ´Â Çö»óÀ» ¹æÁö / 2019.6.20 / À̴뱤
403	if ( !astxCheckInput(input, isKpdOn) ) {
404		return;
405	}
406	
407	if ( isNoSetupInited ) { // ¹Ì¼³Ä¡¹öÀüÀÇ °æ¿ì °ËÁõÀ» À§ÇØ true·Î º¯°æ
408		isKpdOn = true;
409	}
410	
411	// °¡»óŰÆÐµå°¡ ¶ç¿öÁ® ÀÖ´ÂÁö È®ÀÎ / 2017.8.17
412	if (isKpdOn != null && isKpdOn != "undefined" && isKpdOn == true)
413	{
414		if (isAskd2Button(input)){
415			if (_keypadInput != null){
416				$ASKD2.doneSafeKeypad(_keypadInput);
417				isSafeKeypad = false;
417		// È­¸é¿¡ óÀ½µé¾î¿Í¼­ input°¡»óŰÆÐµå ÀÔ·ÂÇÏ´Ù ´Ù¸¥ input ¹öư Ŭ¸¯½Ã ¹ß»ýÇÏ´Â ¿À·ù Á¦°Å.
418			}
419			input.blur();                 	// 20170725 input Æ÷Ä¿½º °¬À»¶§ °¡»óŰÆÐµå´Â ¶ç¿ìÁö¸¸ Æ÷Ä¿½º¸¦ Á¦°ÅÇÏ¿© ¿Àµ¿ÀÛ Á¦°Å.
420		}
421		else
422		{
423			return;
424		}
425	}
426	
427	// ŸÀÔÀ» ÁöÁ¤Çؼ­ »ç¿ëÇÏ´Â ¹æ¹ýÀ¸·Î Á¤ÀÇ / 2017.5.23 / ÁÖÀçÇö
428	var askdType = input.getAttribute("askd2type");
429	if (askdType != null && askdType != "undefined")
430	{	
431		if (askdType == $ASKD2_TYPE.letter)
432			askdType = $ASKD2_TYPE.letter;
433		else if (askdType == $ASKD2_TYPE.qwerty)
434			askdType = $ASKD2_TYPE.qwerty;
435		else if (askdType == $ASKD2_TYPE.number)
436			askdType = $ASKD2_TYPE.number;
437		else if (askdType == $ASKD2_TYPE.number_shuffle)
438			askdType = $ASKD2_TYPE.number_shuffle;
439		else if (askdType == $ASKD2_TYPE.qspace)
440			askdType = $ASKD2_TYPE.qspace;
441		else
442			alert("Çã¿ë °ª:letter,qwerty,number,number_shuffle,qspace");
443	}
444	// ŸÀÔÀÌ ¾øÀ» °æ¿ì ±âº»À¸·Î ÁöÁ¤
445	if (askdType == null || askdType == "undefined")
446	{
447		var charType 	= input.getAttribute("chartype");
448		var classType	= input.getAttribute("class");
449		
450		if (charType == "onlynum" || charType == "int")
451			askdType = $ASKD2_TYPE.number;
452		else if (classType == "inputNumOnly" || classType == "inputTelno")
453			askdType = $ASKD2_TYPE.number;
454		else
455			askdType = $ASKD2_TYPE.qwerty;
456	}
457	
458	// ¹Ì¼³Ä¡¹öÀüÀ¯¹« È®ÀÎ ÈÄ Àüȯ / 2019.3.21 / À̴뱤
459	if ( isNoSetupInited ) {
460		startSafeKeypadNoSetup(input, askdType);
461		return;
462	}
463	
464	if (!isSafeKeypad)
465	{
466		$ASKD2.init(
467			// themeName, Options
468			'default', {clearAll:false},
469				
470			// onComplete callback
471			function onComplete(resultCode)
472			{
473				if(resultCode == $ASKD2.ID_DONE) {
474					onSafeKeyPad(input, askdType);
475				} else {
476					alert("°¡»óŰÆÐµå ÃʱâÈ­½ÇÆÐ:"+$ASKD2.getLastError());
477				}
478			}
479		);
480	}
481	else
482	{
483		$ASKD2.cancelSafeKeypad(input);
484		input.focus();
485		isSafeKeypad = false;
486	}
487
488	return false;
489}
490
491/**
492 * °¡»óŰÆÐµå µ¿ÀÛ
493 * ¾È·¦Á¦°ø / 2017.5.2 / ÁÖÀçÇö
494*/
495function onSafeKeyPad(input, type)
496{
497	$ASTX2.clearE2EText(input);
498	
499	isSafeKeypad = true;
500	
501	if (input.getAttribute("focusAlive") != "1" || input.getAttribute("focusAlive") == "undefined")
502	{
503		input.setAttribute("focusAlive", "1");
504		$("#"+input.id).focus(function()
505		{
506			if (input.getAttribute("askd2Done") == "1")
507			{
508				input.removeAttribute("askd2Done");
509				//input.value = "";
510				//$("#"+input.name+"_askd_1_pwd__").remove();
511				$ASKD2.clearSafeKeypad(input);
512			}
513			
514			return true;
515		});
516	}
517	
518	// È­¸é Ŭ¸¯½Ã ¿Ï·áó¸® (¾È·¦Á¦°ø) / 2017.7.17 / ÁÖÀçÇö
519	// ¾ÛÄ«µå ¹Ì¼³Ä¡¹öÀü¿¡¼­µµ »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ÇÔ¼ö·Î ºÐ¸® / 2019.4.5 / À̴뱤
520	setCmplKeypad();
521	
522	if(_keypadInput != null)
523		$ASKD2.doneSafeKeypad(_keypadInput);
524	
525	var positionValue = getAskd2Position(input);
526	
527	$ASKD2.startSafeKeypad(
528		input, {typeName:type, position:positionValue, sptDummy:true, useHangul:true, aniClick:true, randCursor:0, onShowKeypad:handlerShowKeypad, onValueChange:textMask},
529		
530		function onComplete(resultCode, elmInput)
531		{
532			isSafeKeypad = false;
533			
534			if(resultCode == $ASKD2.ID_DONE) 
535			{	
536				input.setAttribute("askd2Done", "1");
537			}
538			else if(resultCode == $ASKD2.ID_CANCEL)
539			{
540				$ASKD2.clearSafeKeypad(input);
541				
542				if (!isVirtualPc && !isLinuxMac)
543					input.focus();
544			}
545			else 
546			{
547				alert("°¡»óŰÆÐµå Ȱ¼ºÈ­ ½ÇÆÐ:"+$ASKD2.getLastError());
548			}
549		}
550	);
551	
552	return false;
553}
554
555// Æ÷Ä¿½º ¿Ï·áó¸®(¾È·¦Á¦°ø) / 2017.7.17 / ÁÖÀçÇö
556function handlerShowKeypad(elmInput, flagShow)
557{
558	if(true == flagShow) {
559		_keypadInput = elmInput;
560	} else {
561		// ¸¶½ºÅ·Ã³¸®¿Í °ü·ÃÇÏ¿© È£ÃâÀÌ ÇÊ¿ä(¸¶Áö¸·¹®ÀÚ°¡ ¸¶½ºÅ· ´ë»óÀϰæ¿ì *·Î ġȯ) / 2020.03.20 / À̴뱤
562		// ¸¶½ºÅ· °ü·Ã °³¼±·ÎÁ÷ Àû¿ëÇÏÁö ¾Ê±â·Î °áÁ¤ / 2020.03.26 / À̴뱤
563		//textMask(elmInput, true);
564		
565		_keypadInput = null;
566		
567		//e2e_callback ¼Ó¼º¿¡ ÇÔ¼ö¸íÀÌ ÀÖÀ» °æ¿ì È£ÃâÇϵµ·Ï ó¸® / 2020.03.26 / À̴뱤
568		var askdCallback = elmInput.getAttribute("e2e_callback");
569		if (askdCallback != null && askdCallback != "undefined" && askdCallback != "" ) {
570			if ( typeof(window[askdCallback]) == "function" ) {
571				var func = window[askdCallback];
572				func();
573			}
574		}
575		
576	}
577}
578
579// È­¸é Ŭ¸¯½Ã ¿Ï·áó¸® (¾È·¦Á¦°ø) / 2017.7.17 / ÁÖÀçÇö
580function setCmplKeypad(){
581	$(document).click(function(e) {
582		var elm = (e.target ? e.target : e.srcElement);
583
584		if(null == elm) 
585			return;
586
587		if(null == _keypadInput || elm == _keypadInput) 
588			return;
589
590		var keypad = $(".askd_ui")[0];
591
592		if(null == keypad) 
593			return;
594
595		var rect = keypad.getBoundingClientRect();
596
597		if (true == $_askdu.ptInRect(e.clientX, e.clientY, rect)) {
598			var inputId			= _keypadInput.id;
599			var inputIdLen 		= $("#"+inputId).attr('maxlength'); 
600			var inputIdVaLen	= $("#" + inputId).val().length;
601			var inputChartype 	= $("#"+inputId).attr('chartype');
602			var inputAutoClose 	= $("#"+inputId).attr('e2e_autoclose');
603			var inputCmplNxtFcsElm = $("#"+inputId).attr('e2e_cmplNxtFcsElm');
604			
605			if ((inputIdLen == inputIdVaLen) && (inputChartype == 'onlynum' || inputChartype == 'int' || inputAutoClose == 'Y')) {
606				$ASKD2.doneSafeKeypad(_keypadInput);
607				if ( inputCmplNxtFcsElm != "" && typeof(inputCmplNxtFcsElm) != "undefined" ) {
608					startSafeKeypad(document.all[inputCmplNxtFcsElm], true);
609				}
610			} else {
611				return;
612			}
613			
614		} else {
615			$ASKD2.doneSafeKeypad(_keypadInput);
616		}
617	});
618	
619}
620
621// keypad À§Ä¡¸¦ ¼öµ¿À¸·Î Á¦¾î ÇÒ ¼ö ÀÖµµ·Ï Á¦°ø / 2020.03.20 / À̴뱤
622function getAskd2Position(input){
623	var result = "auto";
624	var askdPosition = input.getAttribute("e2e_position");
625	
626	if (askdPosition != null && askdPosition != "undefined") {
627		result = askdPosition;
628	}
629	
630	return result;
631}
632
633function astxSetBeforeObj(){
634	// keydown ½ÃÁ¡ÀÇ À§Ä¡ ÀúÀå (Enter key ÀÔ·Â ½Ã À̹ÌÁö¹öư onclick event ¹ß»ýÇÏ´Â Çö»óÀ» ¹æÁöÇϱâ À§ÇÔ) / 2019.6.20 / À̴뱤
635	$('input').keydown(function(event){
636		//console.log(this);
637		astxBeforeObj = this; 
638	});
639	$('input').mousedown(function(event){
640		astxBeforeObj = this; 
641	});
642	$('input').focusin(function(event){
643		// IE ¿¡¼­´Â ÀÚµ¿À¸·Î À̹ÌÁö·Î focusÀ̵¿ÀÌ µÇ±â ¶§¹®¿¡ ¸·´Â´Ù.
644		if ( this.type != 'image' ) {
645			astxBeforeObj = this; 
646		}
647	});
648}
649
650//Enter key ÀÔ·Â ½Ã À̹ÌÁö¹öư onclick event ¹ß»ýÇÏ´Â Çö»óÀ» ¹æÁö / 2019.6.20 / À̴뱤
651function astxCheckInput(input, isKpdOn) {
652	var isValidInput = false; 	// input check °á°ú
653	var isImg = false; 			// img ¿©ºÎ È®ÀÎ(°¡»óŰÆÐµå ¹öư)
654	
655	if ( input == null ) {
656		return false;
657	}
658	
659	// img ÀÎÁö È®ÀÎ(trueó¸®)
660	if ( astxBeforeObj != null && astxBeforeObj.type == 'image' ) {
661		isImg = true;
662	}
663	
664	// astxBeforeObj °¡ pwNum¿¡ Á¸ÀçÇÏ¿©¾ß Á¤»óÀûÀÎ Á¢±Ù
665	if ( pwNum != null && pwNum.length > 0 ) {
666		for ( var i=0; i < pwNum.length; i++ ) {
667			if ( pwNum[i] == astxBeforeObj ) {
668				isValidInput = true;
669			}
670		}
671	}
672		
673	// input Box onfocus, img¹öư Ŭ¸¯½Ã °¡»óŰÆÐµå Ȱ¼ºÈ­ O	
674	if (isValidInput || isImg) {
675		return true;
676	} else if ( (isKpdOn == 'undefined' || isKpdOn == undefined) && (isValidInput && !isImg) ) {
677		return false;
678	} else {
679		return false;
680	}
681	
682}
683
684
685
686
687
688
689/*
690 * ¾È·¦¹Ì¼³Ä¡¹öÀü ±¸µ¿À» À§ÇÑ ÇÔ¼ö ±¸Çö
691 * º¸¾ÈÇÁ·Î±×·¥ ¹Ì¼³Ä¡ »óÅ·Π¾È·¦ °¡»óŰÆÐµå¸¸ »ç¿ë ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°ø(±âÁ¸ ·ÎÁ÷°ú º°°³·Î ÁøÇàµÈ´Ù).
692 * 2019.3.21 / À̴뱤
693 */
694// ¾È·¦¹Ì¼³Ä¡¹öÀü °¡»óŰÆÐµå ÃʱâÈ­
695function secuKeyInitNoSetup(){
696	isNoSetup = true;
697	
698	astxSetBeforeObj();
699	syncPwNum();
700	setCmplKeypad();
701	$ASKD2.init(
702		// themeName, Options
703		'default', {clearAll:true},
704		// onComplete callback
705		function onComplete(resultCode)
706		{
707			if(resultCode == $ASKD2.ID_DONE) {
708				console.log('[onload] ASKD2.init done');
709				isNoSetupInited = true;
710				onFocusKeypadNoSetup();
711			}else {
712				var errno = $ASKD2.getLastError();
713				console.log('[onload] ASKD2.init failed,errno='+errno+','+$ASKD2_CUST.getErrorMessage(errno));
714			}
715		}
716	);
717
718}
719
720// ¾È·¦¹Ì¼³Ä¡¹öÀü onFocusÇÔ¼ö »ý¼º
721function onFocusKeypadNoSetup()
722{
723	if ( pwNum != null && pwNum.length > 0 ) {
724		for(var i = 0; i < pwNum.length; i++) {
725			pwNum[i].onfocus = function() {
726				startSafeKeypad(this, true);
727			};
728		}
729	}
730}
731
732//°ª ÀԷµɶ§¸¶´Ù Äݹé¹Þ´Â ÇÔ¼ö(¾È·¦Á¦°ø).
733function textMask(input){ 
734	// split ÇÒ ¶§¿¡ ½ºÅ©¸³Æ® ¿À·ù ¹ß»ýÇÏ¿© null check·ÎÁ÷ Ãß°¡ / 2020.2.4 / À̴뱤
735	var padtxtmsk = input.getAttribute('padtxtmsk');
736	if( padtxtmsk != null ) {
737		
738		var txtmsk = padtxtmsk.split(','); 
739		var txtmskstart = Number(txtmsk[0]); 
740		var txtmsksize = Number(txtmsk[1]); 
741		
742		if(txtmsk.length == 2){ 
743			var plainTextValue = input.value; 
744			var plainTextId = input.id; 
745			var plainTextLength = input.value.length; 
746			var temp = ""; 
747			
748			if( plainTextLength > txtmskstart && plainTextLength < txtmskstart+txtmsksize+1){ 
749				temp = plainTextValue.substring(0,txtmskstart); 
750				for(var a=0;a<(plainTextLength - txtmskstart);a++){
751					// masking ´ë»ó Áß °¡Àå ÃÖ±Ù¿¡ ¾´ ¹®Àڴ ǥÃâ µÈ ÈÄ ´ÙÀ½¹ø ÀԷ¶§ºÎÅÍ ¸¶½ºÅ·µÇµµ·Ï ó¸® / 2020.03.20 / À̴뱤
752					/* ¸¶½ºÅ· °ü·Ã °³¼±·ÎÁ÷ Àû¿ëÇÏÁö ¾Ê±â·Î °áÁ¤ / 2020.03.26 / À̴뱤 (È®ÀÎ : ¿À°ü¼®Â÷Àå´Ô)
753					if ( a == plainTextLength-txtmskstart-1 && !flagClose) { // »ç¿ë ½Ã flagClose´Â ÇÔ¼öÀÇ ÆÄ¶ó¹ÌÅÍ·Î ¹ÞÀ» ¼ö ÀÖµµ·Ï ó¸®ÇؾßÇÑ´Ù.
754						temp = temp + plainTextValue.charAt(plainTextLength-1);
755					} else {
756						temp = temp + "*"; 
757					}
758					*/
759					temp = temp + "*";
760				} 
761				input.value = temp; 
762			}else if(plainTextLength > txtmskstart+txtmsksize){ 
763				temp = plainTextValue.substring(0,txtmskstart); 
764				for(var a=0;a<(plainTextLength - txtmskstart);a++){ 
765					if(a>txtmsksize-1) 
766					  temp = temp+ plainTextValue.substring(txtmskstart+a,txtmskstart+1+a); 
767					else 
768				  	temp = temp + "*"; 
769				} 
770				input.value = temp; 
771			} 
772		} 
773	} 
774} 
775
776// ÀԷ¿ϷáµÈ °¡»óŰÆÐµå¸¦ È®ÀÎÇϱâ À§ÇÑ ÇÔ¼ö
777function askdSetKeyPadNumber(input){
778    
779    var rmFlg = "N";
780    
781    if ( input.value=="" ) {
782    	rmFlg = "Y"
783    }
784    
785    var data = {
786        "keypadName" : input.name,
787        "rmFlg" : rmFlg,
788        "currentCms" : window.location.pathname
789    }
790    
791    $.ajax({
792        url: "/CXOCCZZCD0001.cms?responseContentType=json", 
793        type: "POST",
794        dataType: "json",
795        data: data,
796        success: function(data){
797            //console.log(data);
798        },
799        error: function(request, status, error){
800            //console.log(error);
801        }
802    });
803}
804
805// ¾È·¦¹Ì¼³Ä¡¹öÀü °¡»óŰÆÐµå µ¿ÀÛ
806function startSafeKeypadNoSetup(input, type)
807{
808	if( typeof(input) != 'undefined' && typeof(type) == 'undefined' ) {
809		type = input.getAttribute('askd2type');
810	}
811	
812	var positionValue = getAskd2Position(input);
813	
814	$ASKD2.startSafeKeypad(
815		// elmInput, Options
816		input, {typeName:type, position:positionValue, sptDummy:true, useHangul:true, aniClick:true, randCursor:0, onShowKeypad:handlerShowKeypad, onValueChange:textMask},
817		function onComplete(resultCode, elmInput)
818		{
819			if(resultCode == $ASKD2.ID_DONE ){
820				askdSetKeyPadNumber(elmInput);
821			}
822			
823			if(resultCode == $ASKD2.ID_CANCEL ){
824				askdSetKeyPadNumber(elmInput);
825			}
826			
827			if( resultCode != $ASKD2.ID_DONE && resultCode != $ASKD2.ID_CANCEL ) {
828				alert("°¡»óŰÆÐµå Ȱ¼ºÈ­ ½ÇÆÐ:"+$ASKD2.getLastError());
829			}
830		}
831	);
832}

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.