/*------------------------------------------------------------------------------
 * 1. 파일명: biz.js
 * 2. 설  명: 일자를 포함한 기본자료형 외의 업무 자료형 및 업무로직을 처리하는
 *            함수를 정의한다.
 * 3. 의존성: string.js
 * 4. 작성일: 2006.10.16.
 -----------------------------------------------------------------------------*/



/**
 * 전화번호 값을 형식화한다.
 */
function formatTelNo(phoneNo) {
	if ( isEmpty(phoneNo) ) return "";

	var hasLocalNo = ( phoneNo.length >= 9 && phoneNo.length <= 11 );

	var formattedNo = ""; // 형식화된 번호.

	/* 지역번호가 유무에 따라 처리. */
	if ( hasLocalNo ) {
		/* 지역번호가 있을 때. */

		/* 지역번호가 02인가? */
		if ( phoneNo.indexOf("02") == 0 ) {
			formattedNo = "02-"
						+ ( phoneNo.length == 9
								? phoneNo.substr(2, 3) : phoneNo.substr(2, 4) ) + "-"
						+ phoneNo.substr(phoneNo.length - 4);
		}
		else {
			formattedNo = phoneNo.substr(0, 3) + "-"
						+ ( phoneNo.length == 10
								? phoneNo.substr(3, 3) : phoneNo.substr(3, 4) ) + "-"
						+ phoneNo.substr(phoneNo.length - 4);
		}
	}
	else {
		/* 지역번호가 없을 때. */
		formattedNo  = ( phoneNo.length == 7
							? phoneNo.substr(0, 3) : phoneNo.substr(0, 4) ) + "-"
					+ phoneNo.substr(phoneNo.length - 4);
	}

	return formattedNo;
}


/**
 * 주어진 Object의 값을 전화번호로 가정하고 형식화한다.
 */
function formatTelNoObj(obj) {
	obj.value = formatTelNo(obj.value);
}



/**
 * 핸드폰 번호 값을 형식화한다.
 * 넘어온 번호 값은 유효한 해드폰 번호임을 가정한다.
 */
function formatHpNo(phoneNo) {
	/* 값이 없는 경우도 유효한 값이다. */
	if ( isEmpty(phoneNo) ) return "";

	/* 그래도 혹시 모르니 길이를 확인해 보자. */
	var hpNo = removeChar(phoneNo, "-");

	if ( hpNo.length != 10 && hpNo.length != 11 ) {
		showSysMessage("hpNo의 값 [" + phoneNo + "]는 - 를 뺀 길이가 10이나 11이어야 합니다.");
		return phoneNo;
	}

	/* 앞에서 3자리 지역번호. */
	var formattedNo = hpNo.substr(0, 3) + "-";

	/* 전체 길이가 10이면 3자리가 국번, 11이면 4자리가 국번. */
	formattedNo += ( hpNo.length == 10 ? hpNo.substr(3, 3) : hpNo.substr(3, 4) ) + "-";

	/* 나머지 4자리 번호. */
	formattedNo += hpNo.substring(hpNo.length - 4);


	return formattedNo;
}


/**
 * 주어진 Object의 값을 핸드폰 번호로 가정하고 형식화한다.
 */
function formatHpNoObj(obj) {
	obj.value = formatHpNo(obj.value);
}

