PageSourceSearch

https://flowerdaegu.kr/js/ComUtil.js?ver=1791254397

js flowerdaegu.kr collected 2026-10-06 02:38:12 UTC 62,283 bytes, 2,138 lines download raw bytes

1/**********************************************************************************
2 *    Program ID   : ComUtil.js
3 *    Description  : Utility Method정의
4 **********************************************************************************
5 
6/**
7 * 입력값이 NULL인지 체크
8
9 */
10function isNull(input) {
11    if (input.value == null || input.value == "") {
12        return true;
13    }
14    return false;
15}
16
17/**
18 * 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
19
20 * ex) if (isEmpty(form.keyword)) {
21 *         alert("검색조건을 입력하세요.");
22 *     }
23 */
24function isEmpty(input) {
25    if (input.value == null || input.value.replace(/ /gi,"") == "") {
26        return true;
27    }
28    return false;
29}
30
31/**
32 * 입력값에 특정 문자(chars)가 있는지 체크
33 * 특정 문자를 허용하지 않으려 할 때 사용
34 * ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
35 *         alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
36 *     }
37 */
38function containsChars(input,chars) {
39    for (var inx = 0; inx < input.value.length; inx++) {
40       if (chars.indexOf(input.value.charAt(inx)) != -1)
41           return true;
42    }
43    return false;
44}
45
46/**
47 * 입력값이 특정 문자(chars)만으로 되어있는지 체크
48
49 * 특정 문자만 허용하려 할 때 사용
50 * ex) if (!containsCharsOnly(form.blood,"ABO")) {
51 *         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
52 *     }
53 */
54function containsCharsOnly(input,chars) {
55    for (var inx = 0; inx < input.value.length; inx++) {
56       if (chars.indexOf(input.value.charAt(inx)) == -1)
57           return false;
58    }
59    return true;
60}
61/********************************************************************
62*  Function Name : isNumCk3
63*  Description   : 숫자 만
64*  Output Data   : event.returnValue=false
65*  +숫자만 입력 가능 (Back Space Key , Delete key , Number pad key 가능)
66********************************************************************/
67function isChkDate()
68{
69    if((event.keyCode>57||event.keyCode<45)) event.returnValue=false
70} 
71/**
72 * 입력값이 알파벳인지 체크
73
74 * 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
75 * 자주 쓰이는 경우에는 var chars 변수를 
76 * global 변수로 선언하고 사용하도록 한다.
77 * ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
78 *     var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
79 *     var number    = "0123456789";
80 *     function isAlphaNum(input) {
81 *         var chars = uppercase + lowercase + number;
82 *         return containsCharsOnly(input,chars);
83 *     }
84 */
85function isAlphabet(input) {
86    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
87    return containsCharsOnly(input,chars);
88}
89
90/**
91 * 입력값이 알파벳 대문자인지 체크
92
93 */
94function isUpperCase(input) {
95    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
96    return containsCharsOnly(input,chars);
97}
98
99/**
100 * 입력값이 알파벳 소문자인지 체크
101 */
102function isLowerCase(input) {
103    var chars = "abcdefghijklmnopqrstuvwxyz";
104    return containsCharsOnly(input,chars);
105}
106
107/**
108 * 입력값에 숫자만 있는지 체크
109
110 */
111function isNumber(input) {
112    var chars = "0123456789";
113    return containsCharsOnly(input,chars);
114}
115
116/**
117 * 입력값이 알파벳,숫자로 되어있는지 체크
118
119 */
120function isAlphaNum(input) {
121    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
122    return containsCharsOnly(input,chars);
123}
124
125/**
126 * 입력값이 숫자,대시(-)로 되어있는지 체크
127 */
128function isNumDash(input) {
129    var chars = "-0123456789";
130    return containsCharsOnly(input,chars);
131}
132
133/**
134 * 입력값이 숫자,콤마(,)로 되어있는지 체크
135
136 */
137function isNumComma(input) {
138    var chars = ",0123456789";
139    return containsCharsOnly(input,chars);
140}
141
142/**
143 * 입력값이 숫자,쉼표(,),콤마(.)로 되어있는지 체크
144
145 */
146function isNumDigit(input) {
147    var chars = ".,0123456789";
148    return containsCharsOnly(input,chars);
149}
150
151/**
152 * 입력값이 사용자가 정의한 포맷 형식인지 체크
153
154 * 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
155 */
156function isValidFormat(input,format) {
157    if (input.value.search(format) != -1) {
158        return true; //올바른 포맷 형식
159    }
160    return false;
161}
162
163/**
164 * 입력값이 이메일 형식인지 체크
165 * ex) if (!isValidEmail(form.email)) {
166 *         alert("올바른 이메일 주소가 아닙니다.");
167 *     }
168 */
169function isValidEmail(input) {
170//    var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
171    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
172    return isValidFormat(input,format);
173}
174
175/**
176 * 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
177 */
178function isValidPhone(input) {
179    var format = /^(\d+)-(\d+)-(\d+)$/;
180    return isValidFormat(input,format);
181}
182/**
183 * 입력값이 날짜 형식(숫자4자리-숫자2자리-숫자2자리)인지 체크
184 */
185function isValidDate(input) {
186    var format = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
187    return isValidFormat(input,format);
188}
189/**
190 * 입력값의 바이트 길이를 리턴
191
192 * ex) if (getByteLength(form.title) > 100) {
193 *         alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
194 *     }
195 * Author : Wonyoung Lee
196 */
197function getByteLength(input) {
198    var byteLength = 0;
199    for (var inx = 0; inx < input.value.length; inx++) {
200        var oneChar = escape(input.value.charAt(inx));
201        if ( oneChar.length == 1 ) {
202            byteLength ++;
203        } else if (oneChar.indexOf("%u") != -1) {
204            byteLength += 2;
205        } else if (oneChar.indexOf("%") != -1) {
206            byteLength += oneChar.length/3;
207        }
208    }
209    return byteLength;
210}
211
212function CheckStrLen(maxlen,obj)
213{
214 var temp; //들어오는 문자값...
215 var msglen;
216 msglen = maxlen*2;
217 
218 l = obj.value.length;
219 tmpstr = "" ;
220
221 if (l == 0)  
222  //document.formx.remain.value = maxlen*2;
223	a=1;//글자수표시없을때 임시
224 else 
225 {
226  for(k=0;k<l;k++)
227  {
228   temp = obj.value.charAt(k);
229
230   if (escape(temp).length > 4)
231    msglen -= 2;
232   else
233    msglen--;
234  
235   if(msglen < 0) 
236   {
237    alert("총 영문 "+(maxlen*2)+"자 한글 " + maxlen + "자 까지 입력하실 수 있습니다.");
238    obj.value = tmpstr;
239    break;
240   }
241   else 
242   {
243    //document.formx.remain.value = msglen;
244	a=1;//글자수표시없을때 임시
245    tmpstr += temp;
246   }
247  }
248 }
249}
250
251// 2008.01.12 kth 추가 : 글자수 체크 함수 (return 값 )
252function checklen(fform,maxlength) {
253	var msgtext, msglen;
254	msgtext = fform.value;
255	var i=0,l=0;
256	var temp,lastl;
257
258
259	//길이를 구한다.
260	while(i < msgtext.length)
261	{
262		temp = msgtext.charAt(i);
263		if (escape(temp).length > 4)
264			l+=2;
265		else if (temp!='\r')
266			l++;
267		// OverFlow
268		if(l>maxlength)
269		{
270			alert("허용 길이 이상의 글을 쓰셨습니다.\n한글 "+ parseInt(maxlength/3) +"자, 영문"+ maxlength +"자까지만 쓰실 수 있습니다.");
271			temp = fform.value.substr(0,i);
272			fform.value = temp;
273			l = lastl;
274			return false;
275			//break;
276		}
277		lastl = l;
278		i++;
279	}
280	return true;
281}
282
283/**
284 * 선택된 라디오버튼이 있는지 체크
285
286 */
287function hasCheckedRadio(input) {
288    if (input.length > 1) {
289        for (var inx = 0; inx < input.length; inx++) {
290            if (input[inx].checked) return true;
291        }
292    } else {
293        if (input.checked) return true;
294    }
295    return false;
296}
297
298/**
299 * 선택된 체크박스가 있는지 체크
300
301 */
302function hasCheckedBox(input) {
303    return hasCheckedRadio(input);
304}
305
306
307/********************************************************************
308*  Function Name    : CreateTR()
309*  Description      : 화면상의 Table에 TR을 새롭게 추가하는 Script
310*  Input Data       : tbl - table의 ID							ex> value = abc -> <table id='abc' width=''....>
311*					  tdHtml - td 마다 추가되는 HTML Script		* 반드시 배열의 형태로 전달해야 합니다. 
312*					  tdCls	 - td 마다 사용되는 ClassName		* 반드시 배열의 형태로 전달해야 합니다. 
313*					  tdAlign - td 마다의 정렬 방법				* 반드시 배열의 형태로 전달해야 합니다. 
314*					  position - 붙일려는 위치. 없을때는 자동으로 최종 Tr로 붙여진다.
315*  Output Data      : 
316*  사용되는 Function : 
317*  예제 : 에너지 관리 -> 가스 적용 단가
318*		  /asp/energy/init/gas_price_janbi.asp 내의 addRow 함수.
319/********************************************************************/
320function CreateTR(tbl, tdHtml, tdCls, tdAlign, position) {
321	var pos = 0;
322	var grp = document.getElementById(tbl);
323	var grpCnt = grp.rows.length;
324	var obj;
325
326	pos = (position == null)?grpCnt:position;
327
328	grp.insertRow(pos);
329	for (var i=0; i<tdHtml.length; i++) {
330		grp.rows(pos).insertCell(i);
331		obj = grp.rows(pos).cells(i);
332		obj.className = tdCls[i];
333		obj.align = tdAlign[i];
334		obj.innerHTML = tdHtml[i];
335		obj.focus();
336	}
337}
338
339function DeleteTR(tbl) {
340  document.getElementById(tbl).deleteRow(document.getElementById(tbl).clickedRowIndex);
341}
342
343
344/********************************************************************
345*  Function Name    : xReplace()
346*  Description      : 정규식으로 문자 치환.
347*  Input Data       : input - 대상 String.
348*					  e - 찾으려는 문자.
349*					  k	- 바꾸려는 문자.
350*  Output Data      : String
351*  사용되는 Function : 
352/********************************************************************/
353function xReplace(input,e,k) {
354	var tmp = String(input);
355//	return tmp.replace(/e/gi,k);
356	return tmp.replace(new RegExp(e,"ig"), k);
357}
358
359
360/********************************************************************
361*  Function Name    : objReplace()
362*  Description      : 정규식으로 문자 치환.
363*  Input Data       : input - 대상 Object.
364*					  e - 찾으려는 문자.
365*					  k	- 바꾸려는 문자.
366*  Output Data      : 
367*  사용되는 Function : xReplace();
368/********************************************************************/
369function objReplace(input,e,k) {
370	var tmp= String(input.value);
371	input.value = xReplace(tmp,e,k);
372}
373
374/********************************************************************
375*  Function Name    : removeComma()
376*  Description      : String에서 "," -> "" 로 치환.
377*  Input Data       : input - 대상 String.
378*  Output Data      : String
379*  사용되는 Function : xReplace();
380/********************************************************************/
381function removeComma(input) {
382	return xReplace(input,",","");
383}
384
385/********************************************************************
386*  Function Name    : objRemoveComma()
387*  Description      : Object의 Value 에서 "," -> "" 로 치환.
388*  Input Data       : input - 대상 String.
389*  Output Data      : 
390*  사용되는 Function : xReplace();
391/********************************************************************/
392function objRemoveComma(input) {
393	input.value = xReplace(input.value,",","");
394	input.select();
395}
396
397/********************************************************************
398*  Function Name    : setComma()
399*  Description      : String의 3자리 마다 "," 표시.
400*  Input Data       : str - 대상 String.
401*  Output Data      : 
402*  사용되는 Function : 
403/********************************************************************/
404function setComma(str) {
405    var result = "";
406    var tail = "";
407    var sign = "";
408    var flag = false;
409
410    if(str == "") return result;
411
412    // 0이하 '-'정수인 경우를 위해.
413    if (str.substring(0,1)=='-') {
414        sign = str.substring(0,1);
415        str = str.substring(1);
416    }
417
418    var pts = str.lastIndexOf(".");
419
420    if(pts > 0) { // 부동소수점인 경우
421        tail = str.substring(pts);
422        str = str.substring(0, pts);
423    }
424
425    var len = str.length;
426    var quota = parseInt(len / 3); // 몫
427    var remainder = len % 3; // 나머지
428
429    var buffer = str.substr(0, remainder); // 첫번째 값
430
431    for(var i = 0; i < quota; i++) {
432        if(buffer != "")
433            buffer = buffer + ',';
434
435        buffer = buffer + str.substr(remainder + i * 3, 3);
436    }
437
438    if(pts > 0)
439        result = sign + buffer + tail; // 소수점이 있으면
440    else
441        result = sign + buffer;
442
443    return result; // 결과 값 출력
444}
445
446/********************************************************************
447*  Function Name    : objSetComma()
448*  Description      : Object의 Value 에서 3자리마다 "," 표시
449*  Input Data       : input - 대상 String.
450*  Output Data      : 
451*  사용되는 Function : setComma();
452/********************************************************************/
453function objSetComma(input) {
454	//alert('1');
455	input.value = setComma(input.value);
456}
457
458/************************************************************************
459*  Function Name : loadingHide() +
460*  Description   : Loading Image 
461*  Input Data    : None
462*  Output Data   : None
463*************************************************************************/
464function loadingHide(){
465//	if (top.window.frames['efm_main'] == undefined)
466//		top.window.document.all.hidepage.style.visibility = "hidden";
467//	else 
468//	    top.window.frames['efm_main'].document.all.hidepage.style.visibility = "hidden";
469	if (top.efm_main == undefined)
470		top.window.document.all.hidepage.style.visibility = "hidden";
471	else 
472	    top.efm_main.document.all.hidepage.style.visibility = "hidden";
473}
474
475/************************************************************************
476*  Function Name : loadingShow() +
477*  Description   : Loading Open
478*  Input Data    : None
479*  Output Data   : None
480*************************************************************************/
481function loadingShow(){
482//	if (top.window.frames['efm_main'] == undefined)
483//		top.window.document.all.hidepage.style.visibility = "visible";
484//	else 
485//	    top.window.frames['efm_main'].document.all.hidepage.style.visibility = "visible";
486	if (top.efm_main == undefined)
487		top.window.document.all.hidepage.style.visibility = "visible";
488	else 
489	    top.efm_main.document.all.hidepage.style.visibility = "visible";
490}
491
492/************************************************************************
493*  Function Name : insertHTML() +
494*  Description   : target Window의 obj에 val를 입력하는 함수.
495*  Input Data    : String target		ex> insertHTML('parent','navi','<img src=blank.gif>');
496*				   String obj
497*				   String val
498*  Output Data   : None
499*************************************************************************/
500function insertHTML(target, obj, val) {
501	if (target != "") 
502		eval(target).eval(obj).innerHTML=val;
503	else 
504		eval(obj).innerHTML=val;
505}
506
507/********************************************************************************
508*  Function Name : pageChangeNavigator()+
509*  Description  :  page들이 list로 출력
510*  Output Data   :  no
511*  Input Data    :  forms : form의 이름.
512        page: 현재의 page
513 *********************************************************************************/
514function pageChangeNavigator(frm, page, action, target) {
515    frm.move_page.value = page;
516    frm.action=action;
517    if(target!=null || target!=""){
518        frm.target=target;
519    }
520	  loadingShow();
521    frm.submit();
522}
523
524
525/********************************************************************
526*  Function Name : isNumCk2
527*  Description   : 숫자 의외의 키보드 안눌러짐
528*  Input Data    :
529*  Output Data   : event.returnValue=false
530*  숫자, -, ., 입력만 입력 가능 .
531********************************************************************/
532function isNumCk2()
533{
534    if(!(event.keyCode == 47)){
535        if ((event.keyCode<45)||(event.keyCode>57))
536            event.returnValue=false;
537    }else {
538        event.returnValue=false
539    }
540}
541
542/********************************************************************
543*  Function Name : isNumCk3
544*  Description   : 숫자 만
545*  Output Data   : event.returnValue=false
546*  +숫자만 입력 가능 (Back Space Key , Delete key , Number pad key 가능)
547********************************************************************/
548function isNumCk3()
549{
550    if((event.keyCode>57||event.keyCode<48)) event.returnValue=false
551}
552
553
554/********************************************************************
555*  Function Name : onlyNum
556*  Description   : 숫자 만
557*  Output Data   : event.returnValue=false
558*  +숫자만 입력 가능 
559********************************************************************/
560function onlyNum(objtext1)
561{
562	var inText = objtext1.value;
563	var ret;
564
565	for (var i = 0; i < inText.length; i++) 
566	{
567		ret = inText.charCodeAt(i);
568		if (!((ret > 47) && (ret < 58)))  
569		{
570			alert("숫자만을 입력하세요");
571			objtext1.value = "";
572			objtext1.focus();
573			return false;
574		}
575	}
576	return true;
577}
578
579
580/********************************************************************
581*  Function Name : onlyNum
582*  Description   : 숫자 만
583*  Output Data   : event.returnValue=false
584*  +숫자만 입력 가능 
585********************************************************************/
586function TonlyNum(objtext1)
587{
588	var inText = objtext1.value;
589	var ret;
590
591	for (var i = 0; i < inText.length; i++) 
592	{
593		ret = inText.charCodeAt(i);
594		if (!((ret > 47) && (ret < 58)))  
595		{
596			alert("숫자만을 입력하세요");
597			objtext1.value = "1";
598			objtext1.focus();
599			return false;
600		}
601	}
602	return true;
603}
604
605
606/********************************************************************
607*  Function Name : onlyNum2
608*  Description   : 숫자와 '-'만가능
609*  Output Data   : event.returnValue=false
610*  +숫자만 입력 가능 
611********************************************************************/
612function onlyNum2(objtext1)
613{
614	var inText = objtext1.value;
615	var ret;
616
617	for (var i = 0; i < inText.length; i++) 
618	{
619		ret = inText.charCodeAt(i);
620		if (!((ret > 47) && (ret < 58)))  
621		{
622		    if(ret!=45){
623			    alert("숫자와 '-'만을 입력하세요");
624			    objtext1.value = "";
625			    objtext1.focus();
626			    return false;
627			}
628		}
629	}
630	return true;
631}
632/********************************************************************
633상단 숫자키 와 오른쪽 키패드 그리고 아래 키를 허용 함.
634←(백스패이스) = 8
635TAB = 9
636  END = 35
637HOME =36 
638← = 37
639→  = 39
640INSERT = 45
641DELETE = 46
642NUMLOCK = 144
643
644* <input type="text" style="ime-mode:disabled" >    // 이 스타일은 외국어 입력 못하게 함(영어를 제외한 한국어 포함 - -);
645 ********************************************************************/
646function onlyNum3(){
647	var key = event.keyCode;
648	if(!(key==8||key==9||key==13||key==46||key==144||(key>=48&&key<=57)||key==110||key==190)){
649		alert('숫자만 입력 가능합니다');		
650		event.returnValue = false;
651	}
652}
653
654/************************************************************************
655*  Function Name : setDot() +
656*  Description   :
657*  Input Data    : String   i_str  => 정수, 또는 실수.
658                   int      i_dot  => 소수이하의 원하는 자리수 (자리가 모자랄경우 '0'을 추가한다.
659*  Output Data   : 소수이하의 연산 결과값.
660*************************************************************************/
661function setDot(i_str, i_dot) {
662
663
664    var i_Comma  = 0;
664     // 소수 위 수와 소수 이하의 자리를 잘라서 할당하는 배열 함수
665    var strInt  = '';
666    var strDot  = '';      // 정수 부 와 소수 부로 할당하는 변수
667
668	if (i_str.length < 1) return i_str;
669
670    // 정수부와 소수부로 나누는 조건식
671    // 소수부가 없을때는 빈값으로 할당한다.
672    if (i_str.lastIndexOf(".") > 0) {
673        i_Comma = i_str.split(".");
674        strInt = i_Comma[0];
675        strDot = i_Comma[1];
676    } else {
677        strInt = i_str;
678        strDot = "";
679    }
680    // 소수부의 원하는 자리까지 자르거나 '0'으로 셋팅하는 조건식.
681    if (strDot.length >= 2) {
682        strDot = strDot.substr(0, i_dot);
683    } else {
684        for (var z=0; z<=eval(i_dot-strDot.length); z++)
685            strDot+=String(0);
686    }
687    // 결과값을 반환한다.
688    return strInt + "." + strDot;
689}
690
691/************************************************************************
692*  Function Name : objSetDot() +
693*  Description   :
694*  Input Data    : Object   input => Form의 입력객체.
695                   int      i_dot  => 소수이하의 원하는 자리수 (자리가 모자랄경우 '0'을 추가한다.
696*  Output Data   : 소수이하의 연산 결과값.
697*************************************************************************/
698function objSetDot(input, i_dot) {
699	input.value = setDot(input.value, i_dot);
700}
701
702/************************************************************************
703*  Function Name : setDouble() +
704*  Description   : 소수 이하의 원하는 자리까지 반올림 또는 버림을 할 수 있다.
705*  Input Data    : String   val  => 정수, 또는 실수.
706                   Stirng   func => 반올림을 원하면 'round'
707                   int      dot  => 소수이하의 원하는 자리수 (자리가 모자랄경우 '0'을 추가한다.
708*  Output Data   : 소수이하의 연산 결과값.
709*************************************************************************/
710function setDouble(val, func, dot){
711    if (val == Infinity || val == 0) return '0';
712
713    var temp = val;
714
715	if (func == 'round')
716		temp = Math.round(temp * Math.pow(10, dot)) / Math.pow(10, dot);
717	else
718		temp = Math.floor(temp * Math.pow(10, dot)) / Math.pow(10, dot);
719
720    if (val != 0 && temp==0) {
721        temp = setDouble(val, func, dot+1);
722        if (dot > 5) {
723            temp = "0.0000";
724        }
725    }
726
727    return setDot(String(temp),dot); // 결과 값 출력
728}
729
730var nowDay = new Date(); 
731flagYear = nowDay.getFullYear();
732flagMon = nowDay.getMonth() + 1;
733flagDay = nowDay.getDay();
734flagDate= nowDay.getDate();
735/************************************************************************
736*  Function Name : printYear() +
737*  Description   :
738*  Input Data    : String	year => 년도
739*  Output Data   : 1901년부터 금년까지 년도만 option string 으로 반환.
740*************************************************************************/
741function printYear(year) {
742	if (year == null || year == "")
743		year = "";
744
745	for (i = flagYear; i >= 1990; i--) {
746		if (i == year) 
747			document.write("<option value=\""+i+"\" selected>"+i+"</option>");
748		else
749			document.write("<option value=\""+i+"\">"+i+"</option>");
750	}
751}
752function printYear2(year,syear) {
753	if (year == null || year == "")
754		year = flagYear;
755
756	for (i = flagYear; i >= syear; i--) {
757		if (i == year) 
758			document.write("<option value=\""+i+"\" selected>"+i+"</option>");
759		else
760			document.write("<option value=\""+i+"\">"+i+"</option>");
761	}
762}
763/************************************************************************
764*  Function Name : printMonth() +
765*  Description   :
766*  Input Data    : String	mon => 년도
767*  Output Data   : 1월 부터 12월 까지 option string으로 반환.
768*************************************************************************/
769function printMonth(mon) {
770	var temp = "";
771	if (mon == null || mon == "")
772		mon = flagMon;
773		
774	for (i = 1; i <= 12; i++) {
775		if (i < 10) temp = "0" + i;
776		else temp = i;
777
778		if (i == mon) 
779			document.write("<option value=\""+temp+"\" selected>"+i+"</option>");
780		else
781			document.write("<option value=\""+temp+"\">"+i+"</option>");
782	}
783}
784/************************************************************************
785*  Function Name : printDate() +
786*  Description   :
787*  Input Data    : String	date => 날짜
788*  Output Data   : 1일 부터 31일 까지 option string으로 반환.
789*************************************************************************/
790function printDate(date) {
791	var temp = "";
792	if (date == null || date == "")
793		date = flagDate;
794		
795	for (i = 1; i <= 31; i++) {
796		if (i < 10) temp = "0" + i;
797		else temp = i;
798
799		if (i == date) 
800			document.write("<option value=\""+temp+"\" selected>"+i+"</option>");
801		else
802			document.write("<option value=\""+temp+"\">"+i+"</option>");
803	}
804}
805
806/************************************************************************
807*  Function Name : NewWindow() +
808*  Description   :
809*  Input Data    : String	mypage => page url
810*				   String	myname => popup browser 이름
811*				   int		w	   => popup 넓이
812*				   int		h	   => popup 높이
813*				   int		t	   => x좌표
814*				   int		l	   => y좌표
815*				   String	scroll => 스크롤 유무. (no / yes)
816*				   String	resize => Resize 가능 유무 (no / yes)
817*				   String   menu   => 메뉴 유무 (no / yes)
818*  Output Data   : Input Parameter로 Popup을 띄운다.
819*************************************************************************/
820var win= null;
821function NewWindow(mypage,myname,w,h,t,l,scroll,resize,menu){
822  var wint, winl;
823  if (t == 0 || t== null)
824	wint = (screen.height-h)/2;
825  else
826	wint = t;
827
828  if (l == 0 || l== null)
829	winl = (screen.width-w)/2;
830  else
831	winl = l;
832
833  var settings  ='height='+h+',';
834      settings +='width='+w+',';
835      settings +='top='+wint+',';
836      settings +='left='+winl+',';
837      settings +='scrollbars='+scroll+',';
838      settings +='resizable='+resize+',';
839  if (menu != null) settings +='menubar='+menu+',';
840
841  win = window.open(mypage,myname,settings);
842  if(parseInt(navigator.appVersion) >= 4){win.focus();}
843}
844
845/************************************************************************
846*  Function Name : NewModalWindow() +
847*  Description   :
848*  Input Data    : String	mypage => page url
849*				   String	myname => popup browser 이름
850*				   int		w	   => popup 넓이
851*				   int		h	   => popup 높이
852*				   String	scroll => 스크롤 유무. (no / yes)
853*				   String	resize => Resize 가능 유무 (no / yes)
854*  Output Data   : Input Parameter로 Modal Popup을 띄운다.
855*************************************************************************/
856function NewModalWindow(mypage, myname, w, h, t, l, scroll, resize){
857  var wint, winl;
858  if (t == 0 || t== null)
859	wint = (screen.height-h)/2;
860  else
861	wint = t;
862
863  if (l == 0 || l== null)
864	winl = (screen.width-w)/2;
865  else
866	winl = l;
867
868  var settings  ='dialogHeight:'+h+'px;'
869      +'dialogWidth:'+w+'px;'
870      +'dialogTop:'+wint+'px;'
871      +'dialogLeft:'+winl+'px;'
872      +'scroll:'+scroll+';'
873      +'resizable:'+resize+';'
874      +'status:0;help:0;';
875  win = showModalDialog(mypage, myname, settings);
876  return win;
877}
878
879var mouseX, mouseY
880function CheckMouseWhere(e) {
881	if (top.document.layers) {
882		mouseX = e.x;
883		mouseY = e.y;
884	} else if (top.document.all) {
885		mouseX = event.clientX;
886		mouseY = event.clientY;
887	} else if (top.document.getElementById)  {
888		mouseX = e.x;
889		mouseY = e.y;
890	}
891}
892/********************************************************************
893*  Function Name    : objRemoveDash()
894*  Description      : Object의 Value 에서 "/" -> "" 로 치환.
895*  Input Data       : input - 대상 String.
896*  Output Data      : 
897*  사용되는 Function : xReplace();
898/********************************************************************/
899function objRemoveDash(input) {
900	input.value = xReplace(input.value,"/","");
901	input.select();
902}
903
904/********************************************************************
905*  Function Name    : setDash()
906*  Description      : String의 5번째자리 "/"표시 7번째자리 "/" 추가표시.
907*  Input Data       : str - 대상 String.
908*  Output Data      : 
909*  사용되는 Function : 
910/********************************************************************/
911function setDash(str) {
912    var result = "";
913    var tail = "";
914    var sign = "";
915    var flag = false;
916
917    if(str == "") return result;
918	var len = str.length;
919	result = str.substr(0, 4)+"/"+str.substr(4, 2)+"/"+str.substr(6,2)
920
921    return result; // 결과 값 출력
922}
923
924/********************************************************************
925*  Function Name    : objSetDash()
926*  Description      : String의 5번째자리 "/"표시 6번째자리 "/" 추가표시.
927*  Input Data       : input - 대상 String.
928*  Output Data      : 
929*  사용되는 Function : setComma();
930/********************************************************************/
931function objSetDash(input) {
932	//alert('1');
933	input.value = setDash(input.value);
934}
935
936
937
938
939/********************************************************************
940*  Function Name    : objRemoveTime()
941*  Description      : Object의 Value 에서 ":" 와 "-" -> "" 로 치환.
942*  Input Data       : input - 대상 String.
943*  Output Data      : 
944*  사용되는 Function : xReplace();
945/********************************************************************/
946function objRemoveTime(input) {
947	var retemp = "";
948	retemp = xReplace(input.value,":","");
949	input.value = xReplace(retemp,"-","");
950	input.select();
951}
952
953/********************************************************************
954*  Function Name    : setTime()
955*  Description      : String의 10:00-11:00 형태표현
956*  Input Data       : str - 대상 String.
957*  Output Data      : 
958*  사용되는 Function : 
959/********************************************************************/
960function setTime(str) {
961    var result = ":-:";
962    var tail = "";
963    var sign = "";
964    var flag = false;
965
966    if(str == "") return result;
967	var len = str.length;
968	result = str.substr(0, 2)+":"+str.substr(2, 2)+"-"+str.substr(4,2)+":"+str.substr(6,2);
969
970    return result; // 결과 값 출력
971}
972
973/********************************************************************
974*  Function Name    : objSetTime()
975*  Description      : String의 10:00-11:00 형태표현
976*  Input Data       : input - 대상 String.
977*  Output Data      : 
978*  사용되는 Function : setComma();
979/********************************************************************/
980function objSetTime(input) {
981	//alert('1');
982	input.value = setTime(input.value);
983}
984
985//단독시간인 경우 (ex) 10:00
986function objSetTime_only(input) {
987	//alert('1');
988	var str;
989	if(input.value.length==4){
990		str = input.value.substr(0, 2)+":"+input.value.substr(2, 2);
991	}else if(input.value.length>4){
992		str = input.value.substr(0, 2)+":"+input.value.substr(2, 2);
993	}else{
994		str = input.value
995	}
996	input.value = str ;
997}
998/**
999 * 주민등록 번호 체크
1000
1001 */
1002function rrn(field1,field2)
1003{
1004	if(field1.value.length!=0 && field2.value.length!=0)
1005	{
1006		if(field1.value.length!=6)
1007		{
1008			alert("주민등록번호가 옳지 않습니다!");
1009			field1.value="";
1010			field1.focus();
1011			return false;
1012		}
1013		for(var i=0;i<6;i++)
1014		{
1015			var AChar=field1.value.charAt(i);
1016			if(AChar < "0" || AChar > "9")
1017			{
1018				alert("주민등록번호가 옳지 않습니다!");
1019				field1.value="";
1020				field1.focus();
1021				return false;
1022				break;
1023				}
1024		}
1025		if(field2.value.length!=7)
1026		{
1027			alert("주민등록번호가 옳지 않습니다!");
1028			field2.value="";
1029			field2.focus();
1030			return false;
1031		}
1032		for(var i=0;i<7;i++)
1033		{
1034			var AChar=field2.value.charAt(i);
1035			if(AChar < "0" || AChar > "9")
1036			{
1037				alert("주민등록번호가 옳지 않습니다!");
1038				field2.value="";
1039				field2.focus();
1040				return false;
1041				break;
1042			}
1043		}
1044
1045		var mon=field1.value.substring(2,4);
1046		var day=field1.value.substring(4);
1047		var sex=field2.value.substring(0,1);
1048
1049		if((mon < "01") || (mon > "12")) {
1050			alert ("주민등록번호가 옳지 않습니다!")
1051			field1.value="";
1052			field1.focus();
1053			return false;
1054		}
1055		if((day < "01") || (day > "31")) {
1056			alert ("주민등록번호가 옳지 않습니다!")
1057			field1.value="";
1058			field1.focus();
1059			return false;
1060		}
1061		if((sex < "1") || (sex > "2")) {
1062			alert ("주민등록번호가 옳지 않습니다!")
1063			field2.value="";
1064			field2.focus();
1065			return false;
1066		}
1067	
1068		r11=field1.value.substring(0,1);
1069		r12=field1.value.substring(1,2);
1070		r13=field1.value.substring(2,3);
1071		r14=field1.value.substring(3,4);
1072		r15=field1.value.substring(4,5);
1073		r16=field1.value.substring(5,6);
1074		
1075		r21=field2.value.substring(0,1);
1076		r22=field2.value.substring(1,2);
1077		r23=field2.value.substring(2,3);
1078		r24=field2.value.substring(3,4);
1079		r25=field2.value.substring(4,5);
1080		r26=field2.value.substring(5,6);
1081		r27=field2.value.substring(6,7);
1082	
1083		var total = r11*2 + r12*3 + r13*4 + r14*5 + r15*6 + r16*7 + r21*8 + r22*9 + r23*2 + r24*3 + r25*4 + r26*5;
1084		var result= (11- (total % 11)) % 10;
1085
1086		if (result != r27) {
1087			alert("주민등록번호가 옳지 않습니다!");
1088			field1.value="";
1089			field2.value="";
1090			field1.focus();
1091			return false;
1092		}
1093	}
1094	return true;
1095}
1096
1097
1098//사업자번호 체크
1099function chkComNo(obj) {
1100	if (obj.value.length == 10) {
1101		var calStr1 = "13713713", biVal = 0,tmpCal;
1102		var calLast = obj.value.substring(9,10);
1103
1104		for (i=0; i < 8; i++) {
1105			biVal = biVal + (parseFloat(obj.value.substring(i,i+1)) * 
1106			parseFloat(calStr1.substring(i,i+1))) % 10;
1107		}
1108		tmpCal = parseFloat(obj.value.substring(8,9)) * 5 + "0";
1109		chkVal = parseFloat(tmpCal.substring(0,1)) + parseFloat(tmpCal.substring(1,2));
1110		chkDigit = (10 - (biVal + chkVal) % 10) % 10;
1111		if (calLast != chkDigit) {
1112			return false;
1113		}
1114	}
1115	return true
1116}
1117
1118//사업자번호 체크2
1119function chk_vend(a)
1120{
1121	var strNumb = a.value;
1122	if (strNumb.length != 10)
1123     {
1124        alert("사업자등록번호가 잘못되었습니다.");
1125        return false;
1126     }
1127        
1128		sumMod  =   0;
1129		sumMod  +=  parseInt(strNumb.substring(0,1));
1130		sumMod  +=  parseInt(strNumb.substring(1,2)) * 3 % 10;
1131		sumMod  +=  parseInt(strNumb.substring(2,3)) * 7 % 10;
1132		sumMod  +=  parseInt(strNumb.substring(3,4)) * 1 % 10;
1133		sumMod  +=  parseInt(strNumb.substring(4,5)) * 3 % 10;
1134		sumMod  +=  parseInt(strNumb.substring(5,6)) * 7 % 10;
1135		sumMod  +=  parseInt(strNumb.substring(6,7)) * 1 % 10;
1136		sumMod  +=  parseInt(strNumb.substring(7,8)) * 3 % 10;
1137		sumMod  +=  Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
1138		sumMod  +=  parseInt(strNumb.substring(8,9)) * 5 % 10;
1139		sumMod  +=  parseInt(strNumb.substring(9,10));
1140        
1141        if (sumMod % 10 !=  0)
1142        {
1143		  alert("사업자등록번호가 잘못되었습니다.");
1144		  return false;
1145        }
1146        return  true;
1147}
1148
1149
1150
1151/**
1152 * 외국인등록 번호 체크
1153 */
1154function fgn_no_chksum(reg_no) {
1155    var sum = 0;
1156    var odd = 0;
1157    
1158    buf = new Array(13);
1159    for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));
1160    odd = buf[7]*10 + buf[8];
1161    
1162    if (odd%2 != 0) {
1163      return false;
1164    }
1165
1166    if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
1167      return false;
1168    }
1169     
1170    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
1171    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
1172
1173
1174    sum=11-(sum%11);
1175    
1176    if (sum>=10) sum-=10;
1177
1178    sum += 2;
1179
1180    if (sum>=10) sum-=10;
1181
1182    if ( sum != buf[12]) {
1183        return false;
1184    }
1185    else {
1186        return true;
1187    }
1188}
1189
1190function fgn_no(field1,field2){
1191        var fgn_reg_no = field1.value + field2.value;
1192
1193		if (fgn_reg_no == ''){
1194		  alert('외국인등록번호를 입력하십시오.');
1195		  return false;
1196		}
1197
1198		if (fgn_reg_no.length != 13) {
1199		  alert('외국인등록번호 자리수가 맞지 않습니다.');
1200		  return false;
1201		}
1202		
1203        if ((fgn_reg_no.charAt(6) == "5") || (fgn_reg_no.charAt(6) == "6"))
1204        {
1205           birthYear = "19";
1206        }
1207        else if ((fgn_reg_no.charAt(6) == "7") || (fgn_reg_no.charAt(6) == "8"))
1208        {
1209           birthYear = "20";
1210        }
1211        else if ((fgn_reg_no.charAt(6) == "9") || (fgn_reg_no.charAt(6) == "0"))
1212        {
1213           birthYear = "18";
1214        }
1215        else
1216        {
1217          alert("외국인 등록번호에 오류가 있습니다. 다시 확인하십시오.");
1218		  field1.value =""; 
1219		  field2.value=""; 
1220		  field1.focus(); 
1221		  return ; 
1222        }        
1223		birthYear += fgn_reg_no.substr(0, 2);
1224		birthMonth = fgn_reg_no.substr(2, 2) - 1;
1225		birthDate = fgn_reg_no.substr(4, 2);
1226		birth = new Date(birthYear, birthMonth, birthDate);
1227        
1228        if ( birth.getYear() % 100 != fgn_reg_no.substr(0, 2) ||
1229             birth.getMonth() != birthMonth ||
1230             birth.getDate() != birthDate) {
1231          alert('생년월일에 오류가 있습니다. 다시 확인하십시오.');
1232          return false;
1233        }
1234        
1235        if (fgn_no_chksum(fgn_reg_no) == false){
1236        
1237            alert('외국인등록번호에 오류가 있습니다. 다시 확인하십시오.');
1238            return false;
1239        }
1240        else {
1241            return true;
1242        }
1243    
1244}
1245/********************************************************************
1246*  Function Name    : CalTime()
1247*  Description      : 작업시간 20분 : 0.2  
1248*                     작업시간 1시간 : 1  
1249*                     작업시간 1시간 20분 : 1.2 의 시간 계산.
1250*  Input Data       : hm - 대상 String.
1251*  Output Data      : 
1252*  사용되는 Function : setDot(); , setDouble();
1253/********************************************************************/
1254function CalTime(hm) {
1255  var ll_left;
1256  var ll_right;
1257  var ll_tot = 0;
1258  var digitTime;
1259  
1260  if (hm.indexOf(".") < 0) return;
1261  
1262  digitTime = hm.split(".");
1263  ll_left = setDot(digitTime[0],2);
1264  ll_right = setDouble(eval(digitTime[1]) / 60,"",2);
1265  ll_tot = eval(ll_left) + eval(ll_right);
1266  return ll_tot;  
1267}
1268
1269/********************************************************************
1270*  Function Name    : CalTime()
1271*  Description      : 작업시간 20분 : 0.2  
1272*                     작업시간 1시간 : 1  
1273*                     작업시간 1시간 20분 : 1.2 의 시간 계산.
1274*  Input Data       : str - 원본날짜값
1275*					: tp  - 날짜분리기호
1276*  Output Data      : 예) tp='-' 일경우 '20050105' -> '2005-01-05'
1277*  사용되는 Function : 
1278/********************************************************************/
1279function f_formatDate8to10(str,tp){
1280	var rst = "";
1281	if(str!=null && str!=false){
1282		if(str.length==8){
1283			rst = str.substr(0,4) + tp + str.substr(4,2) + tp + str.substr(6,2);
1284		}
1285	} 
1286	return rst;
1287}
1288
1289/********************************************************************
1290*  Function Name    : CalTime()
1291*  Description      : 작업시간 20분 : 0.2  
1292*                     작업시간 1시간 : 1  
1293*                     작업시간 1시간 20분 : 1.2 의 시간 계산.
1294*  Input Data       : str - 원본날짜값
1295*					: tp  - 날짜분리기호
1296*  Output Data      : 예) tp='-' 일경우 '2005-01-05' -> '20050105'
1297*  사용되는 Function : setDot(); , setDouble();
1298/********************************************************************/
1299function f_formatDate10to8(str,tp){
1300	var temp;
1301	var rst = "";
1302	if(str!=null && str!=false){
1303		if(str.length==10){
1304			temp = str.split(tp);
1305			rst = temp[0]+temp[1]+temp[2];
1306		}
1307	} 
1308	return rst;
1309}
1310
1311
1312/********************************************************************
1313*  Function Name    : FieldChk(uid, start, end)
1314*  Description      : 아이디, 비밀번호 체크=>영문소문자, 숫자만 가능하게.
1315*  Input Data       : uid - 입력데이터
1316*					: start - 입력문자열 최소크기
1317					: end - 입력문자열 최대크기
1318*  Output Data      : false, true
1319*  사용되는 Function : 
1320/********************************************************************/
1321function FieldChk(uid, start, end) {
1322	if(uid.length < start || uid.length > end) {
1323		return false;
1324	}
1325
1326	for(var i = 0; i < uid.length; i++) {
1327		var chr = uid.substr(i,1);
1328    if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z') && (chr!='@') && (chr!='!')){
1329			return false;
1330		}
1331	}
1332	return true;   
1333}
1334
1335
1336/********************************************************************
1337*  Function Name    : addItem(srcObj, targetObj)
1338*  Description      : srcObj select박스에서 targetObj select박스로 item 추가
1339*  Input Data       : srcObj - 원본 object
1340*					: targetObj - 타겟 object
1341*  Output Data      : 
1342*  사용되는 Function : 
1343/********************************************************************/
1344function addItem(srcObj,targetObj){
1345	if(srcObj.selectedIndex==-1)
1346		return;
1347	else if(srcObj.selectedIndex==0){
1348		srcObj.selectedIndex = -1;
1349	}else{
1350		targetObj=eval(targetObj);
1351		var pSel = srcObj.options[srcObj.selectedIndex].value;
1352		for(j=0;j<targetObj.length; j++){
1353			if(targetObj.options[j].value==pSel){
1354				alert("["+srcObj.options[srcObj.selectedIndex].text+"]는 이미 추가된 제조사코드입니다.");
1355				return;
1356				break;
1357			}
1358		}
1359		var addOpt = document.createElement('OPTION');
1360		addOpt.text= srcObj.options[srcObj.selectedIndex].text;
1361		addOpt.value=srcObj.options[srcObj.selectedIndex].value;
1362		targetObj.options.add(addOpt);
1363
1364	}
1365}
1366/********************************************************************
1367*  Function Name    : removeItem(srcObj)
1368*  Description      : srcObj select박스에서 item 삭제
1369*  Input Data       : srcObj - 원본 object
1370*					: 
1371*  Output Data      : 
1372*  사용되는 Function : 
1373/********************************************************************/
1374function removeItem(srcObj){
1375	if(srcObj.selectedIndex==-1)
1376		return;
1377	else if(srcObj.selectedIndex==0){
1378		srcObj.selectedIndex = -1;
1379	}else{
1380		srcObj.remove(srcObj.selectedIndex);
1381	}
1382}
1383
1384function imgRsize(img, rW, rH){
1385        var iW = img.width;
1386        var iH = img.height;
1387
1388
1389        var g = new Array;
1390        if(iW < rW && iH < rH) { // 가로세로가 축소할 값보다 작을 경우
1391                g[0] =  iW;
1392                g[1] =  iH;
1393        } else {
1394                if(img.width > img.height) { // 원크기 가로가 세로보다 크면
1395
1396                        g[0] = rW;
1397                        g[1] = Math.ceil(img.height * rW / img.width);
1398                } else if(img.width <= img.height) { //원크기의 세로가 가로보다 크면
1399                        g[0] = Math.ceil(img.width * rH / img.height);
1400                        g[1] = rH;
1401                } else {
1402                        g[0] = rW;
1403                        g[1] = rH;
1404                }
1405                if(g[0] > rW) { // 구해진 가로값이 축소 가로보다 크면
1406
1407                        g[0] = rW;
1408                        g[1] = Math.ceil(img.height * rW / img.width);
1409                }
1410                if(g[1] > rH) { // 구해진 세로값이 축소 세로값가로보다 크면
1411                        g[0] = Math.ceil(img.width * rH / img.height);
1412                        g[1] = rH;
1413                }
1414        }
1415        g[2] = img.width; // 원사이즈 가로
1416        g[3] = img.height; // 원사이즈 세로
1417        return g;
1418}
1419			
1420
1421// 오브젝트의 위치 찾기
1422function getRealOffsetTop(o) { return o ? o.offsetTop + getRealOffsetTop(o.offsetParent) : 0; }
1423function getRealOffsetLeft(o) { return o ? o.offsetLeft + getRealOffsetLeft(o.offsetParent) : 0; }
1424
1425//-------- 파일 체크 시작 -----------------------------
1426//파일의 확장자를 가져옮
1427function getFileExtension( filePath )
1428{
1429    var lastIndex = -1;
1430    lastIndex = filePath.lastIndexOf('.');
1431    var extension = "";
1432
1433	if ( lastIndex != -1 )
1434	{
1435	    extension = filePath.substring( lastIndex+1, filePath.len );
1436	} else {
1437	    extension = "";
1438	}
1439    return extension;
1440}
1441//파일을 선택 후 포커스 이동시 호출
1442function fileCheck(AllowedExt, maxFileSize, value )
1443{
1444
1445    var src = getFileExtension(value);
1446    if (src == "") {
1447        alert('올바른 파일을 입력하세요');
1448        return false;
1449    } else if ( (AllowedExt.indexOf(src.toLowerCase()) < 0) ) {
1450        alert('허용되지 않는 파일입니다.');
1451        return false;
1452    }
1453
1454    LoadImg(maxFileSize, value);
1455
1456}
1457function LoadImg(maxFileSize, value)
1458{
1459    var imgInfo = new Image();
1460    imgInfo.onload = img_Load(maxFileSize);
1461    imgInfo.src = value;
1462}
1463function img_Load(maxFileSize)
1464{
1465    var imgSrc, imgWidth, imgHeight, imgFileSize;
1466    imgSrc = this.src;
1467   // imgWidth = this.width;
1468   // imgHeight = this.height;
1469    imgFileSize = this.fileSize;
1470/*
1471    if (imgSrc == "" || imgWidth <= 0 || imgHeight <= 0)
1472    {
1473        alert('그림파일을 가져올 수 없습니다.');
1474        return;
1475    } 
1476*/
1477    if (imgSrc == "")
1478    {
1479        alert('파일을 가져올 수 없습니다.');
1480        return false;
1481    } 
1482
1483    if (imgFileSize > maxFileSize)
1484    {
1485        alert('선택하신 파일은 허용 최대크기인 ' + maxFileSize/1024 + ' KB 를 초과하였습니다.');
1486        return false;
1487    } 
1488    //이미지 사이즈 저장 
1489   // document.all.imgWidth.value = imgWidth;
1490   // document.all.imgHeight.value = imgHeight;
1491}
1492//---- 파일체크 끝 ---------------------------------------------------------------
1493
1494
1495var OldElement="1";
1496function toggle(iObject){
1497     targetElement = document.getElementById(iObject);
1498     if (targetElement.style.display == "none") {
1499	 	if (OldElement != "1") {
1500		 	OldElement.style.display = "none"
1501		}
1502        targetElement.style.display = "";
1503		OldElement = targetElement;
1504     } else {
1505	 	targetElement.style.display = "none";
1506	 }
1507}
1508
1509// 플래쉬에서 호출하는 함수 시작 --------------
1510function flashAlert(msg, type){
1511	//parent.thisMovie("cartFlash").reload();
1512	thisMovie("mainMap").alert(msg, type);
1513}
1514
1515function thisMovie(movieName) {
1516    if (navigator.appName.indexOf("Microsoft") != -1) {
1517        return window[movieName];
1518    }
1519    else {
1520        return document[movieName];
1521    }
1522}
1523
1524function flashStoreDetail(pCode) {
1525	location.href="/toulestore/store_detail.asp?fsStore="+pCode;
1526}
1527
1528function flashStoreReg(pCode) {
1529	
1530	if (LoginStatusCheck("state") == ""){
1531		flashAlert("회원으로 로그인 하십시오.", 3);
1532	//	location.href="/member/login.asp";
1533	} else {
1534		var msg = ScrapAdd("/common/asp/lib/scrap_store_add.asp?fsStore="+pCode);
1535		if (msg == "OK"){
1536			flashAlert("단골매장으로 등록 하였습니다.", 1);
1537		} else {
1538			flashAlert(msg+"에러!", 1);
1539		}
1540	}
1541}
1542
1543function flashStoreGoLogin(pKeyword) {
1544		location.href="/member/login.asp";
1545}
1546
1547function flashProductGoLogin(pKeyword) {
1548		location.href="/member/login.asp";
1549}
1550
1551function flashProductDetail(pCode) {
1552	location.href="/toulegoods/toulegoods_detail.asp?fsProdNum="+pCode;
1553}
1554
1555function flashProductReg(pCode) {
1556	
1557	if (LoginStatusCheck("state") == ""){
1558		flashAlert("회원으로 로그인 하십시오.", 3);
1559	//	location.href="/member/login.asp";
1560	} else {
1561		var msg = ScrapAdd("/common/asp/lib/scrap_product_add.asp?fsProdNum="+pCode);
1562		if (msg == "OK"){
1563			flashAlert("관심제품으로 등록 하였습니다.", 1);
1564		} else {
1565			flashAlert(msg+"에러!", 1);
1566		}
1567	}
1568}
1569
1570
1571function num_format(num) {
1572   var num_str = num.toString();
1573   var result = '';
1574
1575   for(var i=0; i<num_str.length; i++) {
1576      var tmp = num_str.length-(i+1);
1577      if(i%3==0 && i!=0) result = ',' + result;
1578      result = num_str.charAt(tmp) + result;
1579   }
1580
1581   return result;
1582}
1583
1584
1585
1586
1587
1588// 영역 프린트 
1589function goPrint(objid) { 
1590	var Obj = document.getElementById(objid);
1591	if (Obj) {
1592		var W = Obj.offsetWidth;        //screen.availWidth; 
1593		var H = Obj.offsetHeight;        //screen.availHeight;
1594		
1595		var pf = document.frames("printFrame");
1596		var targObj = pf.document.getElementById("printArea");
1597		targObj.innerHTML = Obj.innerHTML;
1598		pf.focus();
1599		window.print();
1600	}
1601} 
1602
1603/// 쿠키제어 관련 함수------------------------------------
1604function getCookieVal(offset) {
1605	var endstr = document.cookie.indexOf (";", offset);
1606	if (endstr == -1) endstr = document.cookie.length;
1607	return unescape(document.cookie.substring(offset, endstr));
1608}
1609
1610function GetCookie(name) {
1611	var arg = name + "=";
1612	var alen = arg.length;
1613	var clen = document.cookie.length;
1614	var i = 0;
1615	while (i < clen) {
1616		var j = i + alen;
1617		if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
1618		i = document.cookie.indexOf(" ", i) + 1;
1619		if (i == 0) break;
1620	}
1621	return null;
1622}
1623function SetCookie(name, value, expires){
1624	var argv = SetCookie.arguments;
1625	var argc = SetCookie.arguments.length;
1626	var expires = (2 < argc) ? argv[2] : null;
1627	var path = (3 < argc) ? argv[3] : null;
1628	var domain = (4 < argc) ? argv[4] : null;
1629	var secure = (5 < argc) ? argv[5] : false;
1630	document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + 
1631	path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
1632}
1633function clearCookie(name) {
1634	var expire_date = new Date();
1635	//어제 날짜를 쿠키 소멸 날짜로 설정한다.
1636	expire_date.setDate(expire_date.getDate() - 1)
1637	document.cookie = name + "= " + "; expires=" + expire_date.toGMTString() + "; path=/"
1638}
1639
1640function setCookie( name, value, expiredays ) 
1641{ 
1642	var todayDate = new Date(); 
1643	todayDate.setDate( todayDate.getDate() + expiredays ); 
1644	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
1645} 
1646
1647
1648
1649// 폼의 object를 찾아 maxlength와 같을 경우 다음 포커스로 이동합니다.
1650function moveFocus()
1651{
1652	// 좌우 화살표나 탭, 역탭이면 무시..
1653	if (event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 9 || event.keyCode == 16) return;
1654
1655	var src = event.srcElement;
1656	if (src.value.length == src.maxLength)
1657	{
1658		var obj = getNextObject(src);
1659		try
1660		{
1661			obj.focus();
1662			obj.select();
1663		}
1664		catch(e){}
1665	}
1666}
1667
1668
1669//maxlength 만큼 옮기면 다음으로 이동하기....
1670function nextFocus(sFormName,sNow,sNext)
1671{
1672	var sForm = 'document.'+ sFormName +'.'
1673	var oNow = eval(sForm + sNow);
1674
1675	if (typeof oNow == 'object')
1676	{
1677		if ( oNow.value.length == oNow.maxLength)
1678		{
1679			var oNext = eval(sForm + sNext);
1680
1681			if ((typeof oNext) == 'object')
1682				oNext.focus();
1683		}
1684	}
1685}
1686
1687
1688
1689function getNextObject(obj)
1690{
1691	var f = document.forms[0];
1692	for(var i = 0; i < f.length; i++)
1693	{
1694		var item = f[i];
1695		if (obj == item)
1696		{
1697			try
1698			{
1699				return f[i+1];
1700			}
1701			catch(e) {}
1702		}
1703	}
1704}
1705
1706
1707
1708//전체 선택/해제
1709 function selectAll(){
1710	var c = $('#checkAll').attr('checked');
1711	if( $('#checkAll').is(":checked") == true){
1712		 $('input[name=chkid]').prop('checked',true);
1713	}else{
1714		 $('input[name=chkid]').prop('checked',false);
1715	}
1716 }
1717
1718 //선택된 값 보기
1719 function getSelectVal(){
1720	var idlist = [];
1721	var itemstr ="";
1722	$('input[name=chkid]:checked').each(function(){idlist.push(this.value)});
1723 
1724	$.each(idlist,function(index, item){
1725	itemstr += item + ',';
1726  });
1727
1728	var item = itemstr;
1729
1730	if ( item != "" )
1731	{
1732		if (delCheck(item)){
1733			return;
1734		}
1735	}
1736
1737}	
1738
1739
1740/************************************************************
1741예) radioValueRtn(form.name)
1742라디오 버튼에서 선택한 것의 밸류값을 리턴한다
1743선택한것이 없다면 "" 공백을 리턴한다.
1744************************************************************/
1745function radioValueRtn(name){
1746	if(name){
1747		if(!name.length) {
1748			if(name.checked) {
1749				return name.value;
1750			}
1751		} else {
1752			for(var i=0;i<name.length;i++) {
1753				if(name[i].checked) {
1754					return name[i].value;
1755				}
1756			}
1757		}
1758	}
1759	return "";
1760
1761}
1762
1763
1764// 필드 검사
1765function check_field(fld, msg) 
1766{
1767	if ((fld.value = trim(fld.value)) == "") 			   
1768		error_field(fld, msg);
1769	else
1770		clear_field(fld);
1771	return;
1772}
1773
1774
1775// 필드 오류 표시
1776function error_field(fld, msg) 
1777{
1778	if (msg != "")
1779		errmsg += msg + "\n";
1780	if (!errfld) errfld = fld;
1781	fld.style.background = "#BDDEF7";
1782}
1783
1784
1785// 필드를 깨끗하게
1786function clear_field(fld) 
1787{
1788	fld.style.background = "#FFFFFF";
1789}
1790
1791
1792function trim(s)
1793{
1794  var t = "";
1795  var from_pos = to_pos = 0;
1796
1797   for (i=0; i<s.length; i++)
1798	{
1799	  if (s.charAt(i) == ' ')
1800	 	continue;
1801	  else 
1802	  {
1803		from_pos = i;
1804		break;
1805	  }
1806	}
1807
1808	for (i=s.length; i>=0; i--)
1809	{
1810	  if (s.charAt(i-1) == ' ')
1811		continue;
1812	  else 
1813	  {
1814		to_pos = i;
1815		break;
1816	  }
1817	}	
1818
1819	t = s.substring(from_pos, to_pos);
1820	//alert(from_pos + ',' + to_pos + ',' + t+'.');
1821	return t;
1822}
1823
1824
1825// 자바스크립트로 PHP의 number_format 흉내를 냄
1826// 숫자에 , 를 출력
1827function number_format(data) 
1828{
1829  var tmp = '';
1830  var number = '';
1831  var cutlen = 3;
1832  var comma = ',';
1833  var i;
1834   
1835  len = data.length;
1836  mod = (len % cutlen);
1837  k = cutlen - mod;
1838   for (i=0; i<data.length; i++) 
1839	{
1840	  number = number + data.charAt(i);
1841		
1842	  if (i < data.length - 1) 
1843	  {
1844	    k++;
1845		if ((k % cutlen) == 0) 
1846		{
1847		  number = number + comma;
1848		  k = 0;
1849		}
1850	  }
1851	}
1852	return number;
1853}
1854
1855
1856// , 를 없앤다.
1857function no_comma(data)
1858{
1859	var tmp = '';
1860	var comma = ',';
1861	var i;
1862
1863	for (i=0; i<data.length; i++)
1864	{
1865		if (data.charAt(i) != comma)
1866			tmp += data.charAt(i);
1867	}
1868	return tmp;
1869}
1870
1871
1872// 적립금계산시..
1873function formatNum(inNum){						//FormatNumber(inNum,0)        16자리까지 연산가능
1874    var delimeter = ',';                        // 분리 표시자
1875    var splitNum = 3;                           // 분리 자리수
1876    var inNum = inNum+'';                       // convert (int --> str)
1877    var len = inNum.length;                     // 전체 길이
1878    var outNum = '';                            // 출력문자
1879    var aLen = parseInt((len-1)/splitNum);      // 분리개수
1880
1881    for(i=0;i<aLen;i++){
1882      outNum = delimeter+inNum.substring(len-((i+1)*splitNum),len-(i*splitNum))+outNum;
1883    }
1884      outNum = inNum.substring(0,len-(aLen*splitNum))+outNum; 
1885    return outNum;
1886  }
1887
1888
1889//유효한 날짜 체크
1890function checkDate(yy, mm, dd)
1891{
1892	dateErr = 0;
1893	var lastDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
1894	if ((yy % 4 == 0 && yy % 100 != 0) || (yy % 400 == 0)) {
1895		lastDay[1] = 29;
1896	}
1897	if (lastDay[mm - 1] < dd) {
1898		dateErr = 1;
1899	}
1900	return dateErr;
1901}
1902
1903
1904
1905function imgRsize(img, rW, rH){
1906
1907        var iW = img.width;
1908        var iH = img.height;
1909
1910
1911        var g = new Array;
1912        if(iW < rW && iH < rH) { // 가로세로가 축소할 값보다 작을 경우
1913                g[0] =  iW;
1914                g[1] =  iH;
1915        } else {
1916                if(img.width > img.height) { // 원크기 가로가 세로보다 크면
1917
1918                        g[0] = rW;
1919                        g[1] = Math.ceil(img.height * rW / img.width);
1920                } else if(img.width <= img.height) { //원크기의 세로가 가로보다 크면
1921                        g[0] = Math.ceil(img.width * rH / img.height);
1922                        g[1] = rH;
1923                } else {
1924                        g[0] = rW;
1925                        g[1] = rH;
1926                }
1927                if(g[0] > rW) { // 구해진 가로값이 축소 가로보다 크면
1928
1929                        g[0] = rW;
1930                        g[1] = Math.ceil(img.height * rW / img.width);
1931                }
1932                if(g[1] > rH) { // 구해진 세로값이 축소 세로값가로보다 크면
1933                        g[0] = Math.ceil(img.width * rH / img.height);
1934                        g[1] = rH;
1935                }
1936        }
1937        g[2] = img.width; // 원사이즈 가로
1938        g[3] = img.height; // 원사이즈 세로
1939        return g;
1940}
1941			
1942function gg(img, ww, hh, aL){
1943        var tt = imgRsize(img, ww, hh);
1944        if(img.width == 0 || img.height == 0){
1945        	imgRsize(img, 200, 151)
1946        }
1947        if(img.width > ww || img.height > hh || img.width == 0 || img.height == 0){ // 가로나 세로크기가 제한크기보다 크면
1948        	
1949            img.width = tt[0]; // 크기조정
1950            img.height = tt[1];
1951            img.alt = '클릭하시면 원본이미지를 보실수있습니다.';
1952            if(aL){ // 자동링크 on
1953                    img.onclick = function(){
1954                        wT = Math.ceil((screen.width - tt[2])/2.6); // 클라이언트 중앙에 이미지위치.
1955                        wL = Math.ceil((screen.height - tt[3])/2.6);
1956                        mm = window.open("", 'viewOrig', 'scrollbars=yes,width='+tt[2]+',height='+tt[3]+',top='+wT+',left='+wL);
1957						mm.document.open()
1958						mm.document.write("<body style='margin:0px;cursor:pointer'><img src="+img.src+" alt='클릭하시면 창이 닫힙니다.' border='0' onclick='self.close();'></body>")
1959                        //mm.document.body.onmousedown = function(){ mm.close();}
1960                        mm.document.title = '벙커토핑';
1961						mm.document.close()
1962					/*
1963                   	    var doc = mm.document.open();
1964                        doc.body.style.margin = 0; // 마진제거
1965                        doc.body.style.cursor = "hand";
1966                        var previewimg = doc.createElement("img");
1967                        previewimg.src = img.src;                  
1968                        doc.body.appendChild(previewimg);
1969                        doc.body.onmousedown = function(){ mm.close();}
1970                        doc.title = 'Visang';
1971					*/
1972                    }
1973                    img.style.cursor = "pointer";
1974            }
1975            
1976        } else {
1977        	
1978            img.onclick = function(){}
1979        }
1980}
1981
1982
1983
1984function board_down_File(board_id, Fidx) {
1985
1986     var $form = $('<form name="boardFrmDown"></form>');
1987     $form.attr('action', '/board/downFile.asp');
1988     $form.attr('method', 'post');
1989     $form.attr('target', 'iFrm');
1990     $form.appendTo('body');
1991     
1992     var d = $('<input name="d" type="hidden" value="'+board_id+'">');
1993     var idx = $('<input name="Fidx" type="hidden" value="'+Fidx+'">');
1994 
1995     $form.append(d).append(idx);
1996     $form.submit();
1997}
1998
1999
2000function newComma(num){
2001    var len, point, str; 
2002       
2003    num = num + ""; 
2004    point = num.length % 3 ;
2005    len = num.length; 
2006   
2007    str = num.substring(0, point); 
2008    while (point < len) { 
2009        if (str != "") str += ","; 
2010        str += num.substring(point, point + 3); 
2011        point += 3; 
2012    } 
2013    return str;
2014 
2015}
2016
2017function numberWithCommas(x) {
2018    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
2019}
2020
2021
2022
2023
2024
2025
2026// 이미지 확장자 추출 공통함수
2027function getFileExtension(filePath)
2028{
2029  var lastIndex = -1;
2030  lastIndex = filePath.lastIndexOf('.');
2031  var extension = "";
2032
2033  if ( lastIndex != -1 ) {
2034	extension = filePath.substring( lastIndex+1, filePath.len );
2035  }else {
2036	extension = "";
2037  }
2038  return extension;
2039}
2040
2041// 이미지 체크 공통함수
2042function resetImage(obj)
2043{
2044  // obj.select();
2045  // document.selection.clear();
2046  // document.execCommand('Delete');
2047  obj.outerHTML = obj.outerHTML
2048}
2049
2050
2051function uploadImageCheck(obj)
2052{
2053	var value = obj.value;
2054	var img_src = getFileExtension(value);
2055	var str = "gif,jpg,jpeg,png,bmp,pdf";
2056
2057	if (img_src == "") {
2058		alert('올바른 파일을 입력하세요!');
2059		resetImage(obj);
2060		return;
2061	}else if ( str.indexOf(img_src.toLowerCase()) == -1 ) {
2062		alert('허용된 파일이 아닙니다.');
2063		resetImage(obj);
2064		return;
2065	}
2066}
2067
2068function uploadFileCheck(obj)
2069{
2070	var value = obj.value;
2071	var img_src = getFileExtension(value);
2072	var str = "gif,jpg,jpeg,png,bmp,pdf";
2073 
2074	if (img_src == "") {
2075		alert('올바른 파일을 입력하세요!');
2076		resetImage(obj);
2077		return;
2078	}else if ( str.indexOf(img_src.toLowerCase()) == -1 ) {
2079		alert('허용된 파일이 아닙니다.');
2080		resetImage(obj);
2081		return;
2082	}
2083
2084}
2085
2086
2087
2088
2089function loginCheck(){
2090	var obj = document.login_frm;
2091
2092	if (obj.id.value == "") {
2093		alert("아이디를 입력하세요.");
2094		obj.id.focus();
2095		return false;
2096	}
2097
2098
2099	if ((obj.id.value.length<6) || (obj.id.value.length>20)){
2100		alert("아이디는 6자이상 20자 이내로 작성해 주세요");
2101		obj.id.focus();
2102		return false;
2103	}
2104
2105	//아이디는 영문 소문자와 숫자만 가능
2106	for (i = 0 ; i < obj.id.value.length ; i++) {
2107		if ((obj.id.value.charAt(i) < '0' || obj.id.value.charAt(i) > '9') && (obj.id.value.charAt(i) < 'a' || obj.id.value.charAt(i) > 'z')) {
2108			alert('아이디는 영문 소문자와 숫자만 가능합니다');
2109			obj.id.value="";
2110			obj.id.focus();
2111			return false;
2112		}
2113	}
2114/*
2115	var idReg = /^[a-z]+[a-z0-9]{5,19}$/g;
2116	if( !idReg.test( obj.id.value ) ) {
2117		alert("아이디는 영문자로 시작하는 6~20자 영문자 또는 숫자이어야 합니다.");
2118		obj.id.focus();
2119		return false;
2120	}
2121*/
2122
2123	//비밀번호 체크
2124	if (obj.pw.value == "") { alert("비밀번호를 입력하세요."); obj.pw.focus(); return false; }
2125
2126	//비밀번호는 영문 소문자와 숫자만 가능
2127	for (j = 0 ; j < obj.pw.value.length ; j++) {
2128		if ((obj.pw.value.charAt(j) < '0' || obj.pw.value.charAt(j) > '9') && (obj.pw.value.charAt(j) < 'a' || obj.pw.value.charAt(j) > 'z')) {
2129		   alert('비밀번호는 영문 소문자와 숫자만 가능합니다'); obj.pw.value=""; obj.pw_re.value=""; obj.pw.focus(); return false;
2130		}
2131	}
2132	if (obj.pw_re.value==""){ alert('입력한 비밀번호를 재확인 해주세요.'); obj.pw_re.focus(); return false; }
2133	if (obj.pw.value != obj.pw_re.value){
2134		alert('비밀번호가 일치하지 않습니다.');
2135		obj.pw.value=""; obj.pw_re.value=""; obj.pw.focus(); return false;
2136	}
2137
2138}

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.