
/* - ++resource++jazzimprov.theme.javascripts/directorylivesearch.js - */
// http://jazzinsidemagazine.com/portal_javascripts/++resource++jazzimprov.theme.javascripts/directorylivesearch.js?original=1
var dliveSearchReq=false;var t=null;var dliveSearchLast="";var dqueryTarget="dlivesearch_reply?q=";var dsearchForm=null;var dsearchInput=null;var isIE=false;var _dcache=new Object();var dwidthOffset=1;
function dgetElementDimensions(elemID){var base=document.getElementById(elemID);var offsetTrail=base;var offsetLeft=0;var offsetTop=0;var width=0;while(offsetTrail){offsetLeft+=offsetTrail.offsetLeft;offsetTop+=offsetTrail.offsetTop;offsetTrail=offsetTrail.offsetParent}
if(navigator.userAgent.indexOf("Mac")!=-1&&typeof document.body.leftMargin!="undefined"){offsetLeft+=document.body.leftMargin;offsetTop+=document.body.topMargin}
if(!isIE)
width=dsearchInput.offsetWidth-widthOffset*2;else
width=dsearchInput.offsetWidth;return{left:offsetLeft,top:offsetTop,width:width,height:base.offsetHeight,bottom:offsetTop+base.offsetHeight,right:offsetLeft+width}}
function dliveSearchInit(){dsearchInput=document.getElementById('directorySearchGadget');if(dsearchInput==null||dsearchInput==undefined)
return
if(navigator.userAgent.indexOf("KHTML")>0){dsearchInput.addEventListener("keydown",dliveSearchKeyPress,false);dsearchInput.addEventListener("focus",dliveSearchDoSearch,false);dsearchInput.addEventListener("keydown",dliveSearchStart,false);dsearchInput.addEventListener("blur",dliveSearchHideDelayed,false)} else if(dsearchInput.addEventListener){dsearchInput.addEventListener("keypress",dliveSearchKeyPress,false);dsearchInput.addEventListener("blur",dliveSearchHideDelayed,false);dsearchInput.addEventListener("keypress",dliveSearchStart,false)} else{dsearchInput.attachEvent("onkeydown",dliveSearchKeyPress);dsearchInput.attachEvent("onkeydown",dliveSearchStart);dsearchInput.attachEvent("onblur",dliveSearchHideDelayed);isIE=true}
dsearchInput.setAttribute("autocomplete","off");var pos=dgetElementDimensions('directorySearchGadget');result=document.getElementById('DLSResult');if((typeof result.offsetParent!='undefined')&&(result.offsetParent!=null)){pos.left=pos.left-result.offsetParent.offsetLeft+pos.width} else{pos.left=pos.left+pos.width}
result.style.display='none'}
function dliveSearchHideDelayed(){window.setTimeout("dliveSearchHide()",400)}
function dliveSearchHide(){document.getElementById("DLSResult").style.display="none";var highlight=document.getElementById("DLSHighlight");if(highlight)
highlight.removeAttribute("id")}
function dgetFirstHighlight(){var set=dgetHits();return set[0]}
function dgetLastHighlight(){var set=dgetHits();return set[set.length-1]}
function dgetHits(){var res=document.getElementById("DLSShadow");var set=res.getElementsByTagName('li');return set}
function dliveSearchKeyPress(event){var highlight=document.getElementById("DLSHighlight");if(event.keyCode==40){if(!highlight){highlight=dgetFirstHighlight()} else{highlight.removeAttribute("id");highlight=findNext(highlight, function(o){return o.className=="LSRow"})}
if(highlight)
highlight.setAttribute("id","DLSHighlight");if(!isIE)
event.preventDefault()}
else if(event.keyCode==38){if(!highlight){highlight=dgetLastHighlight()}
else{highlight.removeAttribute("id");highlight=findPrev(highlight, function(o){return o.className=='LSRow'})}
if(highlight)
highlight.setAttribute("id","DLSHighlight");if(!isIE)
event.preventDefault()}
else if(event.keyCode==27){if(highlight)
highlight.removeAttribute("id");document.getElementById("DLSResult").style.display="none"}}
function dliveSearchStart(event){if(t){window.clearTimeout(t)}
var code=event.keyCode;if(code!=40&&code!=38&&code!=27&&code!=37&&code!=39){t=window.setTimeout("dliveSearchDoSearch()",200)}}
function dliveSearchDoSearch(){if(typeof dliveSearchRoot=="undefined"){if(typeof portal_url=="undefined"){dliveSearchRoot=""} else{if(portal_url[portal_url.length-1]=='/'){dliveSearchRoot=portal_url} else{dliveSearchRoot=portal_url+'/'}}}
if(typeof dliveSearchRootSubDir=="undefined"){dliveSearchRootSubDir=""}
if(dliveSearchLast!=dsearchInput.value){if(dliveSearchReq&&dliveSearchReq.readyState<4){dliveSearchReq.abort()}
if(dsearchInput.value==""){dliveSearchHide();return false}
if(dsearchInput.value.length<1){dliveSearchHide();return false}
var result=_dcache[dsearchInput.value];if(result){dshowResult(result);return}
dliveSearchReq=new XMLHttpRequest();dliveSearchReq.onreadystatechange=dliveSearchProcessReqChange;var tpath=document.getElementById("path");var tcontexttype=document.getElementById("context_type");var tcontextpath=document.getElementById("context_path");var tfiltertypes=document.getElementById("type");var pathQS='';if(tpath!=null){pathQS=pathQS+"&path="+tpath.value}
if(tcontexttype!=null){pathQS=pathQS+"&context_type="+tcontexttype.value}
if(tcontextpath!=null){pathQS=pathQS+"&context_path="+tcontextpath.value}
if(tfiltertypes!=null){pathQS=pathQS+"&type="+tfiltertypes.value}
dliveSearchReq.open("GET",dliveSearchRoot+dqueryTarget+encodeURIComponent(dsearchInput.value)+pathQS);dliveSearchLast=dsearchInput.value;dliveSearchReq.send(null)}}
function dshowResult(result){var res=document.getElementById("DLSResult");res.style.display="block";var sh=document.getElementById("DLSShadow");sh.innerHTML=result}
function dliveSearchProcessReqChange(){if(dliveSearchReq.readyState==4){try{if(dliveSearchReq.status>299||dliveSearchReq.status<200||dliveSearchReq.responseText.length<10)
return} catch(e){return}
dshowResult(dliveSearchReq.responseText);_dcache[dliveSearchLast]=dliveSearchReq.responseText}}
function dliveSearchSubmit(){var highlight=document.getElementById("DLSHighlight");if(highlight){var targets=highlight.getElementsByTagName('a');if(targets.length==0)
return true;var target=targets[0].href;if(!target)
return true;if((dliveSearchRoot.length>0)&&(target.substring(0,dliveSearchRoot.length)!=dliveSearchRoot)){window.location=dliveSearchRoot+dliveSearchRootSubDir+target} else{window.location=target}
return false} else{return true}}
if(window.addEventListener)
window.addEventListener("load",dliveSearchInit,false);else if(window.attachEvent)
window.attachEvent("onload",dliveSearchInit);
