//설정값 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 = ""; } return text; } //자동완성 결과 없는 경우 - get_ac0 function dq_getAcNoResultList() { var text = ""; /*var ment = "해당 단어로 시작하는 검색어가 없습니다."; text += ""; */ return text; } //자동완성 키워드 없는 경우 function dq_getAcNoKeyword() { var text = ""; /*var ment = "현재 자동완성 기능을 사용하고 계십니다."; text += ""; text += ""; */ return text; } //자동완성 복구시 키워드 없는 경우 function dq_getAcOnNoKeyword() { var text = ""; /*var ment = "자동완성기능이 활성화 되었습니다."; 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(); }; */ /*상단 검색어 자동완성 관련 스크립트*/