// Copyright (c) 2004 Bitflux GmbH // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // implied. See the License for the specific language governing // permissions and limitations under the License. // Author: Bitflux GmbH // DG -- changed by Daniel Gattermann to get the directory name via PHP and to change the menu of the result div // DG -- also fixed some null pointer... var liveSearchReq = false; var t = null; var liveSearchLast = ""; var isIE = false; // on !IE we only have to initialize it once if (window.XMLHttpRequest) { liveSearchReq = new XMLHttpRequest(); } function liveSearchInit() { // DG: changed the whol way of handling the ifs. First set livesearchInput and test for null value to prevent null point! var livesearchInput= document.getElementById('livesearch'); if (livesearchInput != null) { if (navigator.userAgent.indexOf("Safari") > 0) { livesearchInput.addEventListener("keydown",liveSearchKeyPress,false); } else if (navigator.product == "Gecko") { livesearchInput.addEventListener("keypress",liveSearchKeyPress,false); } else { livesearchInput.attachEvent('onkeydown',liveSearchKeyPress); isIE = true; } } } function liveSearchKeyPress(event) { if (event.keyCode == 40 ) //KEY DOWN { highlight = document.getElementById("LSHighlight"); if (!highlight) { highlight = document.getElementById("LSResult").firstChild.firstChild.nextSibling.firstChild; } else { highlight.removeAttribute("id"); highlight = highlight.nextSibling; } if (highlight) { highlight.setAttribute("id","LSHighlight"); } if (!isIE) { event.preventDefault(); } } //KEY UP else if (event.keyCode == 38 ) { highlight = document.getElementById("LSHighlight"); if (!highlight) { // DG: removed one of two ".nextSibling"s so that navigating to the top continues at the bottom without an error highlight = document.getElementById("LSResult").firstChild.firstChild.nextSibling.lastChild; } else { highlight.removeAttribute("id"); highlight = highlight.previousSibling; } if (highlight) { highlight.setAttribute("id","LSHighlight"); } if (!isIE) { event.preventDefault(); } } //ESC else if (event.keyCode == 27) { highlight = document.getElementById("LSHighlight"); if (highlight) { highlight.removeAttribute("id"); } document.getElementById("LSResult").style.display = "none"; document.forms.searchform.s.value = ''; } } function liveSearchStart() { if (t) { window.clearTimeout(t); } t = window.setTimeout("liveSearchDoSearch()",200); } function liveSearchDoSearch() { if (liveSearchLast != document.forms.searchform.s.value) { if (liveSearchReq && liveSearchReq.readyState < 4) { liveSearchReq.abort(); // Fade the background of the results box } if ( document.forms.searchform.s.value == "") { document.getElementById("LSResult").style.display = "none"; highlight = document.getElementById("LSHighlight"); if (highlight) { highlight.removeAttribute("id"); } return false; } if (window.XMLHttpRequest) { // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { liveSearchReq = new ActiveXObject("Microsoft.XMLHTTP"); } liveSearchReq.onreadystatechange= liveSearchProcessReqChange; liveSearchReq.open("GET", "/wp-content/themes/cinnamonthoughts/livesearch.php?s=" + document.forms.searchform.s.value); liveSearchLast = document.forms.searchform.s.value; liveSearchReq.send(null); } } function liveSearchProcessReqChange() { if (liveSearchReq.readyState == 4) { var res = document.getElementById("LSResult"); res.style.display = "block"; res.firstChild.innerHTML = '
Results (show all)
↓ ↑ ↵ ×

'+liveSearchReq.responseText; } } function liveSearchSubmit() { var highlight = document.getElementById("LSHighlight"); if (highlight && highlight.firstChild) { window.location = highlight.firstChild.getAttribute("href"); return false; } else { return true; } } function closeResults() { /* add this to the result output: [close] */ document.getElementById("LSResult").style.display = "none"; }