/******************************************************************************

 FILE					: js_common.js
 AUTHOR			: 심재원
 DATE				: 2002.01.22
 DESCRIPTIONS	: 자바스크립트 공통 모듈
 REMARKS			: 공통적으로 쓰이는 자바스크립트 함수
 MODIFY			: 
 DATE				: 
 
 *******************************************************************************

 LIST:
      1. 시작하자마자 포커스를 해당하는 form에 논다
      2. 넘어온 formName에 focus를 준다.
      3. 모든 폼값을 입력 받아야 할 때 널값을 체크 쓴다.
      4. 넘어온 문자열들이 모두 숫자인가를 확인 true:모두숫자, false:문자포함
      5. 넘어온 object값이 NULL인가를 확인
      6. 넘어온 날짜값의 길이를 확인
      7. 넘어온 날짜값을 형식에 맞는지확인
      8. 넘어온 문자열들중에 포함된 공백을 모두 없앤 문자열을 리턴한다.
      9. 넘어온 문자열들중에 왼쪽에 포함된 공백을 모두 없앤 문자열을 리턴한다.
     10. 넘어온 문자열들중에 오른쪽에 포함된 공백을 모두 없앤 문자열을 리턴한다.
     11. 넘어온 문자열의 값이 사업자번호 형식에 맞는지를 리턴 true:옳음, false:틀림
     12. 넘어온 문자열의 값이 주민번호번호 형식에 맞는지를 리턴 true:옳음, false:틀림
     13. 정해진 내용을 입력하면 from_object에서 to_object로 포커스 이동하기
     14. 전자우편 주소 체크
     15. 넘어온 Num의 값이 숫자형식일경우 넘어온 길이만큼'0'을 채워서 되돌리기
     16. 넘어온 문자열들을 지정한 길이만큼 잘라낸 문자열을 리턴한다
     17. 셀렉트바에서 인덱스가 0인 경우 Err
     18. 윈도우 열기(주소,타이틀,가로크기,세로크기,top 위치지정,left위치지정)
     19. 스크롤바 있는 윈도우 열기(주소,타이틀,가로크기,세로크기,top 위치지정,left위치지정
     20. 현재의 윈도우  닫기
     21. 직전의 윈도우  닫기
     22. 브라우즈 정보 얻기 0: netscape 1: explorer
     23. 브라우즈 정보 얻기 브라우저내용과 버전
     24. 뒤로 지정한 만큼 화면 이동 a=-1, 이동할 숫자 입력 a=이동할 숫자
     25. 원하는 url로 이동
     26. 소숫점 표현을 할 수 있도록 숫자와 점(.)을 확인
     27. 0보다 크거나 같고 100보다 작거나 같은  범위설정
     28. 인자로 넘어온 두날짜를 체크해서 이후 날짜가 먼저면 false
     29. 인자로 넘어온 url로 해당 form의 Action을 대입하고, submit한다.
     30. 넘어온 문자열들이 모두 숫자인가를 확인 false:모두숫자, true:문자포함 
     31. 지정된 객체의 문자열의 길이를 계산하는 부분
     32. 문자열의 길이에 따른 처리 함수
     33. 넘어온 두 날짜인자의 전후를 따지는 함수
     34. 숫자에 comma 찍기.
     35. 숫자에서 comma 빼기.
     36. roll_over를 하기위한 함수
     37. 넘어온 문자열이 날짜Format에 맞는지 여부를 확인 
     38. 필수 입력 항목 체크 (object, object name 을 넘겨 받는다.) 
     39. 넘어온 문자열들이 모두 숫자또는 문자인가를 확인 (Password처리)
     40. popup 오류 체크 
     41. 특수 문자 체크 특수문자가 있으면 false 아니면 true
	 42. 한글 한글자를 2byte로 인식하여, IE든 Netscape든 제대로 byte길이를 구한다.

 *****************************************************************************/
//-------------------------------------------------------------------
// 1. 시작하자마자 포커스를 해당하는 form에 논다
//-------------------------------------------------------------------
function MoveFocus(myForm, i)
{ 
	document.myForm.elements[i].focus(); 
} 

//-------------------------------------------------------------------
// 2. 넘어온 formName에 focus를 준다.
//-------------------------------------------------------------------
function sendForm(formName) 
{
	document.forms[formName].submit();
}

//-------------------------------------------------------------------
// 3. 모든 폼값을 입력 받아야 할 때 널값을 체크 쓴다.
//-------------------------------------------------------------------
function all_Null_Check(myForm)
{
	for (var i=0; i<document.myForm.elements.length; i++)
	{
		if(document.myForm.elements[i].value = '' || document.myForm .elements[i].vlaue.length == 0)
		{
			return(false);
		}
		else
		{
			return(true);
		}
	}
}

//-------------------------------------------------------------------
// 4. 넘어온 문자열들이 모두 숫자인가를 확인 
//		false:문자포함, true:모두숫자
//-------------------------------------------------------------------
function Numeric_Check(obj) 
{
	var c;
    var i;
    for(i=0;i<obj.value.length;i++) 
	{
        c = obj.value.charAt(i);
        if(c < '0' || c > '9')
		{
		   alert('숫자가 아닙니다. 확인하세요!');
		   obj.value="";
		   obj.focus();
           return(false);
        }
    }
    return(true);
}

//-------------------------------------------------------------------
// 5. 넘어온 object값이 NULL인가를 확인
//-------------------------------------------------------------------
function isNull(obj) 
{
    if(obj.value == "" || obj.value == null)
	{
    	alert('필수입력사항을 확인하세요!');
    	obj.focus();
        return(false);
    }
    return(true);
}

//-------------------------------------------------------------------
// 6. 넘어온 날짜값의 길이를 확인
//-------------------------------------------------------------------
function lenDate(obj, strings) 
{
    if (strings.length != 8) 
	{
    	alert("Please enter a valid date.\n\n ex) 2002-03-25");
    	obj.focus();
    	return(false);
    }	
    return(true);
}    

//-------------------------------------------------------------------    
// 7. 넘어온 날짜값을 형식에 맞는지확인
//-------------------------------------------------------------------
function checkDate(obj,strings) 
{	
	var year_data = "";
	var month_data = "";
	var date_data = "";
    var i;	

    for(i=0;i<8;i++) 
	{
    	var c = strings.charAt(i);
    	if(c < '0' || c > '9')
		{
           alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
		   obj.value = "";
           obj.focus();	
           return(false);
           
        }    	
        
        if (i<4) year_data += c;
        else if (i >= 4 && i < 6) month_data += c;
        else if (i >= 6) date_data += c;        
    }
    
	var mnthst = month_data;
	var mnth = parseInt(mnthst,10);
	var dy = parseInt(date_data);
	var ddy = parseInt(date_data, 10);
	
	if (mnth > 12 || mnth == "0") 
	{
		alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
		obj.value = "";
		obj.focus();
        return(false);
	}	
	
	if (mnth != 2) 
	{
		if (mnth == 4 || mnth == 6 || mnth == 9 || mnth == 11) 
		{
			if (dy > 30) 
			{
				alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
				obj.value = "";
				obj.focus();
                return(false);
			}
			
			if (ddy == "0")
			{
				alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
				obj.value = "";
				obj.focus();
				return(false);
			}
		} 
		else if (mnth == 1 || mnth == 3 || mnth == 5 || mnth == 7 || mnth == 8 || mnth == 10 || mnth == 12) 
		{
			if (dy > 31) 
			{
				alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
				obj.value = "";
				obj.focus();
	            return(false);
			}
			
			if (ddy == "0")
			{
				alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
				obj.value = "";
				obj.focus();
				return(false);
			}
		}		
	} 
	else 
	{
		var yr1 = parseInt(year_data);
		var leapYrTest = yr1 % 4;
		var maxdy;
		if ((yr1%400== 0) || ((yr1%4==0)&&(yr1%100 !=0))) 
		{
			maxdy = 29;
		} 
		else 
		{
			maxdy = 28;
		}
		
		if (dy > maxdy) 
		{
			alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
			obj.value = "";
			obj.focus();
            return(false);
		}
		
		if (ddy == "0")
		{
				alert("날짜를 입력해 주십시요.\n\n ex) 20030101");
				obj.value = "";
				obj.focus();
				return(false);
		}
	}
	return(true);	
}


//-------------------------------------------------------------------    
// 7. 넘어온 날짜값을 형식에 맞는지확인/년월확인
//-------------------------------------------------------------------

function checkYM(obj,strings) 
{	
	var year_data = "";
	var month_data = "";
	var date_data = "";
    var i;	

    for(i=0;i<8;i++) 
	{
    	var c = strings.charAt(i);
    	if(c < '0' || c > '9')
		{
           alert("년월을 입력해 주십시요.\n\n ex) 200301");
		   obj.value = "";
           obj.focus();	
           return(false);
           
        }    	
        
        if (i<4) year_data += c;
        else if (i >= 4 && i < 6) month_data += c;
        else if (i >= 6) date_data += c;        
    }
    
	var mnthst	= month_data;
	var mnth	= parseInt(mnthst,10);
	var dy		= parseInt(date_data);
	var ddy		= parseInt(date_data, 10);
	
	if (mnth > 12 || mnth == "0") 
	{
		alert("년월을 입력해 주십시요.\n\n ex) 200301");
		obj.value = "";
		obj.focus();
        return(false);
	}	
	
	if (mnth != 2) 
	{
		if (mnth == 4 || mnth == 6 || mnth == 9 || mnth == 11) 
		{
			if (dy > 30) 
			{
				alert("년월을 입력해 주십시요.\n\n ex) 200301");
				obj.value = "";
				obj.focus();
                return(false);
			}
			
			if (ddy == "0")
			{
				alert("년월을 입력해 주십시요.\n\n ex) 200301");
				obj.value = "";
				obj.focus();
				return(false);
			}
		} 
		else if (mnth == 1 || mnth == 3 || mnth == 5 || mnth == 7 || mnth == 8 || mnth == 10 || mnth == 12) 
		{
			if (dy > 31) 
			{
				alert("년월을 입력해 주십시요.\n\n ex) 200301");
				obj.value = "";
				obj.focus();
	            return(false);
			}
			
			if (ddy == "0")
			{
				alert("년월을 입력해 주십시요.\n\n ex) 200301");
				obj.value = "";
				obj.focus();
				return(false);
			}
		}		
	} 
	else 
	{
		var yr1 = parseInt(year_data);
		var leapYrTest = yr1 % 4;
		var maxdy;
		if ((yr1%400== 0) || ((yr1%4==0)&&(yr1%100 !=0))) 
		{
			maxdy = 29;
		} 
		else 
		{
			maxdy = 28;
		}
		
		if (dy > maxdy) 
		{
			alert("년월을 입력해 주십시요.\n\n ex) 200301");
			obj.value = "";
			obj.focus();
            return(false);
		}
		
		if (ddy == "0")
		{
				alert("년월을 입력해 주십시요.\n\n ex) 200301");
				obj.value = "";
				obj.focus();
				return(false);
		}
	}
	return(true);	
}

//-------------------------------------------------------------------
// 8. 넘어온 문자열들중에 포함된 공백을 모두 없앤 문자열을 리턴한다
//-------------------------------------------------------------------
function Trim(strings)
{
    var retString = "";
    var c;
    var i;
    for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        if(c != ' ')
		{
           retString += c;
        }
    }
    return(retString);
}

//-------------------------------------------------------------------
// 9. 넘어온 문자열들중에 왼쪽에 포함된 공백을 모두 없앤 
// 		문자열을 리턴한다
//-------------------------------------------------------------------
function Ltrim(strings)
{
    var retString = "";
    var c;
    var i; 
    var end=0;
    for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        if(c != ' ' || end==1)
		{
           retString += c; 
           end = 1;
        }
    }
    return(retString);
}

//-------------------------------------------------------------------
// 10. 넘어온 문자열들중에 오른쪽에 포함된 공백을 모두 없앤 
//		문자열을 리턴한다
//-------------------------------------------------------------------
function Rtrim(strings)
{
    var retString = "";
    var c; 
    var i; 
    var end=0;
    for(i=strings.length - 1;i>=0;i--) 
	{
        c = strings.charAt(i);
        if(c != ' ' || end==1)
		{
           retString = c + retString; 
           end = 1;
        }
    }
    return(retString);
}

//-------------------------------------------------------------------
// 11. 넘어온 문자열의 값이 사업자번호 형식에 맞는지를 리턴
// 		true:옳음, false:틀림
//-------------------------------------------------------------------
function isBusno(strings) 
{
    var c = new Array(10);
    var i;
    var sum=0, il_y=0, epno_chk=0;
    var temp;
    var li_chkvalue = new Array(1,3,7,1,3,7,1,3,5);
    if(strings=="" || strings.length != 10) 
	{
        popup(1, '사업자번호', strings );
        return(false);
    }
    for(i=0;i<10;i++) 
	{
        c[i] = strings.charAt(i);
        if(c[i]<'0' || c[i]>'9')  
		{
           popup(1, '사업자번호', strings );
           return(false);
        }
    }
    
	for(i=0;i<9;i++)
	{
        sum += parseInt(c[i]) * parseInt(li_chkvalue[i]);
    }
    
	sum = sum + parseInt((c[8] * 5) / 10);
    temp = parseInt(sum / 10);
    li_y = sum - (temp * 10) ;
    
	if(li_y==0) 
	{
        epno_chk = 0;
    } 
	else 
	{
        epno_chk = 10 - li_y;
    } 

	if(epno_chk==eval(c[9])) 
	{
        popup(0, '사업자번호', strings );
        return(true); 
    } 
	else 
	{
        popup(1, '사업자번호', strings );
        return(false);
    }
    popup(1, '사업자번호', strings );
    return(false);
}

//-------------------------------------------------------------------
// 12. 넘어온 문자열의 값이 주민번호번호 형식에 맞는지를 리턴
//	 	true:옳음, false:틀림
//-------------------------------------------------------------------
function isIdno(strings) 
{
    var c = new Array(13);
    var i;
    var sum=0, il_y=0, epno_chk=0;
    var li_chkvalue = new Array(2,3,4,5,6,7,8,9,2,3,4,5);
    
	if(strings.length != 13) 
	{
        popup(1,'주민등록번호', strings);
        return(false);
    }
    
	for(i=0;i<13;i++) 
	{
        c[i] = strings.charAt(i);
        if(c[i]<'0' || c[i]>'9') 
		{
            popup(1,'주민등록번호', strings );
            return(false);
        }
    }
    
	for(i=0;i<12;i++)
	{
        sum += eval(c[i]) * li_chkvalue[i];
    }
    li_y = sum - Math.floor(sum/11)*11; 
    li_y = 11 - li_y;
    li_y = li_y - Math.floor(li_y/10)*10; 
    
	if(li_y==eval(c[12])) 
	{
        popup(0,'주민등록번호', strings );
        return(true); 
    } 
	else 
	{
        popup(1,'주민등록번호', strings );
        return(false);
    }
    popup(1,'주민등록번호', strings );
    return(false);
}

//-------------------------------------------------------------------
// 13. from object, to_object, from_object에서 len 길이만큼의
//		정해진 내용을 입력하면 to_object로 포커스 이동하기
//-------------------------------------------------------------------
function next_tab(from_object, to_object, len)
{
	if(from_object.value.length >= len) to_object.focus();
}

//-------------------------------------------------------------------
// 14. 전자우편 주소 체크
//-------------------------------------------------------------------
function isCorrectEmail(obj) 
{
    var i;
    var check=0;
    var dot=0;
    var before = "";
    var after = "";
 
    if(obj.value.length == 0) return(false);
   
    for(i=0; i<obj.value.length; i++) 
	{
        if(obj.value.charAt(i) == '@') { check = check + 1; }
        else if(check == 0) { before = before + obj.value.charAt(i); }
        else if(check == 1) { after = after + obj.value.charAt(i); }
    }    
 
    if( check >= 2 || check == 0 ) 
	{ 
    	alert("이메일 주소를 형식에 맞게 입력하여 주십시요.");
        obj.focus();
        obj.select()
        return(false);
    }            

    for(i=0; i<before.length; i++) 
	{
        if(!((before.charAt(i) >= 'A' && before.charAt(i) <= 'z') ||
             (before.charAt(i) >= '0' && before.charAt(i) <= '9') ||
             (before.charAt(i) == '_') || (before.charAt(i) == '.') ||
             (before.charAt(i) == '-'))) 
		{
        	alert("이메일 주소를 형식에 맞게 입력하여 주십시요.");
           	obj.focus();
           	obj.select()
           	return(false); 
        }
    }        

    for(i=0; i<after.length; i++) 
	{
        if(!((after.charAt(i) >= 'A' && after.charAt(i) <= 'z') ||
             (after.charAt(i) >= '0' && after.charAt(i) <= '9') ||
             (after.charAt(i) == '_') || (after.charAt(i) == '.') ||
             (after.charAt(i) == '-'))) 
		{
           	alert("이메일 주소를 형식에 맞게 입력하여 주십시요.");
           	obj.focus();
           	obj.select()
           	return(false);
        }
    }
    
    for(i=0; i<after.length; i++) 
	{
        if(after.charAt(i) == '.') 
		{
            dot = dot + 1;
        }
    }
        
    if( dot < 1 ) 
	{
        alert("이메일 주소를 형식에 맞게 입력하여 주십시요.");
        obj.focus();
        obj.select();
        return(false);
    } 

    return(true);
}

//-------------------------------------------------------------------
// 15. 넘어온 Num의 값이 숫자형식일경우 넘어온 길이만큼
//		'0'을 채워서 되돌리기
//-------------------------------------------------------------------
function Fillzero(Obj, len) 
{
    var c;
    var i;
    Obj.value=Trim(Obj.value);
    
	if(isNumber(Obj.value)==1) 
	{
       return(false);
    }
    if(Obj.value.length<=0) return "";
    if(Obj.value.length >= len) return Obj.value;
    c = len - Obj.value.length ;
    
	for(i=0;i<c;i++) 
	{ 
        Obj.value = "0" + Obj.value;
    }
    return(Obj.value);
}

//-------------------------------------------------------------------
// 16. 넘어온 문자열들을 지정한 길이만큼 잘라낸 문자열을 리턴한다.
//-------------------------------------------------------------------
function Substr(strings,start,end)
{
    var retString = "";
    var c;
    var i;
    for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        if(i>=(start - 1) && i<=(start + end - 2))
		{
           retString += c;
        }
    }
    return(retString);
}

//-------------------------------------------------------------------
// 17. 셀렉트바에서 인덱스가 0인 경우 Err
//-------------------------------------------------------------------
function checkSelect(myForm, eleName)
{
	if(document.myForm.elements[eleName].selectedIndex == 0)
	{
		return(false);
	}
	else
	{
		return(true);
	}
}

//-------------------------------------------------------------------
// 18. 윈도우 열기(주소,타이틀,가로크기,세로크기,top 위치지정,left위치지정)
//-------------------------------------------------------------------
function OpenWin(url,tit,wid,hei,tp,lt)
{
	window.open(url,tit,'scrollbars=no,width='+wid+',height='+hei+',top='+tp+',lt='+lt);
	return newWin;
}

//-------------------------------------------------------------------
// 19. 스크롤바 있는 윈도우 열기
//		(주소,타이틀,가로크기,세로크기,top 위치지정,left위치지정)
//-------------------------------------------------------------------
function OpenScrWin(url,tit,wid,hei,tp,lt)
{
	window.open(url,tit,'scrollbars=yes,width='+wid+',height='+hei+',top='+tp+',lt='+lt);
	return newWin;
}

//-------------------------------------------------------------------
// 20. 현재의 윈도우  닫기
//-------------------------------------------------------------------
function selfclose()
{
	self.close();
}

//-------------------------------------------------------------------
// 21. 직전의 윈도우  닫기
//-------------------------------------------------------------------
function opnerclose()
{
	opener.close();
}

//-------------------------------------------------------------------
// 22. 브라우즈 정보 얻기 0: netscape 1: explorer
//-------------------------------------------------------------------
function getBrowserName()
{
	browser = navigator.appName;

	if (browser == "Nescape")
	{
		return(0);
	}
	else {
		return(1);
	}
}

//-------------------------------------------------------------------
// 23. 브라우즈 정보 얻기 브라우저내용과 버전
//-------------------------------------------------------------------
function getBrowserInfo()
{
	var info;
	browser = navigator.appName;     
	version =  navigator.appVersion;
	info = browser + " " + version;
	return (info);
}

//-------------------------------------------------------------------
// 24. 뒤로 지정한 만큼 화면 이동 a=-1, 이동할 숫자 입력 a=이동할 숫자
//-------------------------------------------------------------------
function goHistory(a)
{
	history.go(a);
}

//-------------------------------------------------------------------
// 25. 원하는 url로 이동
//-------------------------------------------------------------------
function goMove(url)
{
	window.location.replace(url);
}

//-------------------------------------------------------------------
// 26. 소숫점 표현을 할 수 있도록 숫자와 점(.)을 확인
//-------------------------------------------------------------------
function Percent_Check(strings) 
{    
    var c;
    var i;
  
    for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        if( (c >= '0' && c <= '9' ) || c=='.')
		{
 	         return(true);
 	    }
 	    else
		{
 		      return(false);
 	    }
 	}
}

//-------------------------------------------------------------------
// 27. 0보다 크고 100보다 작은 범위설정
//-------------------------------------------------------------------
function Range_Check(strings) 
{  
    var c = parseFloat(strings);
    
    if ( c>=0 && c<=100 ) 
	{
 	      return(true);
 	}
 	else
 	{
 	     return(false);
	}
}

//-------------------------------------------------------------------
// 28. 인자로 넘어온 두날짜를 체크한다
//-------------------------------------------------------------------
function f_checkSequence(prevDate, nextDate) 
{	
	if( (prevDate.length != 8 ) || (nextDate.length != 8 ) )  
	{
		return(false);		
	}
	
	var tmpPrevDate = new Date( prevDate.substring(0,4), prevDate.substring(4,6), prevDate.substring(6,8) );
	var tmpNextDate = new Date( nextDate.substring(0,4), nextDate.substring(4,6), nextDate.substring(6,8) );
	
	if ( tmpPrevDate.getTime() < tmpNextDate.getTime() )  
	{
		return(false);	
	}
	return(true);	
}

//-------------------------------------------------------------------
// 29. 인자로 넘어온 url로 해당 form의 Action을 대입하고, submit한다
//-------------------------------------------------------------------
function f_sendRedirect(strings) 
{	
	document.sendform.action = strings;
	document.sendform.submit();
}

//-------------------------------------------------------------------
// 30. 넘어온 문자열들이 모두 숫자인가를 확인 0:모두숫자, 1:문자포함
//-------------------------------------------------------------------
function isNumber(strings) 
{
    var c;
    var i;
    if(strings.length<=0) return(0);

	for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        if(c < '0' || c > '9')
		{
           return(false);
        }
    }
    return(true);
}

var IEYES = 0;
var menufacture = navigator.appName;
var version = navigator.appVersion;
if((menufacture.indexOf('마이크로소프트') >= 0
    || menufacture.indexOf('Microsoft') >= 0)
    && version.indexOf('4.0') >= 0 )
{
   IEYES = 1;
}

//-------------------------------------------------------------------
// 31. 지정된 객체의 문자열의 길이를 계산하는 부분
//-------------------------------------------------------------------
function CheckByte(str)
{
	var i;
	var strLen;
	var strByte;
	strLen = str.length;
   	
   	// IE4.0 이상
   	if(IEYES == 1)
   	{
      	for(i=0, strByte=0;i<strLen;i++)
	 	{
	    	if(str.charAt(i) >= ' ' && str.charAt(i) <= '~' )
	    		strByte++;
        	else
           		strByte += 2;
     	}
     	return strByte;
   	}
   
   	// Netscape일 경우
   	else
   	{
   		return strLen;
	}
}

//-------------------------------------------------------------------
// 32. 문자열의 길이에 따른 처리 함수
//-------------------------------------------------------------------
function check_length(comp, str, len)
{
	comp.value = Ltrim(comp.value);
    complen = CheckByte(comp.value);
    if ( complen > len)
    {
      	alert(str + '은(는) ' + len + '자를 초과할수 없습니다. 현재 ' + complen + '글자입니다.');
	  	comp.focus();
	  	return false;
	}
	return true;
}

//-------------------------------------------------------------------
// 33. 넘어온 두 날짜인자의 전후를 따지는 함수
//-------------------------------------------------------------------
function checkAfter(frdate, todate, frdtnm, todtnm)
{
	if (frdate > todate) 
	{
		alert(todtnm+"은 "+frdtnm+"이후 이어야 합니다.");
		return(false);
	}	
	return(true);
}

//-------------------------------------------------------------------
// 34. 숫자에 Comma 찍기.
//-------------------------------------------------------------------
function Comma(input) 
{
  	var inputString = new String; 
  	var outputString = new String; 
  	var counter = 0; 
  	var decimalPoint = 0; 
  	var end =0; 
  	var modval = 0; 

	inputString=input.toString(); 
	outputString=''; 
	decimalPoint = inputString.indexOf('.', 1); 

	if(decimalPoint == -1) 
	{		
		end = inputString.length - (inputString.charAt(0)=='0' ? 1:0);
		for (counter=1;counter <=inputString.length; counter++) 
		{ 
			var modval =counter - Math.floor(counter/3)*3; 
			outputString = (modval==0 && counter <end ? ',' : '') + inputString.charAt(inputString.length - counter) + outputString; 
		}
	} 
	else 
	{ 
		end = decimalPoint - ( inputString.charAt(0)=='-' ? 1 :0); 
		for (counter=1; counter <= decimalPoint ; counter++) 
		{ 
			outputString = (counter==0  && counter <end ? ',' : '') +  inputString.charAt(decimalPoint - counter) + outputString; 
		} 
		for (counter=decimalPoint; counter < decimalPoint+3; counter++) 
		{ 
			outputString += inputString.charAt(counter); 
		} 
	} 
	return (outputString);  
}

//-------------------------------------------------------------------
// 35. 숫자에 Comma 제거하기.
//-------------------------------------------------------------------
function unComma(input) 
{ 
	var inputString = new String; 
	var outputString = new String; 
	var outputNumber = new Number; 
	var counter = 0; 
   	inputString=input; 
   	outputString=''; 

   	for (counter=0;counter <inputString.length; counter++)  
   	{ 
      	outputString += (inputString.charAt(counter) != ',' ?inputString.charAt(counter) : ''); 
   	} 
   	outputNumber = parseFloat(outputString); 
   	return (outputNumber);  
} 

//-------------------------------------------------------------------
// 36. Roll over를 위한 함수
//-------------------------------------------------------------------
/*
function MM_preloadImages() 	//v3.0
{	
	var d=document; 
	if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore()  	//v3.0
{
  	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) 		//v3.0
{
  	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() 		//v3.0
{
 	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
*/

//-------------------------------------------------------------------
// 37. 넘어온 문자열이 날짜Format에 맞는지 여부를 확인 
//-------------------------------------------------------------------
function checkDateFormat(obj,strings,sect) 
{
    var c;
    var i;
    
	if (strings.length != 10) 
	{
    	alert("입력된 값이 날짜 형식에 맞는지 확인하십시요.(YYYY"+sect+"MM"+sect+"DD)");	
    	obj.focus();
    	return(false);
    }

    for(i=0;i<strings.length;i++) 
    {
        c = strings.charAt(i);
    
		if(i == '0'|| i == '1'|| i == '2'|| i == '3'|| i == '5'|| i == '6' || i == '8'|| i == '9') 
		{
	        if(c < '0' || c > '9')
			{
	           alert("입력된 값이 날짜 형식에 맞는지 확인하십시요.(YYYY"+sect+"MM"+sect+"DD)");	
	           obj.focus();
	           return(false);
	        }
	    } 
		else if(i == '4'|| i == '7') 
		{
	        if(c != sect) 
			{
	           alert("입력된 값이 날짜 형식에 맞는지 확인하십시요.(YYYY"+sect+"MM"+sect+"DD)");	
               obj.focus();
	           return(false);        
	        }
	    }   
    }
    return(true);
}

//-------------------------------------------------------------------
// 38. 넘어온 object값이 NULL인가를 확인
//-------------------------------------------------------------------
function isNullColumn(obj, obj_name) 
{
    if(obj.value == "" || obj.value == null)
	{
    	alert(obj_name + "은(는) 필수입력 사항입니다!");
    	obj.focus();
        return(false);
    }
    return(true);
}

//-------------------------------------------------------------------
// 39. 넘어온 문자열들이 모두 숫자또는 문자인가를 확인 
//		true:모두숫자, false:문자포함 (id, Password처리)
//-------------------------------------------------------------------
function checkCharacterValue(strings) 
{
    var c;
    var i;

	for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);

        if((c < '0' || c > '9')&&(c < 'a' || c > 'z')&&(c < 'A' || c > 'Z'))
		{
           return(false);
        }
    }
    return(true);
}

//-------------------------------------------------------------------
// 40. popup 오류 체크
//-------------------------------------------------------------------
function popup(tf, tit, emsg)
{
	if(tf==1)	//오류발생시 
	{
    	alert("[ "+emsg+" ] "+tit+"에 오류가 있습니다.");
	}
}

//-------------------------------------------------------------------
// 41. 특수 문자 체크
//-------------------------------------------------------------------
function etc_check(strings) 
{
    var c;
    var i;

	for(i=0;i<strings.length;i++) 
	{
        c = strings.charAt(i);
        
		if((c < '0' || c > '9')&&(c < 'a' || c > 'z')&&(c < 'A' || c > 'Z'))
		{
           return(false);
        }
    }
    return(true);
}

//-------------------------------------------------------------------
// 42. 한글 한글자를 2byte로 인식하여, IE든 Netscape든 
//      제대로 byte길이를 구한다.
//-------------------------------------------------------------------
function getByteLength(strings)
{
	var len = 0;

	if ( strings == null ) return 0;
   
	for(var i=0;i<strings.length;i++)
	{
		var c = escape(strings.charAt(i));
      
		if ( c.length == 1 ) len ++;
		else if ( c.indexOf("%u") != -1 ) len += 2;
		else if ( c.indexOf("%") != -1 ) len += c.length/3;
   }
   return len;
}


