
/* 관련 검색을 위한 전역변수 */
var LimitRelCnt = 20;
var pageN_rel = 1;
var rel_idx = 0;
var rel_cnt = 0;
var lastQuery_rel = "";

//relation xml url
var ServerSrc_rel_split = "/service/dic/split.do";
var ServerSrc_rel = "/service/relword.do";

//var ServerSrc_rel_split = "http://star.kisti.re.kr/apis/service/search/dic/split";
//var ServerSrc_rel = "http://star.kisti.re.kr/apis/service/search/relword";
//xsl url
var urlXSL_rel = "/totalsearch/relation_xsl/relation.xsl";  //관련검색


/**
 * 관련 검색 결과
 * 초기 관련 결과 리스트 view
 */
function relation_result(rel_keyword) {

  rel_idx = 0;

  var query = rel_keyword;
  var param = '&query='+ query;
  sendRequest(validRel_word, param,'GET',ServerSrc_rel_split,true,false);

}


/**
* 유효한 관련 단어 찾기
* relation_result call back
*/
function validRel_word(request) {

  if(request.readyState != 4 || request.status != 200)
  return;

  var xmlDoc = request.responseXml;
  var resultList = xmlDoc.selectNodes("/Result/Entry");
  rel_cnt = resultList.length;

  if(rel_cnt < 1) {
    document.getElementById("rel_qry").innerHTML = "";
    document.getElementById("rel_page").innerHTML = "";
    document.getElementById("rel_list").innerHTML="관련검색어가 없습니다.";
    return;
  }

  var msg = "";
  for(var i=0; i<resultList.length; i++) {
    var tmp_str = str_length(resultList[i].text,18);
    msg +=  "<span id='rel"+i+ "' title='" + resultList[i].text + "' onmouseover=\"this.className='ov'\" onmouseout=\"this.className='ot'\" onmousedown='view_relation(\""+resultList[i].text+"\",\"" + i + "\");' style='cursor:hand'>"+ tmp_str +"</span>, ";
  } //for(var i=0; i<resultList.length; i++) {

  msg = msg.slice(0, msg.length - 2);
  document.getElementById("rel_qry").innerHTML = msg;

  view_relation(resultList[0].text, rel_idx);

  xmlDoc = null;

}

/**
관련 결과 보기
*/
function view_relation(rel_keyword, idx){

  var str  = makeLoading();
  document.getElementById("rel_list").innerHTML = str;
//  return;

  var query = rel_keyword;
  if (lastQuery_rel != query) {
    pageN_rel = 1;
  }

  lastQuery_rel = query;
  rel_idx = idx;

  for(var i=0; i < rel_cnt; i++) {
    if (idx == i) {            //선택한 단어
      document.getElementById("rel" + i).style.fontWeight = "bold";
    } else {
      document.getElementById("rel" + i).style.fontWeight = "normal";
    }
  } //for(var i=0; i <= rel_cnt; i++) {

  var start = (pageN_rel-1) * LimitRelCnt + 1;
  var param = '&query=' + query + "&start=" + start + "&results=" + LimitRelCnt;
//  alert(param);
  sendRequest(viewRelList,param,'GET',ServerSrc_rel,true,false);

}

function viewRelList(request) {
  if(request.readyState != 4 || request.status != 200)
	  return;


  var xmlDoc = request.responseXml;
  var xslDoc = new ActiveXObject("MSXML.DOMDocument");
  xslDoc.async = false;



  var tList = xmlDoc.selectNodes("/Result/Translation/Term");
  var pList = xmlDoc.selectNodes("/Result/PerfectSynonym/Term");
  var sList = xmlDoc.selectNodes("/Result/SimilarSynonym/Term");
  var rList = xmlDoc.selectNodes("/Result/Related/Term");
  var cList = xmlDoc.selectNodes("/Result/Child/Term");
  var paList = xmlDoc.selectNodes("/Result/Parent/Term");
  var siList = xmlDoc.selectNodes("/Result/Sibling/Term");

  var relListCnt = tList.length + pList.length + sList.length + rList.length + cList.length + paList.length + siList.length;

  if(relListCnt < 1) {
    document.getElementById("rel_page").innerHTML = "";
    document.getElementById("rel_list").innerHTML="관련검색어가 없습니다.";
    return;
  }

  xslDoc.load(urlXSL_rel);
  document.getElementById("rel_list").innerHTML = xmlDoc.transformNode(xslDoc);

  var relTotal = xmlDoc.selectSingleNode("/Result/TotalCount");
  var relTotalCnt = relTotal.text;
  var relTotalPage = parseInt((relTotalCnt-1) / LimitRelCnt) + 1;

  var html_str2="";
  var img_root ="/pb/img";


  //prev
  if(pageN_rel == 1) {
    html_str2 += '<img src="'+img_root+'/cloud_prev_off.gif" align="middle" vspace="5" />';
  } else {
    html_str2 += '<img src="'+img_root+'/cloud_prev.gif" align="middle" onmousedown="PrevRel();" vspace="5" alt="prev" style="cursor:pointer"/>';
  }

  //next
  if(pageN_rel < relTotalPage){
    html_str2 += '&nbsp;<img src="'+img_root+'/cloud_next.gif" align="middle" onmousedown="NextRel();" vspace="5" alt="next" style="cursor:pointer"/>';
  } else {
    html_str2 += '&nbsp;<img src="'+img_root+'/cloud_next_off.gif" align="middle" vspace="5" />';
  }
  document.getElementById('rel_page').innerHTML = html_str2;

  xmlDoc = null;
  xslDoc = null;
}

/**
 * 관련단어 재검색
 */
function rel_search(str){
  rel_addQuery(str);
}


function rel_addQuery(str){
  var mouseX = event.clientX + 10;
  //var mouseY = event.clientY + 10 + document.documentElement.scrollTop;
  var mouseY = event.clientY + 10 + document.body.scrollTop;

  document.getElementById('addQry_btn').style.pixelLeft=mouseX - 90;
  document.getElementById('addQry_btn').style.pixelTop=mouseY;
  document.getElementById('addQry_btn').style.display = "block";

  document.getElementById('addQry_btn').style.position='absolute';
  document.getElementById('addQry_btn').style.zIndex='11';

  document.getElementById('addQry_btn').style.backgroundColor = "#DDDDDD";
  document.getElementById('addQry_btn').innerHTML="<span class='text_btn' style='width:80' onmouseover='this.style.background=\"#F5F5F5\"' onmouseout='this.style.background=\"#DDDDDD\"' onclick='rel_reSearch(\""+str+"\")'>재검색</span><br>";
  document.getElementById('addQry_btn').innerHTML+="<span class='text_btn' style='width:80' onmouseover='this.style.background=\"#F5F5F5\"' onmouseout='this.style.background=\"#DDDDDD\"' onclick='rel_addQry(\""+str+"\")'>검색어추가</span><br>";

}

function rel_addQry(str){
  var objTxt = document.getElementById("search_keyword_text");
  objTxt.value += ' ' + str;
  objTxt.focus();
  document.getElementById('addQry_btn').style.display = 'none';
}

function rel_reSearch(str){
  var objTxt = document.getElementById("search_keyword_text");
  objTxt.value = str;
  doSearch();
  document.getElementById('addQry_btn').style.display = 'none';
}

function PrevRel(){
  pageN_rel--;
  view_relation(lastQuery_rel, rel_idx);
}
function NextRel(){
  pageN_rel++;
  view_relation(lastQuery_rel, rel_idx);
}







