/**
 * @fileoverview collaborate 스크립트
 * @author n017213@netville.co.kr
 * @version 1.0.0
 * @since 2009.06.11
 */

/*
 * 베스트 포토를 랜덤하게 조회한다
 */
function getBestBlogLogByRandom(blogid){
    BlogDWR.getBestBlogLogByRandom(blogid, makeInitBlogLogHTML); 
}

/**
 * 베스트참여자 목록을 뿌린다.
 */
function makeInitBlogLogHTML(data){
    var bestParticipantsDiv = nv.$("bestParticipantsDiv");
    var htmlString = "";
    for(i=0; i<data.length; i++) {
        htmlString += "<li>";
        htmlString += "    <img class=\"thumb\" src=\""+PROFILE_DOWNLOAD_URL+"?userId="+data[i].registerId+"&mode=small"+"\" alt=\"\" width=\"29\" height=\"29\"/>"
        htmlString += "    <a href=\"#\" onclick=\"javascript:showProfile('right','"+data[i].registerId+"', event); return false;\">";        
        htmlString +=         data[i].registerName;
        htmlString += "    </a>";
        htmlString += "</li>";
    }

    if (data.length > 1) nv.$("moreSpan").style.display = "none";
    
    bestParticipantsDiv.innerHTML = htmlString;   
}

/**
 * 방명록을 등록한다.
 */  
function writeGuestBook(){

    var guestbookContents = nv.$('guestbookContents').value;
    var Form = nv.$("guestBookForm"); 
    
    var validator = new nv.Validator(Form, globalCommon.alertMsg);
    validator.checkRequired("guestbookContents", COLLABORATE_MESSAGE_ALERT_CONTENTS_REQUIRED, true);
    validator.checkMinLength("guestbookContents", 2, COLLABORATE_MESSAGE_ALERT_CONTENTS_MINLENGTH, true);
    validator.checkMaxLength("guestbookContents", 400, COLLABORATE_MESSAGE_ALERT_CONTENTS_MAXLENGTH, true);
    validator.checkRegex("guestbookContents", /<\/?[^>]+(>|$)/g, false, COLLABORATE_MESSAGE_ALERT_CONTENTS_TAG, true); 

    if (validator.validate()) { 
        //BLOG_ID => 해당 블로그의 전역별수 임 레이아웃에 선언도 
         BlogDWR.insertBlogGuestBook(BLOG_ID, guestbookContents, writeGuestBookCallBack);
    }
            
}
/**
 * 방명록을 등록 call back method
 */     
function writeGuestBookCallBack(data){

    globalCommon.alertNotice(COLLABORATE_MESSAGE_ALERT_GUESTBOOK_WRITE);
    initGuestBookList();
    nv.$('guestbookContents').value = "";
}
/**
 * 방명록을 등록후 글목록 초기화
 */     
function initGuestBookList(){
    var blogId = BLOG_ID;
    BlogDWR.getBlogGuestBooks(blogId, initGuestBookListCallBack);
}

function initGuestBookListCallBack(data){
    var guestBookListDiv = nv.$("guestBookListDiv");
    
    var htmlString = "";
    //포멧적용 될 temp Date

    for(i=0; i<data.length; i++) {
        if(i==3){
        htmlString += "<div id=\"reply_hidden\" style=\"display:none;\">";
        }
        htmlString += "<div class=\"mgt9 clearfix\">";
        htmlString += "<div class=\"floatl\"><img src=\""+PROFILE_DOWNLOAD_URL+"?userId="+data[i].registerId+"&mode=small\" alt=\"\" class=\"border_pic\" /></div>";
        htmlString += "<div class=\"floatl mgl10 box_comment pos_r\">";
        if(LOGIN_USER_ID == data[i].registerId){
        htmlString += "<a href=\"#\"><img src=\""+IMAGE_SERVER+"/img/common/mygallery/btn_x4.gif\" class=\"x4\" onclick=\"deleteBlogGuestBook('"+data[i].guestBookId+"');\" alt=\"close\" /></a>";
        }
        htmlString += "<p class=\"clearl pab5\">";
        htmlString += "<span class=\"divType3\"><a href=\"#\">"+data[i].registerName+"</a></span><span class=\"graya9 palr5\">|</span>";
        htmlString += "<span id=\"registerDateSpan_"+i+"\"></span>";
        htmlString += "</p>";
        htmlString += "<p class=\"clearl graya9\">"+nv.Str.replaceAll(data[i].contents ,"\n", "<br>\n")+"</p>";
        htmlString += "</div>";
        htmlString += "</div>";
        if(i == 2 && data.length > 3) {
        htmlString += "<p class=\"btn\"><a href=\"#reply_list\" onclick=\"Allview('"+IMAGE_SERVER+"', 'reply_hidden','allveiw_icon');\"><img src=\""+IMAGE_SERVER+"/img/common/common/btn_allview_off.gif\" id=\"allveiw_icon\" alt=\"모두보기\" /></a></p>";
        }
    }
    if(data.length > 3) {
    	htmlString += "<div>";
    }
    guestBookListDiv.innerHTML = htmlString;
    
    //registerDateSpan_i 에 포맷 데이트를 표시 한다
    for(i=0; i<data.length; i++) {
        //데이터 포멧 dwr 호출
        DateDWR.getMakeDateWithIndex(i, data[i].registerDate, "yyyy.MM.dd (HH:ss a)" , getMakeDateCallbackNew); 
    }
}
/**
 * DateDWR.getMakeDateWithIndex의 콜백 함수 로서 리턴 값을 해당 날짜 span에 넣어준다
 */
function getMakeDateCallback(data){
    nv.$("registerDateSpan_"+data.index).innerHTML = data.dataFormat;
}

/**
 * DateDWR.getMakeDateWithIndex의 콜백 함수 로서 리턴 값을 해당 날짜 span에 넣어준다
 */
function getMakeDateCallbackNew(data){
	var orgDataFormat = ""+data.dataFormat;
	var newDataType = orgDataFormat.substring(0,orgDataFormat.indexOf("(")-1); 
		newDataType += "<span class=\"graya9\">";
		newDataType += orgDataFormat.substring(orgDataFormat.indexOf("("), orgDataFormat.length);
		newDataType += "</span>";

    nv.$("registerDateSpan_"+data.index).innerHTML = newDataType;
}

/**
 * 방명록을 삭제한다
 */ 
function deleteBlogGuestBook(guestBookId){
    globalCommon.alertScriptConfirm(COLLABORATE_MESSAGE_ALERT_GUESTBOOK_DELETE, "delete", "javascript:deleteBlogGuestBookProc("+guestBookId+");", "javascript:hiddenAlert();");
}

/**
 * 방명록 삭제를 실제적으로 처리하는 스크립트 함수
 */
function deleteBlogGuestBookProc(guestBookId){
    BlogDWR.deleteBlogGuestBook(guestBookId, deleteBlogGuestBookCallBack);
} 

function deleteBlogGuestBookCallBack(data){
	initGuestBookList();
    nv.LBox.off();    
}

function areYouSignIn(returnUrl){
    globalCommon.alertScriptConfirm(COLLABORATE_MESSAGE_ALERT_LOGIN, "signin", "javascript:goSignIn('" + returnUrl + "');", "javascript:goRegister();", "register");
    return;
}
/*
 * ssl 서버로 못가므로 사용 못함
function goSignIn(returnUrl){
	window.location.href="/common/myprofile/member/signForm.do?returnUrl=" + returnUrl;
}
function goRegister(){
	window.location.href="/common/myprofile/member/selectForm.do";
}
*/
function hiddenAlert(){
    nv.LBox.off();
}
/****************************************************************************************
 *************************** collaborate main DWR START**********************************
 ****************************************************************************************/
 /**
  * 페이지 1번째 호출 함수
  * 파라메팅을 셋팅 하여 getTeamBlogLogSearchList (컨텐츠 목록을 조회하는 함수 호출)
  */
function getPageHtml() {
    
        var pageScript = nv.$("pageScript").value;
        var listLines = nv.$("listLines").value;
        var listPages = nv.$("listPages").value;
        var blogId = nv.$("blogId").value;       
        var orderType = nv.$("orderType").value;      
        var align = nv.$("align").value;       
        var searchType = nv.$("searchType").value;        
        var searchWord = nv.$("eventSearchWord").value;     
        var totalCount = nv.$("totalCount").value;
        var curPage = 1;
        nv.$("curPage").value = curPage;
        
        //contents 목록 및 전체 count를 조회한다
        getTeamBlogLogSearchList(blogId, curPage, orderType, align, searchType, searchWord);

    }

/**
 * 페이지 2번재 호출 함수 -- 실질적으로 목록과 페이징 네비게이션을 만들어 줄때 사용하는 함수
 * DWR을 호출하여 조회 목록 및 totalCount를 조회한다
 */
function getTeamBlogLogSearchList(blogId, curPage, orderType, align, searchType, searchWord){
    nv.$("blogId").value = blogId;
    nv.$("curPage").value = curPage;
    nv.$("orderType").value = orderType;
    nv.$("align").value = align;
    nv.$("searchType").value = searchType;
    nv.$("eventSearchWord").value = searchWord;
    
    //검색어가 없을 경우 검색 결과 항목 보이지 않도록 수정
/*    
    if(searchWord == ""){
        nv.$("searResultP").style.display = "none";
    }else {
        nv.$("searResultP").style.display = "";
    }
    //검색어 검색결과 항목에 표시 되도록 수정
    nv.$("searchWordSpan").innerHTML = searchWord;    
*/    
    BlogDWR.getTeamBlogLogSearchList(blogId, curPage, orderType, align, searchType, searchWord, getTeamBlogLogSearchListCallback);
}   
    
/**
 * 페이지 2번재 호출 함수의 callback 함수
 * DWR로 조회된 totalCount 와 검색 조건을 페이징HTML을 생성해주는 PaggingDWR.getPageHtmlScriptByCommunityCount을 호출 하고,
 * data.list[i]를 루프를 돌려 contents 목록을 만들어준다
 */
function getTeamBlogLogSearchListCallback(data){
    //해당 html이 들어갈 객체
    var collaborateLogSearchUl = nv.$("collaborateLogSearchUl");

    //조회된 totalcount 를 히든값에 담는다
    nv.$('totalCount').value = data.totalCount;
    //조회된 totalCount 를 spanDiv에 그린다
    //nv.$('totalCountSpanValue').innerHTML = data.totalCount;
    
    //페이지 네비게이션 검색 조건 셋팅
    var totalCount = data.totalCount;
    var pageScript = nv.$("pageScript").value;
    var listLines = nv.$("listLines").value;
    var listPages = nv.$("listPages").value;
    var curPage = nv.$("curPage").value;
    //페이징 네비게이션 HTML 생성하는 PaggingDWR.getPageHtmlScriptByCommunityCount 호출 callback: setPagehtml = 페이징 네이게이션을 화면에 그려준다
    PaggingDWR.getPageHtmlScriptByCommunityCountNew(pageScript, curPage,listLines, listPages,totalCount, setPageHtml);
    
    //0보다 클경우만 루프를 돌려 contents 목록을 생성
    var htmlString = "";
    if(data.totalCount > 0) {             
        for(i=0; i<data.list.length; i++) {
        	if(i%5 == 4) {
        	htmlString += "<li class='last'>";
        	} else {
        		htmlString += "<li>";
        	}
        	htmlString += "	<div class='upkind'>";
        	if(data.list[i].wifiFg == 'Y') {
        	htmlString += "		<img src='" + IMAGE_SERVER + "/img/common/common/wifi.gif' alt='wi-fi' />";
        	}
        	if(data.list[i].gpsFg == 'Y') {
        	htmlString += "		<img src='" + IMAGE_SERVER + "/img/common/common/gps.gif' alt='gps' />";
        	}
        	htmlString += "	</div>";
        	htmlString += "	<div>";
        	if(data.list[i].bestYn == PICK_LOG) {   
        	htmlString += "		<img src='" + IMAGE_SERVER + "/img/common/common/pick.png' alt='Pick' class='pkind forpng' />";
        	}
        	htmlString += "		<table class='notable'>";
        	htmlString += "			<tr>";
        	htmlString += "				<td><a href='"+ WEB_SERVER + getTeamBlogUrl(data.list[i].blogId, data.list[i].logId, COLLABORATE_LEVEL) +"'><img src='"+IMAGE_DOWNLOAD_URL+"?attachmentId="+data.list[i].attachmentId+"&type="+THUMBNAIL_IMAGE_PHOTO_8+"' alt='' /></a></td>";
        	htmlString += "			</tr>";
        	htmlString += "		</table>";
        	htmlString += "	</div>";
        	htmlString += "	<dl>";
        	htmlString += "		<dt><a href='"+ WEB_SERVER + getTeamBlogUrl(data.list[i].blogId, data.list[i].logId, COLLABORATE_LEVEL) +"'>"+nv.Str.cutString(data.list[i].title,10,'...')+" <span>["+ data.list[i].commentCount +"]</span></a></dt>";
        	htmlString += "		<dd>";
        	htmlString += "			<p><span><a href='#.' onclick='javascript:showProfile(\"left\",\""+data.list[i].registerId+"\", event);'>"+nv.Str.cutString(data.list[i].registerName,10,'...')+"</a></span>";
        	if(data.list[i].imageLogerType == 'Y') {
        	htmlString += "			<img src='" + IMAGE_SERVER + "/img/common/common/btn_imagelogger.gif' alt='image-logger' />"
        	}
        	if(data.list[i].winnerType == 'Y') {
        	htmlString += "			<img src='" + IMAGE_SERVER + "/img/common/common/btn_winner.gif' alt='Winner' /></p>";
        	}
        	htmlString += "		</dd>";
        	htmlString += "	</dl>";
        	htmlString += "</li>";
        	
/*        	
            htmlString += "<li>";
            htmlString += "    <a class=\"dp_b\" href=\""+ WEB_SERVER + getTeamBlogUrl(data.list[i].blogId, data.list[i].logId, COLLABORATE_LEVEL) +"\">"; 
                    //pick 일 경우
            if(data.list[i].bestYn == PICK_LOG){        
            htmlString += "    <img class=\"best\" src=\""+ IMAGE_SERVER +"/img/community/collaborate/icon_pick.gif\" alt=\"\" width=\"40\" height=\"40\" />";
            }
            htmlString += "    <img src=\""+IMAGE_DOWNLOAD_URL+"?attachmentId="+data.list[i].attachmentId+"&type="+THUMBNAIL_IMAGE_PHOTO_6+"\" width=\"75\" height=\"75\" alt=\"\"></img>";   
            htmlString += "</a>";
            htmlString += "<p>";            
            htmlString += "    <a class=\"ln_h_14\" href=\""+ WEB_SERVER + getTeamBlogUrl(data.list[i].blogId, data.list[i].logId, COLLABORATE_LEVEL) +"\">"; 
            htmlString +=           nv.Str.cutString(data.list[i].title,10,'...'); 
            htmlString += "    </a>"
            htmlString += "    <span class=\"hit2\">[" + data.list[i].commentCount + "]</span>";
            //newContents 이미지 삽입될 span
            htmlString += "    <span id=\"newContentImg_"+i+"\">";
            htmlString += "    </span>";
            htmlString += "    <a href=\"#\" onclick=\"javascript:showProfile('left','"+data.list[i].registerId+"', event); return false;\"><span class=\"name\">"
            htmlString +=       nv.Str.cutString(data.list[i].registerName,10,'...');
            htmlString += "    </span></a>";
            htmlString += "</p>";            
            htmlString += "</li>";
*/
        }
        //registerDate와 현재일 자를 비교하여 contents 에 new 이미지를 그린다
/*
        for(i=0; i<data.list.length; i++) {
            //데이터 포멧 dwr 호출
            DateDWR.getMakeDateWithIndex(i, data.list[i].registerDate, "MMM dd, yyyy HH:ss" , getMakeDateAndWriteNewImgCallback); 
        } 
*/        
    }
    /*
    else {
        htmlString += "<h3><span>"
        htmlString += COLLABORATE_MESSAGE_TEXT_NORESULT
        htmlString += "</span></h3><br />"
    }
    */
    collaborateLogSearchUl.innerHTML = htmlString;  
}

/**
 * DateDWR.getMakeDateWithIndex의 콜백 함수 로서 리턴 값을 해당 날짜를 비교 하여 new 이미지를 화면에 보여준다
 */
function getMakeDateAndWriteNewImgCallback(data){
    if(data.dataSapce <= IS_NEW_PERIOD){
        nv.$("newContentImg_"+data.index).innerHTML =  "<img src=\"" + IMAGE_SERVER + "/img/community/collaborate/icon_new.gif\" alt=\"\" width=\"12\" height=\"11\" />";
    }
}

/**
 * 조회된 collaborate를 Sorting 한다
 */
function doSorting(orderType){
    nv.$('orderType').value = orderType; 
    var curPage = 1;
    pageScript(curPage);    
}
/**
 * PaggingDWR.getPageHtmlScriptByCommunityCount 의 callback 함수로써 페이지 네비게이션을 화면에 그려준다
 */
function setPageHtml(data){
    var pagesObj = nv.$("pages");
    pagesObj.innerHTML = data;   
}
/**
 * //페이지 네비게이션의 페이지 번호 클릭시 호출 curPage 번호만 조건으로 받고 나머지 조건은 그대로 조회하여 넘겨줌
 */
function pageScript(curPage){
    
    var pageScript = nv.$("pageScript").value;
    var listLines = nv.$("listLines").value;
    var listPages = nv.$("listPages").value;
    var blogId = nv.$("blogId").value;      
    var orderType = nv.$("orderType").value;      
    var align = nv.$("align").value;          
    var searchType = nv.$("searchType").value;      
    var searchWord = nv.$("searchWord").value;      
    var totalCount = nv.$("totalCount").value;
    
    nv.$("curPage").value = curPage;
    //DWR을 호출하여 조회 목록 및 totalCount를 조회한다
    getTeamBlogLogSearchList(blogId, curPage, orderType, align, searchType, searchWord);
        
}   

/**
 * CURRENT EVENT GALLERY 에서 버튼 클릭시 GO 이미지 URL HREF 변경
 */    
function changeGoImageHref(blogId){
    var currentEventGoLink = nv.$("currentEventGoLink");
    currentEventGoLink.href = WEB_SERVER + getTeamBlogUrl(blogId, 0, COLLABORATE_LEVEL);
}

/****************************************************************************************
 *************************** collaborate main DWR END************************************
 ****************************************************************************************/
function collaborateUrl(blogId){
    
    if(g_check ==false){
        location.href = getTeamBlogUrl(blogId, 0, COLLABORATE_LEVEL);
        
    }else{
        location.href = getTeamBlogUrl(g_blogId, 0, COLLABORATE_LEVEL);
    }

}
