suggestionSearch=new Object;
suggestionSearch.hiddenSelects=new Array;
suggestionSearch.timeout=new Array;
suggestionSearch.dummy=document.createElement('img');
suggestionSearch.dummy.src='/user/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, inputid) {
		if(entry_list.readyState < 4 && entry_list.readyState > 1) {
			setTimeout("getEntryList('"+searchtext+"', '"+name+"', '"+url+"', '"+correction+"', '"+inputid+"');", 100);
		}
		entry_list.open("GET", url+"?search="+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('searchfield__outerDIV').style.marginTop="2px";
		} else {
			//document.getElementById('searchfield__outerDIV').style.marginLeft="-"+correction+"px";
			//document.getElementById('searchfield__outerDIV').style.marginTop="20px";
		}
		
		entry_list.onreadystatechange = showSelection;
	}

	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 {
				ergebnis = unescape(entry_list.responseText).split(':!!:');
				//alert(unescape(entry_list.responseText));
				//name = ergebnis[2];
				name='searchfield';
				//suggestionSearch.name=name;
				suggestionSearch.name='searchfield';
				if (ergebnis[1] >= 1) {
					//alert('test');
					document.getElementById('searchfield__outerDIV').style.visibility = 'visible';					
					document.getElementById('suggestion__innerDIV').innerHTML = ergebnis[0];
					document.getElementById('searchfield__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('searchfield__outerDIV').style.visibility = 'hidden';
					document.getElementById('suggestion__innerDIV').innerHTML = '';
					document.getElementById('suggestion__innerDIV').style.display = 'none';
				}				
			}
		}
	}
	
	//*******/
	// function findKey stellt fest welche taste gedrückt wurde und entscheidet wann etwas passieren soll
	//*******/
	
	function findKey(Ereignis) {
		// 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('searchfield').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 = '#999999';
			document.getElementById('searchfield').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 = '#F6F6F6';
				//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 = '#999999';
			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 = '#F6F6F6';
			} 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 = '#F6F6F6';
					//document.getElementById('entry'+old_entry+'div').style.borderTop = '1px solid #DCDFF1';
				}
			} catch(e) {}
			setTimeout("try{openSuggestions('searchfield');document.getElementById('entry'+akt_entry).focus();} catch(e) { }",1);
		}
		if(dieserkey==9) {
			closeSuggestions();
		}
		
	}
	
	function delayedCloseSuggestions(name) {
		suggestionSearch.timeout['searchfield']=setTimeout("closeSuggestions('searchfield');",10);
	}
	
	function closeSuggestions(name) {
		clearInterval(window.closeTheTabs);
		document.getElementById('searchfield__outerDIV').style.visibility = 'hidden';
		showSelectBoxes();
	}
	
	function openSuggestions(name) {
		clearTimeout(suggestionSearch.timeout['searchfield']);
		clearInterval(window.closeTheTabs);
		document.getElementById('searchfield__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 document.getElementsByTagName('select')) {
			if(i!='length') {
				//document.getElementsByTagName('select')[i].style.display='inline';
				//document.getElementsByTagName('select')[i].parentNode.removeChild(document.getElementsByTagName('select')[i].previousSibling);
			}
		}
		suggestionSearch.hiddenSelects=new Array;
	}

