//설정값
var dq_searchForm = document.suggestForm;
var dq_searchTextbox = dq_searchForm.searchTerm;
var dq_resultDivID = "dqAuto"; //자동완성레이어 ID
var dq_hStartTag = ""; //하이라이팅 시작 테그
var dq_hEndTag = ""; //하이라이팅 끝 테그
var dq_bgColor = ""; //선택빽그라운드색
var dq_intervalTime = 500; //자동완성 입력대기 시간
//고정값
var dq_acResult = new Object(); //결과값
var dq_acLine = 0; //자동완성 키워드 선택 위치(순번)
var dq_searchResultList = ""; //자동완성결과리스트 전방
var dq_searchKeyword = ""; //검색어(한영변환안된)
var dq_ajaxReqObj = ""; //ajax request object
var dq_keyStatus = 1; //키상태구분값
var dq_acuse = 1; //자동완성사용여부
var dq_engFlag = 0; //자동완성한영변환체크
var dq_acDisplayFlag = 0; //자동완성 display 여부
var dq_acArrowFlag = 0; //마우스이벤트용 flag
var dq_acArrowOpenFlag = 0; //마우스이벤트용 flag
var dq_acFormFlag = 0; //마우스이벤트용 flag
var dq_acListFlag = 0; //자동완성 레이어 펼쳐진 상태 여부
var dq_browserType = dqc_getBrowserType(); //브라우져타입
var dq_keywordBak = ""; //키워드빽업
var dq_keywordOld = ""; //키워드빽업
dq_keywordBak = dq_keywordOld = dq_searchTextbox.value;
//엔터체크
function dq_handleEnter (kind, event, tab) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
if (kind == 1) suggestToggle(tab);//기본검색
return false;
} else {
return true;
}
}
//마우스클릭시검색
function dq_keywordSearch(keyword)
{
dq_searchTextbox.value = keyword;
dq_searchForm.submit();
}
//입력값 체크 - setTextbox
function dq_setTextbox(flag, ev)
{
var _event;
var key;
if (dq_searchTextbox.value == "검색어를 입력해주세요")
{
dq_searchTextbox.value = "";
if(navigator.appName == "Netscape"){
document.getElementById("keyword").setAttribute("class", "search_it");
}else{
document.getElementById("keyword").className = "search_it";
}
}
dq_stateChange();
switch(dq_browserType)
{
case 1 : // IE
_event = window.event;
key = _event.keyCode;
break;
case 2 : // Netscape
key = ev.which;
break;
default :
key = _event.keyCode;
break;
}
if(dq_keyStatus == 1 && flag && key != 13)
dq_keyStatus = 2;
}
//자동완성레이어 상태변경 - wd
function dq_stateChange()
{
dq_searchTextbox.onclick = dq_acDisplayView;
dq_searchTextbox.onblur = dq_acDisplayCheck;
//document.body.onclick = dq_acDisplayCheck;
}
//자동완성레이어 보여 주기 - req_ipc
function dq_acDisplayView()
{
dq_acDisplayFlag = 1;
dq_acFormFlag = 0;
dq_reqAcResultShow();
}
//자동완성레이어 감추기전 체크 - dis_p
function dq_acDisplayCheck()
{
if(dq_acDisplayFlag)
{
dq_acDisplayFlag=0;
return ;
}
if(dq_acArrowFlag)
return;
if(dq_acFormFlag)
return;
dq_acDisplayHide();
}
//자동완성레이어 감추기 - ac_hide
function dq_acDisplayHide()
{
var resultDiv = document.getElementById(dq_resultDivID);
if(resultDiv.style.display == "none")
return ;
dq_setDisplayStyle(0);
dq_acListFlag = 0;
dq_acLine = 0;
}
//자동완성레이어 display style 설정 - popup_ac
function dq_setDisplayStyle(type)
{
var resultDiv = document.getElementById(dq_resultDivID);
if(type==0)
{
resultDiv.style.display = "none";
dq_switchImage(0);
}
else if(type==1)
{
resultDiv.style.display = "block";
dq_switchImage(1);
}
else if(type==2)
{
resultDiv.style.display = "none";
dq_switchImage(1);
}
}
//자동완성 결과 보기 요청 - req_ac2
function dq_reqAcResultShow()
{
var resultDiv = document.getElementById(dq_resultDivID);
if(dq_searchTextbox.value == "" || dq_acuse == 0)
return ;
if(dq_acListFlag && dq_acDisplayFlag)
{
dq_acDisplayHide();
return;
}
var o = dq_getAcResult();
if(o && o[1][0] != "")
dq_acResultShow(o[0], o[1], o[2]);
else
dq_reqSearch();
}
//자동완성 결과 object 리턴 - get_cc
function dq_getAcResult()
{
var ke = dqc_trimSpace(dq_searchTextbox.value);
return typeof(dq_acResult[ke])=="undefined" ? null : dq_acResult[ke];
}
//자동완성 결과 object 생성 - set_cc
function dq_setAcResult(aq, al, al2)
{
dq_acResult[aq] = new Array(aq, al, al2);
}
//자동완성 결과 보기 - ac_show
function dq_acResultShow(aq, al, al2)
{
if(aq != dqc_trimSpace(dq_searchTextbox.value))
dq_engFlag = 1;
else
if(aq && aq != "" && aq != dqc_trimSpace(dq_searchTextbox.value))
return ;
dq_searchKeyword = aq;
dq_searchResultList = al;
dq_printAcResult();
if(dq_searchResultList.length)
dq_acListFlag = 1;
else
dq_acListFlag = 0;
if(dq_acListFlag)
{
dq_setAcPos(0);
if(dq_browserType == 1)
dq_searchTextbox.onkeydown = dq_acKeywordTextViewIE;
else if(dq_browserType == 2)
dq_searchTextbox.onkeydown = dq_acKeywordTextViewFF;
}
}
//자동완성결과 라인 위치 지정 - set_acpos
function dq_setAcPos(v)
{
dq_acLine = v;
setTimeout('dq_setAcLineBgColor();', 10);
}
//자동완성레이어에 결과 출력 - print_ac
function dq_printAcResult()
{
var resultDiv = document.getElementById(dq_resultDivID);
if(dq_searchResultList[0] == "")
resultDiv.innerHTML = dq_getAcNoResultList();
else
resultDiv.innerHTML = dq_getAcResultList();
if(resultDiv.innerHTML != ""){
dq_setDisplayStyle(1); //자동완성창 보여줌.
}else{
dq_setDisplayStyle(0);
}
setTimeout('dq_setAcLineBgColor();', 10);
}
//자동완성 키워드 라인의 백그라운드색 설정 - set_ahl
function dq_setAcLineBgColor()
{
var o1, o2, qs_ac_len, qs_ac_len1;
if(!dq_acListFlag)
return;
qs_ac_len = dq_searchResultList.length;
for(i=0;i 0)
{
text = "" ;
for(i=0;i lenValue)
keyword = dqc_substring(keywordOrign, 0, lenValue) + "..";
if(dq_engFlag == 0)
pos = keywordOrign.toLowerCase().indexOf(dq_searchTextbox.value.toLowerCase());
else if(dq_engFlag == 1)
pos = keywordOrign.toLowerCase().indexOf(dq_searchKeyword.toLowerCase());
if(pos >= 0)
{
if(pos == 0)
{
if(dq_engFlag == 0)
keyword = dqc_highlight(keyword, dq_searchTextbox.value, 0, dq_hStartTag, dq_hEndTag);
else if(dq_engFlag == 1)
keyword = dqc_highlight(keyword, dq_searchKeyword, 0, dq_hStartTag, dq_hEndTag);
}
else if(pos == keywordOrign.length - 1)
{
if(dq_engFlag == 0)
keyword = dqc_highlight(keyword, dq_searchTextbox.value, -1, dq_hStartTag, dq_hEndTag);
else if(dq_engFlag == 1)
keyword = dqc_highlight(keyword, dq_searchKeyword, -1, dq_hStartTag, dq_hEndTag);
}
else
{
if(dq_engFlag == 0)
keyword = dqc_highlight(keyword, dq_searchTextbox.value, pos, dq_hStartTag, dq_hEndTag);
else if(dq_engFlag == 1)
keyword = dqc_highlight (keyword, dq_searchKeyword, pos, dq_hStartTag, dq_hEndTag);
}
}
text += "- " + keyword + "
";
text += "";
text += "" + keywordOrign + "";
}
text += "
";
}
return text;
}
//자동완성 결과 없는 경우 - get_ac0
function dq_getAcNoResultList()
{
var text = "";
/*var ment = "해당 단어로 시작하는 검색어가 없습니다.";
text += "";
text += "- "+ ment + "
";
//text += "";
//text += "" + old + "";
text += "
"; */
return text;
}
//자동완성 키워드 없는 경우
function dq_getAcNoKeyword()
{
var text = "";
/*var ment = "현재 자동완성 기능을 사용하고 계십니다.";
text += "";
text += " ";
text += " - ";
text += ment;
text += "
";
text += " ";
text += " ";
text += "
";
text += "";
*/
return text;
}
//자동완성 복구시 키워드 없는 경우
function dq_getAcOnNoKeyword()
{
var text = "";
/*var ment = "자동완성기능이 활성화 되었습니다.";
text += "";
text += " ";
text += " - ";
text += ment;
text += "
";
text += " ";
text += " ";
text += "
";
text += "";
*/
return text;
}
//검색박스 키워드 처리 루프 - wi()
function dq_wi()
{
if(dq_acuse==0)
return;
var keyword = dq_searchTextbox.value;
if(keyword == "" && keyword != dq_keywordOld)
dq_acDisplayHide();
if(keyword != "" && keyword != dq_keywordOld && dq_keyStatus != 1)
{
var o = null;
o = dq_getAcResult();
if(o && o[1][0] != "")
dq_acResultShow(o[0], o[1], o[2]);
else
dq_reqSearch();
}
dq_keywordOld = keyword;
setTimeout("dq_wi()", dq_intervalTime);
}
function cleanQueryTerm(target) {
// var specialChars='~`!@#$%%^&*-=+\|[{]};:\',<.>/?';
//. & [] = - 허용
var specialChars='`$%%^*+\|{};:\',<>/';
var str=target;
var i, j;
for (i = 0; i < str.length; i++) {
for (j = 0; j < specialChars.length; j++) {
if (str.charAt(i) == specialChars.charAt(j))
str = str.replace(str.charAt(i), " ");
}
}
return str;
}
//cookie setting
function dq_GJS_setCookie(name, value, expiredays, domain) {
var todayDate = new Date();
if (expiredays) {
todayDate.setDate(todayDate.getDate() + expiredays);
}
document.cookie = name + "=" + escape(value) + "; path=/;" +
((expiredays != null) ? " expires=" + todayDate.toGMTString() + ";" : "") +
((domain != null) ? " domain=" + domain + ";" : "");
}
function dq_GJS_setCookie_Time(name, value, expireTimes, domain) {
var todayDate = new Date();
if (expireTimes) {
todayDate.setTime(todayDate.getTime() + (1000 * 60 * 60 * expireTimes));
}
document.cookie = name + "=" + escape(value) + "; path=/;" +
((expiredays != null) ? " expires=" + todayDate.toGMTString() + ";" : "") +
((domain != null) ? " domain=" + domain + ";" : "");
}
//cookie get
function GJS_getCookie(name) {
var nameOfCookie = name + "=";
var x = 0;
while (x <= document.cookie.length) {
var y = (x + nameOfCookie.length);
if (document.cookie.substring(x, y) == nameOfCookie) {
if ((endOfCookie = document.cookie.indexOf(";", y)) == -1)
endOfCookie = document.cookie.length;
return unescape(document.cookie.substring(y, endOfCookie));
}
x = document.cookie.indexOf(" ", x) + 1;
if (x == 0)
break;
}
return "";
}
setTimeout("dq_wi()", dq_intervalTime);
/*상단 검색어 자동완성 관련 스크립트*/
var suggestToggle= function () {
if($("#utill_search").val() == ""){
//alert("검색어를 입력해주세요.");
$("#suggestDiv").toggle();
//if($("#suggestDiv").css("display") != "none") $("#utill_search").focus();
//else document.body.focus();
return false;
}else if($("#suggestDiv").css("display") == "none"){
$("#suggestDiv").show();
//$("#utill_search").focus();
}else if($("#suggestDiv").css("display") != "none"){
document.suggestForm.submit();
}
};
var suggestDivHide = function(e){
var event = e || window.event;
if(event.srcElement.className != "utill_search" && event.srcElement.className != "btn_search" && event.srcElement.className != "suggestTerm") $("#suggestDiv").hide();
};
if (window.addEventListener)
document.body.addEventListener("click", suggestDivHide, false);
else if (window.attachEvent)
document.body.attachEvent("onclick", suggestDivHide);
else
document.body.onclick=suggestDivHide;
// document.body.addEventListener("click", suggestDivHide, false);
/*
document.body.onclick = function(e){
var event = e || window.event;
if(event.srcElement.className != "btn_search" && event.srcElement.className != "suggestTerm") $("#suggestDiv").hide();
};
*/
/*상단 검색어 자동완성 관련 스크립트*/