﻿
$(function() {        
    var mem_dvTest = $("#Test1");
    var mem_SearchWord = $("input:#txtSearchWord");
    var mem_dvSearchHelper = $("div:#dvSearchHelper");    
    var mem_SmallImg = $("img:#testImg");    
    var mem_MenuOver =  $("#MenuOver");
    var mem_UccOverWrap = $(".uccOverWrap");    
    var mem_GalleryMenu = $("#galleryMenu");    
    var mem_MovieMenu = $("#movieMenu");    
    var mem_UccTitle = $(".uccTit");        
    var FrameHeight = 0;        
    
    var spTag = $("#spanTag");        
    var mem_spTag1 = $("#spTag1"); // 플레이팁      (2)
    var mem_spTag2 = $("#spTag2"); // 질문/답변     (5)
    var mem_spTag3 = $("#spTag3"); // Gallery       (3)
    var mem_spTag4 = $("#spTag4"); // UCC           (6)
    var mem_spTag5 = $("#spTag5"); // 공지사항      (7)
    var mem_spTag6 = $("#spTag6"); // FAQ           (8)
    var mem_spTag7 = $("#spTag7"); // 업데이트      (4)
    var mem_spEmpty = $("#spEmpty"); // No data
    var mem_noSearch_word = $("#noSearch_word"); // 검색결과 없는 페이지에서 검색값    
    
    var ExistCategoryCount=0;   // 카테고리에 데이터 존재하면 +1 증가처리
    var PreLocalID;
    var PreSearchWord;    
    var PreNowPage = 1;
    var PageUnitNo = 0;
    mem_SearchWord.focus();
    
    SearchProcess(0, 1);    
    
    mem_MenuOver.mouseover(function(){
        if( mem_MenuOver.html() == "U.C.C")
        {
            mem_UccOverWrap.show();        
        }        
    });
        
    
    
    $("#spMenu_0").click(function(){
        SearchProcess(0, 1);        
    });
    $("#spMenu_2").click(function(){
        SearchProcess(2, 1);
    });
//    $("#spMenu_3").click(function(){
//        SearchProcess(3, 1);
//    });
    
    //----UCC-----
    $("#spMenu_3").mouseover(function(){        
        mem_UccOverWrap.show();        
    });    

    // UCC Title 메뉴    
    mem_UccTitle.mouseout(function(){
        mem_UccOverWrap.hide();
    });
    
    mem_UccTitle.mousemove(function(){
        mem_UccOverWrap.show();
    });
    
    mem_UccTitle.mouseover(function(){        
        mem_UccOverWrap.show();
        //SearchProcess(3, 1);
    });
    
    
    // Gallery 메뉴
    mem_GalleryMenu.click(function(){
        mem_GalleryMenu.removeClass("over");
        mem_UccOverWrap.hide();
        SearchProcess(3, 1);
    });
    
    mem_GalleryMenu.mouseover(function(){
        mem_GalleryMenu.addClass("over");
        mem_UccOverWrap.show();
    });
    
    mem_GalleryMenu.mousemove(function(){
        mem_GalleryMenu.addClass("over");
        mem_UccOverWrap.show();
    });    
    
    mem_GalleryMenu.mouseout(function(){
        mem_GalleryMenu.removeClass("over");
        mem_UccOverWrap.hide();
    });    

    
    // Movie 메뉴
    mem_MovieMenu.click(function(){
        mem_MovieMenu.removeClass("over");
        mem_UccOverWrap.hide();
        SearchProcess(6, 1);
    });
    
    mem_MovieMenu.mouseover(function(){
        mem_MovieMenu.addClass("over");
        mem_UccOverWrap.show();
    });
    
    mem_MovieMenu.mousemove(function(){
        mem_MovieMenu.addClass("over");
        mem_UccOverWrap.show();
    });
    
    mem_MovieMenu.mouseout(function(){
        mem_MovieMenu.removeClass("over");
        mem_UccOverWrap.hide();
    });
    
    
    //------------
    
    $("#spMenu_4").click(function(){
        SearchProcess(4, 1);
    });
    $("#spMenu_5").click(function(){
        SearchProcess(5, 1);
    });
//    $("#spMenu_6").click(function(){
//        SearchProcess(6, 1);
//    });
    $("#spMenu_7").click(function(){
        SearchProcess(7, 1);
    });
    $("#spMenu_8").click(function(){
        SearchProcess(8, 1);
    });    
        
    // 검색버튼        
    $("input:#btnSearch").click(function() {     
        SearchProcess(g_SearchCategory, 1);        
    });
    
    $(".search_result_more").live("click",function() {                             
        //alert($(".search_result_more").attr("value"));             
        SearchProcess($(this).attr("value"), 1);
    });
    
    // 페이징 클릭
    $(".numBox").live("click",function() {                           
        SearchProcess($(this).attr("value"), $(this).html());
    });
    
    // 페이징 Next 클릭
    $(".numNext").live("click",function() {                    
        SearchProcess($(this).attr("value"), (parseInt(((g_Start - 1) / 10)) * 10) + 11);        
    });
    
    // 페이징 Prev 클릭
    $(".numPrev").live("click",function() {                            
        SearchProcess($(this).attr("value"), (parseInt(((g_Start - 1) / 10)) * 10) );
    });
    
    
    var CheckedSearchWord = cleanQuery(mem_SearchWord.val());
    var g_SearchCategory = 0;    
    
    
    
    function SearchProcess(logicalID, nowPage)
    {   
        mem_GalleryMenu.removeClass("over");
        // 카테고리 번호 저장       
        g_SearchCategory = logicalID;                  
        // 특문 걸러내기
        CheckedSearchWord = cleanQuery(mem_SearchWord.val());        
        // 검색 값.
        mem_noSearch_word.html("'"+mem_SearchWord.val()+"'");
        // 메뉴 탭키 변경
        ChangeTabMenu(logicalID);
        // 포커스 맞추기
        mem_SearchWord.focus();
        // 동일한 클릭값 false 처리                                        
        if(PreSearchWord == CheckedSearchWord && PreLocalID == logicalID && PreNowPage == nowPage) 
        {   
            return;            
        }                      
        
        mem_spEmpty.css("display", "none");
        // 빈값 검출         
        if( CheckedSearchWord == "" )
        {
            spTag.html("");
            Tag = "";            
            DeleteData();      
            totalSelectCount = 0;              
            mem_spEmpty.css("display", "block");  
            FrameHeight = 0;                      
            return;
        }
        
        // 검색결과 초기화
        spTag.html("");
        Tag = "";
        DeleteData();
        totalSelectCount = 0;          
        ExistCategoryCount = 0;       
        FrameHeight = 0;       
        
        // 검색어 통계 저장.        
        SaveSearchWord(CheckedSearchWord);        
        
        // 검색 Process
        if( logicalID == 0)
        {            
            Initialize();
        }
        else
        {
            GetSearchByCategory(logicalID, nowPage);
        }        
        
        // 이전 단어 저장
        PreSearchWord = CheckedSearchWord;
        PreLocalID = logicalID;
        // 페이지 번호 저장
        PreNowPage = nowPage;
    }        
    
    function SaveSearchWord(word)
    {
        $.post(
        "/Search/SaveSearchWord",         
        {input: word},
        call_SaveSearchWord,       
        "json"
        );            
    }
    
    function call_SaveSearchWord(data)
    {
        //
    }
    
    function Initialize()
    {   
        $.post(
        "/Search/Initialize",         
        {},
        call_Initialize,       
        "json"
        );            
    }
    
    function call_Initialize(path)
    {       
        for(var i=0; i<path.length; i++)                
        {            
            GetSearchByCategory(path[i].LogicalID, 1);
        }              
    }
    
    
    var g_Start = 1;
    function GetSearchByCategory(LogicalID, start)
    {   
        g_Start = start;
        //var start = 2;    
        var SearchCount = 10;        
        
        
        if( g_SearchCategory == 0)
        {
            SearchCount = 3;
        }        
        start = (start-1) * SearchCount;

	         

        //alert(LogicalID); 
        //sleep(30);
        $.post(
        "/Search/GetSearchHelperData",         
        { input: CheckedSearchWord, category: LogicalID, start : start, printcount : SearchCount },
        call_GetSearchByCategory,       
        "json"
        );        
    }
    
    function DeleteData()
    {
        mem_spTag1.html("");
        mem_spTag2.html("");        
        mem_spTag3.html("");
        mem_spTag4.html("");
        mem_spTag5.html("");
        mem_spTag6.html("");
        mem_spTag7.html("");        
        //mem_spEmpty.html("");        
    }
    
    function IsEmpty()
    {           
        //var emptyTag = "<div class='sub_content_box'><div class='noResult'><dl><dt><span class='noSearch_word'>'결과 없는 검색단어'</span>에 대한 검색결과가 없습니다.</dt><dd><ul><li>- 단어의 철자가 정확한지 확인해 주세요.</li><li>- 검색어의 단어 수를 줄이거나, 다른 검색어로 검색해 보세요.</li><li>- 보다 일반적인 검색어로 다시 검색해 보세요.</li></ul></dd></dl></div><p class='line_h' /><div class='moreSearch'><p><b>원하시는 결과를 찾지 못하셨나요? 더 궁금하신 내용은 아래를 이용해 주세요.</b></p><ul><li><a href='#'>1:1 문의 하기</a></li><li class='bar'><a href='#'>FAQ 확인하기</a></li></ul></div></div>";                    
        //mem_spEmpty.html(emptyTag);
    }
    
    var totalSelectCount = 0;
    
    function call_GetSearchByCategory(data) {          
        //return;

	if(CheckedSearchWord == "9" || CheckedSearchWord == "8")
	{
		alert(data.SearchPath.LogicalID);
	}

        if(data.SearchPath == null || data.SearchPath.LogicalID == 0)
        {
            return;
        }       

	
                
        if( data.BoardList.length == 0 )
        {   
        // 데이터 없을때 선택에 따라 체크
            ExistCategoryCount++;            
            if( g_SearchCategory > 0 )
            {                         
                if( g_SearchCategory == data.SearchPath.LogicalID)
                {
                    mem_spEmpty.css("display", "block");
                }
                //alert(data.SearchPath.LogicalID);   
                
            }
            else if(g_SearchCategory == 0)
            {
                if( ExistCategoryCount == 7 )
                {                    
                    mem_spEmpty.css("display", "block");
                    //try{parent.resizeFrame(parent.document.getElementById("searchFrame"));}catch(e){}
                }
            }
            return;
        }
        else
        {            
            //mem_spEmpty.css("display", "none");
        }
        
        
        var Tag = "";
        // Title
        if( data.SearchPath.LogicalID == 3 || data.SearchPath.LogicalID == 6) //이미지
        {
            var path = "";
            Tag += "<div class='search_imgType'><h5>"+data.SearchPath.LogicalName+"</h5>";            
            for(var i=0; i<data.BoardList.length; i++)
            {   
                path = data.BoardList[i].ImageUrl;  
                if( data.SearchPath.LogicalID == 6)
                {
                    path = data.BoardList[i].ImageUrl.replace("thumb_", "");   
                }
                                
                Tag += "<dl class='search_result_imgType'><dt><img src='"+data.SearchPath.ImageUrl+path+"'/></dt><dd><ul class='imgType_list'><li><a href='"+data.SearchPath.LinkUrl+data.BoardList[i].Url+"' target='cabalsearch'><span class='tit'>"+data.BoardList[i].Title+"</span></a></li><li><span class='date'>"+data.BoardList[i].RegDateString+"</span></li><li class='add' style='height:50px'>"+data.BoardList[i].Content+"</li></ul></dd></dl>";
                totalSelectCount++;
            }	
            Tag += "<p/><p class='line_h2' />";	    
        }
        else //일반게시판
        {
            Tag += "<div class='search_listType'><h5>"+data.SearchPath.LogicalName+"</h5>";
            // 검색내용
            for(var i=0; i<data.BoardList.length; i++)
            {               
                Tag += "<ul class='search_result'><li><a href='"+data.SearchPath.LinkUrl+data.BoardList[i].Url+"' target='cabalsearch'><span class='tit'>"+data.BoardList[i].Title+"</span></a><span class='date'>"+data.BoardList[i].RegDateString+"</span></li>";
                Tag += "<li class='add'>" + data.BoardList[i].Content+"</li></ul>";
                totalSelectCount++;
            }
            Tag += "<p/>";
            
        }
        // 더보기
        if ( g_SearchCategory == 0 )
        {            
            Tag += "<ol class='search_result_more' value='"+data.SearchPath.LogicalID+"' ><li>"+data.SearchPath.LogicalName+ " 더보기</li></ol>";                    
            Tag += "</div><p class='line_h' />";
        }   
        
        // 페이징
        if ( g_SearchCategory > 0 )
        {            
            Tag += Paging(data.SearchPath.LogicalID, data.QueryCount);
            Tag += "<p class='line_h' /></div>";		            	        
        }
        
        //alert(g_SearchCategory + " - " + data.SearchPath.LogicalID);
        if( g_SearchCategory > 0 )
        {
            if( g_SearchCategory == data.SearchPath.LogicalID)
            {
                AttachTag(data.SearchPath.LogicalID, Tag);    
            }
        }
        else 
        {
            AttachTag(data.SearchPath.LogicalID, Tag);
        }
        //if( g_SearchCategory != data.SearchPath.LogicalID)         
        
    }
    
                
    var ddd = $(document.body);                    
    function AttachTag(logicalID, tag)
    {   
        var theFrame = $("#searchFrame", parent.document.body);
        
        switch (logicalID) {
            case 2:           
                    //Tip(플레이팁)     
                    mem_spTag1.html(tag);
                    FrameHeight += mem_spTag1.height();                    
                break;
            case 5:                    
                    //질문/답변
                    mem_spTag2.html(tag);
                    FrameHeight += mem_spTag2.height();                    
                break;
            case 3:
                    //Gallery
                    mem_spTag3.html(tag);         
                    FrameHeight += mem_spTag3.height();                                                 
                break;
            case 6:
                    //동영상
                    mem_spTag4.html(tag);                    
                    FrameHeight += mem_spTag4.height();                    
                break;
            case 7:
                    //공지사항
                    mem_spTag5.html(tag);                   
                    FrameHeight += mem_spTag5.height();                    
                break;
            case 8:            
                    //FAQ
                    mem_spTag6.html(tag);                  
                    FrameHeight += mem_spTag6.height();                    
                break;
            case 4:
                    //업데이트
                    mem_spTag7.html(tag);                   
                    FrameHeight += mem_spTag7.height();                    
                break;
            default:                
                break;  
        } 
        
        theFrame.height(FrameHeight+130);
        
    }
    
    // 페이징
    function Paging (logicalID, queryCount)
    {       
        var tag = "<div class='pagingNum'>";
        
        if(g_Start >=11)
        {
            tag += "<span class='numPrev' value='"+logicalID+"'>|◀</span>";
        }
        
       
        var PageCount = 0;
        try{
            PageCount = (parseInt((queryCount-1)/10)) +1;
        }
        catch(e)
        {
            PageCount = 1
        }            
        
        //for(var j=1; j<=PageCount; j++)
        var CalcPageUnitNo = parseInt(((g_Start - 1) / 10)) * 10;
        var className = "numBox";
        var endCount = parseInt((queryCount /10) +1);
        //alert(queryCount+"/"+endCount);
        for(var j=1+CalcPageUnitNo; j<=10+CalcPageUnitNo; j++)
        {   
            if( endCount < j)
            {
                break;
            }
        
            if( g_Start == j )
            {   
                className = "select";
            }
            else 
            {
                className = "numBox";
            }
            

            
            tag += " <span class=" + className + " value='"+logicalID+"' >"+j+"</span> ";
        }

        if( endCount >= j)
        {
            tag += "<span class='numNext' value='"+logicalID+"' >▶|</span>";
	        tag += "</div>";
	    }
	    
	    return tag;
    }

    // 인텔리전스 이벤트.
    mem_SearchWord.keyup(function(event) {
       if (event.keyCode == 13) {
            //SearchProcess(0, 1);                  
            SearchProcess(g_SearchCategory, 1);        
        }
//       else {
//            EventIntelligence();
//       }
    });   
    
        // 인텔리젼스 상황별 분기 호출
/*        
    function EventIntelligence() {

        var idLength = mem_SearchWord.val().length;

        if (idLength == 0) {
            // Clear data and Hide Layer         
            mem_dvSearchHelper.hide();
            return;
        }
        else if (idLength >= 2) {
            // Search Engine
            mem_dvSearchHelper.show();
            //UpdateMessage(110);
            return;
        }        

        $.post(
        "/Search/GetSearchHelperData",
        { searchword: mem_SearchWord.val() },
        call_SearchHelper_Result,
        "json"
        );
    }
*/    

    function call_SearchHelper_Result(data) {
        //alert(data.result);
        return;
    }
    
    function ChangeTabMenu(logicalID)
    {       
        mem_MenuOver.removeClass();        
        if( logicalID == 0 ) 
        { 
            mem_MenuOver.addClass("srch_tab01_on"); 
            mem_MenuOver.html("전체");
        }
        else if( logicalID == 2 ) 
        { 
            mem_MenuOver.addClass("srch_tab02_on"); 
            mem_MenuOver.html("플레이 팁");
        }
        else if( logicalID == 3 ) 
        { 
            mem_MenuOver.addClass("srch_tab04_on"); 
            mem_MenuOver.html("U.C.C");            
        }
        else if( logicalID == 4 ) 
        { 
            mem_MenuOver.addClass("srch_tab07_on"); 
            mem_MenuOver.html("업데이트");            
        }
        else if( logicalID == 5 ) 
        { 
            mem_MenuOver.addClass("srch_tab03_on"); 
            mem_MenuOver.html("질문/답변");
        }
        else if( logicalID == 6 ) 
        {             
            mem_MenuOver.addClass("srch_tab04_on"); 
            mem_MenuOver.html("U.C.C");            
        }
        else if( logicalID == 7 ) 
        { 
            mem_MenuOver.addClass("srch_tab05_on"); 
            mem_MenuOver.html("공지사항");
        }        
        else if( logicalID == 8 ) 
        { 
            mem_MenuOver.addClass("srch_tab06_on"); 
            mem_MenuOver.html("FAQ");
        }
    }
});

