PageSourceSearch

https://i.compasspub.com/_admin/share/comm_en_js.js

js compasspub.com collected 2026-10-02 06:37:13 UTC 39,794 bytes, 1,097 lines download raw bytes

1<!--
2/////////////////////////////////////////////////////////////////////
3//         string.js                                               //
4//                                                                 //
5//         isFieldBlank()                                          //
6//         isNumeric()                                             //
7//         isDigit()                                               //
8//         token()                                                 //
9//         removeSpace()                                           //
10//         changeSpace()                                           //
11//         xReplace()                                              //
12/////////////////////////////////////////////////////////////////////
13
14
15/********************************************************************
16*  Function Name : isFieldBlank()                                   *
17*  Description   : input Data에 대해 Null Check                     *
18*  Input Data    : theField                                         *
19*  Output Data   : true/false (Null -> true, notNull -> false)      *
20*  사용되는 Function : None                                         *
21********************************************************************/
22function isFieldBlank(theField) 
23{ 
24    var str = theField.value;
25    var len = removeSpace(str).length;
26    
27    return(str == "" || len == 0) ? true : false;
28} 
29
30/********************************************************************
31*  Function Name : isOptionBlank()                                  *
32*  Description   : input Data에 대해 Null Check                     *
33*  Input Data    : theField                                         *
34*  Output Data   : true/false (Null -> true, notNull -> false)      *
35*  사용 Function : None                                             *
36********************************************************************/
37function isOptionBlank(theField) 
38{ 
39    var str = theField.options[theField.selectedIndex].value;
40        return(str == "" || str.charAt(0) == " ") ? true : false;
41} 
42
43
44/********************************************************************
45*  Function Name : isNumeric()                                      *
46*  Description   : input Data 가 숫자형인지 Check                   *
47*  Input Data    : theField                                         *
48*  Output Data   : true/false (숫자형 -> true, 문자형 -> false)     *
49*  사용 Function : token()                                          *
50********************************************************************/
51function isNumeric(theField)
52{
53	var result = token(theField);
54	return(result == "invalid" || result == "float") ? false : true;
55}
56
57
58/********************************************************************
59*  Function Name : isNumber()                                       *
60*  Description   : input Data 가 숫자형인지 Check                   *
61*  Input Data    : theField                                         *
62*  Output Data   : true  - 숫자형                                   *
63*                  false - 문자형                                   *
64*                                                                   *
65*  사용 Function : token()                                          *
66********************************************************************/
67function isNumber(theField)
68{
69	var result = token(theField);
70	
71	return(result == "invalid") ? false : true;
72}
73
74
75/********************************************************************
76*  Function Name : isDigit()                                        *
77*  Description   : input Data가 0 ~ 9 사이의 값을 갖는지 Check      *
78*  Input Data    : num                                              *
79*  Output Data   : true/false                                       *
80*  사용 Function : None                                             *
81********************************************************************/
82function isDigit(num)
83{
84    return(num >= "0" && num <= "9") ? true : false; 
85}
86
87
88/********************************************************************
89*  Function Name : token()                                          *
90*  Description   : Input Data 가 integer형 인지 float형 인지 Check  *
91*  Input Data    : theField                                         *
92*  Output Data   : ctype (integer/float/invalid)                    *
93*  사용 Function : isDigit()                                        *
94********************************************************************/
95function token(theField)
96{
97    var Status = 0;
98    var num    = 0;
99    var ctype  = "";
100    var i;
101    
102    i = 0;
103
104    while(i < theField.value.length) {
105    	
106        num = theField.value.charAt(i);
107        
108        if(Status == 0) {
109            if(isDigit(num)) {
110                Status = 1;
111                i++;  
112            }
113            else {
114                Status = 10;       // invalid number
115                break;
116            }
117        }
118        else if(Status == 1) {
119            if(isDigit(num)) {
120                Status = 1;        // integer
121                i++;
122            }
123            else if(num == ".") {
124                Status = 2;        // is float number
125                i++;
126            }
127            else {
128                Status = 10;       // invalid number
129                break;
130            }
131        }
132        else if(Status == 2) {
133            if(isDigit(num)) {
134                i++;
135            }
136            else {
137                Status = 10;
138                break;
139            }
140        }
141    }
142
143    if(Status == 1)       ctype = "integer";
144    else if(Status == 2)  ctype = "float";
145    else if(Status == 10) ctype = "invalid";
146
147    return ctype;
148}
149
150
151/********************************************************************
152*  Function Name : removeSpace()                                    *
153*  Description   : Input Data 의 Space를 제거한다.                  *
154*  Input Data    : str                                              *
155*  Output Data   : tar                                              *
156*  사용 Function : None                                             *
157********************************************************************/
158function removeSpace(str)
159{
160    var src = new String(str);
161    var tar = new String();
162    var i, len = src.length;
163
164    for(i = 0;i < len;i++) {
165        if(src.charAt(i) != " ") {
166            tar = tar + src.charAt(i);
167        }
168    }
169    
170    return tar;
171}
172
173
174/********************************************************************
175*  Function Name : changeSpace()                                    *
176*  Description   : Input Data 의 Space를 '+'로 변경한다.            *
177*  Input Data    : str                                              *
178*  Output Data   : tar                                              *
179*  사용 Function : None                                             *
180********************************************************************/
181function changeSpace(str)
182{
183    var src = new String(str);
184    var tar = new String();
185    var i, len = src.length;
186
187    for(i = 0;i < len; i++) {
188        if(src.charAt(i) == " ")
189            tar += "+";
190        else
191            tar += src.charAt(i);
192    }
193    return tar;
194}
195
196
197/********************************************************************
198*  Function Name : xReplace()                                       *
199*  Description   : 문자열(orgstr)에서 문자(findtxt)와 같은          *
200*                  문자를 찾아 문자(replacetxt)로 변경한다.         *
201*                  예) "aabbcc","b","x" -> "aaxxcc"                 *
202*  Input Data    : orgstr, findtxt, replacetxt                      *
203*  Output Data   : orgstr                                           *
204*  사용 Function : None                                             *
205********************************************************************/
206function xReplace(orgstr, findtxt, replacetxt)
207{
208    var pos = 0;
209    
210    pos = orgstr.indexOf(findtxt)
211    
212    while(pos != -1) {
213        prestring  = orgstr.substring(0, pos);
214        poststring = orgstr.substring(pos + findtxt.length, orgstr.length);
215        orgstr = prestring + replacetxt + poststring;
216        pos = orgstr.indexOf(findtxt);
217    }
218    
219    return orgstr;
220}
221
222
223/********************************************************************
224*  Function Name : convertToUpperCase()                             *
225*  Description   : 문자열(orgstr)을 대문자로 변경한다.              *
226*                  예) "aabbcc" -> "AABBCC"                         *
227*  Input Data    : theField                                         *
228*  Output Data   : None                                             *
229*  사용 Function : toUpperCase                                      *
230********************************************************************/
231function convertToUpperCase(fieldObject)
232{
233    fieldObject.value = fieldObject.value.toUpperCase();
234}
235
236/********************************************************************
237*  Function Name : isValidFloat()                                   *
238*  Description   : 소수의 유효성을 체크한다.                        *
239*  Input Data    : theField, intNum, ptNum                          *
240*                  예) "111.22" -> intNum:3, ptNum=2                *
241*  Output Data   : true/false                                       *
242*  사용 Function : toUpperCase                                      *
243********************************************************************/
244function isValidFloat(theField, intNum, ptNum) {
245	
246	if ( !isNumber(theField) ) {
247		alert('Please input number');
248		return false;
249	}	
250	
251    value = new String(theField.value);
252    ptindex = value.indexOf('.');
253    if (ptindex != -1) {
254        intstr = value.substring(0, ptindex);
255        ptstr  = value.substring(ptindex+1, value.length);
256
257        if (intstr.length > intNum) {
258            alert('Too many digit.');
259            return false;
260        }    
261        
262        if (ptstr.length > ptNum) {
263            alert('Only down to ' + ptNum + 'decimal point.');
264            return false;
265        }
266        if (ptstr.indexOf('.') != -1) {
267            alert('Wrong decimal point position.');
268            return false;
269        }    
270    } else {
271        if (value.length > intNum) {
272            alert('Too many digit.');
273            return false;
274        }
275    }
276    return true;        
277}    
278
279
280/********************************************************************
281*  Function Name : isengChar()                                      *
282*  Description   : 영문자 입력을 체크한다.                          *
283*  Input Data    : theField, stNum, edNum                           *
284*                  예) "ABC11122" -> num:3                          *
285*  Output Data   : true/false                                       *
286*  사용 Function : None                                             *
287********************************************************************/
288function isengChar(theField, stNum, edNum) {
289	value = theField.value;
290	
291	for (i=stNum; i < edNum; i++) {
292		ch = value.charAt(i);
293		
294		if ( (ch < 'A' || ch > 'Z') && (ch < 'a' || ch > 'z') ) {
295			alert('First ' + edNum + ' character must be alphabet.');
296			return false;
297		}	
298	}	
299	return true;
300}
301
302/********************************************************************
303*  Function Name : setComma()                                       *
304*  Description   : 3자리 마다 ','를 삽입한다.                       *
305*  Input Data    : field - text input type                          *
306*                  예) "12345.12" -> "123,45.12"                    *
307*  Output Data   : String                                           *
308*  사용 Function : None                                             *
309********************************************************************/
310
311function setComma( field ){
312	num = field.value;
313	len = 0;
314	
315	// 계산할 값이 없으면 return
316	if( num == "" ) return "";
317	// 소숫점의 위치를 찾는다.
318	point = num.indexOf( '.' );
319	
320	// 소숫점의 위지를 못찾으면 계산 길이는 값의 길이가 되고
321	if( point == -1 ) len = num.length
322	
323	// 소숫점의 위치를 찾으면 계산 길이는 소수점 앞자리 까지가 된다.
324	else len = point;
325	
326	// 값에서 계산할 부분만 잘래내고
327	newnum = num.substring(0,len);
328	
329	// 뒤에서부터 3자리씩 잘라서 저장할 배열을 만든다.
330	numarray = new Array( len/3 + 1 );
331	index = 0;
332	
333	// 뒤에서부터 3자리씩 잘라서 배열에 저장하고
334	for( i = len ; i > 0 ; i -= 3 ){
335		numarray[index] = newnum.substring(i - 3, i );
336		index++;
337	}
338	newnum = "";
339
340	// 배열의 뒷부분부터 , 와 함께 붙여 나간다.
341	for( i = index-1; i >= 0 ;i-- ){
342		if( i < (index-1) ) newnum += ","; // 맨 앞에 , 가 오지 않도록 한다.
343		newnum += numarray[i];
344	}
345	
346	// 소숫점이하 값이 있으면 마지막에 붙여 준다.
347	if( point > -1 ) newnum += num.substring( point, num.length );
348	
349	// , 를 삽입한 문자열을 return
350	return newnum;
351}
352
353function removeComma( field ){
354	value = field.value;
355
356	// 계산할 값이 없으면 return
357	if( value == "" ) return "";
358	i = 0;
359	comma = 0;
360	newValue = "";
361
362	while( i < value.length ){
363		// 현재의 위치부터 ','의 위치를 찾는다.
364		comma = value.indexOf(',',i);
365		
366		// ','의 위치를 못찾은경우 - 현재의 위치부터 마지막까지 추가 한다.
367		// 더이상 추가할 값이 없으므로 루프를 빠져 나간다.
368		if( comma == -1 ){
369			 newValue += value.substring(i, value.length );
370			 break;
371		}
372		// 현재의 위치부터 ','의 위치 앞까지 추가 한다.
373		// 현재의 위치를 찾은 ','의 위치 다음으로 설정한다.
374		else{
375			newValue += value.substring(i,comma );
376			i = comma+1;
377		}
378	} 
379
380	return newValue;
381}
382
383function comma_delete(fvalue) {
384  
385  var rtnValue = "";
386  
387  if (fvalue.length > 0 ) {
388
389    for (z=0; z<fvalue.length; z++)                                                              
390      if (fvalue.substring(z,z+1) != ',')
391        rtnValue = rtnValue + fvalue.substring(z,z+1);
392  
393  }
394
395  return rtnValue;
396}
397
398function comma_insert(str) {
399
400	var s_temp = '';
401	var val;
402	var jj = 1;
403        str = str.toString();
404	val = str.replace(/,/g,"");
405	for(var ii= val.length-1;ii >= 0 ;ii--)
406	{
407		if(jj%3 == 1 && jj > 3) s_temp = "," + s_temp;
408		s_temp = val.charAt(ii) + s_temp;
409		jj++;		
410	}
411	
412	return s_temp;
413}
414
415/********************************************************************
416*  Function Name : isValidLength()                                  *
417*  Description   : 자리수를 체크한다.                               *
418*  Input Data    : theField, len                                    *
419*  Output Data   : true/false                                       *
420*  사용 Function : None                                             *
421********************************************************************/
422function isValidLength(str, theField, len) {
423	if (theField.value.length != len) {
424		alert('Must be ' + len + ' digit.');
425		return false;
426	} else {
427		return true;
428	}
429}
430/********************************************************************
431*  Function Name : setFloor()                                       *
432*  Description   : 소수점 이하 자리수를 조절한다.                   *
433*  Input Data    : numstr - 숫자 string                             *
434*                  예) 1234.6789....                                *
435*  Output Data   : String                                           *
436*                  예) 1234.67, 1234.01, 1234,1                     *
437*  사용 Function : None                                             *
438********************************************************************/
439function setFloor( str )
440{
441    var pos = 0;    
442    var buf = "";
443    var temp = "";   
444    
445    if( str == "" ) return "0";
446   
447    pos = str.indexOf(".");
448    if( pos < 0 ) return str;
449                                
450    if( ( str.length - pos ) > 2 )
451        buf = str.substring( pos+1, pos+3 );
452    else 
453        buf = str.substring( pos+1, str.length );
454                      
455    var i = 0;
456    for( i = buf.length; i > 0; i-- ){
457        if( buf.charAt(i-1) != '0' ) break;    
458    }
459    
460    if( i > 0 ) 
461        buf = buf.substring(0, i);
462   
463    var lvalue = parseFloat(buf);
464  
465    if( lvalue > 0 )
466        temp = "."+buf;
467        
468    return str.substring(0, pos)+temp;
469    
470}
471
472/*
473' ------------------------------------------------------------------
474' Function    : fc_chk_byte(aro_name)
475' Description : 입력한 글자수를 체크
476' Argument    : Object Name(글자수를 제한할 컨트롤)
477' Return      : 
478' ------------------------------------------------------------------
479*/
480function fc_chk_byte(aro_name,ari_max) {
481   var ls_str     = aro_name.value; // 이벤트가 일어난 컨트롤의 value 값
482   var li_str_len = ls_str.length;  // 전체길이
483
484   // 변수초기화
485   var li_max      = ari_max; // 제한할 글자수 크기
486   var i           = 0;  // for문에 사용
487   var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
488   var li_len      = 0;  // substring하기 위해서 사용
489   var ls_one_char = ""; // 한글자씩 검사한다
490   var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.
491
492   for(i=0; i< li_str_len; i++) {
493      // 한글자추출
494      ls_one_char = ls_str.charAt(i);
495
496      // 한글이면 2를 더한다.
497      if (escape(ls_one_char).length > 4) {
498         li_byte += 2;
499      }
500      // 그밗의 경우는 1을 더한다.
501      else
502      {
503         li_byte++;
504      }
505
506      // 전체 크기가 li_max를 넘지않으면
507      if(li_byte <= li_max)
508      {
509         li_len = i + 1;
510      }
511   }
512   
513   // 전체길이를 초과하면
514   if(li_byte > li_max)  {
515      alert( li_max + " Too many character. \n they will be deleted. ");
516      ls_str2 = ls_str.substr(0, li_len);
517      aro_name.value = ls_str2;
518      
519      aro_name.focus();   
520   }
521   //aro_name.focus();   
522}
523
524/*
525' ------------------------------------------------------------------
526' Function    : fc_chk2()
527' Description : Enter키를 못치게한다.
528' Argument    : 
529' Return      : 
530' ------------------------------------------------------------------
531*/
532function fc_chk2()
533{
534   if(event.keyCode == 13)
535      event.returnValue=false;
536}
537
538/*
539' ------------------------------------------------------------------
540' Function    : FormatNumber3()
541' Description : 숫자입력 사용하게한다
542' Argument    : 
543' Return      : 
544' ------------------------------------------------------------------
545*/
546function FormatNumber2(num){
547	// 만든이:김인현([email protected])
548	fl=""
549	if(isNaN(num)) { alert("Only number are allowed.");return 0}
550	if(num==0) return num
551
552	if(num<0){ 
553		num=num*(-1)
554		fl="-"
555	}else{
556		num=num*1 //처음 입력값이 0부터 시작할때 이것을 제거한다.
557	}
558	num = new String(num)
559	temp=""
560	co=3
561	num_len=num.length
562	while (num_len>0){
563		num_len=num_len-co
564		if(num_len<0){co=num_len+co;num_len=0}
565		temp=","+num.substr(num_len,co)+temp
566	}
567	return fl+temp.substr(1)
568}
569
570function FormatNumber3(num){
571	num=new String(num)
572	num=num.replace(/,/gi,"")
573	return FormatNumber2(num)
574}
575
576function num_check() {
577	// ie에서만 작동
578	var keyCode = event.keyCode
579
580	if((event.keyCode >= 96 && event.keyCode <= 105) || (event.keyCode >= 48 && event.keyCode <= 57) ||
581    event.keyCode == 8  || event.keyCode == 46  || event.keyCode == 9 || event.keyCode == 37 ||
582    event.keyCode == 39 || event.keyCode == 45  || event.keyCode == 18 || event.keyCode == 17 || 
583    event.keyCode == 188 || event.keyCode == 13){
584    return true;
585  } else {
586  	alert("문자는 사용할 수 없습니다."+"["+keyCode+"]");
587		event.returnValue=false;	
588	}
589}
590
591/*
592' ------------------------------------------------------------------
593' Function    : fnNullCheck()
594' Description : 필수항목 체크
595' Argument    : 
596' Return      : 
597' ------------------------------------------------------------------
598*/
599function fnNullCheck(obj, msg) {
600	var str = obj.value;
601    var len = removeSpace(str).length;
602    
603    if (str == "" || len == 0) {
604        alert("[" + msg + "] Please input item.");
605        obj.focus();
606        return true;
607    }
608    return false;
609}
610
611function fnNullCheckEN(obj, msg) {
612	var str = obj.value;
613    var len = removeSpace(str).length;
614    
615    if (str == "" || len == 0) {
616        alert("[" + msg + "] Please input item.");
617        obj.focus();
618        return true;
619    }
620    return false;
621}
622
623function removeSpace(str) {
624    var src = new String(str);
625    var tar = new String();
626    var i, len = src.length;
627
628    for(i = 0;i < len;i++) {
629        if(src.charAt(i) != " ") tar = tar + src.charAt(i);
630    }
631    
632    return tar;
633}
634
635//	#####	Move Next Object Focus		#####
636function nextFocus(obj1, len, obj2) {
637	if ( obj1.value.length == len) {
638		obj2.focus();
639	}
640}
641
642function isTopEnter(obj1) {
643	if(window.event.keyCode == 13)
644		obj1.focus();
645}	
646
647// 첨부파일 확장자 필터링
648function chkFileFilter(obj) {
649	var srcName = obj.value;
650    var str =  new String(srcName).toLowerCase();
651
652    if(str.lastIndexOf("jpeg") > -1 || str.lastIndexOf("jpg") > -1 || str.lastIndexOf("gif") > -1 || str.lastIndexOf("jpe") > -1 || str.lastIndexOf("txt") > -1 || str.lastIndexOf("hwp") > -1 || str.lastIndexOf("xls") > -1 || str.lastIndexOf("ppt") > -1 || str.lastIndexOf("pdf") > -1 || str.lastIndexOf("zip") > -1 || str.lastIndexOf("doc") > -1 || str == '') {
653    	return true;
654    } else {
655        alert('Not attacable file type.');
656        return false;
657    }
658}  
659
660/*
661' ------------------------------------------------------------------
662' Function    : flash_object()
663' Description : 플래시 스크립트
664' Argument    : 
665' Return      : 
666' ------------------------------------------------------------------
667*/
668function flash_object(url,value,width,height) { 
669  	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+width+'" height="'+height+'">');
670 	document.write('<param name=movie value="'+url+value+'"');
671 	document.write('<param name="wmode" value="transparent">');
672 	document.write('<param name="wmode" value="transparent">');
673 	document.write('<param name=quality value=high>');
674 	document.write('<embed src="'+url+value+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'">');
675 	document.write('</embed> ');
676 	document.write('</object>');
677}  
678
679// 이름은 띄어쓰기 없이 한글로만 입력받음.
680function onlyHan(objtext1) {
681	var inText = objtext1.value;
682	var ret;
683
684	for (var i = 0; i < inText.length; i++) {
685	    ret = inText.charCodeAt(i);
686		if (ret > 31 && ret < 127) {
687			alert("Input only alphabets without space");
688			objtext1.value = "";
689			objtext1.focus();
690			return false;
691		}
692	}
693	return true;
694}
695
696// 아이디 확인(아이디, 시작문자수, 끝문자수
697function isID(objtext1, sLen, eLen) {
698	var inText = objtext1.value;
699      
700 	if(inText.length < sLen || inText.length > eLen) return false;
701
702	for(var i = 0; i < inText.length; i++) {
703  	var chr = inText.substr(i,1);         
704         	
705    if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z')) return false;
706 	}
707 	return true;   
708}
709
710//비밀번호에 문자로만 되어 있는지 확인
711function passonlyeng(objtext1) {
712	var inText = objtext1.value;
713	var ret;
714	var j = 0;
715				
716	var alpha_num_Str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
717		
718	for (var i = 0; i < inText.length; i++) {
719		var substr = inText.substring(i,i+1);		
720					
721		if (alpha_num_Str.indexOf(substr) < 0) {
722			//영문자가 아닌값				
723		}	else	{
724			//영문자
725			j = j + 1;
726		}
727	}
728	if (j == inText.length) {
729		//영문자만 있는경우
730		return false;
731	}	else {
732		//영문자와 다른 문자가 있는경우
733		return true;
734	}
735}
736
737//비밀번호에 숫자로만 되어있는지 확인
738function passonlyNum(objtext1){
739	var inText = objtext1.value;
740	var ret;
741
742	for (var i = 0; i < inText.length; i++) {
743	    ret = inText.charCodeAt(i);
744		if (!((ret > 47) && (ret < 58)))  {
745			return true;
746		}
747	}
748	return false;
749}
750
751	//비밀번호에 숫자,문자로만 되어있는지 체크
752	function passwordChk(objtext) {
753		if(!(objtext.value == "")) {
754			if(passonlyNum(objtext) && passonlyeng(objtext)) {
755				return true;
756			}	
757			else{
758				alert("Use both alphabets and numbers!!");
759				objtext.value = "";
760				objtext.focus();
761				return false;		
762			}
763		}
764	}
765//숫자로만 되어있는지 확인
766function onlyNum(objtext1){
767	if (isNumber(objtext1)) {
768		return true;
769	} else {	
770		alert("Only numbers are allowed.");
771		objtext1.value = "";
772		objtext1.focus();
773		return false;		
774	}	
775}
776
777function msgLogin(r_itcode) {
778	window.open("/inc/pop_login.asp","login","width=400,height=300");
779	
780	var form = document.thisForm;
781
782	form.action = "/inc/pop_login.asp";
783	form.target = "login";
784	form.h_cd.value = r_itcode;
785	form.submit();
786}	
787
788/*
789 이메일을 체크하기 위한 함수
790 인수로는 element(input type=text)를 받음.
791
792 정규 표현식 ==> 
793
794^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$
795                 ^[0-9a-zA-Z] --> 첫글자는 숫자또는 영문자
796                         [-_\.]? --> - 또는 _ 또는 . 이 0번 또는 1번
797                  [0-9a-zA-Z] --> 숫자또는 영문자
798([-_\.]?[0-9a-zA-Z])*@ --> @앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
799                  [0-9a-zA-Z] --> @ 뒤에는 숫자 또는 영문자
800                          [-_\.]? --> - 또는 _ 또는 . 이 0번 또는 1번
801([-_\.]?[0-9a-zA-Z])*\. --> . 앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
802               [a-zA-Z]{2,3}$ --> . 뒤 마지막 문자열은 영문자가 2~3개
803
804   가능한 형식 예 : [email protected]  [email protected]  [email protected]
805불가능한 형식 예 : [email protected]  a#[email protected]  aa@[email protected]  [email protected]  [email protected]
806*/
807function valid_email(ele) { 
808 //re=/^[a-z]+([0-9\.\-]*_?\w+)*@([0-9_\.\-a-z]+)*(\w{1,3}|[0-9]{1,3})$/i; 
809 re=/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*[0-9a-zA-Z-]@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; 
810 //re=/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/i;
811
812 if(re.test(ele.value)) { 
813  alert("Valied type");
814  return true; 
815 } else { 
816  alert("Invalid email type.\n Pleaes input again.\n"); 
817  ele.select(); 
818  ele.focus(); 
819  return false; 
820 } 
821} 
822
823function eScroll() {	
824	/*********************************
825	 * eScroll ( eNamoo scroll script )
826	 * by mirrh
827	 * 2006.07.16
828	 ********************************/
829	
830	var thisObj = this;
831	this.timeObj = null;
832	
833	/*** 설정변수 ***/
834	this.mode = "top";				// 스크롤 방향 (top|left)
835	this.width = "100%";			// 라인당 가로값 (pixel)
836	this.height = 20;				// 라인당 높이값 (pixel)
837	this.line = 1;					// 출력 라인수
838	this.delay = 50;				// 스크롤후 딜레이 시간
839	this.speed = 1;					// 스크롤 속도 (작을수록 빠름)
840	this.id = 'obj_eScroll';		// 객체 id (클래스 다중 사용시 id 다르게 지정 요망)
841	this.contents = new Array();	// 출력 내용 (배열로 내용 지정 요망)
842	this.align = "left";			// 내용 aligne
843	this.valign = "middle";			// 내용 valigne
844
845	/*** 내장변수 ***/
846	this.gap = 0;
847	this.direction = 1;
848
849	this.add = add;
850	this.exec = exec;
851	this.start = start;
852	this.stop = stop;
853	this.scroll = scroll;
854	this.direct = direct;
855	this.go = go;
856
857	function add(str)
858	{
859		this.contents[this.contents.length] = str;
860	}
861	
862	function exec()
863	{
864		this.basis = (this.mode == "left") ? this.width : this.height;
865		var outWidth = this.width * ((this.mode == "left") ? this.line : 1);
866		var outHeight = this.height * ((this.mode == "top") ? this.line : 1);
867		
868		var outline = "<div id=" + this.id + " style='overflow:hidden;width:" + outWidth + ";height:" + outHeight + "'><table></table></div>";
869		document.write(outline);
870		this.obj = document.getElementById(this.id);
871		
872		var tb = this.obj.appendChild(document.createElement("table"));
873		var tbody = tb.appendChild(document.createElement("tbody"));
874		tb.cellPadding = 0 ;
875		tb.cellSpacing = 0 ;
876		tb.onmouseover = function(){thisObj.stop()};
877		tb.onmouseout = function(){thisObj.start()};
878		
879		if (this.mode=="left") var tr = tbody.appendChild(document.createElement("tr"));
880		for (k in this.contents){
881			if (this.mode=="top") var tr = tbody.appendChild(document.createElement("tr"));
882			var td = tr.appendChild(document.createElement("td"));
883			td.noWrap = true;
884			td.style.width = this.width;
885			td.style.height = this.height;
886			td.style.textAlign = this.align;
887			td.style.verticalAlign = this.valign;
888			td.innerHTML = this.contents[k];
889		}
890		
891		var len = (this.contents.length<this.line) ? this.contents.length : this.line;
892		for (i=0;i<len;i++){
893			if (this.mode=="top") var tr = tbody.appendChild(document.createElement("tr"));
894			td = tr.appendChild(document.createElement("td"));
895			td.noWrap = true;
896			td.style.width = this.width;
897			td.style.height = this.height;
898			td.style.textAlign = this.align;
899			td.style.verticalAlign = this.valign;
900			td.innerHTML = this.contents[i];
901		}
902
903		this.obj.parent = this;
904		this.tpoint = this.basis * this.contents.length;
905		this.start();
906	}
907
908	function scroll() {
909		var out = (this.mode=="left") ? this.obj.scrollLeft : this.obj.scrollTop;
910		if (out%this.basis==0){
911			this.gap++;
912			if (this.gap>=this.delay) this.gap = 0;
913		}
914		if (!this.gap){
915			var ret = (out==this.tpoint) ? this.direction : out + this.direction;
916			if (ret<0) ret = this.tpoint + ret;
917			if (this.mode=="left") this.obj.scrollLeft = ret;
918			else this.obj.scrollTop = ret;
919		}
920	}
921
922	function start() {
923		this.timeObj = window.setInterval("(document.getElementById('" + this.id + "')).parent.scroll()",this.speed);
924	}
925
926	function stop()
927	{
928		clearTimeout(this.timeObj);
929	}
930
931	function direct(d)
932	{
933		this.direction = d;
934	}
935
936	function go()
937	{
938		this.stop();
939		var out = (this.mode=="left") ? this.obj.scrollLeft : this.obj.scrollTop;
940		var ret = (parseInt(out / this.basis) + this.direction) * this.basis;
941		if (ret<0) ret = this.tpoint + ret;
942		if (ret>this.tpoint) ret = this.basis;
943		if (this.mode=="left") this.obj.scrollLeft = ret;
944		else this.obj.scrollTop = ret;
945	}
946
947}
948
949/*
950' ------------------------------------------------------------------
951' Function    : inputComma
952' Description : 천단위마다 콤마찍는 스크립트
953' Argument    : 
954' Return      : 
955' Use					: onkeyup="inputComma(this)" onkeydown="return inputNumberCheck(this, event)"
956' ------------------------------------------------------------------
957*/
958function inputComma(f1) {
959    var inputstr = f1.value;
960    tmp=inputstr.split('.');
961    var str = [];
962    var v=tmp[0].replace(/,/gi,''); 
963
964    for(var i=0;i<=v.length;i++){ 
965      str[str.length]=v.charAt(v.length-i);
966      if(i%3==0&&i!=0&&i!=v.length){
967        str[str.length]='.';
968      }
969    }
970
971    str=str.reverse().join('').replace(/\./gi,','); 
972    f1.value = (tmp.length==2)?str+'.'+tmp[1]:str;
973}
974
975function inputNumberCheck(f1, event){
976	var pointIndex = -1; 
977  // .'s key code is 190 & 110, ←'s key code is 8 del's key code 46 tab's key code 9
978  if (( event.keyCode<96 || event.keyCode>105) 
979    &&( event.keyCode<48 || event.keyCode>57)
980    && event.keyCode != 190 && event.keyCode != 110 
981    && event.keyCode != 8 && event.keyCode != 46) {
982    // 숫자, 소수점, del, backspace, tab을 제외한 다른 키를 무시
983    if ( event.keyCode == 9 ) {
984      return true;
985    }
986    return false;
987  } 
988
989	for( var i=0;i<f1.value.length;i++) {
990  	if("."==f1.value.substring(i,i+1)) {
991    // 소수점 위치
992    	pointIndex = i;
993      break;
994     }
995  }
996
997  if ( event.keyCode == 190 || event.keyCode == 110) {
998  	if ( pointIndex >= 0 ) {
999    	// 소수점이 찍혀 있는 경우에 다시 소수점을 찍을 경우 무시한다. 
1000      return false;
1001    }
1002	} else {
1003  	if ( pointIndex < 0 ){
1004     	if ( f1.value.length >= 15 ) {
1005       	alert("Less than 15 characters.");
1006       	return false;
1007     	}
1008    } else {
1009    	if ( (f1.value.length - pointIndex) > 15 ) {
1010      	alert("Less than 15 decimal point.");
1011        return false;
1012      }
1013    }
1014  }
1015}
1016
1017/*
1018' ------------------------------------------------------------------
1019' Function    : 
1020' Description : top_memu부분 롤오버
1021' Argument    : 
1022' Return      : 
1023' Use					: onkeyup="inputComma(this)" onkeydown="return inputNumberCheck(this, event)"
1024' ------------------------------------------------------------------
1025*/
1026function MM_reloadPage(init) {  //reloads the window if Nav4 resized
1027  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
1028    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
1029  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
1030}
1031MM_reloadPage(true);
1032
1033function MM_findObj(n, d) { //v4.0
1034  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
1035    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
1036  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
1037  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
1038  if(!x && document.getElementById) x=document.getElementById(n); return x;
1039}
1040
1041function MM_showHideLayers() { //v3.0
1042  var i,p,v,obj,args=MM_showHideLayers.arguments;
1043  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
1044    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
1045    obj.visibility=v; }
1046}
1047
1048/****** 팝업창 리사이즈 **************************************************************/
1049function uf_popResize() {
1050	var thisX = document.getElementById("offsetTable").offsetWidth;
1051	var thisY = document.getElementById("offsetTable").offsetHeight;
1052	var maxThisX = screen.width - 50;
1053	var maxThisY = screen.height - 80;
1054	if (window.navigator.userAgent.indexOf("SV1") != -1){
1055	var marginY = 50; //마지막 수는 상황에따라 알맞게 넣으세요. (템플릿의 헤더높이 + 풋터 높이 + 알파)
1056	} else {
1057	var marginY = 29; //마지막 수는 상황에따라 알맞게 넣으세요. (템플릿의 헤더높이 + 풋터 높이 + 알파)
1058	}
1059	
1060	if (thisX > maxThisX) {
1061		window.document.body.scroll = "yes";
1062		thisX = maxThisX;
1063	}
1064	if (thisY > maxThisY - marginY) {
1065		window.document.body.scroll = "yes";
1066		thisX += 19;
1067		thisY = maxThisY - marginY;
1068	}
1069	
1070	var windowX = (screen.width - (thisX+10))/2;
1071	var windowY = (screen.height - (thisY+marginY))/2 - 20;
1072//	window.moveTo(windowX,windowY);
1073	//alert(thisX+10);
1074	//alert(thisY+marginY);
1075	window.resizeTo(thisX+10,thisY+marginY);
1076}
1077
1078/****** 팝업창 리사이즈 **************************************************************/
1079
1080function fchkJumin(no) {
1081 	var num;
1082
1083 	num=(parseInt(no.charAt(0))*2) + (parseInt(no.charAt(1))*3) + (parseInt(no.charAt(2))*4);
1084 	num+=(parseInt(no.charAt(3))*5)+(parseInt(no.charAt(4))*6)+(parseInt(no.charAt(5))*7);
1085  num+=(parseInt(no.charAt(6))*8)+(parseInt(no.charAt(7))*9)+(parseInt(no.charAt(8))*2);
1086  num+=(parseInt(no.charAt(9))*3)+(parseInt(no.charAt(10))*4)+(parseInt(no.charAt(11))*5);
1087  num=11-(num%11);
1088  check = (no.charAt(12)==num)?"y":"n";
1089 
1090  if(check=="y") {
1091    return false;
1092  } else {       
1093 		alert("주민등록번호를 다시 확인해주세요.");
1094 		return true;
1095  }
1096}
1097//-->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

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.