﻿/*********************************************************
파 일 명 : search.js
개    요 : ucCommonTop GNB 검색 스크립트
종속파일 : 
작 성 자 : 박재은
수정일자 : 2010-03-30
*********************************************************/
var perfList = "";
var valPerfid = "";
var valSearchType = "";
var valSearchString = "";

var arrPerfid=[];
var arrSearchType=[];
var arrSearchString=[];

var curCursorPosFirst;
var curCursorPos;
var passCursorPos;
var totalKeywordCount;

//검색어 Encode
function SearchURLEncode(sStr) {
    return escape(sStr).replace(/\+/g, '%2C').replace(/\"/g,'%22').replace(/\'/g, '%27');
}

//검색 입력박스 클릭
function FindTxtHide()
{
    var objFindTxt = document.getElementById("FindTxt");
    var objtxtSearText = document.getElementById("txtSearText");
    
    if(objFindTxt.style.display == "block"){
        objFindTxt.style.display = "none";
        objtxtSearText.focus();
    }    
}
 
function goSearchPerfReal(objvalue)
{
    var vTmptxtSearText = "";

    var objDivTopPerf = document.getElementById("DivTopPerf");
    var objPerfac_div = document.getElementById("Perfac_div");
    
    if(objvalue.length > 0)
    {
        vTmptxtSearText = objvalue;
        vTmptxtSearText = vTmptxtSearText.replace(" ", "");
	    
        if(vTmptxtSearText != "")
        {
            GetPerfSearchReal(objvalue);
        }
        else
        {	
            objPerfac_div.style.display = "none";
            objDivTopPerf.innerHTML = "";
        }
    }
    else
    {	 
        objPerfac_div.style.display = "none";
        objDivTopPerf.innerHTML = "";
    }
}

function SearchTrim(str){
    //정규 표현식을 사용하여 화이트스페이스를 빈문자로 전환
    str = str.replace(/^\s*/,'').replace(/\s*$/, ''); 
    return str; //변환한 스트링을 리턴.
} 

function GetPerfSearchReal(SearText)
{
    var response;
    var SearType = "";
    perfList = "";
    
    var objhidSearchType = document.getElementById("hidSearchType");
    SearType = objhidSearchType.value;    
    
    if(valPerfid != "")
    {
        valPerfid = "";
        valSearchType = "";
        valSearchString = "";
    }
    
    SearText = SearchTrim(SearText); 
    if(SearText != "")
    {
        Search_Search_Event.SalePerfSearch(SearType, SearText, SalePerfSearch_RollBack);
    }
}

function SalePerfSearch_RollBack(response)
{    
    var objDivTopPerf = document.getElementById("DivTopPerf");
    var objPerfac_div = document.getElementById("Perfac_div");
    
    objDivTopPerf.innerHTML = "";
    totalKeywordCount = 0;
    curCursorPosFirst = "1";
    
	if(response.value != null)
	{   
        if(response.value.indexOf("$$") > 0)
        {        			
	        perfList = "<ul>";
	        var Cols = response.value.split("$$");
	        for(var i=0;i< Cols.length;i++){
		        if(Cols[i].indexOf("$") > 0){
			        var Rows = Cols[i].split("$");
			        var vTitle = "";
			        vTitle = Rows[1];
			        
			        if(vTitle.length > 20)
			        {
			            vTitle = vTitle.substring(0,20) + "..";
			        }
			        
			        arrPerfid[i] = Rows[0];
			        arrSearchType[i] = Rows[2];
			        arrSearchString[i] = Rows[1];			        
					totalKeywordCount = totalKeywordCount+1;
					perfList += "<li id=\"f"+i+"\" onMouseOver=\"javascript:onMouseOverKeyword('"+i+"');\" onmousedown=\"javascript:onMouseDownKeyword('"+i+"');\">"+vTitle+"</li>";
		        }
	        }
	        perfList += "</ul>";
	        objDivTopPerf.innerHTML = perfList;		        
	        objPerfac_div.style.display = "block";
	        
	        curCursorPos = 0;
        }
        else
        {
	        objPerfac_div.style.display = "none";		        
	        objDivTopPerf.innerHTML = "";
        }
	}
	else
	{	
        	objPerfac_div.style.display = "none";
    		objDivTopPerf.innerHTML = "";
	}
}

function SearchReset()
{
    var objDivTopPerf = document.getElementById("DivTopPerf");
    var objPerfac_div = document.getElementById("Perfac_div");
    
    document.getElementById("txtSearText").value = "";
	objPerfac_div.style.display = "none";
    objDivTopPerf.innerHTML = "";
}

//검색 엔터키
function goSearchPerfEnter()
{
    var objFindTxt = document.getElementById("FindTxt");
    var objtxtSearText = document.getElementById("txtSearText");
    var objPerfac_div = document.getElementById("Perfac_div");

    if(objFindTxt.style.display == "block")
    {
        location.href = FindTxtLink;
    }
    else if(objPerfac_div.style.display == "block" && valSearchString != "")
    {
	location.href = "/search/Search_Gate.asp?val="+SearchURLEncode(valSearchString)+"&cate="+valSearchType;
    }
    else
    {
         if(objtxtSearText.value == ''){
            alert('검색어를 입력해 주세요.');            
            objtxtSearText.focus();
            return;
        }
        else
        {   
            //검색 페이지로 이동
            var vSearchType = document.getElementById("hidSearchType").value;
            var vSearchString = document.getElementById("txtSearText").value;
            
            valSearchType = vSearchType;
            valSearchString = SearchURLEncode(vSearchString);
            frmSearchSubmit();            
        }
    }
}

	
//검색 LayerOver
function goPerfOver(Perfid, vSearchType, vSearchString)
{
    valPerfid = Perfid;
    valSearchType = vSearchType;
    valSearchString = vSearchString;
}

function onMouseOverKeyword(f)
{    if(curCursorPos != null)
    {
	onMouseOutKeyword(curCursorPos);
    }

    curCursorPosFirst = "0";
    curCursorPos = f;
    var fObj = "f"+f;
    
    var objf = document.getElementById(fObj);
    objf.className = "cTopPerfOver";

    valPerfid = arrPerfid[f];
    valSearchType = arrSearchType[f];
    valSearchString = arrSearchString[f];
}

function onMouseOutKeyword(f)
{
    var fObj = "f"+f;
    
    var objf = document.getElementById(fObj);
    objf.className = "cTopPerfOut";
}

function onListOn(f)
{
    curCursorPos = f;
    var fObj = "f"+f;
    
    var objf = document.getElementById(fObj);
    objf.className = "cTopPerfOver";

    valPerfid = arrPerfid[f];
    valSearchType = arrSearchType[f];
    valSearchString = arrSearchString[f];
}

function onListOut(f)
{
    var fObj = "f"+f;
    
    var objf = document.getElementById(fObj);
    objf.className = "cTopPerfOut";
}


function onMouseDownKeyword()
{
    document.getElementById("txtSearText").value = valSearchString;   
    goPerfPage(valPerfid, valSearchType, valSearchString);
}

//검색 페이지로 이동
function goPerfPage(Perfid, vSearchType, vSearchString)
{    
	vSearchString = SearchURLEncode(vSearchString);
    if(vSearchType == "1") // 통합검색
    {
        location.href = "/search/Search_Gate.asp?val="+vSearchString+"&cate="+vSearchType;
    }
    else if(vSearchType == "4") // 통합검색 (극장 -> 통합검색> 극장 탭)
    {
        location.href = "/search/Search_Gate.asp?val="+vSearchString+"&cate="+vSearchType;
    }
    else if(vSearchType == "2") // 영화정보상세
    {
        location.href = "/movie/Movie_View_Default.aspx?M_ID="+Perfid;
    }
    else if(vSearchType == "3") // 영화인정보
    {
        location.href = "/MOVIE/Movie_Person_Detail.aspx?PER_ID="+Perfid;
    }
    else if(vSearchType == "5") // 기사
    {
        location.href = "/Community/Magazine/Magazine_view.aspx?SECTION_CD=CONATT150&OBJ_ID="+Perfid;
    }
    else if(vSearchType == "6") // 이벤트
    {
        location.href = "/Event/Event_Detail.aspx?Event_ID="+Perfid;
    }
    
    return;    
}

//검색 페이지로 이동
function frmSearchSubmit()
{
    location.href = "/search/Search_Gate.asp?val="+SearchURLEncode(valSearchString)+"&cate="+valSearchType;
    return;    
}

function SearchTypeSelect(value)
{
    var objSearchType = document.getElementById("SearchType");
    var objhidSearchType = document.getElementById("hidSearchType");

    for(var i=0;i<objSearchType.length;i++)
    {
        if(objSearchType.selectedIndex == i)
        {
          objhidSearchType.value = objSearchType.options[i].value;
          break;
        }
    }
}

$(document).ready(function() {
    $("#txtSearText").keyup(function(event) {
		TxtSearchKeyUp(event);
	});
	$("#txtSearText").attr("autocomplete", "off");
});


function TxtSearchKeyUp(event) {

    var objPerfac_div = document.getElementById("Perfac_div");

    if (event.keyCode == 13) {
        // Enter 키
    	//검색 페이지로 이동
        var vSearchType = $("#hidSearchType").attr("value");
        var vSearchString = $("#txtSearText").attr("value");

	valSearchType = vSearchType;
	valSearchString = vSearchString;

        location.href = "/search/Search_Gate.asp?val="+SearchURLEncode(valSearchString)+"&cate="+vSearchType;
    }
    else if (event.keyCode == 38) {
        // 위 방향 키
        if(objPerfac_div.style.display == "block")
        {  	
            if(curCursorPos > 0)
            {		
                var PerCursorPos = 0
                PerCursorPos = parseInt(curCursorPos) - 1;

                onListOut(curCursorPos);
                onListOn(PerCursorPos);
            } 
        }
    }
    else if (event.keyCode == 40) {
        // 아래 방향 키
        if(objPerfac_div.style.display == "block")
        {   
            if(curCursorPosFirst == "1")
            {
                 onListOn(curCursorPos);
                curCursorPosFirst = "0";
            }
            else
            {
                if(curCursorPos < totalKeywordCount-1)
                {     
                    var NextCursorPos = 0
                    NextCursorPos = parseInt(curCursorPos) + 1;
                    onListOut(curCursorPos);
                    onListOn(NextCursorPos);
                }
            }
        }
    }
    else
    {	
        var SearData = $("#txtSearText").attr("value");
	//alert(SearData);
		//$("#txtSearText").focus();
		//$("#txtSearText").autocomplete(SearData);	
		goSearchPerfReal($("#txtSearText").attr("value"));
    }
}
