var quickSearchRun=new Date().getTime();
var quickSearchActive=0;
var quickSearchSelected=-1;
var quickSearchElements=[];

function quickSearch(self,path,n) {
	if (n==undefined) { n=""; }
	quickSearchActive=1;
	quickSearchRun = new Date().getTime();
	if (self.value.length<1) {
		document.getElementById('qsearch_cnt'+n).style.display='none';
		document.getElementById('qsearch_result'+n).innerHTML='';
		quickSearchRun = new Date().getTime();
	} else {
		setTimeout("getQuickSearch('"+path+"')",400);
	}
}

function getQuickSearch (path,n) {
	if (n==undefined) { n=""; }
	if ((new Date().getTime()-quickSearchRun)>300 && quickSearchActive==1) {
		var sdata = encodeURIComponent(document.getElementById('qsearch_string'+n).value);
		if (sdata.length>0) {
			postReqToID('/?'+path+'&search='+sdata,'','qsearch_result'+n,"quickSearchPost",true,-2);
		}
	}
}

function clearQuickSearch(n) {
	if (n==undefined) { n=""; }
	if (quickSearchActive==0) {
		document.getElementById('qsearch_result'+n).innerHTML='';
		document.getElementById('qsearch_cnt'+n).style.display='none';
		quickSearchRun = new Date().getTime()+3600000;
	}
}

function quickSearchKeyEvent(e,self,path,n) {
	if (n==undefined) { n=""; }
	var kn=0; if (isset(e)) { kn=window.event?e.keyCode:e.which; }
	if (kn==27) {
		if (quickSearchActive==0) { self.value=""; }
		quickSearchElements=[]; quickSearchSelected=-1;
		quickSearchActive=0; clearQuickSearch();
		return true;
	} else if (kn==13 && quickSearchSelected>=0) {
		return false;
	} else if (kn==40 && quickSearchElements.length==0) {
		quickSearch(self,path,n);
		return true;
	} else if ((kn>=16 && kn<=18) || kn==20 || (kn>=33 && kn<=40) || (kn>=112 && kn<=123) || kn==145) {
		return false;
	} else {
		quickSearch(self,path,n);
		return true;
	}
}

function quickSearchKeyDown(e,self,n) {
	if (n==undefined) { n=""; }
	var kn=0; if (isset(e)) { kn=window.event?e.keyCode:e.which; }
	if (kn==13 && quickSearchSelected>=0) {
		quickSearchElements[quickSearchSelected].onclick();
		return true;
	} else if (kn==38) {
		if (quickSearchElements.length==0) { quickSearchSelected=-1; return false; }
		if (quickSearchSelected>0) {
			quickSearchSelected=quickSearchSelected-1;
		} else {
			quickSearchSelected=quickSearchElements.length-1;
		}
		for (var i=0; i<quickSearchElements.length; i++) {
			if (i==quickSearchSelected) {
				quickSearchElements[i].style.backgroundColor='#eff2ea';
			} else {
				quickSearchElements[i].style.backgroundColor='';
			}
		}
		return true;
	} else if (kn==40) {
		if (quickSearchElements.length==0) { quickSearchSelected=-1; return false; }
		if (quickSearchSelected<0 || quickSearchSelected>=quickSearchElements.length-1) {
			quickSearchSelected=0;
		} else {
			quickSearchSelected=quickSearchSelected+1;
		}
		for (var i=0; i<quickSearchElements.length; i++) {
			if (i==quickSearchSelected) {
				quickSearchElements[i].style.backgroundColor='#eff2ea';
			} else {
				quickSearchElements[i].style.backgroundColor='';
			}
		}
		return true;
	}
}

function quickSearchPost(data,targetId,result,n) {
	if (n==undefined) { n=""; }
	var qsearch_cnt=document.getElementById('qsearch_cnt'+n);
	if (parseInt(result)==1) {
		quickSearchElements=getElementsById('qsearch_item_[0-9]+'); quickSearchSelected=-1;
		if (qsearch_cnt!==null) { qsearch_cnt.style.display='block'; }
	} else if (parseInt(result)==0) {
		var target=document.getElementById(targetId);
		if (target!==null) { target.innerHTML=""; }
		if (qsearch_cnt!==null) { qsearch_cnt.style.display='none'; }
		quickSearchElements=[]; quickSearchSelected=-1;
	}
}
