/** 
 * VIEW 단 에러메세지를 리턴하는 Javascript
 *
 * 에러메시지는 별도 js 변수로 선언된다. 
 * 변수명을 가지고 에러 메세지를 리턴한다.
 * 
 * @author  장영조, foresight@topnwise.com
 * @version 1.0, 2004/08/17
 * @since   1.0
 *
 * Copyright. (c) 2004 by Kyobo Life
 */
 
 // 변경 하면 안된당 !!!!! 절대로 안된당 !!!!!
 // 동적 아규먼트는 [%]로 메세지 처리 
var _MSGDELIM = "[%]";

 /* =============================================================
  Function : 에러 메세지 Factory
  Return   : N/A
  Usage    : 
================================================================= */
function CN_MsgFactory() {
	this.getMsg        = getMsg;
	this.getMsgAlert   = getMsgAlert;
	this.getMsgConfirm = getMsgConfirm;
}

 /* =============================================================
  Function : 해당 에러메시지를 리턴한다. 
             동적 아규먼트에 갯수에 따라 배열 값을 셋팅한다.
  Return   : N/A
  Usage    : 
================================================================= */
function getMsg(msgcode, arrText) {
	
	if (arrText == null) return msgcode
	
	var size = divide_size(msgcode, _MSGDELIM);
	var msg = '';
	
	try {
		if (size == 1) {
			// [%] 가 없는 경우 동적 메세지 Argument가 없는 경우
			msg = msgcode;
		}
		else {
			// [%] 가 있는 경우 동적 메세지 Argument가 있는 경우
			for (i = 0; i < arrText.length; i++) {
				if (i == 0 ){
					msg = divide(msgcode, i, _MSGDELIM) 
					 + arrText[i] + divide(msgcode, i+1, _MSGDELIM);
				}
				else {
					msg = msg + arrText[i] + divide(msgcode, i+1, _MSGDELIM);
				}
			}
		}
		return msg;
	}
	catch(e) {
		alert(e.message);
	}
}

//function getMsg(msgcode) 
//{
//	return msgcode;
//}

/* =============================================================
  Function : 해당 에러메시지를 alert 창으로 리턴한다.
             동적 아규먼트에 갯수에 따라 배열 값을 셋팅한다.
  Return   : N/A
  Usage    : 
================================================================= */
function getMsgAlert(msgcode, arrText) {
	alert(getMsg(msgcode, arrText));
	return;
}

/* =============================================================
  Function : 해당 에러메시지를 confirm 창으로 리턴한다.
             동적 아규먼트에 갯수에 따라 배열 값을 셋팅한다.
  Return   : N/A
  Usage    : 
================================================================= */
function getMsgConfirm(msgcode, arrText) {
	return confirm(getMsg(msgcode, arrText));
	
}

/* =============================================================
  Function : 해당 에러메세지를 가져오는 도중 Exception 
  Return   : N/A
  Usage    : 
================================================================= */
function MsgException(msg) {
	this.message = msg;
}

/* =============================================================
  Function : 
  Return   : N/A
  Usage    : 
================================================================= */
function divide(s, index, os) {
    var rs; 
	rs = s.split(os); 
	return rs[index];
}


/* =============================================================
  Function : divide_size
  Return   : N/A
  Usage    : 
================================================================= */
function divide_size(s, os){
    var rs = s.split(os);
    return rs.length;
}
