/**
 * ´ñ±ÛÀ» ÀÔ·ÂÇÏ´Â ÅØ½ºÆ®¹Ú½º ¾ÈÀÇ ±ÛÀÚ ±æÀÌ¸¦ Ã¼Å©ÇØ¼­ È­¸é¿¡ µð½ºÇÃ·¹ÀÌ
 * ÇÑ±ÛÀº 2byte, ±× ¿ÜÀÇ ±ÛÀÚ´Â 1byte·Î °è»ê
 * textBoxId : ±æÀÌ¸¦ Ã¼Å©ÇÒ ÅØ½ºÆ®¹Ú½º ¾ÆÀÌµð
 */
function calcContentLength(textBox, view)
{
	var len = 0;
	var str = $(textBox).value;

	for (var i = 0; i < str.length; i++) 
	{
		len += (str.charCodeAt(i) > 128) ? 2 : 1;
	}
	$(view).innerHTML = len;
}

/**
 * ´ñ±Û ¸ñ·ÏÀ» º¸¿©ÁÖ±â 
 */
function replyList(async)
{
	// ·¹ÀÌ¾î ÆË¾÷¿¡¼­´Â µ¿±âÀû È£ÃâÀ» ÇØÁÖ¾î¾ß ÇÑ´Ù.
	if(async == undefined)
	{
		async = true;
	}
	var params = Form.serialize($("replyForm"));
	var myAjax = new Ajax.Request(
		"../common/ReplyList.jsp",
		{method: "post", parameters: params, 
		asynchronous: async,
		onLoading: waitDisplay("replyView", "/demo/images/ajax-loader.gif"), 
		onComplete: loadReply.bindAsEventListener(this)}
	); 
	
	if($("btnReplyInsert"))
	{
		var textBox = "textReply";		// ´ñ±Û ÀÔ·Â ÅØ½ºÆ® ¹Ú½º ID
		Event.observe("btnReplyInsert", "click", insertReply);	// ´ñ±Û ÀÔ·Â ¹öÆ°ÀÌ ´­·ÈÀ» ¶§ ¹ß»ýÇÏ´Â ÀÌº¥Æ® Á¤ÀÇ
		
		// ÀÔ·Â ÅØ½ºÆ® ¹Ú½º¿¡ Å°º¸µå ÀÔ·ÂÀÌ ÀÖÀ» ¶§ ¹ß»ýÇÏ´Â ÀÌº¥Æ® Á¤ÀÇ
		$(textBox).observe("keyup" , 
			function (e) { 
				if (e.keyCode == Event.KEY_RETURN)	// ÀÔ·ÂµÈ Å°°¡ ¿£ÅÍÅ° ÀÏ ¶§ ÅØ½ºÆ® ¹Ú½º¿¡ ÀÔ·ÂµÇÁö ¾Êµµ·Ï Ã¼Å©
				{
					return false;
				}
				else	// ÀÔ·ÂµÈ Å°°¡ ¿£ÅÍÅ°°¡ ¾Æ´Ï¸é ±æÀÌ¸¦ Ã¼Å©ÇØ¼­ È­¸é¿¡ µð½ºÇÃ·¹ÀÌ
				{
					calcContentLength("textReply", "contentLength");
				}
			}
		);
		$(textBox).observe("keydown" , 
			function (e) { 
				if (e.keyCode == Event.KEY_RETURN)	// ¿£ÅÍÅ°°¡ ´­¸®¸é ´ñ±Û ÀúÀå
				{
					insertReply();	// ´ñ±Û ÀÎ¼­Æ®
					return false;
				}
			}
		);
	}
}

function loadReply(xmlHttp)
{
	var replyView = $("replyView");
	replyView.innerHTML = "";
	var xmlDoc = xmlHttp.responseXML;

	var code = xmlDoc.getElementsByTagName("code").item(0).firstChild.nodeValue;
	if (code == "success") 
	{
		var replyList = eval("(" + xmlDoc.getElementsByTagName('data').item(0).firstChild.nodeValue + ")");
		for (var i = 0 ; i < replyList.length ; i++) 
		{
			if (i < replyList.length - 1)
			{
				replyView.appendChild(makeReply(replyList[i], ""));
			}
			else
			{
				replyView.appendChild(makeReply(replyList[i], "last"));
			}
		}
	} 
	else if (code == "noresult") 
    {
		var noResultHtml = "";
		
		noResultHtml += '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
		noResultHtml += '<tr>';
		noResultHtml += '<td class="gw09 lh22" align="center">µî·ÏµÈ ´ñ±ÛÀÌ ¾ø½À´Ï´Ù.</td>';
		noResultHtml += '</td>';
		noResultHtml += '</tr>';
		noResultHtml += '</table>';
		
		var noReplyDiv = document.createElement("div");
		noReplyDiv.innerHTML = noResultHtml;
		replyView.appendChild(noReplyDiv);
	}	
}

function makeReply(reply, last) 
{
	var replyDiv = document.createElement("div");
	replyDiv.setAttribute('id', reply.reply_seq);
	
	var html = '';

	html += '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
	html += '  <tr>';
	html += '    <td width="80" class="gr09 lh22"><img src="/demo/images/blet03.gif" align="absmiddle" /> [' + reply.create_name + ']</td>';
	html += '    <td width="460" class="gr09 lh22">' + reply.reply + '</td>';
	html += '    <td width="70" class="gr09 lh22" style="text-align:right;">' + reply.create_date + '</td>';
	html += '    <td width="35" class="gr09 lh22" style="text-align:right;">';
	
	// ´ñ±ÛÀ» ¾´ »ç¿ëÀÚ¿Í ÇöÀç ·Î±×ÀÎ ÇÑ »ç¿ëÀÚ°¡ ÀÏÄ¡ÇÏ¸é, 
	if (reply.create_by == $("replyForm").memberId.value && reply.create_type == 'TYCUS')
	{
		html += '<table border="0" cellspacing="0" cellpadding="0">';
		html += '  <tr>';
		html += '    <td class="btn_space" style="cursor:hand">';
		html += '      <a href="javascript:modifyReply(\'' + reply.reply_seq + '\');" class="btnReplyModify">';
		html += '      <img src="/demo/images/00_smodify_btn.gif" alt="¼öÁ¤ÇÏ±â" /></a>';
		html += '    </td>';
		html += '    <td class="btn_space" style="cursor:hand">';
		html += '      <a href="javascript:deleteReply(\'' + reply.reply_seq + '\');" class="btnReplyDelete">';
		html += '      <img src="/demo/images/00_sdel_btn.gif" alt="»èÁ¦ÇÏ±â" /></a>';
		html += '    </td>';
		html += '  </tr>';
		html += '</table>';
	}
	html += '    </td>';
	html += '  </tr>';
	
	if (last != "last")
	{
		html += '<tr><td colspan="4" valign="middle" class="greyline"></td></tr>';
	}
	
	html += '</table>';

	replyDiv.innerHTML = html;
	replyDiv.modify = reply;
	replyDiv.last = last;
	return replyDiv;
}

function modifyReply(seq) 
{ 
	var replyDiv = $(seq);
	var replyModify = replyDiv.modify;
	var contents = replyDiv.modify.reply;
	var seq = replyModify.reply_seq;
	
	var html = '';
	html += '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
	html += '  <tr>';
	html += '    <td width="80" class="gr09 lh22"><img src="/demo/images/blet03.gif" align="absmiddle" /> [' + replyModify.create_name + ']</td>';
	html += '    <td width="460" class="gw09 lh22"><textarea name="textModify" id="textModify' + seq + '" rows="3" cols="73">' + contents + '</textarea><br />';
	html += '    <font style="float:right">(ÇöÀç <span id="contentLength' + seq + '">0</span>/250byte)</font></td>';
	html += '    <td width="70" class="gr09 lh22" style="text-align:right;">' + replyModify.create_date + '</td>';
	html += '    <td width="35" class="gr09 lh22" style="text-align:right;">';
	html += '      <table border="0" cellspacing="0" cellpadding="0">';
	html += '        <tr>';
	html += '          <td class="btn_space" style="cursor:hand">';
	html += '            <a href="javascript:modifyOk(\'' + seq + '\');">';
	html += '            <img src="/demo/images/00_smodify_btn.gif" alt="¼öÁ¤È®ÀÎ" /></a>';
	html += '          </td>';
	html += '          <td class="btn_space" style="cursor:hand">';
	html += '            <a href="javascript:modifyCancel(\'' + seq + '\');">';
	html += '            <img src="/demo/images/00_sdel_btn.gif" alt="¼öÁ¤Ãë¼Ò" /></a>';
	html += '          </td>';
	html += '        </tr>';
	html += '      </table>';
	html += '    </td>';
	html += '  </tr>';
	html += '  </tr>';
	if (replyDiv.last != "last")
	{
		html += '<tr><td colspan="4" valign="middle" class="greyline"></td></tr>';
	}
	
	html += '</table>';
	
	replyDiv.innerHTML = html;
	calcContentLength("textModify" + seq, "contentLength" + seq);
	
	// ¼öÁ¤ ÅØ½ºÆ® ¹Ú½º¿¡ Å°º¸µå ÀÔ·ÂÀÌ ÀÖÀ» ¶§ ¹ß»ýÇÏ´Â ÀÌº¥Æ® Á¤ÀÇ
	$("textModify" + seq).observe("keyup" , 
		function (e) { 
			if (e.keyCode == Event.KEY_RETURN)	// ÀÔ·ÂµÈ Å°°¡ ¿£ÅÍÅ° ÀÏ ¶§ ÅØ½ºÆ® ¹Ú½º¿¡ ÀÔ·ÂµÇÁö ¾Êµµ·Ï Ã¼Å©
			{
				return false;
			}
			else	// ÀÔ·ÂµÈ Å°°¡ ¿£ÅÍÅ°°¡ ¾Æ´Ï¸é ±æÀÌ¸¦ Ã¼Å©ÇØ¼­ È­¸é¿¡ µð½ºÇÃ·¹ÀÌ
			{
				calcContentLength("textModify" + seq, "contentLength" + seq);
			}
		}
	);
	$("textModify" + seq).observe("keydown" , 
		function (e) { 
			if (e.keyCode == Event.KEY_RETURN)	// ¿£ÅÍÅ°°¡ ´­¸®¸é ´ñ±Û ÀúÀå
			{
				modifyOk(seq);	// ´ñ±Û ÀÎ¼­Æ®
				return false;
			}
		}
	);
}

function modifyOk(seq) 
{  
	var replyContents = $("textModify" + seq).value;
	
	if ($("contentLength" + seq).innerHTML > 250)
	{
		alert("250ÀÚ¸¦ ³Ñ±æ ¼ö ¾ø½À´Ï´Ù.");
		$("textModify" + seq).focus();
		return;
	}
	
	var i;
	var len = replyContents.length;
	for (i=0; i<len; i++)
	{
		if (replyContents.charCodeAt(i) < 32)
		{
			replyContents = replyContents.replace(replyContents.charAt(i), ' ');
		}
	}
	replyContents = trim(replyContents);
	$("textReply").value = replyContents;
	
	if(trim(replyContents) == "")
	{
		alert("´ñ±Û ³»¿ëÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä!");
		return;		
	}

	if(confirm("Á¤¸» ¼öÁ¤ÇÏ½Ã°Ú½À´Ï±î?") == 0)
	{
		return;
	}	
	$("replyForm").reply.value = replyContents;
	$("replyForm").replyStatus.value = "MODIFY";
	$("replyForm").replySeq.value = seq;
	var params = Form.serialize($("replyForm")); 
	
	var myAjax = new Ajax.Request(
		"../common/ReplyAction.jsp",
		{method: "post", parameters: params, onLoading: waitDisplay("replyView", "/demo/images/ajax-loader.gif"), 
		onComplete: this.refreshList.bindAsEventListener(this)}
	);
}

function modifyCancel(seq) 
{  
	if(confirm("Á¤¸» ¼öÁ¤À» Ãë¼Ò ÇÏ½Ã°Ú½À´Ï±î?") == 0)
	{
		return;
	}	
	else
	{
	var replyDiv = $(seq);
	var replyModify = replyDiv.modify;	
	var html = '';
	
	html += '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
	html += '  <tr>';
	html += '    <td width="80" class="gr09 lh22"><img src="/demo/images/blet03.gif" width="11" height="11" align="absmiddle" /> [' + replyModify.create_name + ']</td>';
	html += '    <td width="460" class="gr09 lh22">' + replyModify.reply + '</td>';
	html += '    <td width="70" class="gr09 lh22" style="text-align:right;">' + replyModify.create_date + '</td>';
	html += '    <td width="35" class="gr09 lh22" style="text-align:right;">';
	
	// ´ñ±ÛÀ» ¾´ »ç¿ëÀÚ¿Í ÇöÀç ·Î±×ÀÎ ÇÑ »ç¿ëÀÚ°¡ ÀÏÄ¡ÇÏ¸é, 
	if (replyModify.create_by == $("replyForm").memberId.value)
	{
		html += '<table border="0" cellspacing="0" cellpadding="0">';
		html += '  <tr>';
		html += '    <td class="btn_space" style="cursor:hand">';
		html += '      <a href="javascript:modifyReply(\'' + replyModify.reply_seq + '\');" class="btnReplyModify">';
		html += '      <img src="/demo/images/00_smodify_btn.gif" width="13" height="13" alt="¼öÁ¤ÇÏ±â" /></a>';
		html += '    </td>';
		html += '    <td class="btn_space" style="cursor:hand">';
		html += '      <a href="javascript:deleteReply(\'' +replyModify.reply_seq + '\');" class="btnReplyDelete">';
		html += '      <img src="/demo/images/00_sdel_btn.gif" width="13" height="13" alt="»èÁ¦ÇÏ±â" /></a>';
		html += '    </td>';
		html += '  </tr>';
		html += '</table>';
	}
	html += '    </td>';
	html += '  </tr>';
	
	if (replyDiv.last != "last")
	{
		html += '<tr><td colspan="4" valign="middle" class="greyline"></td></tr>';
	}
	
	html += '</table>';
	
	replyDiv.innerHTML = html;
	}
}

function deleteReply(seq) 
{   
	if(confirm("Á¤¸» »èÁ¦ÇÏ½Ã°Ú½À´Ï±î?") == 0)
	{
		return;
	}
	$("replyForm").replySeq.value = seq;
	$("replyForm").replyStatus.value = "DELETE";
	var params = Form.serialize($("replyForm")); 
	var myAjax = new Ajax.Request(
		"../common/ReplyAction.jsp",
		{method: "post", parameters: params, onLoading: waitDisplay("replyView", "/demo/images/ajax-loader.gif"), onComplete: this.refreshList.bindAsEventListener(this)}
	);
}
function insertReply()
{
	var replyContents = $("textReply").value;
	
	if($("contentLength").innerHTML > 250)
	{
		alert('250ÀÚ¸¦ ³Ñ±æ ¼ö ¾ø½À´Ï´Ù.');
		$('textReply').focus();
		return;
	}
	
	var i;
	var len = replyContents.length;
	for (i=0; i<len; i++)
	{
		if (replyContents.charCodeAt(i) < 32)
		{
			replyContents = replyContents.replace(replyContents.charAt(i), ' ');
		}
	}
	replyContents = trim(replyContents);
	$("textReply").value = replyContents;
	
	if(trim(replyContents) == "")
	{
		alert("´ñ±Û ³»¿ëÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä!");
		return;		
	}
	
	if(confirm("Á¤¸» ´ñ±ÛÀ» µî·Ï ÇÏ½Ã°Ú½À´Ï±î?") == 0)
	{
		return;
	}
	
	$("replyForm").reply.value = replyContents;
	$("replyForm").replyStatus.value = "INSERT";
	
	var params = Form.serialize($("replyForm")); 
	var myAjax = new Ajax.Request(
	   "../common/ReplyAction.jsp",
	   {method: "post", parameters: params, onLoading: waitDisplay("replyView", "/demo/images/ajax-loader.gif"), onComplete: refreshList.bindAsEventListener(this)}
	);
}

function refreshList()
{ 
	hiddenList();				// ´ñ±Û ÃÊ±âÈ­¸¦ À§ÇØ ±âÁ¸ ´ñ±ÛÀ» Áö¿ò 
	// ·ÎµùÀÌ¹ÌÁö µð½ºÇÃ·¹ÀÌ, ÀÌ¹ÌÁö°¡ Ç¥½ÃµÉ ¿µ¿ª ID¿Í ÀÌ¹ÌÁö °æ·Î¸¦ º¯¼ö·Î ³Ñ°ÜÁØ´Ù.
	waitDisplay("replyView", "/demo/images/ajax-loader.gif");
	var params = Form.serialize($('replyForm')); 
	var myAjax = new Ajax.Request(
		"../common/ReplyList.jsp",
		{method: "post", parameters: params, onLoading: waitDisplay("replyView", "/demo/images/ajax-loader.gif"), onComplete: loadReply.bindAsEventListener(this)}
	); 
}

function hiddenList()
{ 
	var replyView = $("replyView");
	var textBox = "textReply";			// ´ñ±Û ÀÔ·Â ÅØ½ºÆ® ¹Ú½º ID
	var replyList = replyView.getElementsByTagName("div");
	var replyCnt = replyList.length;
	for (var i = 0 ; i < replyCnt ; i++) 
	{
		replyView.removeChild(replyList[0]);
	}
	
	$(textBox).clear();
	calcContentLength(textBox, "contentLength");
}

