/**
* AJAX를 통해 가져온 HTML로 목록 화면 구성
* by kkh (2011.11.17)
* @param {Object} formName 해당 폼 명
* @param {Object} element DIV ID
* @param {Object} listXml 리스트 XML -> 리스트 HTML
*/

function ListTableCreate(formName, element, listHTML) {
	// 목록 HTML 그리기
	$(element).innerHTML = listHTML;
	
	// 게시판 형태에 따라 board_list 스타일 변경
	if($F('btype') == 'B'){$('board_list').removeClassName('board_list');$('board_list').addClassName('list_type');}else{$('board_list').removeClassName('list_type');$('board_list').addClassName('board_list');}
	
	// 닉네임 팝업 초기화
	TooltipManager.init("tooltip");
	
	// 검색일 경우, 변경되는 전체 글 수를 가져오기 위한 방편, tempTotalCnt는 list_list.jsp 상단에 포함되어있음 by kkh 11.11.17
	$('list_form').totalCount.value = $F('tempTotalCnt');
	
	// 페이징 수정
	$('board_list_paging').innerHTML = PagingCreate('Board.page', 'board_list', ACTION_URL, 'list_form', $('list_form').totalCount.value ,$('list_form').page.value, $('list_form').rowLimit.value, $('list_form').groupLimit.value, 'String');
	
	// 컨텐츠 높이에 따라 화면 높이 조정
	adjustContentsHeight($('left_side'), $('board_list'), $('contents'));
}


//제목글에 각종 체크하여 타이틀과 링크 값을 반환
function makeTitleLinkStr(list_item,deleteFg,listOpenFg,choiceFg,strCmtYn,xmlelem){

	var returnTitle = "";
	var titleHtml = "";
	var oldTableId = "";
	if(ACTION_URL == "/freeboard.do"){	//자유게시판의 경우 후기게시판과 같이 사용하므로..
		if(list_item[i].getElementsByTagName("OLD_TABLE_ID").length > 0){ 
			oldTableId = list_item[i].getElementsByTagName("OLD_TABLE_ID")[0].firstChild.nodeValue;
		}else{
			oldTableId = "";
		}
		if(oldTableId == "108" || oldTableId == "128" || oldTableId == "219"){
			titleHtml += "[" + message["board.title.history"] + "]";
		} 
	}

	//삭제 여부 체크
	if(deleteFg == "X")
	{
		titleHtml += message["board.alert.delete.withReply.byWriter"];
	}
	else if(deleteFg == "Z")
	{
		titleHtml += message["board.alert.delete.withReply.byAdmin"];
	}
	else if(deleteFg == "N")
	{
		titleHtml += xmlelem["TITLE"];
	}
	
	//공개여부
	if(listOpenFg == "N")
	{
		returnTitle += "<img src=\"/ysrimg11/common/icon/ico_private.gif\" alt=\"\" class=\"lock\" />";
		if(listUserId != userId && adminYn != 'Y')
		{
			returnTitle += titleHtml;
		}
	}
	else
	{
		var classStr = "";
		// 공지글
		if(xmlelem["ALWAY_FG"] != "N")
		{
			classStr += "notice ";
		}

		// 베스트글
		if(choiceFg == "Y")
		{
			classStr += "best";
		}				

		returnTitle += "<a href=\"javascript:Board.view('" + ACTION_URL + "?cmd=view&seq="+xmlelem["SEQ"]+"', 'list_form', "+xmlelem["SEQ"]+", 'view', 'post');\" class='"+ classStr +"' >";

		returnTitle += titleHtml;
		if(strCmtYn == "Y" && xmlelem["CMT_CNT"] != "0"){
			returnTitle += "["+ xmlelem["CMT_CNT"] +"]";
		}
		returnTitle += "</a>";
	}
	


	return returnTitle;
}
//닉네임 앞 레벨아이콘
function levelImgStr(xmlelem){

	// 레벨이미지
	var listMyLevel = xmlelem["MY_LEVEL"];
	
	var levelImage = "";
	if(listMyLevel=='1' || listMyLevel=='2' ||listMyLevel=='3') {
		levelImage = "<img src=/images/member/level_icon_01.gif>";
	} else if(listMyLevel=='4' || listMyLevel=='5' ||listMyLevel=='6') {
		levelImage = "<img src=/images/member/level_icon_02.gif>";
	} else if(listMyLevel=='7' || listMyLevel=='8' || listMyLevel=='9') {
		levelImage = "<img src=/images/member/level_icon_03.gif>";
	} else if(listMyLevel >= 10 && listMyLevel <= 15 ) {
		levelImage = "<img src=/images/member/level_icon_04.gif>";															
	} else {
		levelImage = "<img src=/images/member/level_icon_05.gif>";
	}
	return levelImage;
}
//네임카드
function setNameCardDiv(xmlelem){
	var nameCardHtml = "";
	nameCardHtml += "<div style=\"display:none\" id=\""+ xmlelem["USER_NAME"] + "\">";
	nameCardHtml += "<ul class='floatingid'>";
	nameCardHtml += "<li><a href=\"javascript:Common.writerSearch('"+xmlelem["NICKNAME"]+"', '"+ACTION_URL+"');\">"+message["board.writer_search"]+"</a></li>";
	if(xmlelem["EMAIL_ADDRESS"] != ""){
		nameCardHtml += "<li><a href=\"javascript:Common.sendMessagePopup('"+xmlelem["NICKNAME"]+"');\">"+message["board.message_send"]+"</a></li>";
		nameCardHtml += "<li><a href=\"javascript:Common.friendLink('"+xmlelem["USER_ID"]+"', '"+xmlelem["NICKNAME"]+"');\">"+message["board.link_request"]+"</a></li>";
		nameCardHtml += "<li><a href=\"javascript:openMyNameCard('"+xmlelem["USER_ID"]+"');\">"+message["board.namecard_view"]+"</a></li>";
	}
	nameCardHtml += "</ul>";
	nameCardHtml += "</div>";
	return nameCardHtml;
}
function maketitlelink(btype,category,listboardlevel,seq,title,new_flg,cmt_cnt,choice_fg)
{
	var strBlank = "";
	var num_board_level = Number(listboardlevel);
	
	if(num_board_level > 0) 
	{
		for(var nK=0; nK < num_board_level; nK++) 
		{
			strBlank += "&nbsp;&nbsp;&nbsp;";
		}
		strBlank += message["board.reply"];
	}
	
	if(btype=='B')
	{
		strBlank += "<span class='category'>"+category+"</span><br>";
	}
	
	//베스트 여부
	if(choice_fg == "Y" && strBestYn == "Y") 
	{
	 strBlank += " <img src=\"/images/board/icon_best.gif\" alt=\"Best\" class=\"iconBest\" />";
	}
	strBlank += " <a href=\"javascript:Board.view('" + ACTION_URL + "?cmd=view"+"&seq="+seq+"','list_form',"+seq+",'view','post');\">"+title+"</a>";
	
	if(cmt_cnt != '0') {
		strBlank += "&nbsp;<span class=\"comment\">["+cmt_cnt+"]</span>";
	}
	
	//신규 글 여부
	if(new_flg== "Y") 
	{
		strBlank += " <img src=\"/ysrimg11/common/icon/ico_new.gif\" alt=\"new\" class=\"iconN\" />";
	}
	return strBlank;
}

/*
	.make tooltip message
*/
function maketooltip(nickname)
{
	  var tempInLi="";
	  tempInLi += "<ul>";
	  tempInLi += "   <li class=\"name\">" +nickname+ "</li>";
	  tempInLi += "   <li class=\"first\"><a href=\"#\">" + message["board.campus.search.publisher"] + "</a></li>";
	  tempInLi += "   <li><a href=\"#\">" + message["board.campus.search.sendmsg"] + "</a></li>";
	  tempInLi += "   <li><a href=\"#\">" + message["board.campus.search.sendlink"] + "</a></li>";
	  tempInLi += "   <li><a href=\"#\">" + message["board.campus.search.goblog"] + "</a></li>";
	  tempInLi += "   <li><a href=\"#\">" + message["board.campus.search.seenmcard"] + "</a></li>";
	  tempInLi += "</ul>";
	  return tempInLi;
}

/*
	. 접미사가  count|cnt 로 끝나는 단어를 골라서 디폴트 값을 '0'을 리턴합니다.
	. ignore case 
*/
function checksuffix(str)
{
	var myRegExp = /[^(cou|c)nt]\b/gi;
	return !myRegExp.test(str);
}

//상단 접근 메소드
function getdefaultval(str)
{
	if(checksuffix(str)) return "0";
	else return "";
}

deleteFlag = false;
var insertCheck = false;

var AjaxBoardManager = {
	/*
	* 리스트를 Ajax를 이용해서 HTML을 생성해서 가져온다. postBody: postData,
	*/
	list : function(element, URL, formName) {
		showAjaxLoadingBox(element);
		new Ajax.Request(URL, {
			method : 'POST',
			parameters:Form.serialize(formName),
			encoding : 'UTF-8',
			onComplete : function(xmlHttp) {
				// 리스트 HTML을 생성
				ListTableCreate(formName, element, xmlHttp.responseText);
				if($('ajaxLoadingBox')) Element.hide('ajaxLoadingBox');
				
				// 히스토리 추가
				if(typeof dhtmlHistory != "undefined") {
					var newLocation = $(formName).page.value;
					var toJson = " { ";
					toJson += "url : '" + URL + "', ";
					toJson += "element : '" + element + "', ";
					toJson += "page : '" + $(formName).page.value + "', ";
					toJson += "formName : '" + formName + "' ";
					toJson += " } ";
					dhtmlHistory.add(newLocation, toJson);
				} else {
					//alert("dhtmlHistory undefined");
					var ingYn = $(formName).ingYn.value
                    var liArr = $('tab').getElementsByTagName('li');
                    for(var i=0; i<liArr.length;i++){
                        if(liArr[i].id == ingYn ){
                            liArr[i].className = "selected";
                        }else{              
                            liArr[i].className = "";
                        }
                    }
				}
			},
			onFailure : function(){
				if($('ajaxLoadingBox')) Element.hide('ajaxLoadingBox');
			}
		});
	}
};
var viewTypes = "";
/**
* 보드 관련 이벤트 처리부분
*/
var Board = {
	//게시판 유형 변경시 처리
	boardTypeChange : function(url, formName, divElement, type, typeIdx) {
		typeIdx = Number(typeIdx);
		switch(typeIdx) {
			case 1 :
				$('list_type_btn').src = "/ysrimg11/common/blit/blt_txtblist_out.gif";
				$('img_type_btn').src = "/ysrimg11/common/blit/blt_imglist_over.gif";   
				break;
			case 2 :
				$('list_type_btn').src = "/ysrimg11/common/blit/blt_txtblist_over.gif";
				$('img_type_btn').src = "/ysrimg11/common/blit/blt_imglist_out.gif"; 
				break;
			default:
				break;
		}
		$(formName).cmd.value ="ajax_list";
		$(formName).btype.value = type;
		
		/*
		$(formName).orderBy.value = "";
		if(type == "L"){
        	$(formName).rowLimit.value = 20;
        }else{
        	$(formName).rowLimit.value = 10;
        }	
		*/
		change_what = 'btype';
		AjaxBoardManager.list(divElement, url, formName);
	},

    selectByIngYn : function(url, formName, divElement, ingYn)
    {
        $(formName).cmd.value	=	"ajax_list";
        $(formName).page.value	=	"1";
        $(formName).ingYn.value	=	ingYn;
        document.body.focus();
        AjaxBoardManager.list(divElement, url, formName);
    },
    	
	//페이지 출력수 변경시 처리
    rowLimitChange : function(url, formName, divElement) {
        //alert(divElement);
        $(formName).cmd.value = "ajax_list";
        $(formName).page.value = "1";
        document.body.focus();
        change_what = 'row_limit';
        AjaxBoardManager.list(divElement, url, formName);
    },
    rowLimitChangeCateGory :function(url, formName, divElement,viewType) {
    	if(viewType == undefined){
    	}else{
	    	viewTypes = viewType;
    	}
    	/* 원본 이미지형 에서 텍스트 형으로 변경 
    	if(viewType == ""){
    		$('type_row_change_all').src = "/ysrimg/btns/btn_large_all_over.gif";
    		$('type_row_change_ing').src = "/ysrimg/btns/btn_s_03_out.gif";
    		$('type_row_change_end').src = "/ysrimg/btns/btn_s_04_out.gif";
    	}else if(viewType == "Y"){
    		$('type_row_change_all').src = "/ysrimg/btns/btn_large_all_out.gif";
    		$('type_row_change_ing').src = "/ysrimg/btns/btn_s_03_over.gif";
    		$('type_row_change_end').src = "/ysrimg/btns/btn_s_04_out.gif";
    	}else if(viewType == "N"){
    		$('type_row_change_all').src = "/ysrimg/btns/btn_large_all_out.gif";
    		$('type_row_change_ing').src = "/ysrimg/btns/btn_s_03_out.gif";
    		$('type_row_change_end').src = "/ysrimg/btns/btn_s_04_over.gif";
    	}
    	*/
    	/*
    	if(viewType == ""){
    		$('type_row_change_all').class = "over";
    		$('type_row_change_ing').class = "";
    		$('type_row_change_end').class = "";
    	}else if(viewType == "Y"){
    		$('type_row_change_all').class = "";
    		$('type_row_change_ing').class = "over";
    		$('type_row_change_end').class = "";
    	}else if(viewType == "N"){
    		$('type_row_change_all').class = "";
    		$('type_row_change_ing').class = "";
    		$('type_row_change_end').class = "over";
    	}
    	*/
        $(formName).cmd.value = "ajax_list";
        $(formName).page.value = "1";
        $(formName).ingYn.value = viewTypes;
        document.body.focus();
        change_what = 'row_limit';
        AjaxBoardManager.list(divElement, url, formName);
    },	 
	//정렬 시 호출
	orderBy : function(url, formName, divElement, orderBy, sortIdx) {
		sortIdx = Number(sortIdx);
		
		switch(sortIdx) {
			case 1 :
				$('sort_id_date').className = "selected";
				if(cmtOd == 'Y')$('sort_id_cmt').className = "";
				if(viewOd == 'Y')$('sort_id_view').className = "";
				if(recmdOd == 'Y')$('sort_id_recmd').className = "";
				break;
			case 2 :
				if(cmtOd == 'Y')$('sort_id_cmt').className = "";
				if(viewOd == 'Y')$('sort_id_view').className = "selected";
				if(recmdOd == 'Y')$('sort_id_recmd').className = "";
				$('sort_id_date').className = "";
				break;
			case 3 :
				if(viewOd == 'Y')$('sort_id_view').className = "";
				if(cmtOd == 'Y')$('sort_id_cmt').className = "selected";
				if(recmdOd == 'Y')$('sort_id_recmd').className = "";
				$('sort_id_date').className = "";
				break;
			case 4 :
				if(recmdOd == 'Y')$('sort_id_recmd').className = "selected";
				if(cmtOd == 'Y')$('sort_id_cmt').className = "";
				if(viewOd == 'Y')$('sort_id_view').className = "";
				$('sort_id_date').className = "";
				break;
			case 5 :
				break;
			default:
				break;
		}
		$(formName).cmd.value = "ajax_list";
		$(formName).page.value = "1";
		$(formName).orderBy.value = orderBy;
		AjaxBoardManager.list(divElement, url, formName);
	},
	
	//글쓰기 페이지로 이동
	write: function(url, formName, cmd) {
		if(userId == '') {
			Common.loginConfirmDialog(message["board.alert.login.msg"]);
			return;
		}
		$(formName).cmd.value = cmd;
		$(formName).action = url;
		$(formName).method = "post";
		$(formName).submit();
	},
	
	//글보기 페이지로 이동
	view : function(url, formName, seq, cmd, method, selectedCount) {
		$(formName).selectedCount.value = selectedCount;
		$(formName).cmd.value = cmd;
		$(formName).seq.value = seq;
		$(formName).action = url;
		$(formName).method = method;
		$(formName).submit();
	},
	
	//검색 요청시 처리
	search : function(url, formName, divElement)
	{
		$(formName).word.value = document.list_form.checkWord.value;
		$(formName).searchCndt.value = document.list_form.search_cndt.value;

		if($(formName).word.value == '')
		{
			alert(message["board.search.select_item"]);
			return;
		}
		
		$(formName).cmd.value = "ajax_list";
		$(formName).page.value = "1";
		$(formName).orderBy.value = "";
		/*
		if($(formName).word.value != "") {
			$('searchResult').innerHTML = "\"<span class=\"searchWord\">" + $(formName).word.value + "</span>\"" + message["board.list.search.result"];

			Board.show('searchResult');
		} else {
			Board.hide('searchResult');
		}
		*/

		AjaxBoardManager.list(divElement, url, formName);
	},
	
	//리스트 페이지에서의 페이징숫자를 눌렀을때 처리
    page : function(url, formName, divElement, goPage) {
        $(formName).cmd.value = "ajax_list";
        $(formName).page.value = goPage;
        AjaxBoardManager.list(divElement, url, formName);
    },
    
    //엘리먼트 숨기기
	hide : function(divElement) {
		if($(divElement)) {
			$(divElement).style.display = 'none';
		}
	},
	
	//엘리먼트 보기게 하기
	show : function(divElement) {
		if($(divElement)) {
			$(divElement).style.display = 'block';
		}
	}
}
