﻿/* Key Event */

// 게시판 공통 검색박스 키이벤트 처리
function chkEnterForBoardSearch(e) {
	var key = window.event ? e.keyCode : e.which;
	if (key == 13){
		if (chkBoardSearchKeyword()){		    
		    __doPostBack('ctl00$ContentPlaceHolder1$BoardSearchBox$SearchButton','');
		}
		else{
			return;
		}
	}
}

// 공지사항 공통 검색박스 키이벤트 처리
function chkEnterForNoticeSearch(e) {
	var key = window.event ? e.keyCode : e.which;
	if (key == 13){
		if (chkBoardSearchKeyword()){		    
		    __doPostBack('ctl00$ContentPlaceHolder1$NoticeSearchBox$SearchButton','');
		}
		else{
			return;
		}
	}
}

// 게임정보 검색박스 키이벤트 처리
function chkEnterForGuideSearch(e) {
	var key = window.event ? e.keyCode : e.which;
	if(key == 13){
		if (chkBoardSearchKeyword()){
		    __doPostBack('ctl00$ContentPlaceHolder1$GuideSearchBox$SearchButton','');		    
		}
		else{
			return;
		}
	}
}

// 묻고답하기 검색박스 키이벤트 처리
function chkEnterForQnaRankingSearch(e) {
	var key = window.event ? e.keyCode : e.which;
	if (key == 13){
		if (chkQnaRankingSearchKeyword()){
		    __doPostBack('ctl00$ContentPlaceHolder1$QnaRankingSearchBox$SearchButton','');
		}
		else{
			return;
		}
	}
}

// 랭킹 공통 검색박스 키이벤트 처리
function chkEnterForRankingSearch(e) {
	var key = window.event ? e.keyCode : e.which;
	if (key == 13){
		if (chkRankingSearchKeyword()){		    
		    __doPostBack('ctl00$ContentPlaceHolder1$RankingSearchBox$SearchButton','');
		}
		else{
			return;
		}
	}
}
/*-------------------------------------------------------------------*/

/* Board Common */

// 게시판 탭 이동하기
function changeTab(url, tabNo) {
    document.location.href = url + '?TabNo=' + tabNo;
}

// 게시판 검색키워드 확인하기
function chkBoardSearchKeyword() {
    var keyword = $('keyword');
	if(keyword.value.size() > 40)
	{
	    alert('검색어는 20자까지만 입력 가능합니다.');
	    return false;
	}
    return true;
}

// 게시판 글삭제 확인하기
function chkDeleteConfirm() {
    var askConfirm = confirm('게시물을 삭제하시겠습니까?');
    
    if (askConfirm) {
        return true;
    } else {
        return false;
    }
}

// 게시판 입력폼 검사하기
function chkBoardInputValue(flag) {    
    var bytes = 0;
    var title = $('ctl00_ContentPlaceHolder1_txtTitle');
    var file = $('ctl00_ContentPlaceHolder1_objFile');
    var bannerPath = $('ctl00_ContentPlaceHolder1_bannerPath');
    var type = $('ctl00_ContentPlaceHolder1_qnaType');
    
 
    for (var i=0; title.value.charCodeAt(i); i++) {
		bytes += (title.value.charCodeAt(i) > 128) ? 2 : 1;
	}	
	if ($T(title.value) == '') { 
        alert ('제목을 입력하세요.');
        title.focus();
        return false;
    }
    
    if (bytes > 100) {
		alert ('제목은 50자까지만 입력 가능합니다.');
		title.select();
		return false;
    }
      
    if(type) {
	    if ($T(type.value) == '') {
	        alert("분류를 선택하세요.");
	        return false;
        }
    }   
        
    if (!flag && (file || bannerPath)) {
        if ($T(file.value) == '' && $T(bannerPath.value) == '') {           
            alert ('이미지를 등록하세요.');
            return false;
        } else if (!(/\.jpg$|\.gif$|\.jpeg$|\.bmp$|\.png$/i.test(file.value) || /\.jpg$|\.gif$|\.jpeg$|\.bmp$|\.png$/i.test(bannerPath.value)) ) {            
            alert ('등록 불가능한 확장자입니다.');
            return false;
        }
	} 
    
    return true;	
}


// 게시판 이미지뷰, 링크타겟
function viewLarge(src) {    
    window.open('/Common/PhotoView.aspx?FileName=' + src, 'Photo', 'width=1,height=1,scrollbars=1');
}

// 게시판 내용 리사이즈
function resizeContentsArea(obj) {
    var userContents = obj;
    var maxWidth = 610;
	var targets = userContents.get('/A');
	var imgs = userContents.get('/IMG');

	for(var i=0; targets[i]; i++) {
		targets[i].target = '_blank';
		targets[i].style.textDecoration = 'underline';
	}

	for(var i=0; imgs[i]; i++) {
		if (imgs[i].width > maxWidth) {
			imgs[i].width = maxWidth;
		}
		imgs[i].style.cursor = 'pointer';
		imgs[i].Click(function() {
		    viewLarge(this.src)
		});
	}
}
addEvent(window,'load',function() {
    if($('userContentsArea')) 
        resizeContentsArea($('userContentsArea'));
    if($('/div.crop_r')) {
        $('/div.crop_r').each(function() { 
            resizeContentsArea(this);
        });
    }
});


// 게임공략 콤보박스 정렬 처리
function chkSelectForGuideOrderBy() {
	__doPostBack('ctl00$ContentPlaceHolder1$GuideSearchBox$SearchButton','');		    		
}


// 묻고답하기 답변 채택하기
function chkReplyChooseConfirm() {
    var replyConfirm = confirm('답변 채택은 한 번만 가능하며 채택 이후 번복이 불가능 합니다.\n\n선택한 답변을 정말 채택하시겠습니까? \n\n(안내: 답변 채택 시 지식점수 1점이 지급됩니다.)');
    
    if (replyConfirm) {
        return true;
    } else {
        return false;
    }
}

// 묻고답하기 게시물 삭제하기
function chkQuestionDeleteConfirm() {
    var deleteConfirm = confirm('게시물을 삭제하시겠습니까? \n\n(안내: 질문내용 삭제 시 패널티 1점이 차감됩니다.)');
    
    if (deleteConfirm) {
        return true;
    } else {
        return false;
    }
}

// 묻고답하기 답변 삭제하기
function chkAnswerDeleteConfirm() {
    var deleteConfirm = confirm('답변을 삭제하시겠습니까? \n\n(안내: 답변을 삭제하시면 등록시 획득한 1점과 패널티 1점이 차감됩니다.)');
    
    if (deleteConfirm) {
        return true;
    } else {
        return false;
    }
}

// 묻고답하기 랭킹 검색키워드 확인하기
function chkQnaRankingSearchKeyword() {
    var keyword = $('keyword');
    var searcharea = $('SearchArea');
       
    if(keyword.value.size() > 40)
	{
	    alert('검색어는 20자까지만 입력 가능합니다.');
	    return false;
	}    
    
    if($T(searcharea.value) == 'Rank')
    {
        if (!$R.int.test($T(keyword.value)))
        {
            alert('숫자만 입력 가능합니다.');
            keyword.select();
    	    return false;    
        }        
    }
    return true;
}

// 랭킹 검색키워드 확인하기
function chkRankingSearchKeyword() {
    var keyword = $('keyword');
    var searcharea = $('SearchArea');
    
    if(keyword.value.size() > 40)
	{
	    alert('검색어는 20자까지만 입력 가능합니다.');
	    return false;
	}
    
    if($T(searcharea.value) == '2')
    {
        if (!$R.int.test($T(keyword.value)))
        {
            alert('숫자만 입력 가능합니다.');
            keyword.select();
    	    return false;    
        }
        if(keyword.value > 2147483647)
        {
            alert('입력 숫자가 최대값을 초과하였습니다.');
            keyword.select();
            return false;
        }
    }    
    return true;
}

// 설문지 값체크 하기 
function chkVoteValue() {
	var ex = $('@example');
	var voted = false;
	for (var i = 0; i < ex.length; i++) {
		if (ex[i].checked) {
			voted = true;
			break;
		}
	}
	
	if (voted) {
		return true;
	} else {
		alert('투표 항목을 선택하세요.');
		return false;
	}
}
/*-------------------------------------------------------------------*/


/* Ajax */

// 게시물 추천하기
function addRecommend(boardNo, memberNo, AuthorMemberNo, isRecommended) {    
    if (memberNo <= 0) {
        alert ('로그인이 필요합니다.');
        return;
    }
    
    if (isRecommended.toLowerCase() == 'true') {
        alert ('이미 추천하셨습니다.');
        return;
    }

    var askConfirm = confirm('해당 게시물을 추천하시겠습니까?');
    
    if (askConfirm) {
        var url = '/Xml/Board/Recommend.aspx';
        var pars = 'boardNo=' + boardNo + '&isRecommended=' + isRecommended + '&AuthorMemberNo=' + AuthorMemberNo;
        Ajax.post(url, pars, updateRecommendCnt)
    } else {
        return;
    }    
}

// 게시물 추천 콜백
function updateRecommendCnt(res) {
    var responseText = res.responseText;
    
    if (responseText == '-999') {
        alert ('잘못된 요청입니다.\n\n다시 시도해 주세요.');
    } else if (responseText == '-3') {
        alert ('로그인이 필요합니다.');
    } else if (responseText == '-2') {
        alert ('처리중 오류가 발생하였습니다.');
    } else if (responseText == '-1') {
        alert ('이미 추천하셨습니다.');
    } else if (responseText == '-4') {
        alert ('자신이 쓴 글은 추천하실 수 없습니다..');
    } else {
        $('recommendCnt').css('color:#ffffff;font-weight:bold;');
        $('recommendCnt').colorTo('color','#000000',1);
        $('recommendCnt').innerHTML = responseText;
        $('ctl00_ContentPlaceHolder1_BoardContents_txtRecommend').value = 'True';
        alert ('추천하였습니다.');
    }
}

// 댓글 등록하기
function addReply(boardNo, comment, type) {
    if ($T(comment) == '') {
        alert ('내용을 입력하세요.');
        return;
    }
    
    var url = '/Xml/Board/AddReply.aspx';
    var pars = 'boardNo=' + boardNo + '&comment=' + encodeURIComponent(comment) + '&type=' + type;
    Ajax.post(url, pars, getReplyList)
}

// 댓글 삭제하기
function removeReply(boardNo, boardCommentNo, type, pageNo) {
    var askConfirm = confirm('댓글을 삭제하시겠습니까?');
    
    if (askConfirm) {
        var url = '/Xml/Board/RemoveReply.aspx';
        var pars = 'boardNo=' + boardNo + '&boardCommentNo=' + boardCommentNo + '&type=' + type + '&pageNo=' + pageNo;
        Ajax.post(url, pars, getReplyList)
    } else {
        return;
    }
}

// 댓글 등록/삭제 콜백
function getReplyList(res) {
    var responseText = res.responseText;
    
    if (responseText == '-999') {
        alert ('잘못된 요청입니다.\n\n다시 시도해 주세요.'); 
    } else if (responseText == '-3') {
        alert ('로그인이 필요합니다.');
    } else if (responseText == '-2') {
        alert ('처리중 오류가 발생하였습니다.');
    } else if (responseText == '-4') {
        alert ('댓글은 200Byte 까지만 입력 가능합니다.'); 
    } else if (responseText == '-5') {
    alert ('회원님은 제재중임으로 글쓰기 권한이 제한됩니다.'); 
    } else {
        $('boardReply').innerHTML = responseText;
        $('txtReply').value = '';
        $('replay_byte').inHTML('0');
    } 
}

// 댓글(페이징) 가져오기
function getReplyListByPaging(boardNo, pageNo, commentType) {
    var url = '/Xml/Board/PagingReply.aspx';
    var pars = 'boardNo=' + boardNo + '&pageNo=' + pageNo + '&type=' + commentType;
    Ajax.post(url, pars, getReplyList);
    return false;    
}

// 묻고답하기 답변 댓글 등록하기
function addAnswerReply(boardNo, type) {
    var txtId = 'txt' + boardNo;
    var comment = $(txtId);   
    if ($T(comment.value) == '') {
        alert ('내용을 입력하세요.');
        return;
    }
    
    var url = '/Xml/Board/AddReply.aspx';
    var pars = 'boardNo=' + boardNo + '&comment=' + encodeURIComponent(comment.value) + '&type=' + type;
    Ajax.post(url, pars, getAnswerReplyList)
}

// 묻고답하기 답변 댓글 삭제하기
function removeAnswerReply(boardNo, boardCommentNo, type, pageNo) {
    var askConfirm = confirm('댓글을 삭제하시겠습니까?');
    
    if (askConfirm) {
        var url = '/Xml/Board/RemoveReply.aspx';
        var pars = 'boardNo=' + boardNo + '&boardCommentNo=' + boardCommentNo + '&type=' + type + '&pageNo=' + pageNo;
        Ajax.post(url, pars, getAnswerReplyList)
    } else {
        return;
    }
}

// 묻고답하기 답변 댓글 등록/삭제 콜백
function getAnswerReplyList(res) {
    var responseText = res.responseText;    
   
    if (responseText == '-999') {
        alert ('잘못된 요청입니다.\n\n다시 시도해 주세요.'); 
    } else if (responseText == '-3') {
        alert ('로그인이 필요합니다.');
    } else if (responseText == '-2') {
        alert ('처리중 오류가 발생하였습니다.');
    } else if (responseText == '-4') {
        alert ('댓글은 200Byte 까지만 입력 가능합니다.'); 
    } else {
        var divId = responseText.substring(responseText.lastIndexOf('<div_id>'));
        divId = divId.replace('<div_id>', '');
        
        responseText = responseText.substring(0, responseText.lastIndexOf('<div_id>'));
        $(divId).innerHTML = responseText;
        var txtComment = $('.write_answer');
        for (var i=0; i < txtComment.length; i++) {
            txtComment[i].value = '';
        }
    } 
}

// 게임공략 콤보박스값 셋팅
function setGameRushComboBox(category, saveImage) {        
    var isSaveImg = saveImage ? '&saveImage=' + encodeURIComponent(saveImage) : '';
    var url = '/Xml/GameGuide/GameRushComboBox.aspx';
    var pars = 'category=' + category + isSaveImg;
    Ajax.post(url, pars, getLayerComboList) 
    //if (saveImage == '')
    setRushBanner.show();   
}

// 게임공략 콤보박스값 셋팅 콜백
function getLayerComboList(res) {
    var responseText = res.responseText;
    if (responseText == '-999') {
        alert ('잘못된 요청입니다.\n\n다시 시도해 주세요.'); 
    } else if (responseText == '-3') {
        alert ('로그인이 필요합니다.');
    } else if (responseText == '-2') {
        alert ('처리중 오류가 발생하였습니다.');    
    } else {   
        $('design_list').innerHTML = responseText;
    } 
}

// 게임공략 개별배너 임시업로드
function setTempBannerFileUpload(objFile) {    
    var url = '/Xml/GameGuide/GameRushTempFileUpload.aspx';
    var pars = 'filePath=' + objFile;
    Ajax.post(url, pars, getTempBannerFileUpload)    
}

// 게임공략 개별배너 임시업로드 콜백
function getTempBannerFileUpload(res) {
    var responseText = res.responseText;
    if (responseText == '-999') {
        alert ('잘못된 요청입니다.\n\n다시 시도해 주세요.'); 
    } else if (responseText == '-3') {
        alert ('로그인이 필요합니다.');
    } else if (responseText == '-2') {
        alert ('처리중 오류가 발생하였습니다.');    
    } else { 
        setRushBanner.file(responseText)        // 배너 미리보기 관련 처리
        //$('design_list').innerHTML = responseText;
    } 
}
/*-------------------------------------------------------------------*/


/* Game Rush */

// 콤보박스 선택시 체크
function CheckBannerSelect(bannerFile) {       
    var banner = document.getElementById('ctl00_ContentPlaceHolder1_bannerPath');
    banner.value = bannerFile;
    return true;
}

// 콤보박스 선택시 체크
function setGameRushComboBoxCheck(category) {            
    var saveImage = document.getElementById('ctl00_ContentPlaceHolder1_hdnSaveImage');   
    setGameRushComboBox(category, saveImage.value);
    
    return true;
}

// 개별배너에서 파일찾아보기에서 파일선택시
function SetTempFileUpload()
{       
    if(!chkFileType($('objFile'))) return;

    var url = '/Xml/GameGuide/GameRushTempFileUpload.aspx';
  
    document.forms[0].encoding="multipart/form-data";    
    document.forms[0].target = "upload_frame";
    document.forms[0].action = url;
    if (document.forms[0].__VIEWSTATE.value.length > 0)
    {
        document.forms[0].oldViewStatus.value = document.forms[0].__VIEWSTATE.value;
    }
    document.forms[0].__VIEWSTATE.value = '';
    document.forms[0].submit();  
}

// 게임공략 - 수정
function SubmitCheckModify()
{   
    if(chkBoardInputValue(1))
    { 
        document.forms[0].action = "GameRushModify.aspx";
        document.forms[0].target = "";
        if (document.forms[0].oldViewStatus.value.length > 0)    
            document.forms[0].__VIEWSTATE.value = document.forms[0].oldViewStatus.value;   
        
    }
    else
    {
        return false;        
    }     
    
}

// 게임공략 - 쓰기
function SubmitCheckWrite()
{       
    if(chkBoardInputValue())
    {
        document.forms[0].action = "GameRushWrite.aspx";
        document.forms[0].target = "";
        if (document.forms[0].oldViewStatus.value.length > 0)    
            document.forms[0].__VIEWSTATE.value = document.forms[0].oldViewStatus.value;          
    }
    else
    {
        return false;        
    }   
}