PageSourceSearch

https://woosungglb.com/Library/Js/common.js

js woosungglb.com collected 2026-10-04 01:08:03 UTC 38,492 bytes, 1,201 lines download raw bytes

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

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.