/**
 * 댓글태그 클릭하면 댓글에디터에 써지게하기
 */
function writeTag(selectElement,values){
	if(selectElement.checked == true){
		edit1.focus();
		edit1.pasteHTML(values+ "&nbsp;&nbsp;&nbsp;&nbsp;");
	}
}

/**
 * 댓글 리스트를 가져오는 스크립트. ajaxComment DIV에 파라미터로 받은 nPostIndex 포스트의 모든 댓글 리스트를
 * Ajax로 받아오는 스크립트.
 */
function replyList(nPostIndex){
	edit1.setContent("<p></p>");
	openAjax.doDisplay('ajaxComment',BOARD_CONTEXT+'/bin/reply/ajax_reply_list.jsp?nNum=1&nPostIndex='+nPostIndex);
	//changeBtnClass(1, nMaxNum);
}
/**
* 댓글 리스트를 가져오는 스크립트. replyList와 같은 동작을 하지만 iframe안에서 호출된다.
*/
function replyListIframe(nPostIndex){
	parent.openAjax.doDisplay('ajaxComment',BOARD_CONTEXT+'/bin/reply/ajax_reply_list.jsp?nNum=1&nPostIndex='+nPostIndex);
}
/** 
 * 댓글 태그 별 댓글 리스트를 가져오는 스크립트. ajaxComment DIV에 파라미터로 받은 nTagIndex댓글 태그의 모든 댓글 리스트를
 * Ajax로 받아오는 스크립트.
 */
function replyTagList(nNum,nPostIndex,nTagIndex,nTotalCnt){
	openAjax.doDisplay('ajaxComment',BOARD_CONTEXT+'/bin/reply/ajax_tagreply_list.jsp?nNum='+nNum+'&nPostIndex='+nPostIndex+'&nTagIndex='+nTagIndex+'&nTotalCnt='+nTotalCnt);
}

/**
 *  파라미터로 받은 nReplyIndex 댓글을 삭제한다.
 * Ajax로 처리하며 처리된 resText는 cbReplyDelete 스크립트에 파라미터로 전달된다.
 */
function replyDelete(nReplyIndex){
	 if(confirm('댓글을 삭제합니다. 삭제된 댓글은 복구될 수 없습니다. 그래도 삭제하시겠습니까?')){
		 openAjax.doDisplayCall(BOARD_CONTEXT+'/bin/reply/action_reply_delete.jsp?nReplyIndex='+nReplyIndex, cbReplyDelete);
	 }
}
/**
 *  자식 댓글을 작성하는 스크립트. 
 * nIndex : 자식 댓글 입력 에디터의  display를 block시키기 위한 자식 댓글의 순번, 순서(index).
 * nReplyIndex : 부보 댓글로 등록이 될 댓글의 인덱스
 * nBoardIndex : 게시판의 인덱스. 
 * 
 * ifr_box는 에디터를 감싸는 div의 아이디이며, ifr_comment는 iframe의 아이디 입니다.
 */
function childReplyWrite(nIndex, nReplyIndex, nBoardIndex){
	var ifr_b = document.getElementById("ifr_box"+nIndex);
	var checkInput = document.getElementById("ifrmCheckField"+nIndex);

	if(checkInput.value=='child'){
		if(ifr_b.style.display=='block'){
			ifr_b.style.display='none';
		}else{
			var ifr = document.getElementById("ifr_comment"+nIndex);
			ifr.src=BOARD_CONTEXT+'/bin/ifr_insertChild.jsp?nIndex='+nIndex+'&nReplyIndex='+nReplyIndex+'&nBoardIndex='+nBoardIndex;
			ifr_b.style.display='block';
		}
	}else{
		var ifr = document.getElementById("ifr_comment"+nIndex);
		ifr.src=BOARD_CONTEXT+'/bin/ifr_insertChild.jsp?nIndex='+nIndex+'&nReplyIndex='+nReplyIndex+'&nBoardIndex='+nBoardIndex;
		ifr_b.style.display='block';
	}
	
	checkInput.value='child';
}
/**
* 댓글 수정 스크립트
* nIndex : 댓글 수정 에디터의  display를 block시키기 위한 자식 댓글의 순번, 순서(index).
* nReplyIndex : 수정할 댓글의 인덱스 
* 
* ifr_box는 에디터를 감싸는 div의 아이디이며, ifr_comment는 iframe의 아이디 입니다.
*/
function replyModify(nIndex, nReplyIndex){
	var ifr_b = document.getElementById("ifr_box"+nIndex);
	var checkInput = document.getElementById("ifrmCheckField"+nIndex);

	if(checkInput.value=='modify'){
		if(ifr_b.style.display=='block'){
			ifr_b.style.display='none';
		}else{
			var ifr = document.getElementById("ifr_comment"+nIndex);
			ifr.src=BOARD_CONTEXT+'/bin/ifr_replyModify.jsp?nIndex='+nIndex+'&nReplyIndex='+nReplyIndex;
			ifr_b.style.display='block';
		}
	}else{
		var ifr = document.getElementById("ifr_comment"+nIndex);
		ifr.src=BOARD_CONTEXT+'/bin/ifr_replyModify.jsp?nIndex='+nIndex+'&nReplyIndex='+nReplyIndex;
		ifr_b.style.display='block';
	}
	
	checkInput.value='modify';
	

}
/**
 * 댓글 작성 스크립트. validation 체크를 따로 진행하고 있지 않음.-> 처리해줘야 함.
 * 1. 웹에디터에 작성한 내용을 섭밋할 form의 text-area에 setting한다.
 * 2. form을 ajax로 섭밋한다.
 * 3. cbReplyInsert 스크립트에 resText를 파라미터로 넘긴다.
 */
function doReplySave(){
	if(edit1.getContent() == ""){
		alert("내용을 입력하셔야 합니다.");
		return;
	}
	//웹에디터에 작성된 댓글 내용을 from의 textarea로 copy한다.
	getContent();
	//웹에디터에 작성된 댓글 내용을 지운다.
	//clearReply();
	openAjax.doActionCall(BOARD_CONTEXT+'/bin/reply/action_ajax_reply.jsp', 'replyWrite', cbReplyInsert);
}
 /**
  * 자식 댓글 작성 스크립트. validation 체크를 따로 진행하고 있지 않음.-> 처리해줘야 함.
  * 1. 웹에디터에 작성한 내용을 섭밋할 form의 text-area에 setting한다.
  * 2. form을 ajax로 섭밋한다.
  * 3. cbChildReplyInsert 스크립트에 resText를 파라미터로 넘긴다.
  */
 function doChildReplySave(){
 	if(edit1.getContent() == ""){
 		alert("내용을 입력하셔야 합니다.");
 		return;
 	}
 	//웹에디터에 작성된 댓글 내용을 from의 textarea로 copy한다.
 	getContent();
 	//웹에디터에 작성된 댓글 내용을 지운다.
 	//clearReply();
 	openAjax.doActionCall(BOARD_CONTEXT+'/bin/reply/action_ajax_reply.jsp', 'replyWrite', cbChildReplyInsert);
 } 
 /**
  * 댓글 수정 스크립트. validation 체크를 따로 진행하고 있지 않음.-> 처리해줘야 함.
  * 1. 웹에디터에 작성한 내용을 섭밋할 form의 text-area에 setting한다.
  * 2. form을 ajax로 섭밋한다.
  * 3. cbReplyModify 스크립트에 resText를 파라미터로 넘긴다.
  */
 function doReplyModify(){
 	if(edit1.getContent() == ""){
 		alert("내용을 입력하셔야 합니다.");
 		return;
 	}
 	//웹에디터에 작성된 댓글 내용을 from의 textarea로 copy한다.
 	getContent();
 	//웹에디터에 작성된 댓글 내용을 지운다.
 	//clearReply();
 	openAjax.doActionCall(BOARD_CONTEXT+'/bin/reply/ajax_reply_modify.jsp', 'replyWrite', cbReplyModify);
 }
 /**
  * 댓글 수정 콜백 함수. 댓글 수정 리턴 값이 -1이면 에러, 그 외 숫자라면 정상 처리를 의미한다.
  */
 function cbReplyModify(resText){
	var nPostIndex = resText.trim();
 	if(nPostIndex=='-1'){
 		alert('댓글 수정 시 에러가 발생했습니다. 다시 시도해주시기 바랍니다.');
 	}else{
 		//alert('댓글이 정상적으로 수정되었습니다.');
 		replyListIframe(nPostIndex);
 	}
 }
  /**
   * 자식댓글 등록 콜백 함수. 댓글 등록 리턴 값이 -1이면 에러, 그 외 숫자라면 정상 처리를 의미한다.
   */
  function cbChildReplyInsert(resText){
  	var nPostIndex = resText.trim();
  	if(nPostIndex=='-1'){
  		alert('댓글 등록 시 에러가 발생했습니다. 다시 시도해주시기 바랍니다.');
  	}else{
  		//alert('댓글이 정상적으로 등록되었습니다.');
  		replyListIframe(nPostIndex);
  	}
  }
/**
 * 댓글 등록 콜백 함수. 댓글 등록 리턴 값이 -1이면 에러, 그 외 숫자라면 정상 처리를 의미한다.
 */
function cbReplyInsert(resText){
	var nPostIndex = resText.trim();
	if(nPostIndex=='-1'){
		alert('댓글 등록 시 에러가 발생했습니다. 다시 시도해주시기 바랍니다.');
	}else{
		//alert('댓글이 정상적으로 등록되었습니다.');
		//replyList(nPostIndex);
		// ie8에서 스크립트 에러가 아닌 ie 작동이 중지됩니다 등의 에러가 발생해서 딜레이를 주었습니다.
		setTimeout(replyList(nPostIndex), 300);
	}
	// 에디터 초기화.
	initEditor();
}
/**
 * 댓글 삭제 콜백 함수. 댓글 삭제 리턴 값이 -1이면 에러, 그 외 숫자라면 정상 처리를 의미한다.
 */
function cbReplyDelete(resText){
	if(resText=='-1'){
		alert('댓글 삭제 시 에러가 발생했습니다. 다시 시도해주시기 바랍니다.');
	}else{
		//alert('댓글이 정상적으로 삭제되었습니다.');
		replyList(resText);
	}
}

/**
 * 선택 댓글을 추천하는 스크립트
 * @param nReplyIndex : 선택한 댓글의 인덱스
 * @return
 */
function recommendReply(nReplyIndex){
	openAjax.doDisplayCall(BOARD_CONTEXT+'/bin/reply/ajax_reply_recommend.jsp?nReplyIndex='+nReplyIndex, cbReplyRecommend);
}

/**
* 가장 위의 선택 댓글로 지정하는 스크립트.
* @param nReplyIndex : 선택한 댓글의 인덱스
* @return
*/
function recommendTop(nReplyIndex){
	openAjax.doDisplayCall(BOARD_CONTEXT+'/bin/reply/ajax_reply_recommend.jsp?nReplyIndex='+nReplyIndex+'&nBest=1', cbReplyRecommend);
	
}

// 웹에디터에 작성한 textarea의 내용을 form의 textarea로 copy한다. 웹에디터 분리를 쉽게 하기 위해서 폼도 분리함.
function getContent(){
	document.replyWrite.scontent.value=edit1.getContent();
}

/**
 * 댓글 작성 후 에디터 초기화 하는 스크립트. 반드시 웹 에디터가 로드되어있는 페이지에서만 호출하야 한다.
 * @return
 */
function initEditor(){	
	if(edit1.editOnMode != "wysiwyg"){
		edit1.changeMode();
	}
	edit1.create();
}
 
/**
* 댓글 추천 콜백 함수. 댓글 등록 리턴 값이 -1이면 에러, 그 외 숫자라면 정상 처리를 의미한다.
*/
function cbReplyRecommend(resText){
	var nPostIndex = resText.trim();
	if(nPostIndex=='-1'){
		alert('댓글 추천 상태 변경시 에러가 발생했습니다. 다시 시도해주시기 바랍니다.');
	}else{
		//alert('댓글이 추천상태가 정상적으로 변경 되었습니다.');
		replyList(nPostIndex);
	}
}

/**
 * 댓글 리스트의 간략보기 스크립트. 한개의 댓글의 간략보기 기능을 선택할 때 사용된다.
 * 파라미터의 nNum은 댓글의 번호이다.
 * @param nNum
 * @return
 */
function summary(nNum){
	var summaryDiv = document.getElementById("summaryComment_"+nNum);
	var fullDiv = document.getElementById("fullComment_"+nNum);
	
	if(summaryDiv.style.display=='block'){
		fullDiv.style.display='block';
		summaryDiv.style.display='none';
//		document.getElementById("replyStatusIcon"+nNum).innerHTML = "<img src=\""+BOARD_CONTEXT+"/bin/include/images/btn_comment_s.gif\" title=\"간략보기\" />";
	}else {
		fullDiv.style.display='none';
		summaryDiv.style.display='block';
//		document.getElementById("replyStatusIcon"+nNum).innerHTML = "<img src=\""+BOARD_CONTEXT+"/bin/include/images/btn_comment_f.gif\" title=\"간략보기\" />";
	}
}

/**
 * 모든 댓글 리스트를 간략보기 형태로 변경한다.
 * @param nTotalCnt
 * @return
 */
function summaryReplyAll(nTotalCnt){
	for(var i=0;i<nTotalCnt;i++){
		var summaryDiv = document.getElementById("summaryComment_"+i);
		var fullDiv = document.getElementById("fullComment_"+i);
		
		fullDiv.style.display='none';
		summaryDiv.style.display='block';
//		document.getElementById("replyStatusIcon"+i).innerHTML = "<img src=\""+BOARD_CONTEXT+"/bin/include/images/btn_comment_f.gif\" title=\"간략보기\" />";
	}
	document.getElementById("summaryReply").style.display="none";
	document.getElementById("fullReply").style.display="block";
}

/**
* 모든 댓글 리스트를 간략보기 형태로 변경한다.
* @param nTotalCnt
* @return
*/
function fullReplyAll(nTotalCnt){
	for(var i=0;i<nTotalCnt;i++){
		var summaryDiv = document.getElementById("summaryComment_"+i);
		var fullDiv = document.getElementById("fullComment_"+i);
		
		fullDiv.style.display='block';
		summaryDiv.style.display='none';
//		document.getElementById("replyStatusIcon"+i).innerHTML = "<img src=\""+BOARD_CONTEXT+"/bin/include/images/btn_comment_s.gif\" title=\"간략보기\" />";
	}
	document.getElementById("summaryReply").style.display="block";
	document.getElementById("fullReply").style.display="none";
}

function viewHint(sDisplay){
	document.getElementById("hint").style.display=sDisplay;
}

/**
 * 부가기능설명 : 댓글을 작성할 때 관리자 권한을 가진 사용하는 좋은연구라는 닉네임으로 댓글을 작성할 수 있습니다.
 * select로 선택한 닉네임을 <input type="hidden" id="susername"/> 태그의 value에 저장하여 닉네임을 전송합니다. 
 * @return
 */
function changeUserName(){
	var selectBox = document.getElementById("username");
	var hiddenText = document.getElementById("susername");
	
	var selectName =selectBox.options[selectBox.selectedIndex].text; 
	
	hiddenText.value=selectName;
}















































/*
function showEmoticon() {
    document.getElementById('EMOTICON_POPUP').style.display='block';
    document.getElementById('EMOTICON_POPUP').style.pixelLeft = document.body.scrollLeft + event.clientX + 10;
    document.getElementById('EMOTICON_POPUP').style.pixelTop = document.body.scrollTop + event.clientY - 10;
}
function selectEmoticon(imageNumber) {
	document.replyWrite.nicon.value=Number(imageNumber);
	document.getElementById('EmoticonImage').src = BOARD_CONTEXT + "/bin/include/images/emoticon/imo_0" + Number(imageNumber) + ".gif";
	document.getElementById('EMOTICON_POPUP').style.display='none';
}
function doReply(nPostIndex){
	if( ($("COMMENT_VIEW").style.display == 'none') && ($("COMMENT_WRITE").style.display == 'none')  ){	
		var params = "nPostIndex="+nPostIndex;
		new ajax.Request(BOARD_CONTEXT+"/bin/reply/ajax_reply.jsp", params, ReplyCallBack.view, "POST");
		new ajax.Request(BOARD_CONTEXT+"/bin/reply/ajax_reply_write.jsp", params, ReplyCallBack.write, "POST");
	}else{
		$("COMMENT_VIEW").style.display = 'none';
		$("COMMENT_WRITE").style.display = 'none';
	}	
}
function doReplySave(){
	if($('replyContent').value == ""){
		alert("내용을 입력하셔야 합니다.");
		return;
	}
	var params = Serialize(document.forms[0].id);
	new ajax.Request(BOARD_CONTEXT+"/bin/reply/action_ajax_reply.jsp", params, ReplyCallBack.action, "POST");
}
function doReplyDelete(nReplyIndex){
	var params = "nReplyIndex="+nReplyIndex;
	new ajax.Request(BOARD_CONTEXT+"/bin/reply/action_reply_delete.jsp", params, ReplyCallBack.action, "POST");	
}
var ReplyCallBack = {
	action : function(request){
		if(request.readyState == 4){
			if(request.status == 200){
				var rt = request.responseText;;
				var data = eval("(" + rt + ")");
				var params = "nPostIndex="+data.msg;
				new ajax.Request(BOARD_CONTEXT+"/bin/reply/ajax_reply.jsp", params, ReplyCallBack.view, "POST");
				new ajax.Request(BOARD_CONTEXT+"/bin/reply/ajax_reply_write.jsp", params, ReplyCallBack.write, "POST");				
				resizeFrame();			
			}else if(request.status == 404){
				alert('HTTP Status 404');
			}else if(request.status == 500){
				alert('HTTP Status 500');
			}
		}		
	},
	view : function(request){
		if(request.readyState == 4){
			if(request.status == 200){
				$("COMMENT_VIEW").innerHTML = request.responseText;
				$("COMMENT_VIEW").style.display = 'block';				
				resizeFrame();			
			}else if(request.status == 404){
				alert('HTTP Status 404');
			}else if(request.status == 500){
				alert(request.responseText);
				alert('HTTP Status 500');
			}
		}
	},
	write : function(request){
		if(request.readyState == 4){
			if(request.status == 200){
				$("COMMENT_WRITE").innerHTML = request.responseText;
				$("COMMENT_WRITE").style.display = 'block';
				resizeFrame();			
			}else if(request.status == 404){
				alert('HTTP Status 404');
			}else if(request.status == 500){
				alert(request.responseText);		
				alert('HTTP Status 500');
			}
		}		
	}
}
*/
