var CACHED = [];
var sel_id = -1;
 
function fillSuggest(o, e){
if(document.getElementById("sugImg").title.indexOf('OFF') != -1) 
return document.getElementById("searchresults").style.display = "none";
var id_tofill = 'name';

// Escape oder bisher kein Zeichen eingegeben -> Liste verstecken
if (e.keyCode == 27 || o.value.length < 1)
return ;
 
// Navigationstasten werden im checkArrowKeys behandelt
if (e. keyCode > 32 && e.keyCode < 41)
return ;
 
// Return
if (e.keyCode == 13) {
var sel = document.getElementById(String(sel_id));
if (sel) {
var val = sel.getElementsByTagName("span")[0].innerHTML;
val = val.replace("<STRONG>", "").replace("</STRONG>", "").replace("<strong>", "").replace("</strong>", "");
document.getElementById(id_tofill).value = val;
document.getElementById(id_tofill).setAttribute("value", val);
document.getElementById(id_tofill).focus();
return document.getElementById("searchresults").style.display = "none";
}
}

// Ansonsten Liste der Vorschlï¿½ge neu erstellen
if(CACHED[o.value]) return fillObject(CACHED[o.value]);
sel_id = -1;
var nbcheck=0;
var field=[];
s=0;
var j=0;
var liste= document.getElementsByName('thesaurus');
max=liste.length;
var k=0;
while (k<max){
	if (liste[k].name == 'thesaurus'){
		if (liste[k].checked && liste[k].tagName =='INPUT'){
			nbcheck++;
			field[s]=liste[k].value.split('@')[0];
			s++;
		}
		j++;
	}
	k++;
}
field = field.join("_");
suggest["suggest.getTaxonList"](o.value,field);
}
 
 
 
function checkArrowKeys(o, e) {
if(document.getElementById("sugImg").title.indexOf('OFF') != -1) return document.getElementById("searchresults").style.display = "none";
id_tofill= 'name';
 
if (e. keyCode > 32 && e.keyCode < 41) {
 
// Bisherige Markierung zurï¿½cksetzen
var par = document.getElementById("searchresults");
var sel = document.getElementById(String(sel_id));
if (sel)
sel.className = "";
 
// Neue Markierung bestimmen
if (e.keyCode == 40) // Down
sel_id++;
if (e.keyCode == 38) // Up
sel_id--;
if (e.keyCode == 33) // Page Up
sel_id -= par.clientHeight/par.firstChild.clientHeight;
if (e.keyCode == 34) // Page Down
sel_id += par.clientHeight/par.firstChild.clientHeight;
if (e.keyCode == 36) // Pos1
sel_id = 0;
if (e.keyCode == 35) // Ende
sel_id = par.childNodes.length-1;
 
// Drï¿½ber hinausgeschossen??
if (sel_id <0)
sel_id = 0;
if (sel_id >= par.childNodes.length)
sel_id = par.childNodes.length-1;
 
// Markieren und scrollen
var sel = document.getElementById(String(sel_id));
if (sel) {
sel.className = "mover";
var val = sel.getElementsByTagName("span")[0].innerHTML;
val = val.replace("<STRONG>", "").replace("</STRONG>", "").replace("<strong>", "").replace("</strong>", "");
document.getElementById(id_tofill).value = val;
document.getElementById(id_tofill).setAttribute("value", val);
sel.scrollIntoView(false);
}
}
}
 
function doSuggest(data, state, extra){

if(state == __RPC_SUCCESS__) {
fillObject(data);
CACHED[extra.userdata] = data;
}
/*
else if(state == __RPC_TIMEOUT__)
alert("Your call has timed out");
else
alert("Error:" + extra.message);
*/
}
 
function fillObject(sHTML){

var id_tofill = 'textarea';
id_tofill= 'name';
 
document.getElementById("searchresults").innerHTML = sHTML;
document.getElementById("searchresults").style.display = "block";
 
var nodes = document.getElementById("searchresults").childNodes;
for(var i=0; i<nodes.length; i++) {
 
nodes[i].onmousemove = function() {
// alle anderen Markierungen lï¿½schen
for (var j=0; j<nodes.length; j++)
nodes[j].className = "";
 
// und jetzt die aktuelle markieren und scrollen
this.className = "mover";
sel_id = parseInt(this.id);
// IE baut Mï¿½ll beim Scrollen
//if (navigator.appName != 'Microsoft Internet Explorer')
//this.scrollIntoView(false);
}
 
nodes[i].onclick = function() {
var val = this.getElementsByTagName("span")[0].innerHTML;
val = val.replace("<STRONG>", "").replace("</STRONG>", "").replace("<strong>", "").replace("</strong>", "");
document.getElementById(id_tofill).value = val;
document.getElementById(id_tofill).setAttribute("value", val);
document.getElementById(id_tofill).focus();
document.getElementById("searchresults").style.display = "none";
}
// nodes[i].onmouseover = function() {
// document.getElementById(id_tofill).value = this.getElementsByTagName("span")[0].innerHTML;
// document.getElementById(id_tofill).setAttribute("value",this.getElementsByTagName("span")[0].innerHTML);
// document.getElementById(id_tofill).focus();
// }
}
if (nodes.length <1) document.getElementById("searchresults").style.display = "none";
}
 
 
 
window.onload = function(){
document.body.onclick = function(){
if ( (document.title.match('simple') || document.title.match('index') || document.title.match('advanced')) && 
!document.title.match('Metadata'))
document.getElementById("searchresults").style.display = "none";
}
}
 
document.onclick=function(){
try{
if ((document.title.match('simple') || document.title.match('index') || document.title.match('advanced')) && 
!document.title.match('Metadata') )

if ( !document.getElementById('name').hasFocus && !document.getElementById('searchresults').hasFocus)
document.getElementById("searchresults").style.display = "none";
}catch(e){}
}
