/*
 * 1. È­ÀÏ¸í     :    message.js
 * 2. ÀÛ¼ºÀÏÀÚ   :    2004-02-09
 * 3. ÀÛ¼ºÀÚ     :    ¹éÁøÇö
 * 4. ¼³¸í       :    JSP¿¡¼­ »ç¿ëÇÏ´Â È­¸é display ÇÔ¼ö¸¦ °¡Áö°í ÀÖ´Â È­ÀÏ.
 * 5. º¯°æÀÌ·Â 
 *    1) 2004-02-09 / ¹éÁøÇö / ÃÖÃÊ ÀÛ¼º
 *    1) 2004-03-25 / ¹éÁøÇö / Message Ã³¸®¹æ½Ä º¯°æ
 *
 */

/**
 * <pre>
 * getMessage() ÇÔ¼öÀÇ  ´ÙÇü¼ºÀ» ±¸ÇöÇÏ±â À§ÇÑ ÇÔ¼ö.
 * °³¹ßÀÚ´Â getMessage() ÇÔ¼ö¸¸À» ÀÌ¿ëÇÏ¿© ÇÊ¿äÇÑ Message¸¦ Ãâ·ÂÇÑ´Ù.
 * 
 * 1. ¼³ ¸í
 *    Á¦°øµÈ getMessage() ÇÔ¼ö
 *    - getMessage(String key);
 *      : getMessageParamOne ÇÔ¼ö°¡ ½ÇÇà
 *    - getMessage(String key, Array arrayList);
 *      : getMessageParamTwo ÇÔ¼ö°¡ ½ÇÇà
 *
 * 2. Æ¯ÀÌ»çÇ×
 *    - ÆÄ¶ó¹ÌÅÍÀÇ °¹¼ö¸¦ Ã¼Å©ÇÏ¿© ÇØ´ç ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
 *    - ÀÌ ÇÔ¼ö°¡ ½ÇÇàµÇ±â À§ÇØ¼­´Â messageKey, messageContent, messageLevelÀÇ ¹è¿­ÀÌ Àü¿ªº¯¼ö·Î
 *      ¼±¾ðµÇ¾î ÀÖ¾î¾ß ÇÔ¸ç, ¼±¾ðµÇÁö ¾Ê¾ÒÀ» °æ¿ì¿¡ ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ´Ù.
 * 
 * <b>return</b>
 *    returnFlag : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ ÈÄ ¾òÀº °á°ú°ª.
 * 
 * </pre>
 */
function getMessage() {
	var returnFlag = false;
	var args = getMessage.arguments;
	var errorMessage = "getMessage ÇÔ¼ö ½ÇÇà½Ã ÇÊ¿äÇÑ º¯¼ö(messageKey, messageContent, messsageLevel)°¡ ¼±¾ðµÇÁö ¾Ê¾Ò½À´Ï´Ù.";
	try {
		if ((typeof messageKey == "undefined") || (typeof messageContent == "undefined") ||(typeof messageLevel == "undefined")) {

		}
	} catch(e) {
		displayMessage(0, errorMessage);
		return true;
	}

	switch(args.length) {
		case(1) :	returnFlag = getMessageParamOne(args[0]);
					break;
		case(2) :	returnFlag = getMessageParamTwo(args[0], args[1]);
					break;
		default :
					returnFlag = displayMessage(0, "ÇØ´çÇÏ´Â ÇÔ¼ö°¡ ¾ø½À´Ï´Ù.");
					break;
	}
	
	return returnFlag;
}

/**
 * <pre>
 * ÆÄ¶ó¹ÌÅÍ·Î µé¾î¿Â Key°ªÀ» ÀÌ¿ëÇÏ¿© ÇØ´ç Message¸¦ Ãâ·ÂÇÑ´Ù.
 * 
 * 1. ¼³ ¸í
 *    
 *
 * 2. Æ¯ÀÌ»çÇ×
 *    key¿Í ÀÏÄ¡ÇÏ´Â °ªÀÌ ¾øÀ» °æ¿ì ÇØ´ç key°ªÀ» ¸®ÅÏÇÑ´Ù.
 * 
 * <b>Parameters</b>
 *    key : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ±â À§ÇÑ key°ª.
 * 
 * <b>return</b>
 *    returnFlag : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ ÈÄ ¾òÀº °á°ú°ª.
 * 
 * </pre>
 */
function getMessageParamOne(key) {
	var returnFlag = false;
	var flag = false;
	for (i = 0; i < messageKey.length; i++) {
		if (key == messageKey[i]) {
			returnFlag = displayMessage(messageLevel[i], messageContent[i]);
			flag = true;
			break;	
		}
	}
	if (!flag) returnFlag = displayMessage(0, "key¿¡ ÇØ´çÇÏ´Â °ªÀÌ ¾ø½À´Ï´Ù. : " + key);
	
	return returnFlag;
}

/**
 * <pre>
 * ÆÄ¶ó¹ÌÅÍ·Î µé¾î¿Â Key°ªÀ» ÀÌ¿ëÇÏ¿© ÇØ´ç Message¸¦ Ãâ·ÂÇÑ´Ù.
 * 
 * 1. ¼³ ¸í
 *    
 *
 * 2. Æ¯ÀÌ»çÇ×
 *    key¿Í ÀÏÄ¡ÇÏ´Â °ªÀÌ ¾øÀ» °æ¿ì ÇØ´ç key°ªÀ» ¸®ÅÏÇÑ´Ù.
 * 
 * <b>Parameters</b>
 *    key : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ±â À§ÇÑ key°ª.
 *    ArrayList : key¿¡ Æ÷ÇÔ½ÃÅ³ ¸Þ¼¼Áö Array
 * 
 * <b>return</b>
 *    returnFlag : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ ÈÄ ¾òÀº °á°ú°ª.
 * 
 * </pre>
 */
function getMessageParamTwo(key, arrayList) {
	var returnFlag = false;
	var flag = false;
	var level;
	var content;
	
	for (i = 0; i < messageKey.length; i++) {
		if (key == messageKey[i]) {
			flag = true;
			level = messageLevel[i];
			content = messageContent[i];
			break;	
		}
	}
	if (typeof content == "undefined") content = key;
	if (typeof level == "undefined") level = 0;

	if (typeof arrayList == "undefined") displayMessage(level, content);
	
	for (i = 0; i < arrayList.length; i++) {
		var count = content.indexOf("^");
		if (count == -1) break;
		content = content.substring(0, count) + arrayList[i] + content.substring(count + 1);
	}
	returnFlag = displayMessage(level, content);

	return returnFlag;
}

/**
 * <pre>
 * ÆÄ¶ó¹ÌÅÍ·Î µé¾î¿Â content¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö.
 * 
 * 1. ¼³ ¸í
 *    - typeÀÌ 0ÀÏ °æ¿ì
 *      : Information ¸Þ¼¼Áö Ãâ·Â
 *    - typeÀÌ 1ÀÏ °æ¿ì
 *      : Status ¸Þ¼¼Áö Ãâ·Â
 *    - typeÀÌ 2ÀÏ °æ¿ì
 *      : Question ¸Þ¼¼Áö Ãâ·Â
 *
 * 2. Æ¯ÀÌ»çÇ×
 *    key¿Í ÀÏÄ¡ÇÏ´Â °ªÀÌ ¾øÀ» °æ¿ì ÇØ´ç key°ªÀ» ¸®ÅÏÇÑ´Ù.
 * 
 * <b>Parameters</b>
 *    level - Ç¥½ÃÇÏ°íÀÚ ÇÏ´Â type.
 *    content - Ãâ·ÂÇÏ°íÀÚ ÇÏ´Â message.
 * 
 * <b>return</b>
 *    returnFlag : ÇØ´ç ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ ÈÄ ¾òÀº °á°ú°ª.
 * 
 * </pre>
 */
function displayMessage(level, content) {
	switch(level) {
		case(-1) :
					window.status = content;
					return true;
		case(0) :
					alert(content);
					return true;
		case(1) :
					window.status = content;
					return true;
		case(2) :
					return confirm(content);
		default :
					alert("[ERROR] <content : " + content + "><level : " + level + ">");
					return true;
	}
}
