suggestionSearch=new Object;
suggestionSearch.hiddenSelects=new Array;
suggestionSearch.timeout=new Array;
suggestionSearch.dummy=document.createElement('img');
suggestionSearch.dummy.src='/user/bvmnet/media/images/selectbox.gif';
	var position = 0;
	// Initiieren des Ajax Objektes
	function init_xml() {
		try {
			// für mozille
			new_xml = new XMLHttpRequest();
		} catch(error) {
			try {
				// für IE
				new_xml = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(error) {
				// wenn gar nicht möglich
				return false;
			}
		}
		// zurückgeben des Objektes
		return new_xml;
	}
	
	entry_list = init_xml();
	
	function getEntryList(searchtext, name, url, limit, correction) {
		try {
			if(entry_list.readyState < 4 && entry_list.readyState > 1) {
				setTimeout("getEntryList('"+searchtext+"', '"+name+"', '"+url+"', '"+correction+"');", 100);
			} else {
				entry_list.open("GET", url+"?text="+searchtext+"&name="+name+"&limit="+limit);
				entry_list.send(null);		
				if(!correction) {
					correction=document.getElementById(name).style.width;
				}
				
				if(navigator.appName == "Netscape") {
					//document.getElementById(name+'__outerDIV').style.marginLeft="14px";
					document.getElementById(name+'__outerDIV').style.marginTop="2px";
				} else {
					document.getElementById(name+'__outerDIV').style.marginLeft="-"+correction+"px";
					document.getElementById(name+'__outerDIV').style.marginTop="20px";
				}
				
				entry_list.onreadystatechange = showSelection;
			}
		} catch(e) {
		}
	}

	function showSelection() {
		// Loading anzeige an
		if (entry_list.readyState == 2) {
			null;
		}
		if(entry_list.readyState == 4) {
			// Loading anzeige aus
			if (entry_list.status != 200) {
				//Fehlermeldung
				null;
			} else {
				try {
					ergebnis = unescape(entry_list.responseText).split(':||:');
					//alert(unescape(entry_list.responseText));
					name = ergebnis[2];
					suggestionSearch.name=name;
					if (ergebnis[1] >= 1) {
						document.getElementById(name+'__outerDIV').style.visibility = 'visible';					
						document.getElementById('suggestion__innerDIV').innerHTML = ergebnis[0];
						document.getElementById(name+'__outerDIV').appendChild(document.getElementById('suggestion__innerDIV'));
						document.getElementById('suggestion__innerDIV').style.display = 'block';
						window.akt_entry = false;
						window.last_entry = (parseInt(ergebnis[1]));					
						for (i = 0; i < last_entry; i++) {
							document.getElementById('entry'+i).onkeydown = findKey;
						}
						//hideSelectBoxes();	
					} else {
						document.getElementById(name+'__outerDIV').style.visibility = 'hidden';
						document.getElementById('suggestion__innerDIV').innerHTML = '';
						document.getElementById('suggestion__innerDIV').style.display = 'none';
					}				
				} catch(e) {
				}
			}
		}
	}
	
	//*******/
	// function findKey stellt fest welche taste gedrückt wurde und entscheidet wann etwas passieren soll
	//*******/
	
	function findKey() {
		try {
			var Ereignis=findKey.arguments[0];
			// abfragen des browsers netscape ja/nein
			var Netscape = new Boolean();
			if(navigator.appName == "Netscape") Netscape = true; 
		
			if(Netscape == true) {
				// erkennen der gedrückten taste im netscape
				dieserkey = Ereignis.which;
			} else {
				// erkennen der gedrückten taste im IE
				Ereignis = window.event;
				dieserkey = Ereignis.keyCode;
			}
			// standardfunktion der pfeiltasten oben/unten ausschalten
			if (dieserkey == 38 || dieserkey == 40) {
				document.getElementById(suggestionSearch.name).blur();
				try {
					document.getElementById('entry'+akt_entry).blur();
				} catch(e) {
				
				}
				if (Ereignis.preventDefault) {
					// für mozilla			
					Ereignis.preventDefault();
				} else {
					// für IE
					Ereignis.returnValue = false;
				}
			}
			// sprung nach oben
			if (dieserkey == 38) {
				// festlegen was der nächste eintrag ist
				if (akt_entry > 0) {
					// der nächste in der liste
					window.old_entry = akt_entry;
					window.akt_entry = (parseInt(akt_entry) - 1);
				} else if (akt_entry == 0) {
					// der erste in der liste
					window.old_entry = akt_entry;
					window.akt_entry = (parseInt(last_entry) - 1);
				} else {
					// der erste in der liste
					window.akt_entry = (parseInt(last_entry) - 1);
				}
				//ändern des focus und des hintergundes für den angesprungenen eintrag
				document.getElementById('entry'+akt_entry).focus();	
				//document.getElementById('entry'+window.akt_entry+'div').style.border = '1px solid #96CA2E';
				document.getElementById('entry'+window.akt_entry+'div').style.backgroundColor = '#D0E79F';
				document.getElementById(suggestionSearch.name).value = document.getElementById('entry'+akt_entry).innerHTML;
				// ändern des focus und des hintergundes für den vorhergehenden eintrag
				/*try {
					//document.getElementById('entry'+last_entry).style.border = '';
				} catch(e) {
				
				}*/
				if (old_entry >= 0) {
					// wenn der nächste eintrag der nächste in der liste ist
					//document.getElementById('entry'+old_entry+'div').style.border = '';
					document.getElementById('entry'+old_entry+'div').style.backgroundColor = '#F1F6E2';
					//document.getElementById('entry'+old_entry+'div').style.borderTop = '1px solid #DCDFF1';
				}
				setTimeout("try{openSuggestions(suggestionSearch.name);document.getElementById('entry'+akt_entry).focus();} catch(e) { }",1);
			} 		
			// sprung nach unten
			if (dieserkey == 40) {
				if (window.akt_entry===false) {
					// der erste in der liste
					window.akt_entry = 0;
				}
				// festlegen was der nächste eintrag ist
				else if (akt_entry < (parseInt(last_entry) - 1)) {
					// der nächste in der liste
					window.old_entry = akt_entry;
					window.akt_entry = (parseInt(akt_entry) + 1);
				} else if (akt_entry == (parseInt(last_entry) - 1)) {
					// der erste in der liste
					window.old_entry = akt_entry;
					window.akt_entry = 0;
				}
				// ändern des focus und des hintergundes für den angesprungenen eintrag
				document.getElementById('entry'+window.akt_entry).focus();			
				//document.getElementById('entry'+window.akt_entry+'div').style.border = '1px solid #96CA2E';
				document.getElementById('entry'+window.akt_entry+'div').style.backgroundColor = '#D0E79F';
				document.getElementById(suggestionSearch.name).value = document.getElementById('entry'+akt_entry).innerHTML;
				/*try {
					//document.getElementById('entry'+last_entry).style.border = '';
					document.getElementById('entry'+window.akt_entry+'div').style.backgroundColor = '#F1F6E2';
				} catch(e) {
				
				}*/
				// ändern des focus und des hintergundes für den vorhergehenden eintrag
				try{
					if (old_entry >= 0) {
						// wenn der nächste eintrag der nächste in der liste ist
						//document.getElementById('entry'+old_entry+'div').style.border = '';
						document.getElementById('entry'+old_entry+'div').style.backgroundColor = '#F1F6E2';
						//document.getElementById('entry'+old_entry+'div').style.borderTop = '1px solid #DCDFF1';
					}
				} catch(e) {}
				setTimeout("try{openSuggestions(suggestionSearch.name);document.getElementById('entry'+akt_entry).focus();} catch(e) { }",1);
			}
			if(dieserkey==9) {
				closeSuggestions();
			}
		} catch(e) {	
		}
	}
	
	function delayedCloseSuggestions(name) {
		suggestionSearch.timeout[name]=setTimeout("closeSuggestions('"+name+"');",10);
	}
	
	function closeSuggestions(name) {
		clearInterval(window.closeTheTabs);
		document.getElementById(name+'__outerDIV').style.visibility = 'hidden';
		showSelectBoxes();
	}
	
	function openSuggestions(name) {
		clearTimeout(suggestionSearch.timeout[name]);
		clearInterval(window.closeTheTabs);
		document.getElementById(name+'__outerDIV').style.visibility = 'visible';
		hideSelectBoxes();
	}

	function hideSelectBoxes() {
		for(i in document.getElementsByTagName('select')) {
			if(i!='length') {
				try {
					if(document.getElementsByTagName('select')[i].style.display!='none') {
						var dummy = suggestionSearch.dummy.cloneNode(true);
						document.getElementsByTagName('select')[i].style.display='none';
						suggestionSearch.hiddenSelects[suggestionSearch.hiddenSelects.length]=document.getElementsByTagName('select')[i];
						document.getElementsByTagName('select')[i].parentNode.insertBefore(dummy, document.getElementsByTagName('select')[i]);
					}
				} catch(e) {
					null;
				}
			}
		}
	}
	
	function showSelectBoxes() {
		for(i in suggestionSearch.hiddenSelects) {
			if(i!='length') {
				suggestionSearch.hiddenSelects[i].style.display='inline';
				suggestionSearch.hiddenSelects[i].parentNode.removeChild(suggestionSearch.hiddenSelects[i].previousSibling);
			}
		}
		suggestionSearch.hiddenSelects=new Array;
	}
