/**
 *
 *Javascript - Objekt für die Produktsuche in der Navigationsleiste
 *
 */

/** ---AJAX-Funktionen für Advised Search Navi--- **/

/**
 * Sendet einen AJAX-Request, der eine Liste mit möglichen gesuchten Artikeln zurückliefert.
 *
 * @param	string	parameter	das bisher eingegeben Suchwort
 *
 * @return	bool	false, wenn es einen Fehler gab
 */
function doRequest_navi(parameter_navi) {
	
		if (parameter_navi.length > 2) {
			var url_navi		= 'typo3conf/ext/tt_products/pi/ajax/autosuggest_article.php';
			parameter_navi		= '?param='		+ escape(parameter_navi);
			
			
			req = new ajaxRequest_navi(url_navi + parameter_navi);
		} else {
			return false;
		}
		if (req == false) {
			return false;
		}
	
	}
	
/**
 * Diese Funktion wird vom AJAX-Request aus aufgerufen und verarbeitet die zurückgelieferten
 * Daten.
 */	
function ajaxResponse_navi() {

	/*
	* die readystates des XmlHttpRequest-Objektes (von http://www.oreilly.de/artikel/ajax3/index.html): 
	* 0: Die Anfrage ist noch nicht initialisiert (bevor Sie open() aufrufen).
	* 1: Die Anfrage ist erstellt und initialisiert, aber noch nicht gesendet (bevor Sie send() aufrufen).
	* 2: Die Anfrage wurde gesendet und wird verarbeitet (Sie können die Kopfdaten der Antwort auswerten).
	* 3: Die Anfrage wird verarbeitet; meistens steht ein Teil der Antwort schon zur Verfügung, doch der Server ist noch nicht mit der Antwort fertig.
	* 4: Die Anfrage ist abgeschlossen; die Antwort des Servers steht bereit.
	*/
	     
	 // wir wollen erst etwas machen, wenn die Anfrage komplett fertig ist und ohne 
	 // HTTP-Fehlercode zurückkomt
	   if ((request.readyState == 4) && (request.status == 200)) {
		// hier schreiben wir unsere vorschläge rein
	    var output	= document.forms['simple_search_navi'].elements['output'];
		// alle bisherigen Elemente loeschen
		while (output.length > 0) {			
			output.options[output.length - 1] = null;
		}
			
	    if (request.responseText == '') {
			// es wurde keine DB Übereinstimmung gefunden
			output.style.height = 0;
		} else {
			document.forms['simple_search_navi'].elements['output'].style.display = 'block';
			var foo 			= request.responseText;
			// Elemente entsprechend der Markierung extrahieren
			var elements 		= foo.split('/element/');
			for (var i = 0; i < elements.length; i++) {
				if (elements[i] != '') {
					// neues Option Element anlegen
					newopt 				= new Option(output);
					var txt				= replaceSpecialChars(elements[i],0);	
					// Value eintragen
					newopt.value 		= txt;
					// Bezeichnung eintragen
					newopt.text 		= txt;
					output.options[output.length] = newopt;	
				}
			}
				
			// height des Ausgabefeldes berechnen
			var height			 = (output.length * 20);
			if (height > 200) {
				height = 200;
			}
			output.style.height = height;	
		}
	} 
	
	}
	
// Artikelvorschläge in Multiselect anzeigen
function showAutosuggest_navi(element) {	
	doRequest_navi(element.value);
}

/**
 * Beim drücken der Pfeiltaste nach unten Fokus auf Multiselect legen um
 * Tastennavigation zu ermöglichen
 */
function setFocus_navi(event) {
	var selectElement 	= document.forms['simple_search_navi'].elements['output'];
	if (event.keyCode==40) {
		selectElement.focus();
	}
}

/**
 * Setzt ausgewählten Artikel im Textfeld article_name
 */
function setValue_navi(element){

	var text	= document.forms['simple_search_navi'].elements['article_name'];
	text.value 	= element.value;

	while (element.length > 0) {			
		element.options[element.length - 1] = null;
	}
	
	text.focus();
	element.style.display = 'none';
}

