PageSourceSearch

https://coolziku.com/Library/Js/common.js?a=1.01

js coolziku.com collected 2026-09-26 08:12:00 UTC 37,356 bytes, 1,156 lines download raw bytes

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

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.