/**
* 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 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");
				}
			},
			onFailure : function(){
				if($('ajaxLoadingBox')) Element.hide('ajaxLoadingBox');
			}
		});
	}
};

/**
* 보드 관련 이벤트 처리부분
*/
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 = "";
		//change_what = 'btype';
		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);
    },
	
	//정렬 시 호출
	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 = "selected";
				if(viewOd == 'Y')$('sort_id_view').className = "";
				if(recmdOd == 'Y')$('sort_id_recmd').className = "";
				$('sort_id_date').className = "";
				break;
			case 3 :
				if(viewOd == 'Y')$('sort_id_view').className = "selected";
				if(cmtOd == 'Y')$('sort_id_cmt').className = "";
				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 == '') {
			alert_module.show('confirm', {
	   			msg : message["board.alert.login.msg"],
		   			ok_func : function () {
						location.href = "/login.do?cmd=login&nextUrl=" + NEXT_URL;
						return;
		   			},
		   			cancel_func : function () {
		   				return;
		   			}
	   		});
	   		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_module.show('alert', {
				msg : message["board.search.select_item"]
			});				
			return;
		}
		
		$(formName).cmd.value = "ajax_list";
		$(formName).page.value = "1";
		$(formName).orderBy.value = "";

		AjaxBoardManager.list(divElement, url, formName);
	},
	
	//베스트 검색 요청시 처리
	bestSearch : function(url, formName, divElement)
	{
		$(formName).word.value = " ";
		$(formName).searchCndt.value = "choiceFg";
		
		$(formName).cmd.value = "ajax_list";
		$(formName).page.value = "1";
		$(formName).orderBy.value = "";

		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';
		}
	},
	
	//카테고리 목록 가져오기
	categoryChange : function(url, formName, divElement) {
		if(document.getElementById('campus_cg').value == "CHOICE" || document.getElementById('campus_cg').value == ""){
			alert_module.show('alert', {
				msg : message["bangblog.alert.list.selectbox"]
			});				
			return;
		}
	


//		$(formName).cg.value = $('campus_cg').options[$('campus_cg').selectedIndex].value;
//		$(formName).category_nm.value = "";
//	alert($(formName).campus_cg.options[$(formName).campus_cg.selectedIndex].text);			
		if(document.getElementById('campus_cg').value == "999"){
			//document.getElementById('category_nm').value = $(formName).cg.options[$(formName).cg.selectedIndex].text;
			$(formName).cg.value = "999";			
			document.getElementById('category_nm').value = $(formName).campus_cg.options[$(formName).campus_cg.selectedIndex].text;


		}else{
			$(formName).cg.value = $('campus_cg').options[$('campus_cg').selectedIndex].value;
			document.getElementById('category_nm').value = "";

		}
								
		$(formName).cmd.value ="ajax_list";
		$(formName).orderBy.value = "";
		AjaxBoardManager.list(divElement, url, formName);
	},
	
	schoolSortChange : function(url, cmd, formName, requestBox, targetBox) {
        $(formName).cmd.value = cmd;
        document.body.focus();
		new Ajax.Request(url, {
			method : 'POST',
			parameters:Form.serialize(formName),
			encoding : 'UTF-8',
			onComplete : function(xmlHttp) {
				selectBoxChange(targetBox, xmlHttp.responseXML);
			},
			onFailure : function(){
			}
		});
    }
}

function selectBoxChange(targetBox, listXml) {
    var root = listXml.documentElement;
    var obj = document.getElementById(targetBox);
    
    //자식 노드 삭제
    while (obj.hasChildNodes()) obj.removeChild(obj.firstChild);
    
    //안내용 노드 추가
    obj.options[0] = new Option(message["board.campus.school.select"], "CHOICE");
    obj.selectedIndex = 0;
    
    //XML 내용 추가
    if (root.hasChildNodes())
    {
        var list_item = listXml.getElementsByTagName("list");
        for(var i=0;i < list_item.length;i++) {
            var k = Number(i) + 1;
            var listSchoolName, listSchoolCd;
            
            if(list_item[i].getElementsByTagName("NAME").length > 0) listSchoolName = list_item[i].getElementsByTagName("NAME")[0].firstChild.nodeValue;
            else listSchoolName = "";
            
            if(list_item[i].getElementsByTagName("LOWCD").length > 0) listSchoolCd = list_item[i].getElementsByTagName("LOWCD")[0].firstChild.nodeValue;
            else listSchoolCd = "";
            
            obj.options[k] = new Option(listSchoolName, listSchoolCd);
        }
    }
}
