var change_what = '';

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');}			
	
	// 검색일 경우, 변경되는 전체 글 수를 가져오기 위한 방편, 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');

	// 닉네임 팝업 초기화
	TooltipManager.init("tooltip");	
	
	// 컨텐츠 높이에 따라 화면 높이 조정
	adjustContentsHeight($('left_side'), $('board_list'), $('contents'));
}

function jobAlarmCheck(formName,listXml) {
	var root      = listXml.documentElement;
	var list_item = root.getElementsByTagName("list"); //xml 리스트 데이타	
	var regexp    = [];
	
	for (var i = 0; i < list_item.length; i++)
	{
		var str = list_item[i].getElementsByTagName("NOTI_CD")[0].firstChild.nodeValue;
		regexp[i] = new RegExp("^("+str.replace(/,/g, "|")+")$");
	}

	if (root.hasChildNodes())
	{
		var jobType = list_item[0].getElementsByTagName("JOBTYPE")[0].firstChild.nodeValue;
		switch (jobType)
		{
			case "01":
				$(formName).job_type_select_yn[0].checked = true;
				$(formName).job_area_select_yn[0].checked = true;
				
				for (var j=0; j < $(formName).selected_jobDept.length;j++){
					$(formName).selected_jobDept[j].checked = regexp[0].test($(formName).selected_jobDept[j].value);			
				}
				
				for (var j=0; j < $(formName).selected_area.length;j++){
					$(formName).selected_area[j].checked = regexp[1].test($(formName).selected_area[j].value);
				}
				
				for (var j=0; j < $(formName).selected_job_comp.length;j++){
					$(formName).selected_job_comp[j].checked = regexp[2].test($(formName).selected_job_comp[j].value);
				}
				break;
				
			case "02":
				$(formName).job_type_select_yn[1].checked = true;
				$(formName).job_area_select_yn[0].checked = true;
				
				for (var j=0; j < $(formName).selected_jobDept.length;j++){
					$(formName).selected_jobDept[j].checked = false;
					$(formName).selected_jobDept[j].disabled = true;			
				}
				
				for (var j=0; j < $(formName).selected_area.length;j++){
					$(formName).selected_area[j].checked = regexp[0].test($(formName).selected_area[j].value);
				}
				
				for (var j=0; j < $(formName).selected_job_comp.length;j++){
					$(formName).selected_job_comp[j].checked = regexp[1].test($(formName).selected_job_comp[j].value);
				}
				break;
				
			case "03":
				$(formName).all_check.checked = true;
				Board.all_clear(formName);
				break;
		}
	}
	else
	{
		//신규 job 알리미 시..
		for (var j=0; j < $(formName).selected_jobDept.length;j++){
			$(formName).selected_jobDept[j].checked = false;			
		}
		
		for (var j=0; j < $(formName).selected_area.length;j++){
			$(formName).selected_area[j].checked = false;
		}
		
		for (var j=0; j < $(formName).selected_job_comp.length;j++){
			$(formName).selected_job_comp[j].checked = false;
		}
	}
}

//제목글에 각종 체크하여 타이틀과 링크 값을 반환
function makeJobTitleLinkStr(xmlelem){
	var returnTitle = "";
	var titleHtml = "";
	
	//삭제 여부 체크
	if(xmlelem["DELETE_FG"] == "X"){
		titleHtml += message["board.alert.delete.withReply.byWriter"];
	}else if(xmlelem["DELETE_FG"] == "Z"){
		titleHtml += message["board.alert.delete.withReply.byAdmin"];
	}else if(xmlelem["DELETE_FG"] == "N"){
		titleHtml += xmlelem["JOBTITLE"];
	}
	
	returnTitle += "<a href=\"javascript:Board.view('" + ACTION_URL + "?cmd=view&seq="+xmlelem["JOBNO"]+"', 'list_form', "+xmlelem["JOBNO"]+", 'view', 'post');\">";
	returnTitle += titleHtml;
	returnTitle += "</a>";
	
	return returnTitle;
}

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')) Board.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 {                
                    var acceptFlg = $(formName).acceptFlg.value;
                    
                    if(acceptFlg == "") {
                    	acceptFlg = "ALL";
                    }
                    
                    var liArr = $('tab').getElementsByTagName('li');
                    for(var i=0; i<liArr.length;i++){
                        if(liArr[i].id == acceptFlg ){                        	
                            liArr[i].className = "selected";
                        }else{              
                            liArr[i].className = "";
                        }
                    }
                    //alert("dhtmlHistory undefined");                    
                }
			},
			onFailure : function(){
				if($('ajaxLoadingBox')) Element.hide('ajaxLoadingBox');
			}
		});
	}
};

/**
* 보드 관련 이벤트 처리부분
*/
var Board = {
	//페이지 출력수 변경시 처리
    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);
	},
	
	//리스트 페이지에서의 페이징숫자를 눌렀을때 처리
    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, category) {
		$(formName).cg.value = category;
		$(formName).cmd.value ="ajax_list";
		$(formName).orderBy.value = "";
		AjaxBoardManager.list(divElement, url, formName);
	},
	//접수마감여부에 따른 리스트 가져오기
	acceptChange : function(url, formName, divElement, acceptFlg) {
	   /* 이미지를 안쓰도록 변경되어 있으므로 아래의 코드는 사용안함.
		switch(acceptFlg) {
            case 'ING' :	
                $('acceptFlgAll').src = "/ysrimg/btns/btn_all_large_out.gif";
				$('acceptFlgIng').src = "/ysrimg/knowys/btn_s_01_over.gif";
				$('acceptFlgEnd').src = "/ysrimg/knowys/btn_s_02_out.gif";
                break;						
            case 'END' :
                $('acceptFlgAll').src = "/ysrimg/btns/btn_all_large_out.gif";
				$('acceptFlgIng').src = "/ysrimg/knowys/btn_s_01_out.gif";
				$('acceptFlgEnd').src = "/ysrimg/knowys/btn_s_02_over.gif";
                break;
            default:
            	$('acceptFlgAll').src = "/ysrimg/btns/btn_all_large_over.gif";
				$('acceptFlgIng').src = "/ysrimg/knowys/btn_s_01_out.gif";
				$('acceptFlgEnd').src = "/ysrimg/knowys/btn_s_02_out.gif";
                break;						
        }
        */
		$(formName).acceptFlg.value = acceptFlg;
		$(formName).cmd.value ="ajax_list";
		$(formName).orderBy.value = "";
		$(formName).page.value = "1";
		Board.acceptFlagChange(acceptFlg);
		
		AjaxBoardManager.list(divElement, url, formName);
	},
	acceptFlagChange : function(acceptFlg) {		
		var acceptFlg = acceptFlg;
                    
        if(acceptFlg == "") {
        	acceptFlg = "ALL";
        }
        
        var liArr = $('tab').getElementsByTagName('li');
        for(var i=0; i<liArr.length;i++){
            if(liArr[i].id == acceptFlg ){                        	
                liArr[i].className = "selected";
            }else{              
                liArr[i].className = "";
            }
        }			
	},	
	//분야변경시 회사목록 가져오기
	jobbuhange : 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(){
			}
		});
    },
    
    //job 알리미 pop up
    myJobPopUp: function(formName, url, cmd){
    	$(formName).cmd.value = cmd;
    	$(formName).jobflg.value = "";
    	new Ajax.Request(url, {
            method : 'POST',
            parameters:Form.serialize(formName),
            encoding : 'UTF-8',
            onSuccess : function(xmlHttp) {
	    		ysr_modal.show('job_alarm');
	    		
	    		jobAlarmCheck(formName, xmlHttp.responseXML);
            }
        });
    },
    
    //job 알리미 등록
    myJobRegist: function(formName, url){
    	$(formName).cmd.value = 'ajax_myJobRegist';
    	var jobDeptCheck = 0;
    	var job_areaCheck = 0;
    	var jobCompCheck = 0;
    	
    	//전체 선택시
    	if ($(formName).all_clear.value == "N"){
    		$(formName).jobflg.value = "03";
    		//모집부문
    		for (i=0; i < $(formName).selected_jobDept.length; i++){
	    		if ($(formName).selected_jobDept[i].checked){
	    			$(formName).jobDept.value+=$(formName).selected_jobDept[i].value+",";
	    		}
	    	}
	    	
	    	//지역선택
	    	for (i=0; i < $(formName).selected_area.length; i++){
	    		if ($(formName).selected_area[i].checked){
	    			$(formName).job_area.value+=$(formName).selected_area[i].value+",";
	    		}
	    	}
	    	
	    	//회사선택
	    	for (i=0; i < $(formName).selected_job_comp.length; i++){
	    		if ($(formName).selected_job_comp[i].checked){
	    			$(formName).job_comp.value+=$(formName).selected_job_comp[i].value+",";
	    		}
	    	}
	    	
    	}else{
    		//모집부문
    		if ($(formName).job_type_select_yn[0].checked){
	    		$(formName).jobflg.value = "01";
	    		
	    		for (i=0; i < $(formName).selected_jobDept.length; i++){
		    		if ($(formName).selected_jobDept[i].checked){
		    			jobDeptCheck++;
		    			$(formName).jobDept.value+=$(formName).selected_jobDept[i].value+",";
		    		}
		    	}
		    	
		    	if (jobDeptCheck <= 0){
		    		alert_module.show('alert', {
		    			msg : message["jobinfo.select.please"]
		    		});
		    		
		    		$(formName).selected_jobDept[0].focus();
		    		return;
		    	}
	    	}
	    	
	    	if ($(formName).job_type_select_yn[1].checked){
	    		$(formName).jobflg.value = "02";
	    	}
	    	
	    	//지역선택
    		for (i=0; i < $(formName).selected_area.length; i++){
	    		if ($(formName).selected_area[i].checked){
	    			job_areaCheck++;
	    			$(formName).job_area.value+=$(formName).selected_area[i].value+",";
	    		}
	    	}
	    	
		    if ($(formName).job_area_select_yn[0].checked){	
		    	if (job_areaCheck <= 0){
		    		alert_module.show('alert', {
		    			msg : message["jobinfo.select.please"]
		    		});
		    		
		    		$(formName).selected_area[0].focus();
		    		return;
		    	}
	    	}
	    	
	    	//회사선택
	    	for (i=0; i < $(formName).selected_job_comp.length; i++){
	    		if ($(formName).selected_job_comp[i].checked){
	    			jobCompCheck++;
	    			$(formName).job_comp.value+=$(formName).selected_job_comp[i].value+",";
	    		}
	    	}
	    	
	    	if (jobCompCheck <= 0){
	    		alert_module.show('alert', {
	    			msg : message["jobinfo.select.please"]
	    		});
	    		
	    		$(formName).selected_job_comp[0].focus();
	    		return;
	    	}
    	}
    	
        new Ajax.Request(url, {
            method : 'POST',
            parameters:Form.serialize($(formName)),
            encoding : 'UTF-8',
            onSuccess : function(xmlHttp) {
                alert_module.show('alert', {
	    			msg : message["jobinfo.alarm.success"]
	    		});
	    		
	    		$(formName).jobDept.value = "";
	    		$(formName).job_area.value = "";
	    		$(formName).job_comp.value = "";
	    		
	    		ysr_modal.close('job_alarm');
            },
	        onFailure : function() {
	        	ysr_modal.close('job_alarm');
	        }
        });
    },
    
    //지역 선택
	comp_disable : function(formName) {
		if ($(formName).job_area_select_yn[1].checked){
			for (i=0; i < $(formName).selected_area.length; i++){
				$(formName).selected_area[i].checked = true;
	    		$(formName).selected_area[i].disabled = true;
	    	}
		}else{
			for (i=0; i < $(formName).selected_area.length; i++){
	    		$(formName).selected_area[i].checked = false;
	    		$(formName).selected_area[i].disabled = false;
	    	}
		}
	},
	
	//채용&알바 구분
	dept_disable : function(formName) {
		if ($(formName).job_type_select_yn[1].checked){
			$(formName).jobflg.value = "02";
			for (i=0; i < $(formName).selected_jobDept.length; i++){
				$(formName).selected_jobDept[i].checked = false;
	    		$(formName).selected_jobDept[i].disabled = true;
	    	}
		}else{
			for (i=0; i < $(formName).selected_jobDept.length; i++){
	    		$(formName).selected_jobDept[i].disabled = false;
	    	}
	    	$(formName).jobflg.value = "01";
		}
		
		for (i=0; i < $(formName).selected_area.length; i++){
    		$(formName).selected_area[i].disabled = false;
    	}
		$(formName).cmd.value = "ajax_myJobAlarm";
    	new Ajax.Request('/jobinfo.do', {
            method : 'POST',
            parameters:Form.serialize(formName),
            encoding : 'UTF-8',
            onSuccess : function(xmlHttp) {
	    		ysr_modal.change_content('job_alarm');
	    		jobAlarmCheck(formName, xmlHttp.responseXML);
            }
        });
	},
	
	//job 알리미 전체 선택
	all_clear : function(formName) {
		if ($(formName).all_check.checked){ //전체 선택 시
			//잡&알바 선택 해제 및 선택 불가
    		$(formName).job_type_select_yn[0].checked = false;
    		$(formName).job_type_select_yn[0].disabled = true;
    		$(formName).job_type_select_yn[1].checked = false;
			$(formName).job_type_select_yn[1].disabled = true;
    		
    		//모집구분
    		for (i=0; i < $(formName).selected_jobDept.length; i++){
	    		$(formName).selected_jobDept[i].checked = true;
	    		$(formName).selected_jobDept[i].disabled = true;
	    	}
	    	
	    	//지역선택
	    	$(formName).job_area_select_yn[0].checked = false;
	    	$(formName).job_area_select_yn[0].disabled = true;
	    	$(formName).job_area_select_yn[1].checked = false;
	    	$(formName).job_area_select_yn[1].disabled = true;
	    	for (i=0; i < $(formName).selected_area.length; i++){
	    		$(formName).selected_area[i].checked = true;
	    		$(formName).selected_area[i].disabled = true;
	    	}
	    	
	    	//회사선택
	    	for (i=0; i < $(formName).selected_job_comp.length; i++){
	    		$(formName).selected_job_comp[i].checked = true;
	    		$(formName).selected_job_comp[i].disabled = true;
	    	}
	    	
	    	$(formName).all_clear.value = "N";
    	}else{ //전체 해지 시
    		//잡 기본 선택 및 선택 가능
    		$(formName).job_type_select_yn[0].disabled = false;
    		$(formName).job_type_select_yn[0].checked = true;
			$(formName).job_type_select_yn[1].disabled = false;
			
			//모집구분
    		for (i=0; i < $(formName).selected_jobDept.length; i++){
	    	//	$(formName).selected_jobDept[i].checked = false;
	    		$(formName).selected_jobDept[i].disabled = false;
	    	}
	    	
	    	//지역선택
	    	$(formName).job_area_select_yn[0].disabled = false;
	    	$(formName).job_area_select_yn[0].checked = true;
	    	$(formName).job_area_select_yn[1].disabled = false;
	    	for (i=0; i < $(formName).selected_area.length; i++){
	    	//	$(formName).selected_area[i].checked = false;
	    		$(formName).selected_area[i].disabled = false;
	    	}
	    	
	    	//회사선택
	    	for (i=0; i < $(formName).selected_job_comp.length; i++){
	    	//	$(formName).selected_job_comp[i].checked = false;
	    		$(formName).selected_job_comp[i].disabled = false;
	    	}
	    	$(formName).all_clear.value = "Y";
	    	Board.dept_disable(formName);
    	}
	}
}

function selectBoxChange(targetBox, listXml) {
    var root = listXml.documentElement;
    
    var obj = document.getElementById(targetBox);
    obj.selectedIndex = 0;
    obj.length = 1;
    if(root.hasChildNodes()){
        nds = root.childNodes;
        var list_item = listXml.getElementsByTagName("list");
        for(var i=0;i < list_item.length;i++) {
            var k = Number(i) + 1;
            var listHighCd, listLowCd, listLowName;
            
            if(list_item[i].getElementsByTagName("HIGH_CD").length > 0) listHighCd = list_item[i].getElementsByTagName("HIGH_CD")[0].firstChild.nodeValue;
            else listHighCd = "";
            
            if(list_item[i].getElementsByTagName("LOW_CD").length > 0) listLowCd = list_item[i].getElementsByTagName("LOW_CD")[0].firstChild.nodeValue;
            else listLowCd = "";
            
            if(list_item[i].getElementsByTagName("LOW_NAME").length > 0) listLowName = list_item[i].getElementsByTagName("LOW_NAME")[0].firstChild.nodeValue;
            else listLowName = "";
            
            obj.options[k] = new Option(listLowName, listHighCd + listLowCd);
        }
    } else {
    }
}
