PageSourceSearch

https://8282kc.com/Library/Js/common.js?ver=3

js 8282kc.com collected 2026-10-08 07:39:55 UTC 39,136 bytes, 1,234 lines download raw bytes

1var aRrnCdNm = new Array(3);
2aRrnCdNm[1] = "개인통관고유번호를 입력해 주세요.";
3aRrnCdNm[2] = "'-'을 제외한 주민번호 13자리를 입력해 주세요.";
4aRrnCdNm[3] = "'-'을 제외한 사업자번호를 입력해 주세요.";
5
6// 정규식 패턴 모음
7var gFattProNm = /a-zA-Z0-9 \.\,\-/g;
8
9
10//------------------------------------------------------------------------------
11// 기능 : Input focus시 선택
12//------------------------------------------------------------------------------
13
14$(document).ready( function() {
15	// 즐겨찾기 추가
16	$('#favorite').on('click', function(e) { 
17		var bookmarkURL = window.location.href; 
18		var bookmarkTitle = document.title; 
19		var triggerDefault = false; 
20		
21		if (window.sidebar && window.sidebar.addPanel) { 
22			// Firefox version < 23
23			window.sidebar.addPanel(bookmarkTitle, bookmarkURL, ''); 
24		} else if ((window.sidebar && (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) || (window.opera && window.print)) { 
25			// Firefox version >= 23 and Opera Hotlist
26			var $this = $(this);
27			$this.attr('href', bookmarkURL); 
28			$this.attr('title', bookmarkTitle); 
29			$this.attr('rel', 'sidebar'); 
30			$this.off(e); triggerDefault = true; 
31		} else if (window.external && ('AddFavorite' in window.external)) {
32			// IE Favorite 
33			window.external.AddFavorite(bookmarkURL, bookmarkTitle); 
34		} else { 
35			// WebKit - Safari/Chrome 
36			alert('정상적으로 작동이 안될 경우 '+(navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Cmd' : 'Ctrl') + '+D 키를 눌러 즐겨찾기 추가하세요.'); 
37		} 
38	return triggerDefault; }); 
39
40});
41
42// 네이버 로그인 팝업
43function openWin( ) {
44	var popupX = (window.screen.width / 2) - (500 / 2);
45	var popupY= (window.screen.height /2) - (500 / 2);
46	window.open('/Front/join/Join_N.asp', '', 'status=no, height=525, width=600, left='+ popupX + ', top='+ popupY + ', screenX='+ popupX + ', screenY= '+ popupY);
47}
48
49// 네이버로그인 팝업
50function NLoginPop( ) {
51	//alert('아직 준비중입니다.')
52	//return;
53	var popupX = (window.screen.width / 2) - (500 / 2);
54	var popupY= (window.screen.height /2) - (500 / 2);
55	window.open('/Front/join/Join_N.asp', '', 'status=no, height=525, width=600, left='+ popupX + ', top='+ popupY + ', screenX='+ popupX + ', screenY= '+ popupY);
56}
57
58// 페이스북 로그인 팝업
59function FLoginPop( ) {
60	var popupX = (window.screen.width / 2) - (500 / 2);
61	var popupY= (window.screen.height /2) - (500 / 2);
62	window.open('/Front/join/Join_F.asp', '', 'status=no, height=525, width=600, left='+ popupX + ', top='+ popupY + ', screenX='+ popupX + ', screenY= '+ popupY);
63}
64
65// 구글로그인 팝업
66function GLoginPop() {
67	var popupX = (window.screen.width / 2) - (500 / 2);
68	var popupY= (window.screen.height /2) - (500 / 2);
69	window.open('/Front/join/Join_G.asp', '', 'status=no, height=525, width=600, left='+ popupX + ', top='+ popupY + ', screenX='+ popupX + ', screenY= '+ popupY);
70}
71
72// 카카오 로그인
73function KLogin(sKey) {
74
75	var sNickName = "";
76	// 로그인 창을 띄웁니다.
77	Kakao.Auth.login({
78
79	success: function(authObj) {
80		Kakao.API.request({
81			url: '/v2/user/me',
82			success: function(authObj) {
83				//alert(JSON.stringify(authObj));
84				//alert(authObj.id);
85				//alert(authObj.properties.nickname);
86				//alert(authObj.kakao_account.has_email);
87				//alert(authObj.kakao_account.email_needs_agreement);
88				//alert(authObj.kakao_account.is_email_valid);
89				//alert(authObj.kakao_account.is_email_verified);
90				//alert(authObj.kakao_account.email);
91				if (authObj.kakao_account.profile_needs_agreement == false){
92					sNickName = "";
93				}else{
94					sNickName = authObj.properties.nickname;
95				}
96
97				$.ajax({ url: "/Front/Join/Join_K.asp" ,
98					method: 'POST',
99					data : { id : authObj.id, nickname:sNickName, email : authObj.kakao_account.email},
100					dataType : 'json',
101					success: function(data) { 
102						if (data =="0"){
103							//document.location.href="https://www.naver.com/"; 
104							//var referrer = document.referrer;
105                            //document.location.href=referrer; 
106                            location.href = "/";
107						}else{
108							alert('정상적인 경로가 아닙니다.\n관리자에게 문의하세요');top.location.reload();
109						}
110					},
111					error: function(e) {
112						alert( e.responseText );
113					}
114				});
115
116
117			//alert(JSON.stringify(authObj));
118
119		},
120		fail: function(error){
121			alert(JSON.stringify(err));
122		}
123		});
124	},
125	fail: function(err) {
126		alert(JSON.stringify(err));
127	}
128
129	});
130}
131
132//------------------------------------------------------------------------------
133// 기능 : 특정 문자 제거
134//------------------------------------------------------------------------------
135function fnValKeyRep( pPatt, pObj ) {
136	pObj.value = pObj.value.replace( pPatt, '' );
137}
138
139//------------------------------------------------------------------------------
140// 기능 : 정규식 체크
141//------------------------------------------------------------------------------
142function fcRegInput(pPatt, pVal) {
143		var pPattern = pPatt;
144
145		if (pPattern.test(pVal)) {
146			return false;
147		}
148		return true;
149}
150
151//------------------------------------------------------------------------------
152// 기능 : 입력폼 유무 체크(유무, 사이즈S, E)
153//------------------------------------------------------------------------------
154function fnIptChk( pObj ) {
155
156	var fObj = pObj;
157	var fTf = false;
158
159	if ( $.trim(fObj.val()) == "" ) fTf = false;
160	else fTf = true;
161
162	return fTf;
163}
164
165//------------------------------------------------------------------------------
166// 기능 : 체크박스 전체선택
167//------------------------------------------------------------------------------
168function fnChkBoxTotal(sObj, sObjSel) {
169	// sObj -> 체크박스 객체(this)
170	// sObjSel -> 체크해야할 체크박스 이름
171
172	var ChkBox = document.getElementsByName(sObjSel); 
173	if (!ChkBox)
174	{
175		alert("선택할 항목이 없습니다.");
176		return;
177	}
178
179	if (ChkBox.length == undefined) {
180			ChkBox.checked = sObj.checked
181	}
182	else {
183		for (var i = 0; i < (ChkBox.length); i++) {
184			ChkBox[i].checked = sObj.checked;
185		}
186	}
187}
188
189//------------------------------------------------------------------------------
190// 기능 : 체크박스의 선택된 값을 구한다.
191//------------------------------------------------------------------------------
192function fnGetChkboxValue(oCheckbox)
193{
194    var lsCheckedValue = "";
195
196		if (oCheckbox.length == undefined) {
197			if (oCheckbox.checked) {
198				lsCheckedValue = oCheckbox.value;
199			}
200		}
201		else {
202			for(var i=0; i<oCheckbox.length; i++) 
203				if(oCheckbox[i].checked) lsCheckedValue += oCheckbox[i].value +",";
204
205			lsCheckedValue = lsCheckedValue.substring(0, lsCheckedValue.length-1)
206		}
207    return lsCheckedValue;
208}
209//------------------------------------------------------------------------------
210// 기능 : 체크박스 체크 카운팅
211//------------------------------------------------------------------------------
212function fnSelBoxCnt(chkTarget) {
213
214	if(chkTarget == null) return 0;
215
216	var size = chkTarget.length;
217	if(size == undefined) {
218		if(chkTarget.checked == false) return 0;
219		return 1;
220	}
221
222	var selected_group_count = 0;
223	for(var u=0; u<size; u++) {
224		if(chkTarget[u].checked == true) selected_group_count++;
225	}
226	return selected_group_count;
227
228}
229
230//------------------------------------------------------------------------------
231// 기능 : 문자열 체크(값, 비교문자원본)
232//------------------------------------------------------------------------------
233function fnChkTy(pVal, pOrg) {
234	var i;
235	for(i=0; i<pVal.length; i++) {
236		if (pOrg.indexOf( pVal.substring(i, i+1)) < 0) {
237			return false;
238		}
239	}
240	return true;
241}
242
243//------------------------------------------------------------------------------
244// 기능 : 문자열 체크(값, 비교문자원본)
245//------------------------------------------------------------------------------
246function fnChkTyBan(pVal, pOrg) {
247	var i;
248	for( i=0; i<pVal.length; i++ ) {
249		if (pOrg.indexOf( pVal.substring(i, i+1)) != -1) {
250			return false;
251		}
252	}
253	return true;
254}
255
256//------------------------------------------------------------------------------
257// 기능 : ElementById 기본 설정
258//------------------------------------------------------------------------------
259function fnEB( pNm ) {
260	if (pNm) {
261		return document.getElementById(pNm);
262	}
263}
264
265//------------------------------------------------------------------------------
266// 메세지 후 포커스
267//------------------------------------------------------------------------------
268function fnMsgFcs(pObj, pMsg) {
269	alert(pMsg);
270	pObj.focus();
271}
272
273//------------------------------------------------------------------------------
274// 기능 :  Input Focus 시 전체 선택
275//------------------------------------------------------------------------------
276function fnFcsAll(pObj) {
277    pObj.select();
278}
279
280//------------------------------------------------------------------------------
281// 기능 :  파일업로드시 직접입력 못하게 체크
282//------------------------------------------------------------------------------
283function fnFlTxtNot() {
284    event.returnValue = false;
285}
286
287// 좌측 공백제거
288function ltrim( str ) {
289	    for ( i=0 ; i<str.length ; i++ ) {
290		    if ( str.charAt(i)  == ' ' ) str = str.substring(1);
291		    else break;
292	    }
293	    return str;
294}
295
296// 우측 공백제거
297function rtrim( str ) {	
298	    for ( i=str.length-1 ; i>=0 ; i-- ) {
299		    if ( str.charAt(i)  == ' ' ) str = str.substring(0,i);
300		    else break;
301	    }
302	    return str;
303}
304
305// 전체 공백제거
306function trim( str )
307{	    
308	    str = ltrim(str);
309	    str = rtrim(str);	    
310	   
311	    return str;	
312}	
313//------------------------------------------------------------------------------
314// 기능 : 숫자만 입력하게 체크 Key
315//------------------------------------------------------------------------------
316function fnChkNumeric() {
317	if(event.keyCode < 48 || event.keyCode > 57) {
318		if (event.keycode == 13) return true;
319		event.returnValue = false;
320	} 
321}
322
323//------------------------------------------------------------------------------
324// 기능 : 숫자(점 포함)만 입력하게 체크 Key
325//------------------------------------------------------------------------------
326	function fnChkNumericDot() {
327		if(event.keyCode < 48 || event.keyCode > 57) {
328			if (event.keyCode != 46) {
329				if (event.keycode == 13) return true;
330				event.returnValue = false;
331			}
332		}
333	}
334
335//------------------------------------------------------------------------------
336// 값 변환 시 숫자체크 및 소수자릿수(2) 체크(Object, 자릿수)
337//------------------------------------------------------------------------------
338function fnNumChiper(sObj, sChiper) {
339	var sNum = sObj.value;
340	var sDot = 0, sPm = "";
341
342	sNum = sNum.replace(/,/g, "");
343	sNum = isNaN(sNum) ? sDot : sNum;
344
345	if ( sNum < 0 ) {
346		sPm = "-";
347	}
348
349	sNum = Math.abs(sNum);
350	//sNum = Math.round(sNum);
351	sNum = sNum.toFixed(sChiper);
352	sObj.value = sPm + "" + sNum;
353}
354
355//------------------------------------------------------------------------------
356// 값 변환 시 숫자체크 및 맨 앞 0 없애기, 소숫점 포함
357//------------------------------------------------------------------------------
358function fnNumDot(sObj) {
359	var sNum = sObj.value;
360	var sDot = 0, sPm = "";
361
362	sNum = sNum.replace(/,/g, "");
363	sNum = isNaN(sNum) ? sDot : sNum;
364
365	if ( sNum < 0 ) {
366		sPm = "-";
367	}
368
369	sNum = Math.abs(sNum);
370	sObj.value = sPm + "" + sNum;
371}
372
373//------------------------------------------------------------------------------
374// 값 변환 시 숫자체크 및 소수자릿수(2) 체크(Object, 자릿수) 및 자릿수 콤마
375//------------------------------------------------------------------------------
376function fnNumChiperCom(sObj, sChiper) {
377	var sNum = sObj.value;
378	var sDot = 0, sPm = "";
379
380	sNum = sNum.replace(/,/g, "");
381	sNum = isNaN(sNum) ? sDot : sNum;
382
383	if ( sNum < 0 ) {
384		sPm = "-";
385	}
386
387	sNum = Math.abs(sNum);
388	//sNum = Math.round(sNum);
389	sNum = sNum.toFixed(sChiper);
390	sObj.value = sPm + "" + fnNumComma(sNum);
391}
392
393//------------------------------------------------------------------------------
394// Round 기능 : 10단위, 100단위 ... 올림
395//------------------------------------------------------------------------------
396function fnNumRound(Num, Chiper) {
397	var fNum = Num, fChiper = Chiper;
398
399	fChiper = isNaN(fChiper) ? 1 : fChiper;
400	fNum = String(fNum).replace(/,/g, "");
401	fNum = isNaN(fNum) ? 0 : fNum;
402
403	fNum = ( Number(fNum) / Number(fChiper) ).toFixed(0);
404	fNum = Number(fNum) * Number(fChiper);
405
406	return fNum;
407}
408
409//------------------------------------------------------------------------------
410// 리턴 : 팝업 창
411//------------------------------------------------------------------------------
412function fnPopWin(sUrl, sTitle, iWidth, iHeight, iLeft, iTop, sScrollYN)
413{
414	var lsWinOption;
415	var sSYN; 
416
417	sSYN = sScrollYN;
418	switch (sScrollYN) {
419	case 'Y' : sSYN = 'yes'; break;
420	case 'N' : sSYN = 'no'; break;
421	default : sSYN = 'auto'; break;
422	}
423
424	sTitle = sTitle.replace(" ", "_");
425
426	lsWinOption = "width=" + iWidth + ", height=" + iHeight;
427
428	lsWinOption += " toolbar=no, directories=no, status=no, menubar=no, location=no, resizable=yes, left=" + iLeft + ", top=" + iTop + ", scrollbars="+sSYN;
429	var loNewWin = window.open(sUrl, sTitle, lsWinOption).focus();
430
431	//loNewWin.focus();
432}
433
434//------------------------------------------------------------------------------
435// 리턴 : 팝업 창 중앙
436//------------------------------------------------------------------------------
437function fnPopWinCT(sUrl, sTitle, iWidth, iHeight, sScrollYN)
438{
439	var lsWinOption;
440	var sSYN;
441
442	//var iLeft, iTop;
443	iLeft = (screen.width - iWidth)/2;
444	iTop = (screen.height - iHeight)/2;
445
446	sSYN = sScrollYN;
447	switch (sScrollYN) {
448	case 'Y' : sSYN = 'yes'; break;
449	case 'N' : sSYN = 'no'; break;
450	default : sSYN = 'auto'; break;
451	}
452
453	sTitle = sTitle.replace(" ", "_");
454
455	lsWinOption = "width=" + iWidth + ", height=" + iHeight;
456
457	lsWinOption += " toolbar=no, directories=no, status=no, menubar=no, location=no, resizable=yes, left=" + iLeft + ", top=" + iTop + ", scrollbars="+sSYN;
458	var loNewWin = window.open(sUrl, sTitle, lsWinOption).focus();
459
460	//loNewWin.focus();
461}
462//  문자열의 byte 길이 가져옴
463function getByte(str) {
464    var i
465    var re_count = 0
466    var val = '';
467
468    for (i = 0; i < str.length; i++) {
469        val = escape(str.charAt(i)).length;
470        
471        if (val > 4) {
472            re_count += 2;
473        }
474        else {
475            re_count++;
476        }
477    }
478
479    return re_count;
480}
481
482//------------------------------------------------------------------------------
483// 기능 : sms 문자 byte 체크
484//------------------------------------------------------------------------------
485function fnLengChk(pObj, pEle, pLimit) {
486	var temp;
487	var count = 0;
488	var msg = pObj.value;
489
490	for (var i = 0; i < msg.length; i++) {
491		temp = msg.charAt(i);
492
493		if (escape(temp).length > 4) {
494			count += 2;
495		} else if (temp == '' || temp == '\r') {
496			count += 0;
497		} else if (temp == '·') {
498			count += 2;
499		} else {
500			++count;
501		}
502		
503		if (count > pLimit) {
504			pObj.blur();
505			pObj.focus();
506			alert('메시지는 ' + pLimit + '바이트까지만 전송이 가능합니다(한글 2byte, 영문숫자 1byte).\r\n초과되는 내용은 삭제됩니다.');
507			msg = msg.substring(0, i);
508			pObj.value = msg;
509			pEle.innerHTML = pLimit;
510			return;
511		}
512	}
513
514	pEle.innerHTML = count;
515
516}
517
518//------------------------------------------------------------------------------
519// 한글->영문 이름 번역
520//------------------------------------------------------------------------------
521function fnHanEng(pVal, pTarget) {	
522/**
523 *
524 *  초성 19개:   ㄱ   ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
525 *  중성 21개:   ㅏ   ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
526 *  종성 28개:  Fill  ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ 
527 *
528 *  유니코드 2.0 한글의 범위
529 *      AC00(가) ~ D7A3(힣)
530 *
531 *  유니코드 2.0 한글을 영문자로 표시하기
532 *      ㄱ  <-->  ㅋ
533 *      ㄷ  <-->  ㅌ
534 *      ㅂ  <-->  ㅃ
535 *      ㅈ  <-->  ㅉ
536 */
537
538	var sCho, sJung, sChong;
539
540	sCho		= ["G","Gg","N","D","Tt","R","M","B","Pp","S","Ss","O","J","Jj","Ch","K","T","P","H"];
541	sJung		= ["a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","wo","we","wi","yu","eu","ui","i"];
542	sChong	= ["","g","gg","gs","n","nz","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","z","ch","k","t","p","h"];
543
544	var sVal = pVal;
545	var sTarget = pTarget;
546
547	var t = "";
548	var tmp = "";
549	var n, n1, n2, n3;
550	var c, d;
551	var PHAN = "";
552	var PENG = "";
553	var j;
554	var o = sTarget;
555    for (i = 0; i < sVal.length; i++) {
556		c = sVal.charAt(i);
557		n = parseInt(escape(c).replace(/%u/g, ''), 16); 
558        if (n >= 0xAC00 && n <= 0xD7A3) {
559			n = n - 0xAC00;
560            n1 = Math.floor(n / (21 * 28));
561            n = n % (21 * 28);
562            n2 = Math.floor(n / 28);
563            n3 = Math.floor(n % 28);
564            tmp = sCho[n1] + sJung[n2] + sChong[n3];
565            if (tmp.length > 1 && tmp.charAt(0) == 'O')
566				tmp = ("" + tmp.charAt(1)).toUpperCase() + tmp.substring(2);
567				if (i == 0)	{
568				//	tmp ="KWON" ;
569					if(c == "권"){
570						tmp = "KWON";					
571					}else if(c == "김"){ 
572						tmp = "KIM";
573					}else if(c == "이"){
574						tmp ="LEE";
575					}else if(c == "류"){
576						tmp ="RYU";
577					}else if(c == "박"){
578						tmp ="PARK";
579					}else if(c == "최"){
580						tmp ="CHOI";
581					}else if(c == "오"){
582						tmp ="OH";
583					}else if(c == "우"){
584						tmp ="WOO";
585					}else if(c == "주"){
586						tmp ="JOO";
587					}
588				}
589                t += tmp;				
590				}
591				else
592					t += c;
593		
594        }
595
596//		for (j = LBound(Split(t, " ")); j = UBound(Split(t, " ")); j++) {
597//			PHAN(j) = Split(t, " ")(j);
598//		} 			
599//		while (j >= 0){
600//			PENG = PENG + PHAN(j) & " ";
601//			j = j - 1;
602//		}	
603
604//		t = PENG.toUpperCase();
605//		alert(t);
606		t = t.toUpperCase();
607		o.value = t;
608        return t;
609    }
610
611
612//------------------------------------------------------------------------------
613// 포커스 위치
614//------------------------------------------------------------------------------
615function fnAbsPos(e){
616	this.x = e.clientX + (document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);
617	this.y = e.clientY + (document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);
618    return this;
619}
620
621//------------------------------------------------------------------------------
622// 기능 : 숫자를 문자로 변환 후 3자리마다 콤마(,) 생성하기
623//------------------------------------------------------------------------------
624function fnNumComma(str) {
625
626   var str = "" + str;
627   var objRegExp = new RegExp("(-?[0-9]+)([0-9]{3})");
628   while (objRegExp.test(str)) {
629      str = str.replace(objRegExp, "$1,$2");
630   }
631
632   return str;
633}
634
635//------------------------------------------------------------------------------
636// 기능 : 주문서 정보 보기 
637//------------------------------------------------------------------------------
638function fnOrdPopV(val1){
639	var frmObj = "#frmSearch";
640	var	reVal = ""; 
641		reVal = "?ORD_SEQ="+val1; 
642	fnPopWinCT("./Acting_Pop_V.asp"+reVal, "주문내역보기", 1000, 600, "Y")
643}
644//------------------------------------------------------------------------------
645// 기능 : 주문서 정보 보기 
646//------------------------------------------------------------------------------
647function fnOrdPopFrontV(val1){
648	var frmObj = "#frmSearch";
649	var	reVal = ""; 
650		reVal = "?ORD_SEQ="+val1; 
651	fnPopWinCT("/Front/Acting/Acting_Pop_V.asp"+reVal, "주문내역보기", 1000, 600, "Y")
652}
653
654//------------------------------------------------------------------------------
655// 기능 : 트래킹 검색
656//------------------------------------------------------------------------------
657function fnDlvrSh(ObjNm){
658	var frmNm = "#" + ObjNm;
659	var TrkTy = $(frmNm + " input[name='sDTy']").val();
660	var Dcomp = $(frmNm + " input[name='sDComp']").val();
661	var TrkNo = $(frmNm + " input[name='sTrkNo']").val();
662
663	if ( TrkTy == "EN" ) {
664		
665		if ( TrkNo == "" ) {
666			alert('Tracking Number를 입력하십시오.'); TrkNo.focus();
667			return false;
668		}
669
670		//var Dcomp = $("#sDComp option:selected").val();
671			
672		var Dcomp = $(frmNm + " input[name='sDComp']");
673
674		//fnPopWinCT("", "EN_TRK_SH", 1000, 700, "Y");
675		//$(frmNm).attr("action", "/Library/Html/TrackingSearch_S.asp").attr("target", "EN_TRK_SH").submit();
676		//alert(Dcomp);
677
678		fnPopWinCT("/library/html/TrackingSearch_S.asp?sDComp="+Dcomp+"&sTrkNo=" + TrkNo, "EN_TRK_SH", 1000, 700, "Y");
679		//return false;
680
681	} else {
682
683
684		if ( TrkNo == "" ) {
685			alert('운송장번호를 입력하십시오.'); TrkNo.focus();
686			return false;
687		}
688		
689		//fnPopWinCT("/library/html/acedp_s.asp?query=" + TrkNo.val(), "KR_TRK_SH", 1000, 700, "Y");
690
691		fnPopWinCT("/library/html/TrackingSearch_S.asp?sDComp="+Dcomp+"&sTrkNo=" + TrkNo, "KR_TRK_SH", 1000, 700, "Y");
692		//return false;
693	}
694}
695
696//------------------------------------------------------------------------------
697// 기능 : 트래킹 검색(다이렉트)
698//------------------------------------------------------------------------------
699function fnDlvrShDirect(sDComp, sTrkNo){
700
701	fnPopWinCT("/Library/Html/TrackingSearch_S.asp?sDComp=" + sDComp + "&sTrkNo=" + sTrkNo, "EN_TRK_SH", 1000, 700, "Y");
702	//return false;
703}
704
705//------------------------------------------------------------------------------
706// 기능 : 운송장 검색
707//------------------------------------------------------------------------------
708function fnIvcNoSh(IvcNo) {
709	//fnPopWinCT("/library/html/acedp_s.asp?query=" + IvcNo, "KrDlvrSearch", 1000, 500, "Y");
710	fnPopWinCT("/Library/Html/TrackingSearch_S.asp?sDComp=KR&sTrkNo=" + IvcNo, "KR_TRK_SH", 1000, 700, "Y");
711}
712//------------------------------------------------------------------------------
713// 기능 : 운송장 검색 수정/ 수취인 필요시
714//------------------------------------------------------------------------------
715function fnIvcNoOrdSh(IvcNo,sOrdSeq) {
716	//fnPopWinCT("/library/html/acedp_s1.asp?query=" + IvcNo + "&sOrdSeq="+ sOrdSeq, "KrDlvrSearch", 1000, 500, "Y");
717	fnPopWinCT("/Library/Html/TrackingSearch_S.asp?sDComp=KR&sTrkNo=" + IvcNo, "KR_TRK_SH", 1000, 700, "Y");
718}
719
720//------------------------------------------------------------------------------
721// 기능 : 배송 금액 계산하기
722//------------------------------------------------------------------------------
723function fnDlvrMnyPop(){
724	fnPopWinCT("/Library/Html/Dlvr_Mny_Pop_W.asp", "DlvrMnyPop", 600, 670, "Y")
725}
726
727//------------------------------------------------------------------------------
728// 기능 : 체크박스 전체 선택
729//------------------------------------------------------------------------------
730function fnCkBoxAllSel( pFrmNm, pColAllNm, pColNm ) {
731 
732	var fColAllNm = $("#" + pFrmNm + " input[name='"+pColAllNm+"']");
733	var fColNm = $("#" + pFrmNm + " input[name='"+pColNm+"']");
734	var fChkVal = "";
735
736	if ( fColNm ) {
737		fColNm.prop("checked", fColAllNm.prop("checked"));
738	}
739
740}
741
742//------------------------------------------------------------------------------
743// 체크박스 값 가져오기
744//------------------------------------------------------------------------------
745function fnCkBoxVal( pFrmNm, pColNm ) {
746	var fColNm = pColNm;
747	var fChkVal = "";
748
749	$("#" + pFrmNm + " input[name='"+fColNm+"']").each( function() {
750		if ( $(this).is(":checked") ) {
751			fChkVal += "," + $(this).val();
752		}
753	});
754
755	if ( fChkVal != "" ) {
756		fChkVal = fChkVal.substring( 1, fChkVal.length );
757	}
758
759	return fChkVal;
760}
761
762//숫자 콤마 찍기
763function fnCommaNum(num) {
764
765	if (num < 0) { num *= -1; var minus = true}
766	else var minus = false
767
768	var dotPos = (num+"").split(".")
769	var dotU = dotPos[0]
770	var dotD = dotPos[1]
771	var commaFlag = dotU.length%3
772
773	if(commaFlag) {
774			var out = dotU.substring(0, commaFlag)
775			if (dotU.length > 3) out += ","
776	}
777	else var out = ""
778
779	for (var i=commaFlag; i < dotU.length; i+=3) {
780			out += dotU.substring(i, i+3)
781			if( i < dotU.length-3) out += ","
782	}
783
784	if(minus) out = "-" + out
785	if(dotD) return out + "." + dotD
786	else return out
787}
788
789// 즐겨찾기
790function fnBrwsFvrt( SiteUrl, SiteTit ) {
791	alert("정상적으로 작동이 안될시에는 'Ctrl + D'를 눌러 즐겨찾기 추가하세요.");
792	//if ( document.all ) {
793		window.external.AddFavorite(SiteUrl, SiteTit);
794	//} else {
795		//alert("익스프로러 이외의 브라우저에서는 'Ctrl + D'를 눌러 즐겨찾기 추가하세요.");
796	//};
797}
798
799//------------------------------------------------------------------------------
800// 기능 : 엔터 후 폼 이동(검색용)
801//------------------------------------------------------------------------------
802function fnEnterSubmit( e, FormNm, PageNm ) {
803	var fFrmNm = "#" + FormNm;
804
805	if ( e.keyCode == 13 ) {
806		$(fFrmNm + " input[name='" + PageNm + "']").val(1);
807		$(fFrmNm).submit();
808	}
809}
810
811//------------------------------------------------------------------------------
812// 주소록 찾기 팝업
813//------------------------------------------------------------------------------
814 function fnPopAddr(){ 
815	var Rtn_val;
816	Rtn_val = "?rtn_ZIP=ZIP&rtn_ADDR_1=ADDR_1&rtn_ADDR_2=ADDR_2";
817	fnPopWinCT("/Library/Html/AddrFind/PopAddrFind.asp" + Rtn_val, "AddrSearch", 800, 500, "Y")
818}
819
820//------------------------------------------------------------------------------
821// Input 설명 Focus In
822//------------------------------------------------------------------------------
823 function fnFocusInExp( pNm, pExp ) {
824	var fNm = $("input[name='" + pNm + "']");
825	var fVal = pExp;
826	if ( fNm.val() == pExp ) {
827		$("#RRN_NO").val("");
828	}
829
830}
831
832//------------------------------------------------------------------------------
833// Input 설명 Focus Out
834//------------------------------------------------------------------------------
835 function fnFocusOutExp( pNm, pExp ) {
836	var fNm = $("input[name='" + pNm + "']");
837
838	if ( fNm.val() == "" || fNm.val() == pExp ) {
839		$(fNm).val(pExp);
840	}
841}
842
843//------------------------------------------------------------------------------
844// Input 설명 Focus Out REg
845//------------------------------------------------------------------------------
846 function fnFocusOutReg( pNm, pExp, pFatt ) {
847
848	var fNm = $("input[name='" + pNm + "']");
849
850		if ( fNm.val() == "" || fNm.val() == pExp ) {
851			$(fNm).val(pExp);
852		} else {
853			$(fNm).val( $(fNm).val().replace(pFatt, "") );
854		}
855		//21-07-13 사업자 등록번호에 "P"로 시작할경우 경고창
856		//if ($('input[name=RRN_CD]:radio:checked').val()  == "3" && fNm.val().substring(0,1) == "P"){
857		//	alert("사업자통관은 개인통관고유부호란에 사업자등록번호를 입력해주세요");
858		//	$(fNm).val("");
859		//}
860}
861
862//------------------------------------------------------------------------------
863// 체크박스의 Y/N 값 설정하여 전체 가져오기
864//------------------------------------------------------------------------------
865function fnChkBoxYnVal(pColNm) {
866    var fColNm = pColNm;
867    var fChkVal = "";
868
869    $("input[name='" + fColNm + "']").each(function () {
870        if ($(this).is(":checked")) fChkVal += "," + "Y";
871        else fChkVal += "," + "N";
872    });
873
874    if (fChkVal != "") {
875        fChkVal = fChkVal.substring(1, fChkVal.length);
876    }
877
878    return fChkVal;
879}
880
881//------------------------------------------------------------------------------
882// Easy-ui Modal Popup
883//------------------------------------------------------------------------------
884function fnModalPop(pTitle, pUrl, pW, pH) {
885	var modalNm = "#PopModal";
886	var ifrNm   = "ifrModal";
887	var frmModal = "#frmModal";
888	var iLeft, iTop;
889
890	iLeft = ( $(window).width() / 2 ) - ( pW / 2 );
891	iTop  = $(document).scrollTop() + ( $(window).height() / 2 ) - ( pH / 2 );
892
893	$("#frmModal").attr("target", "ifrModal").attr("action", pUrl).submit();
894	$(modalNm).window({
895		title:pTitle,
896		left:iLeft + "px",
897		top:iTop + "px",
898		width:pW,
899		height:pH
900	});
901	$(modalNm).window("open");
902}
903
904//------------------------------------------------------------------------------
905// , 있는 값 숫자만 나오게하고 Number로
906//------------------------------------------------------------------------------
907function fnNumber(sVal, sChiper) {
908	var sNum = sVal;
909	var sDot = 0;
910
911	sNum = sNum.replace(/,/g, "");
912	sNum = isNaN(sNum) ? sDot.toFixed(sChiper) : sNum*1;
913	sNum = Math.abs(sNum);
914	//sNum = Math.round(sNum);
915	sNum = sNum.toFixed(sChiper);
916	return sNum;
917}
918
919//------------------------------------------------------------------------------
920// Calendar Input Set : EasyUi
921//------------------------------------------------------------------------------
922function myformatter(date){
923	var y = date.getFullYear();
924	var m = date.getMonth()+1;
925	var d = date.getDate();
926	return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
927}
928function myparser(s){
929	if (!s) return new Date();
930	var ss = (s.split('-'));
931	var y = parseInt(ss[0],10);
932	var m = parseInt(ss[1],10);
933	var d = parseInt(ss[2],10);
934	if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
935		return new Date(y,m-1,d);
936	} else {
937		return new Date();
938	}
939}
940
941//------------------------------------------------------------------------------
942// 기능 : 중국어 사전
943//------------------------------------------------------------------------------
944function fnDicPop(){
945	fnPopWinCT("http://translate.naver.com/#/zh/ko", "DicPop", 550, 500, "Y")
946	//fnPopWinCT("/Library/Html/Dic_L.asp", "DicPop", 600, 670, "Y")
947}
948
949// 통관조회
950function fnCstmSearch(IvcNo) {
951	fnPopWinCT("http://portal.customs.go.kr/kcsipt/portal_link.jsp?portalGoToLink=inform_5&iFrameGoToLink=/StaPt/StaInfoOfferAction_3.do?method=viewImpCargoProgInfoEach", "CustomsSearch", 1000, 600, "Y");
952}
953
954// 0.5 kg 단위 변환
955function fnUnitKgWt(Num) {
956	var fWt = Num, fFst = 0, fLast = 0;
957
958	fLast	= fWt % 1;
959	fFst	= Math.floor(fWt);
960
961	if ( fLast <= 0 ) {
962		fLast = 0;
963	} else if ( fLast > 0 && fLast <= 0.5 ) {
964		fLast = 0.5;
965	} else {
966		fLast = 1;
967	}
968
969	return fFst + fLast;
970}
971
972// 1 lbs 단위 변환
973function fnUnitLbWt(Num) {
974	var fWt = Num, fFst = 0, fLast = 0;
975
976	fLast	= fWt % 1;
977	fFst	= Math.floor(fWt);
978
979	if ( fLast > 0 ) {
980		fLast = 1;
981	} else {
982		fLast = 0;
983	}
984
985	return fFst + fLast;
986}
987
988// 트래킹별 사진촬영 보기
989function fnFrgImgView(sOrdSeq,sFrgIvcNo) {
990	fnPopWinCT("/Library/html/Frg_Img_V.asp?sOrdSeq=" + sOrdSeq +"&sFrgIvcNo=" + sFrgIvcNo, "FrgIvcNoImgView", 860, 600, "Y");
991}
992// 트래킹별 사진촬영 보기
993function fnFrgImgView1(sOrdSeq,sFrgIvcNo,sOrdNo) {
994	fnPopWinCT("/Library/html/Acting/Shoot_V.asp?sOrdSeq=" + sOrdSeq +"&sOrdNo="+ sOrdNo +"&sFrgIvcNo=" + sFrgIvcNo, "FrgIvcNoImgView", 860, 600, "Y");
995}
996// 트래킹별 사진촬영 보기(신규)
997function fnFrgImgView2(sOrdSeq,sMemCode) {
998	fnPopWinCT("/view-photo.asp?sOrdSeq=" + sOrdSeq +"&sMemCode="+ sMemCode, "FrgIvcNoImgView", 1000, 800, "Y");
999}
1000
1001function fnPageReload(val){
1002	document.location.href=val;
1003}
1004
1005// 결제 상세 보기
1006function fnOrdChaView(sOrdSeq) {
1007	fnPopWinCT("/Admin/Acting/OrdCha_A.asp?sOrdSeq="+sOrdSeq+"&sChk=Y", "OrdChaView", 500, 250, "Y");
1008}
1009
1010
1011
1012//------------------------------------------------------------------------------
1013// 리턴 : 팝업 창 중앙(sms충전)
1014//------------------------------------------------------------------------------
1015
1016var loNewWin1
1017function fnPopWinSmsCT(sUrl, sTitle, iWidth, iHeight, sScrollYN)
1018{
1019	var lsWinOption;
1020	var sSYN;
1021
1022	//var iLeft, iTop;
1023	iLeft = (screen.width - iWidth)/2;
1024	iTop = (screen.height - iHeight)/2;
1025
1026	sSYN = sScrollYN;
1027	switch (sScrollYN) {
1028	case 'Y' : sSYN = 'yes'; break;
1029	case 'N' : sSYN = 'no'; break;
1030	default : sSYN = 'auto'; break;
1031	}
1032
1033	sTitle = sTitle.replace(" ", "_");
1034
1035	lsWinOption = "width=" + iWidth + ", height=" + iHeight;
1036
1037	lsWinOption += " toolbar=no, directories=no, status=no, menubar=no, location=no, resizable=yes, left=" + iLeft + ", top=" + iTop + ", scrollbars="+sSYN;
1038	loNewWin1 = window.open(sUrl, sTitle, lsWinOption);
1039	loNewWin1.focus();
1040
1041	fnPopWinSmsCTCnl(loNewWin1);
1042	
1043}
1044
1045
1046function fnPopWinSmsCTCnl()
1047{
1048	if (loNewWin1.closed)
1049	{
1050		window.location.reload(true);
1051	}else setTimeout("fnPopWinSmsCTCnl()",1);
1052}
1053
1054
1055//------------------------------------------------------------------------------
1056// 동적 폼 생성
1057//------------------------------------------------------------------------------
1058function fnDnyamicForm( FrmNm, Method ) {
1059	var $DynFrm = "";
1060
1061	//if ( $DynFrm.attr("id") == undefined ) {
1062		$DynFrm = $("<form/>").attr({id:FrmNm, name:FrmNm, method:Method});
1063		$(document.body).append($DynFrm);
1064	//}
1065
1066	$DynFrm.empty();
1067
1068	return $DynFrm;
1069}
1070
1071//------------------------------------------------------------------------------
1072// 동적 Input 생성
1073//------------------------------------------------------------------------------
1074function fnDnyamicInput( FrmNm, Nm, Val ) {
1075
1076	$("<input></input>").attr({type:"hidden", name:Nm, value:Val}).appendTo(FrmNm);
1077
1078}
1079
1080//언어 선택
1081function fnLanChange(sVal) {
1082	$.ajax({url: "/Library/Html/LangChg_S.asp?sLangCd="+sVal, success: function(result){
1083		top.location.reload();
1084	}});
1085}
1086
1087// 2020-09-16 강진구 구글로그인 연동
1088 function onSignIn(googleUser) {
1089	// Useful data for your client-side scripts:
1090	var profile = googleUser.getBasicProfile();
1091
1092	$.ajax({ url: "/Front/Join/Join_G.asp" ,
1093		method : 'POST',
1094		data : { name : profile.getName() , email : profile.getEmail(), id : profile.getId() },
1095		dataType : 'json',
1096			success: function(data) { 
1097				if (data == "0"){
1098					//document.location.href="https://www.naver.com/"; 
1099					//var referrer = document.referrer;
1100					//document.location.href=referrer; 
1101					location.href = "/";
1102				}else{
1103					alert('정상적인 경로가 아닙니다.\n관리자에게 문의하세요');top.location.reload();
1104				}
1105			},
1106			error: function(e) {
1107				alert( e.responseText );
1108			}
1109		});
1110
1111	var id_token = googleUser.getAuthResponse().id_token;
1112	console.log("ID Token: " + id_token);
1113 }
1114
1115
1116
1117
1118
1119// 주소검색 팝업창
1120function goPopup(){
1121	// 주소검색을 수행할 팝업 페이지를 호출합니다.
1122	// 호출된 페이지(jusoPopup_utf8.asp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
1123	var pop = window.open("/Library/Html/jusoPopup_utf8.asp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
1124}
1125
1126// 주소데이터 받는 함수 (팝업창에서 실행됨)
1127function jusoCallBack(roadAddrPart1,addrDetail,engAddr,zipNo){
1128
1129	document.getElementById('ZIP').value = zipNo;
1130	document.getElementById('ADDR_1').value = roadAddrPart1;
1131	document.getElementById('ADDR_2').value = addrDetail;
1132
1133	if ($("#ADDR_1_EN").val() != null )
1134	{	
1135		document.getElementById('ADDR_1_EN').value = engAddr;
1136		fnHanEng(addrDetail, document.getElementById('ADDR_2_EN'));
1137
1138	}
1139
1140
1141}
1142
1143//------------------------------------------------------------------------------
1144// 주소입력시 특정문자 입력방지 / 2019-09-19 강진구
1145//------------------------------------------------------------------------------
1146function fnAddrChk(obj) {
1147
1148	var pattern_spc = /[\+[\\\]\?\#&]/g; // 특정 특수문자 체크
1149
1150	if( pattern_spc.test(obj.value) ) {
1151		alert("특수문자 ? # & + \\ 를 입력 할 수 없습니다.");
1152		obj.value = obj.value.replace( pattern_spc, '' );
1153		return;
1154	}
1155}
1156
1157//-------------------------------------------------------------------------------
1158// 엑셀다운로드 기간체크 2019-12-16 강진구 최초작성
1159//-------------------------------------------------------------------------------
1160function fnExcelDateChk(BeginDay, EndDay) {
1161	
1162	// ex) 2019-12-16 으로 불러오는 날짜를 "-" 기준으로 잘라서 배열에 넣음
1163	var aBeginDay = BeginDay.split('-');
1164	var aEndDay = EndDay.split('-');
1165
1166	// 쪼개진 날짜 날짜데이터로 합치기
1167	var BeginDate = new Date(aBeginDay[0], Number(aBeginDay[1]-1), aBeginDay[2]);
1168	var EndDate = new Date(aEndDay[0], Number(aEndDay[1]-1), aEndDay[2]);
1169
1170	// 날짜의 간격 일 단위로 구하기
1171	// getTime() 밀리세컨드 단위로변환하는 함수 여기에 1000을 나누면 초, 60을 또나누면 분, 60을 또나누면 시간 24를 또나누면 일
1172	var BetweenDate = (EndDate.getTime() - BeginDate.getTime())/1000/60/60/24;
1173
1174	// 시작일 종료일 차이값 리턴
1175	return BetweenDate;
1176
1177}
1178
1179//------------------------------------------------------------------------------
1180// SQL INJECTION 차단 2020-01-29 강진구
1181//------------------------------------------------------------------------------
1182function fnInBlock(sVal){
1183
1184	var RegEx   = /(select|insert|update|delete|drop|union|and|1=1|sp_|xp_|@variable|@@variable|exec|sysobject-)/gi; //|--
1185	
1186	// SQL 문장 입력불가처리 2020-01-29 강진구
1187	if ( RegEx.test(sVal)) {
1188		alert("입력불가 문자열이 포함되어 있습니다.");
1189		return 0;
1190	}
1191}
1192
1193// 한국 수입통관 조회
1194function fnKrCtms_S(IvcNo) {
1195	fnPopWinCT("/Library/Html/DlvrShKr_S.asp?IVC_NO="+IvcNo, "DlvrShKr_S", 900, 700);
1196}
1197
1198//------------------------------------------------------------------------------
1199// Input/CheckBox/ComboBox 값 체크
1200//------------------------------------------------------------------------------
1201function fnFormChk( MethodNm, Obj ) {
1202	var Tf = false;
1203
1204	switch ( MethodNm ) {
1205	case "input": 
1206		if ( $.trim(Obj.val()) == "" ) Tf = false;
1207		else Tf = true;
1208		break;
1209	case "select": 
1210		if ( $.trim(Obj.val()) == "" ) Tf = false;
1211		else Tf = true;
1212		break;
1213	case "checkbox": 
1214		if ( fnCkBoxVal(Obj) == "" ) Tf = false;
1215		else Tf = true;
1216		break;
1217	}
1218
1219	return Tf;
1220}
1221
1222//------------------------------------------------------------------------------
1223// Input/CheckBox/ComboBox 값 길이 체크
1224//------------------------------------------------------------------------------
1225function fnFormLenChk( Obj, Min, Max ) {
1226	var Tf = false, Val = $.trim(Obj.val());
1227
1228	// 최소/최대 체크
1229	if ( Val.length >= Min && Val.length <= Max ) {
1230		Tf = true;
1231	};
1232
1233	return Tf;
1234}

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.