	// 자동으로 리스트를 새로 읽어 오는 경우
	// 현재 사용자가 보고 있는 페이지 정보를 유지하여, 사용자가 같은 페이지를 계속 볼수 있도록 한다.
	var g_PerPage = 15;
	var g_MorePage = 0;
	var g_targetMessageId = -1;
	
	// 메시지 입력 관련
	function fnSendMessage()
	{
		var ringid = $('ringid').value;
		var pictureName = $('UploadedPhotoName').value;
		var message = $('messageBox').value;
				
		if(message.length == 0)
		{
			alert("이야기를 입력해주세요.");
			$('messageBox').focus();
			return;
		}
		var requestUrl = g_contextPath + '/servlet/MessageProcess?cmd=insert&reqkey=' + g_msgReqKey + '&message=' + encodeURIComponent(message) + '&picname=' + pictureName + '&ringid=' + ringid;
		new Ajax.Request(requestUrl, {
			'method': 'get',
			onCreate: function(transport) {
				//centerPosition($('wait'));
				//$('wait').show();
			},
			onSuccess: function(transport) {
				if (200 == transport.status) {
					//$('wait').hide();
					//alert(transport.responseText);
					messageProcess(transport.responseXML);
				}
			},
			onFailure: function(transport) {
				//$('wait').hide();
				alert('오류가 발생했습니다. 상태코드는 다음과 같습니다.' + transport.status);
			}
		});
	}

	function messageProcess(xmlObj)
	{
		var root = xmlObj.documentElement;
		var resultNode = nodeToJSON(root);

		if(resultNode.cmdresult == "true")
		{
			getMessageList();
		}
		else
		{
			alert(resultNode.msg);
		} 
		
		// 입력받은 값들의 초기화
		$('messageBox').value = "";
		fnPictureDeleteOk();
	}
	
	function fnShowLoadingImg() {
		var list_container = $('cList');
		
		var divObj = new Element('div', {className: 'msg_loading_area'});
		var imgObj = new Element('img', {src: g_contextPath + '/images/msg_loading.gif'});
		divObj.appendChild(imgObj);
		list_container.insert({bottom: divObj});
	}
	
	function fnHideLoadingImg() {
		var list_container = $('cList');
		
		var divObj = list_container.down('div.msg_loading_area');
		if (typeof(divObj) == 'object') {
			divObj.remove();
		}
	}

	function getMessageList()
	{
		var ringid = "";
		if($('ringid') != null)
		{
			ringid = $('ringid').value;
		}
		var requestUrl = g_contextPath + '/servlet/ListMessage?reqkey=' + g_msgReqKey + '&type=' + g_listType + '&perpage=' + g_PerPage + '&ringid=' + ringid + '&morepage=' + g_MorePage + '&ismore=false';
		
		if(g_addtionalVar01 != null)
		{
			requestUrl += '&var01=' + encodeURIComponent(g_addtionalVar01);
		}
		
		//alert(requestUrl);
		new Ajax.Request(requestUrl, {
			'method': 'get',
			onCreate: function(transport) {
				//centerPosition($('wait'));
				fnShowLoadingImg();
			},
			onSuccess: function(transport) {
				if (200 == transport.status) {
					//$('wait').hide();
					//alert(transport.responseText);
					viewMessageListProcess(transport.responseXML);
					HotTag.reMessageBoxinTag();//메세지값에 태그를 넣고 카운트를 초기화 한다
				}
			},
			onFailure: function(transport) {
				//$('wait').hide();
				alert('오류가 발생했습니다. 상태코드는 다음과 같습니다.' + transport.status);
			}
		});

	}

	function viewMessageListProcess(xmlObj)
	{
		var list_container = $('cList');
		removeAllChildren(list_container);
		
		// 새로운건 첫번째 자식으로 삽입.
		// 마지막 자식만 삭제하고, 각 메시지들의 시간을 업데이트..
		//<messages>
		//  <message>
		//   <messageid><![CDATA[3844]]>
		//   <authorid><![CDATA[scoh]]>
		//   <author><![CDATA[<a href="http://minple.net/userid">닉네임</a> ]]></author>
		//   <time><![CDATA[2009-08-09 13:45:43]]></time>
		//   <ringname><![CDATA[<a href="http://minple.net/ring.jsp?id=ringid">문순씨를</a>]]></ringname>
		//   <prcmessage><![CDATA[바로 붙여넣을 수 있는 형태로..]]></prcmessage>
		//   <thumbnail><![CDATA[바로 붙여넣을 수 있는 형태로..]]></thumbnail>
		//  </message>
		//</messages>
		
		var dataItems = xmlObj.getElementsByTagName("message");
		var i;

		//debugger;

		if(dataItems.length > 0)
		{
			for (i = 0; i < dataItems.length; i++) {
				var dataItem = nodeToJSON(dataItems[i]);

				
				var messageDiv = new Element('dl', { 'id' : 'msg_' + dataItem.messageid });
				Event.observe(messageDiv, 'mouseover', messageMouseOver.bindAsEventListener(messageDiv, messageDiv));
				Event.observe(messageDiv, 'mouseout', messageMouseOut.bindAsEventListener(messageDiv, messageDiv));
				//Event.observe(candiateDiv, 'click', candidateMouseClick.bindAsEventListener(candiateDiv, candiateDiv));
				
				// 메시지 상단 요약
				var authorDiv = new Element('dt', { 'id' : 'author_' + dataItem.messageid })
				//authorDiv.innerHTML = dataItem.author;
				authorDiv.innerHTML = dataItem.summary;
				messageDiv.appendChild(authorDiv);

				// 제어섹션
				var controlDiv = new Element('dd', { 'id' : 'control_' + dataItem.messageid })
				controlDiv.style.display = "none";
				controlDiv.innerHTML = dataItem.control;
				controlDiv.className = "lCtrl";
				messageDiv.appendChild(controlDiv);
				
				// 작성자 섬네일
				var authorThumbDiv = new Element('dd', { 'id' : 'authorThumb_' + dataItem.messageid })
				if(dataItem.authorthumbnail.length != 0)
					authorThumbDiv.innerHTML = dataItem.authorthumbnail;
				authorThumbDiv.className = "lImg";
				messageDiv.appendChild(authorThumbDiv);

				// 첨부사진 섬네일
				if(dataItem.thumbnail != "")
				{
					var pictureDiv = new Element('dd', { 'id' : 'pic_' + dataItem.messageid })
					pictureDiv.innerHTML = dataItem.thumbnail;
					pictureDiv.className = "lRImg";
					messageDiv.appendChild(pictureDiv);
				}
				
				// 메세지 본체
				var msgDiv = new Element('dd', { 'id' : 'msg_content_' + dataItem.messageid })
				msgDiv.innerHTML = dataItem.prcmessage;
				messageDiv.appendChild(msgDiv);
				
				list_container.appendChild(messageDiv);
			}
		}


		// 페이징 출력
		var paging_container = $('pgMore');
		
		dataItems = xmlObj.getElementsByTagName("paging");

		if(dataItems.length > 0)
		{
			var dataItem = nodeToJSON(dataItems[0]);

			paging_container.innerHTML = dataItem.paginginner;
			
		}
		
		fnHideLoadingImg();
	}

	function moreMessageList()
	{
		var ringid = "";
		if($('ringid') != null)
		{
			ringid = $('ringid').value;
		}
		var requestUrl = g_contextPath + '/servlet/ListMessage?reqkey=' + g_msgReqKey + '&type=' + g_listType + '&perpage=' + g_PerPage + '&ringid=' + ringid + '&morepage=' + g_MorePage + '&ismore=true';
		
		if(g_addtionalVar01 != null)
		{
			requestUrl += '&var01=' + encodeURIComponent(g_addtionalVar01);
		}
		
		//alert(requestUrl);
		new Ajax.Request(requestUrl, {
			'method': 'get',
			onCreate: function(transport) {
				//centerPosition($('wait'));
				fnShowLoadingImg();
			},
			onSuccess: function(transport) {
				if (200 == transport.status) {
					//$('wait').hide();
					//alert(transport.responseText);
					moreMessageListProcess(transport.responseXML);
				}
			},
			onFailure: function(transport) {
				//$('wait').hide();
				alert('오류가 발생했습니다. 상태코드는 다음과 같습니다.' + transport.status);
			}
		});

	}

	function moreMessageListProcess(xmlObj)
	{
		var list_container = $('cList');
		
		// 새로운건 첫번째 자식으로 삽입.
		// 마지막 자식만 삭제하고, 각 메시지들의 시간을 업데이트..
		//<messages>
		//  <message>
		//   <messageid><![CDATA[3844]]>
		//   <authorid><![CDATA[scoh]]>
		//   <author><![CDATA[<a href="http://minple.net/userid">닉네임</a> ]]></author>
		//   <time><![CDATA[2009-08-09 13:45:43]]></time>
		//   <ringname><![CDATA[<a href="http://minple.net/ring.jsp?id=ringid">문순씨를</a>]]></ringname>
		//   <prcmessage><![CDATA[바로 붙여넣을 수 있는 형태로..]]></prcmessage>
		//   <thumbnail><![CDATA[바로 붙여넣을 수 있는 형태로..]]></thumbnail>
		//  </message>
		//</messages>
		
		var dataItems = xmlObj.getElementsByTagName("message");
		var i;

		//debugger;

		if(dataItems.length > 0)
		{
			for (i = 0; i < dataItems.length; i++) {
				var dataItem = nodeToJSON(dataItems[i]);

				
				var messageDiv = new Element('dl', { 'id' : 'msg_' + dataItem.messageid });
				Event.observe(messageDiv, 'mouseover', messageMouseOver.bindAsEventListener(messageDiv, messageDiv));
				Event.observe(messageDiv, 'mouseout', messageMouseOut.bindAsEventListener(messageDiv, messageDiv));
				//Event.observe(candiateDiv, 'click', candidateMouseClick.bindAsEventListener(candiateDiv, candiateDiv));
				
				// 메시지 상단 요약
				var authorDiv = new Element('dt', { 'id' : 'author_' + dataItem.messageid })
				//authorDiv.innerHTML = dataItem.author;
				authorDiv.innerHTML = dataItem.summary;
				messageDiv.appendChild(authorDiv);

				// 제어섹션
				var controlDiv = new Element('dd', { 'id' : 'control_' + dataItem.messageid })
				controlDiv.style.display = "none";
				controlDiv.innerHTML = dataItem.control;
				controlDiv.className = "lCtrl";
				messageDiv.appendChild(controlDiv);
				
				// 작성자 섬네일
				var authorThumbDiv = new Element('dd', { 'id' : 'authorThumb_' + dataItem.messageid })
				if(dataItem.authorthumbnail.length != 0)
					authorThumbDiv.innerHTML = dataItem.authorthumbnail;
				authorThumbDiv.className = "lImg";
				messageDiv.appendChild(authorThumbDiv);

				// 첨부사진 섬네일
				if(dataItem.thumbnail != "")
				{
					var pictureDiv = new Element('dd', { 'id' : 'pic_' + dataItem.messageid })
					pictureDiv.innerHTML = dataItem.thumbnail;
					pictureDiv.className = "lRImg";
					messageDiv.appendChild(pictureDiv);
				}
				
				// 메세지 본체
				var msgDiv = new Element('dd', { 'id' : 'msg_content_' + dataItem.messageid })
				msgDiv.innerHTML = dataItem.prcmessage;
				messageDiv.appendChild(msgDiv);
				
				list_container.appendChild(messageDiv);
			}
			
			g_MorePage++;
		}

		// 페이징 출력
		var paging_container = $('pgMore');
		
		dataItems = xmlObj.getElementsByTagName("paging");

		if(dataItems.length > 0)
		{
			var dataItem = nodeToJSON(dataItems[0]);

			paging_container.innerHTML = dataItem.paginginner;
			
		}
	
		fnHideLoadingImg();
	}
	

	function messageMouseOver(evt, obj2)
	{
		var controlid = obj2.id;
		//obj2.style.backgroundColor = "#cccccc";
		
		controlid = controlid.replace("msg_", "control_");
		$(controlid).style.display = '';
	}

	function messageMouseOut(evt, obj2)
	{
		var controlid = obj2.id;
		//obj2.style.backgroundColor = "#ffffff";
		
		controlid = controlid.replace("msg_", "control_");
		$(controlid).style.display = 'none';
	}

	function fnAutoReload()
	{
		getMessageList();
		//setTimeout("fnAutoReload()", 30 * 1000);
	}
