/******************************************************** 
   파일명 : lib.string.js
   설  명 : 문자처리 관련 공통함수 모음
   작성자 : 김현배 
   작성일 : 2008.08.18 
   수정일 : 2008.08.18 
*********************************************************/ 



/**
 * 객체의 값이 한글인지 검사한다.
 * 
 * @param str	문자열
 * @return 
 */
 

/**
	함수명 : isKor
	설  명 : 객체의 값이 한글인지 검사한다.
	인  자 : str : 문자열
	리  턴 : 문자열이 한글인지 여부
	사용법 : 
		if(!isKor("한글 aa")){
			return;
		}
 */
function isKor(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if (!(code > 255))
		{
			return false;
		}
	}

	return true;
}

/**
	함수명 : isEng
	설  명 : 객체의 값이 영문인지 검사한다.
	인  자 : str : 문자열
	리  턴 : 문자열이 영문인지 여부
	사용법 : 
		if(!isEng("한글 aa")){
			return;
		}
 */
function isEng(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if (!((code >= 65) || (code <= 122)))
		{
			return false;
		}
	}

	return true;
}



/**
	함수명 : isEng
	설  명 : 객체의 값이 영문 또는 숫자인지 검사한다.
	인  자 : str : 문자열
	리  턴 : 문자열이 영문 또는 숫자인지 여부
	사용법 : 
		if(!isEngNumeric("한글 aa")){
			return;
		}
 */
function isEngNumeric(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if(!((code >= 65) && (code <= 122)) && !((code >= 48) && (code <= 57)))
		{
			return false;
		}
	}

	return true;
}


/**
	함수명 : replaceAll
	설  명 : 스트링 치환함수
	인  자 : str:원문자열, pattern:변경할패턴, replaceStr:변경할문자열
	리  턴 : 변경된 문자열
	사용법 : 
		str = replaceAll(str, "A", "B");
 */
function replaceAll(str, pattern, replaceStr){
	while(str.indexOf(pattern) != -1){
		str = str.replace(pattern, replaceStr)
	}
	return str;
}

/**
	함수명 : trimAll
	설  명 : 문자의 공백을 모두 제거한다.
	인  자 : str:원문자열
	리  턴 : 공백이 제거된 문자열
	사용법 : 
		str = trimAll(str);
 */
function trimAll(str){
	return replaceAll(str, " ", "");
}


/**
	함수명 : isInEmpty
	설  명 : 파라미터로 전달한 컨트롤의 value가 비어있는지 확인한다.
	         공백은 trim으로 제거 된다.
	인  자 : ctl:검증할 컨트롤
	리  턴 : 유효성 검사여부(true, false)
	사용법 : 
		if(isInEmpty(form.id)){
			return;
		} 
 */
function isInEmpty(ctl){
	try{
		if(replaceAll(ctl.value, " ", "") == ""){
			ctl.focus();
			return true;
		} else {
			return false;
		}
	}catch(e){
		return true;
	}
}

/**
	함수명 : isEmpty
	설  명 : 파라미터로 전달한 컨트롤의 value가 비어있는지 확인한뒤 메세지를 출력한다.
	         공백은 trim으로 제거 된다.
	인  자 : ctl:검증할 컨트롤, msg:empty시 출력할 메세지
	리  턴 : 유효성 검사여부(true, false)
	사용법 : 
		if(isEmpty(form.id, "아이디를 입력해 주세요")){
			return;
		} 
 */
function isEmpty(ctl, msg){
	var returnVal = isInEmpty(ctl);
	if(returnVal){
		alert(msg);
		try{
			ctl.focus();
		}catch(e){}
	}
	return returnVal;
}

/*
	함수명 : accountStar
	설  명 : 계좌번호 뒤3자리 * 처리
	인  자 : 변경 할 계좌번호
	리  턴 : 변경 된 계좌번호
	사용법 : accountStar(account)
*/
function accountStar(value){
	var result = "";
	if(value!=null && value.length > 4){
		result = value.substring(0, value.length - 3)+"***";
	}
	return result;
}