/**=======================================================================================
*				The APMSOFT Template AJAX SOLUTION License, version 1.0
*			Copyright (c) 2006 김종관(ApmSoft.net). All rights reserved......
*
*=============+================+===========================+=============================+
*    개발자   |     연락처     |          홈페이지         |            Editor           |
*-------------+----------------+---------------------------+-----------------------------+
*    김종관   |  011-726-7046  |   http://www.apmsoft.net  | EditPlus 굴림체 Regular 9pt |
*-------------+----------------+---------------------------+-----------------------------+
* ▣ 사용목적
* = 검색관련
* = UTF-8
* = Ex :7, Opera : 9.10, FF : 2.x
* = update :
-----------------------------------------------------------------------------------------*/

function APM_chketcstr (strValue)
{
	var intErr = 1;
	var retCode = 0;
	var intErr = 0;

	for (var i=0; i<strValue.length; i++)
	{
		var retChar = strValue.substr(i,1).toUpperCase();
		var retCode = retChar.charCodeAt(0);

		retCode = parseInt(retCode);

		switch (retCode){
		case 33: intErr = -1; break;
		case 34: intErr = -1; break;
		case 35: intErr = -1; break;
		case 36: intErr = -1; break;
		case 37: intErr = -1; break;
		case 38: intErr = -1; break;
		case 39: intErr = -1; break;

		case 42: intErr = -1; break;
		case 43: intErr = -1; break;
		case 44: intErr = -1; break;
		//case 46: intErr = -1; break;
		case 47: intErr = -1; break;

		case 58: intErr = -1; break;
		case 59: intErr = -1; break;

		case 60: intErr = -1; break;
		case 61: intErr = -1; break;
		case 62: intErr = -1; break;
		case 63: intErr = -1; break;
		case 64: intErr = -1; break;

		case 91: intErr = -1; break;
		case 93: intErr = -1; break;
		case 94: intErr = -1; break;
		case 96: intErr = -1; break;

		case 123: intErr = -1; break;
		case 125: intErr = -1; break;
		case 126: intErr = -1; break;
		}
	}

	return (intErr);
}

// 풍선도움말
function APM_runKEYBalloon(chkid,params, mode)
{
	new balloon.ApmSoftNet.ALTZ(APM_rankingWordView,chkid,params,250,300, mode ,'default','../..','');
}

function APM_runKEYBalloonHdn()
{
	var balloon = document.getElementById('balloon');
	var balloonarrow = document.getElementById('balloonarrow');

	if(balloon){
		balloon.style.visibility = 'hidden';
		
		if(balloonarrow){
			balloonarrow.style.visibility = 'hidden';
		}
	}
}

// update : 2007-01-24/2007-01-25/2007-02-05
// check form |-------------------------------------->
function APM_checkKeyword(v)
{
	var frm = document.forms['keywordForm'];
	
	if (!v)	{
		var v = frm.elements['q'].value;
	}

	if ( v == ''){
		alert('검색하고자 하는 검색어를 입력하세요!');
		frm.elements['q'].focus();
		return false;
	}
	
	if(v){
		if (APM_chketcstr(v) == -1){
			alert('검색은 특수문자를 사용할 수 없습니다');
			frm.elements['q'].value = '';
			return false;
		}
	}
	
	keystart = 0;

	frm.elements['q'].value = v; //encodeURIComponent(v);
	frm.method = "get";
	frm.submit();
}

// 관련키워드 검색 /--------------------------------------
var keystart = 0;
var keyWorz	= '';
var keyDBArr = '';
var keyChoosev = 0;
var keyDBCnt = 1;
var keyScrollY = 10;


function APM_srhKeyword(evt)
{
	var KeyCode =0;
	var e = evt? evt : window.event;
	if(!e) return;

	if (e.keyCode){
		KeyCode = e.keyCode;
	}else if (typeof(e.which)!= 'undefined'){
		KeyCode = e.which;
	}

	if (KeyCode>0)
	{
		if (KeyCode == 40 || KeyCode == 38)
		{
			keystart = 0;
			if(KeyCode == 40){
				keyChoosev = (keyChoosev<keyDBCnt) ? keyChoosev+1: keyDBCnt;
				document.getElementById('keywordList').scrollTop += keyScrollY;
			}else{
				keyChoosev = (keyChoosev==0) ? 0 : keyChoosev-1;
				document.getElementById('keywordList').scrollTop -= keyScrollY;
			}

			document.getElementById('keywordList').innerHTML = APM_keywordGetParamter();
		}else{
			keystart =1;
			keyChoosev = 0;
		}
	}

	if(keystart==1)
		setTimeout("APM_getKeyword()",500);
}

// 키워드 가져오기 /--
function APM_getKeyword()
{
	if(keystart == 0) return;
	var v = document.forms['keywordForm'].elements['q'].value;
	var dir= document.getElementById('keyPhpPath').value;

	if (!v){
		document.getElementById('keywordList').style.display ='none';
	}else{
		if (APM_chketcstr(v) == -1){
			alert('검색은 특수문자를 사용할 수 없습니다');
			document.forms['keywordForm'].elements['q'].value = '';
			return false;
		}
	}

	if(v != keyWorz){
		keyWorz = v;
		params = 'q='+v;
		new ajax.ApmSoftNet.REQ(dir+'/keyword.php',params, APM_printKeywordRlt,'POST','keywordList','');
	}

	setTimeout("APM_getKeyword()",500);
}

// 키워드 출력 /--
function APM_printKeywordRlt(reqs)
{
	var outhtml= '';
	var xmlDoc = '';
	var xmlDoc = reqs.responseXML;

	var chkcode	= xmlDoc.getElementsByTagName('chkcode').item(0).firstChild.nodeValue;
	var v_contents	= xmlDoc.getElementsByTagName('contents').item(0).firstChild.nodeValue;

	if(chkcode==1){
		document.getElementById('keywordList').style.display ='';

		keyDBArr = v_contents
		outhtml = APM_keywordGetParamter();

		this.printMsg(outhtml);
	}else{
		document.getElementById('keywordList').style.display ='none';
	}
}

// 검색 필드에서 포커스 아웃인지 체크
function APM_keyChkFocus(){	
	document.getElementById('keywordList').style.display ='none';
	keystart = 0;
}

// 검색 키워드 필드 값 청소 /-- ^^
function APM_keyClear(){	
	document.getElementById('q').value= '';
	document.getElementById('keywordList').style.display ='none';
}

// 키워드 데이타 값 처리 /--
function APM_keywordGetParamter()
{
	outhtml = '<div style="background:#C2DBF2;margin-bottom:8px;padding-top:5px;padding-bottom:2px;" align="center">'
	outhtml+= '<strong><font color="#02559D">검색어 자동완성</font></strong>'
	outhtml+= '</div>';

	var kyd = keyDBArr.split('|');
	keyDBCnt = kyd.length;

	for(var kydi=0; kydi<keyDBCnt; kydi++)
	{
		if(kyd[kydi])
		{
			str_arr = kyd[kydi];
			str_pnt = str_arr.split(':');

			if( (keyChoosev-1) == kydi){
				bgcolorv = 'yellow';
				document.forms['keywordForm'].elements['q'].value = str_pnt[0];
			}else{
				bgcolorv = '#ffffff';
			}

			outhtml += "<div style='background-color:"+bgcolorv+"; padding:2px 5px 2px 10px;'><a href='#' onclick=\"javascript:APM_inputKeyword('"+str_pnt[0]+"'); return false;\">"+str_pnt[1]+"</a></div>";
		}
	}

return outhtml;
}

// 키워드 입력하기 /---
function APM_inputKeyword(v)
{
	document.forms['keywordForm'].elements['q'].value = v;
	document.getElementById('keywordList').style.display ='none';
	keystart = 0;

	// 검색 바로이동
	APM_checkKeyword(v,'');
}

/** -------------------------------------------
* 랭킹 키워드 /--
* 
<script type="text/javascript"> 
	var rankFontColor = '#000000';
</script> 
<div id="keywordranking" style="float:left; margin-left:3px; width:100px; text-align:left; font-weight:bold; overflow:hidden; height:20px;"></div> 
<div id="keyRankView" style="float:left;"><a href="#" onClick="APM_runKEYBalloon('keyRankView', '', 'keyRanking'); return false;">▼</a></div> 
<div style="clear:left"></div>

<script language="javascript"> 
APM_keywordRanking(10);
</script>
----------------------------------------------*/
var krankTcount		= 0;	// 랭킹 키워드 총갯수
var krankSlideTop	= 0;	// 스크롤 TOP 시작 위치
var krankScrollNum	= 2;	// 스크롤 간격
var krankSlideCnt	= 0;	// 현재 랭킹 출력 순번
var krankViewHtml	= '';	// 실시간 인기 검색어 펼침 화면

function APM_keywordRanking(ea){
	var dir= document.getElementById('keyPhpPath').value;
	new ajax.ApmSoftNet.REQ(dir+'/ranking.php','ea='+ea, APM_printKeywordRankRlt,'POST','','');
}

/**
* 랭킹 키워드 출력 /--
* font class name = yellow
*/
function APM_printKeywordRankRlt(reqs)
{
	var pntFontColor = (rankFontColor)? rankFontColor : '#000000';
	var outhtml	= '';
	var xmlDoc	= '';
	var xmlDoc	= reqs.responseXML;

	var v_contents	= xmlDoc.getElementsByTagName('contents').item(0).firstChild.nodeValue;

	// loop
	if(v_contents)
	{
		var rank = v_contents.split('|');
		krankTcount = rank.length;

		krankViewHtml += '<table width="176" border="0" cellpadding="0" cellspacing="0">'

		var x=1;
		for(var j=0; j<krankTcount; j++)
		{
			if(rank[j])
			{
				outhtml += "<div style='height:20px; cursor:hand' onclick='javascript:APM_checkKeyword(\""+rank[j]+"\"); return false;'>"
				outhtml += '<table border="0" cellspacing="0" cellpadding="0">'
				outhtml += '<tr>'
				outhtml += '<td onclick="javascript:APM_checkKeyword(\''+rank[j]+'\'); return false;"><b><font color="'+pntFontColor+'">'+rank[j]+'</font></b></td>'
				//outhtml += '<td width="38"><img src="../head/img/keyword/top_star03.gif" class="middle"  />15</td>'
				outhtml += '</tr>'
				outhtml += '</table>'
				outhtml += '</div>';

				// 펼침화면
				krankViewHtml += '<tr>'
				krankViewHtml += "<td onclick='javascript:APM_checkKeyword(\""+rank[j]+"\"); return false;' style='cursor:hand'>"
				krankViewHtml += rank[j]
				krankViewHtml += '</td>'
				//krankViewHtml += '<td width="38"><img src="../head/img/keyword/top_star03.gif" class="middle"  />1329</td>'
				krankViewHtml += '</tr>'

			x++;
			}
		}

		krankViewHtml += '</table>';

		//this.printMsg(outhtml);
		var rObj = document.getElementById('keywordranking');
		if(rObj){ rObj.innerHTML = outhtml; }

		APM_rankingKeywordSlideShow();
	}
}

function APM_rankingKeywordSlideShow()
{
	var obj = document.getElementById('keywordranking');
	if(obj){
		obj.scrollTop = (krankSlideTop==0) ? (krankSlideTop-3) : (krankSlideTop-2);
		
		if( krankSlideTop==0 || (krankSlideTop%20==0))
		{
			// effect
			if (krankSlideCnt==0 || krankSlideCnt==5){
				effectOpacityInit('keywordranking');
				runUpOpacity();
			}
			
			krankSlideCnt += 1;
	
			setTimeout("APM_rankingAutoNum()",1500);
		}else{
			setTimeout("APM_rankingAutoNum()",100);
		}
	}
}

function APM_rankingAutoNum()
{
	if ( (krankTcount-1) == krankSlideCnt){
		krankSlideTop = 0;
		krankSlideCnt = 0;
	}else{
		krankSlideTop += krankScrollNum;
		//alert(krankSlideTop);
	}

	APM_rankingKeywordSlideShow();
}

function APM_rankingWordView()
{
	viewhtml = '';

	// 실시간 인기 검색어 펼침 화면
	viewhtml += '<div style="float:left;border:1px #E4E4E4 solid;width:208px;padding:4px;background-color:#EEF7FF;">'
	viewhtml += '<div style="background-color:#FFFFFF;padding:4px;">'
	viewhtml += '<div class="gray11" align="center" style="height:17px;background-color:#D1E9FF;color:#0074D7;padding-top:5px;"><b>실시간 인기 1위~10위</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<a href="#" onclick="APM_runKEYBalloonHdn(); return false;">닫기</a></div>'
	viewhtml += '<div style="padding:12px;">'
	viewhtml += krankViewHtml;
	viewhtml += '</div>'
	viewhtml += '</div>'
	viewhtml += '</div>';
	
	document.getElementById('ballooncontents').innerHTML = viewhtml;
}

/** ----------------------------
* 키워드 :  유의어 관련 출력 /--

# 유의어 검색 및 랭킹등록 /--
$apmKeyword->kywrdInit($_TRIM['q']);
$apmKeyword->findSynonym($cfgDB);
$cnt_['synonym'] = $apmKeyword->key_synonym;
--------------------------------*/
function APM_printSynonym(v, divid)
{
	divid = (!divid) ? 'keywordSynonym' : divid;
	outhtml = '<dl style="background:#ffffff;padding:4px;"class="gray11d">'

	if (v)
	{
		var synonym = v.split(',');
		for(var j=0; j<synonym.length; j++){
			if(synonym[j]){
				outhtml += "<dd><a href='#' onclick=\"javascript:APM_checkKeyword('"+synonym[j]+"',''); return false;\">"+synonym[j]+'</a></dd>';
			}
		}
	}else{
		outhtml += '관련유사어가 없습니다.';
	}

	outhtml += '</dl>';
	document.getElementById(divid).innerHTML = outhtml;
}