
	function GetSearchResult(e) {

		var KeyCode;
		
		if (window.event) KeyCode = window.event.keyCode;
		else if (e) KeyCode = e.which;


		// Pfeiltaste nach unten
		if (KeyCode == 40) {

		document.getElementById('focuscatcher').focus();
//			if (SearchResultObject.ProductArray) {
//				HighlightContainer(SearchResultObject.ProductArray[0]['artikel_id']);
//			}

		// restliche Tasteneingaben
		} else {
			
			SearchResultObject.ActHightlightContainerID = false;
			
			resObject = GetAjaxObject();
	
			resObject.open('POST', URLPFAD + AJAXSEARCH_PHP, true);
			resObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			resObject.send('formaction=search&searchstring=' + document.getElementById('ajaxsearch_searchstring').value);
	
			resObject.onreadystatechange = function() { HandleResponse('RenderSearchResult'); };
			
		}

	}
	
	
	function SearchResultClass() {
		
		this.ProductArray;
		this.ShowMoreResult;
		this.NoResult;
		this.SearchString;
		
		this.ActHightlightContainerID;
		
		this.ParseSearchResult = function(ResponseText) {
			
			var SearchResult = JSON.parse(ResponseText);
	
			this.ProductArray = SearchResult.ArtikelArray;
			this.ShowMoreResult = SearchResult.ShowMoreResult;
			this.NoResult = SearchResult.NoResult;
			this.SearchString = SearchResult.SearchString;

		}
		
		this.RenderSearchResault = function() {
			
			this.ShowSearchResultDiv();
			
			if (!this.NoResult) {
			
				this.HideNoSearchResultDiv();
				this.ShowListContainerDiv();
				this.ShowSearchHeadlineDiv();
			
				ListContainerElement = document.getElementById('ajaxsearchresult_list_container');
				ListContainerElement.innerHTML = '';
				 
				for (var ArtikelCounter = 0; ArtikelCounter < this.ProductArray.length; ArtikelCounter++) {
	
					ProductElement = this.ProductArray[ArtikelCounter];
	
					SearchResultElement	= this.RenderSearchResultElement(ProductElement['artikel_id'], ProductElement['artikel_name'], ProductElement['artikel_nr'], ProductElement['beschreibung'], ProductElement['smallImage'], ProductElement['preis_format'], ProductElement['format_image']);			
					
					ListContainerElement.appendChild(SearchResultElement);
					
				}
	
				if (this.ShowMoreResult) {
					this.ShowMoreSearchResultDiv();
				} else {
					this.HideMoreSearchResultDiv();
				}
				
			} else {
				this.HideMoreSearchResultDiv();
				this.HideListContainerDiv();
				this.HideSearchHeadlineDiv();
				this.ShowNoSearchResultDiv();
			}
			
		}
		
		this.RenderSearchResultElement = function (ArtikelID, Artikelname, Artikelnummer, Artikelbeschreibung, Artikelbild, Preis, Formatbild) {
			
			var ProductContainer = document.createElement('div');
			ProductContainer.onmouseover = function() { HighlightContainer(ArtikelID) };
			ProductContainer.onmouseout = function() { HighlightReset(); }
			ProductContainer.onclick = function() { document.location.href = URLPFAD + 'themes/kategorie/detail.php?artikelid=' +  ArtikelID; } 
			ProductContainer.onkeypress = function() { MoveHighlight(); } 
			ProductContainer.className = 'ajaxsearchresult_productcontainer';
			ProductContainer.setAttribute('id', 'ajaxsearchresult_productcontainer_' + ArtikelID);
			
			// Artikelbild
			var ProductImageContainer = document.createElement('div');
			ProductImageContainer.className = 'ajaxsearchresult_productimagecontainer';
			ProductImageContainer.style.backgroundImage = 'url(' + URLPFAD + 'images/dbimages/' + Artikelbild + ')';

			var ProductImage = document.createElement('img');
			ProductImage.id = 'ajaxsearchresult_productimage_' + ArtikelID;
			ProductImage.setAttribute('src', URLPFAD + 'images/template/alpha50.png');
			ProductImage.setAttribute('width', '70');
			ProductImage.setAttribute('height', '70');
			
			ProductImageContainer.appendChild(ProductImage);
			
			// Artikelname			
			var ProductNameContainer = document.createElement('div');
			ProductNameContainer.className = 'ajaxsearchresult_productnamecontainer';
			
			var ArtikelNameElement = document.createElement('h1');
			ArtikelNameElement.innerHTML = Artikelname;
			
			var ArtikelBeschreibungElement = document.createElement('p');
			ArtikelBeschreibungElement.innerHTML = Artikelbeschreibung
			
			ProductNameContainer.appendChild(ArtikelNameElement);
			ProductNameContainer.appendChild(ArtikelBeschreibungElement);
			
			// Artikelinformation
			var ProductInformationContainer = document.createElement('div');
			ProductInformationContainer.className = 'ajaxsearchresult_productinformationcontainer';
			
			var ArtikelNrElement = document.createElement('i');
			ArtikelNrElement.innerHTML = Artikelnummer;

			var FormatImage = document.createElement('img');
			FormatImage.setAttribute('src', URLPFAD + 'images/template/' + Formatbild);
			
			var ArtikelPreisElement = document.createElement('b');
			var ArtikelPreis = document.createTextNode(Preis);
			ArtikelPreisElement.appendChild(ArtikelPreis);

			ProductInformationContainer.appendChild(ArtikelNrElement);
			ProductInformationContainer.appendChild(document.createElement('br'));
			ProductInformationContainer.appendChild(FormatImage);
			ProductInformationContainer.appendChild(document.createElement('br'));
			ProductInformationContainer.appendChild(ArtikelPreisElement);
			
			// Box komplett
			ProductContainer.appendChild(ProductImageContainer);
			ProductContainer.appendChild(ProductNameContainer);
			ProductContainer.appendChild(ProductInformationContainer);
			
			return ProductContainer;
			
		}
		
		this.ShowSearchResultDiv = function() {
			document.getElementById('ajaxsearchresult_container').style.display = 'block';
		}
		
		this.HideSearchResultDiv = function() {
			
			document.getElementById('ajaxsearchresult_container').style.display = 'none';
			
			SearchResultObject.ProductArray = null;
			SearchResultObject.ActHightlightContainerID = null;
			
			document.getElementById('ajaxsearch_searchstring').value = '';
			
		}
		
		this.ShowMoreSearchResultDiv = function() {
			document.getElementById('ajaxsearchresult_searchmore').style.display = 'block';
			document.getElementById('ajaxsearchresult_searchmore_link').href = URLPFAD + 'themes/suche/index.php?suchekategorie=&sucheallgemein=' + this.SearchString;
		}
		
		this.HideMoreSearchResultDiv = function() {
			document.getElementById('ajaxsearchresult_searchmore').style.display = 'none';
		}

		this.ShowSearchHeadlineDiv = function() {
			document.getElementById('ajaxsearchresult_searchheadline').style.display = 'block';
		}
		
		this.HideSearchHeadlineDiv = function() {
			document.getElementById('ajaxsearchresult_searchheadline').style.display = 'none';
		}

		this.ShowNoSearchResultDiv = function() {
			document.getElementById('ajaxsearchresult_noresult').style.display = 'block';
		}
		
		this.HideNoSearchResultDiv = function() {
			document.getElementById('ajaxsearchresult_noresult').style.display = 'none';
		}

		this.ShowListContainerDiv = function() {
			document.getElementById('ajaxsearchresult_list_container').style.display = 'block';
		}
		
		this.HideListContainerDiv = function() {
			document.getElementById('ajaxsearchresult_list_container').style.display = 'none';
		}

	}
	
	function HighlightContainer(ArtikelID) {

		HighlightReset();
			
		SearchResultObject.ActHightlightContainerID = ArtikelID;

		if (document.getElementById('ajaxsearchresult_productcontainer_' + SearchResultObject.ActHightlightContainerID)) {
		
			ProductContainerElement = document.getElementById('ajaxsearchresult_productcontainer_' + SearchResultObject.ActHightlightContainerID);
			ProductContainerElement.style.backgroundColor = '#FFFFB4';
			
			ImageElement = document.getElementById('ajaxsearchresult_productimage_' + SearchResultObject.ActHightlightContainerID);
			ImageElement.src = URLPFAD + 'images/trans.gif';
	
			document.getElementById('focuscatcher').focus();
		
		}

	}

	function HighlightReset() {
		
		if ((SearchResultObject.ActHightlightContainerID) && (document.getElementById('ajaxsearchresult_productcontainer_' + SearchResultObject.ActHightlightContainerID))) {
		
			ProductContainerElement = document.getElementById('ajaxsearchresult_productcontainer_' + SearchResultObject.ActHightlightContainerID);
			ProductContainerElement.style.backgroundColor = '#FFFFFF';
			
			ImageElement = document.getElementById('ajaxsearchresult_productimage_' + SearchResultObject.ActHightlightContainerID);
			ImageElement.src = URLPFAD + 'images/template/alpha50.png';

		}
		
	}
	
	function MoveHighlight(e) {
		
		if (!SearchResultObject.ProductArray) {
			return;
		}
		
		var KeyCode;
		
		if (window.event) KeyCode = window.event.keyCode;
		else if (e) KeyCode = e.which;

		var NewHighlightContainer;

		// Pfeiltaste nach unten
		if (KeyCode == 40) {

			if (!SearchResultObject.ActHightlightContainerID) {
				HighlightContainer(SearchResultObject.ProductArray[0]['artikel_id']);
			} else {
			
				for (var ArtikelCounter = 0; ArtikelCounter < (SearchResultObject.ProductArray.length - 1); ArtikelCounter++) {
				
					ProductElement = SearchResultObject.ProductArray[ArtikelCounter];
					
					if ((ProductElement['artikel_id'] == SearchResultObject.ActHightlightContainerID) &&
						(ArtikelCounter < SearchResultObject.ProductArray.length)) {
						
						NewHighlightContainer = SearchResultObject.ProductArray[ArtikelCounter + 1]['artikel_id'];
						
					}
	
				}
				
			}
			
		// Pfeiltaste nach oben
		} else if (KeyCode == 38) {
			
			for (var ArtikelCounter = 0; ArtikelCounter < SearchResultObject.ProductArray.length; ArtikelCounter++) {
			
				ProductElement = SearchResultObject.ProductArray[ArtikelCounter];
				
				if ((ProductElement['artikel_id'] == SearchResultObject.ActHightlightContainerID) &&
					(ArtikelCounter != 0)) {
					
					NewHighlightContainer = SearchResultObject.ProductArray[ArtikelCounter - 1]['artikel_id'];
					
				}

			}

		// Return
		} else if (KeyCode == 13) {

			if (SearchResultObject.ActHightlightContainerID) {
				document.location.href = URLPFAD + 'themes/kategorie/detail.php?artikelid=' +  SearchResultObject.ActHightlightContainerID;
			} 

		} else {
			
			return;
			
		}
		
		if (NewHighlightContainer) {
			HighlightContainer(NewHighlightContainer);
		}

	}

	function CloseAjaxSearch(e) {
	
		if (!e) e = window.event;
	
 		var obj = (e.target) ? e.target : e.srcElement ? e.srcElement : null;
 	
 		if ((obj.id != 'ajaxsearch_searchstring') && 
 			(obj.id != 'ajaxsearchresult_searchheadline') && 
 			(obj.id != 'ajaxsearchresult_list_container') && 
 			(obj.id != 'ajaxsearchresult_searchmore')) {

			SearchResultObject.HideSearchResultDiv();

 		}
 				
	}
	
	
	