// JavaScript Document
/*
	This is the JavaScript file for the AJAX Suggest Tutorial

	You may use this code in your own projects as long as this 
	copyright is left	in place.  All code is provided AS-IS.
	This code is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	
	For the rest of the code visit http://www.DynamicAJAX.com
	
	Copyright 2006 Ryan Smith / 345 Technical / 345 Group.	

*/




var BrowserName = navigator.appName;




//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
	
  /*	return new ActiveXObject("Microsoft.XMLHTTP"); */
  		try { result=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { 
	//	alert ("In Ihrem Internet Explorer sind die ActiveX-Steuerelemente deaktiviert.\n\nFuer eine fehlerfreie Darstellung werden diese jedoch benoetigt.\nBitte aktivieren Sie ActiveX unter 'Extras', dann 'Internetoptionen'.\nHier den Reiter 'Sicherheit' auswaehlen und 'Stufe anpassen' klicken.\nJetzt bitte den ersten und dritten Punkt aktivieren.");
		var result = 0; }
		
  
  
	} else {
		alert("Ihr Browser unterstÃ¼tzt wichtige Funktionen des Shops nicht!\nBitte nehmen Sie ein Update vor oder aktivieren Sie ActiveXObjects.\nWenn Sie Hilfe benÃ¶tigen - fragen Sie uns!");
	}
	return result;
}

/***************************************************
 *  Bereich fuerr die SearchSuggest-Functionen
 *  
 ***************************************************/   



//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();



// test
var test = getXmlHttpRequestObject();


//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {

 if (searchReq != null) {


	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearchID').value);
		searchReq.open("GET", '/onlineshop/ajax/suggest2.php?q=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}	
  	
}
else return 0;
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		var letzteselement = str.length-1;
		ss.innerHTML += str[letzteselement];
		if (str[0]!="") document.getElementById('cntsuggests').value=str.length-1;
		if (str.length > 0)
        {
        var suggest = "\n\t\t<ul>\n";
		for(i=0; i < str.length-1; i++) {
		
		      if (str[i]!='')
		      {
		          
		          var flag = document.getElementById("vorschlagflags"+i).value;
		          var type = '';
		          if (flag == '010') 
                    { var type = 'Hersteller'; }
                    if (flag == '100')
                    { var type = 'Suchbegriff'; }
                    if (flag == '110')
                    { var type = 'Suchbegriff'; }
                    if (flag == '001') 
                    { var type = 'Artikelgruppe'; }
		      //alert (str[i]);
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var searchinput = document.getElementById('txtSearchID').value;

			var matchstring = new RegExp (searchinput, "i");
            if(Ergebnis = str[i].match(matchstring))
            {
            var display = str[i].replace(new RegExp("("+Ergebnis+")","i"),"<strong>"+Ergebnis+"</strong>");
			            
            }
            else var display = str[i];
            
            var cnt_produkte = document.getElementById('vorschlag_cnt_produkte'+i).value;
			if (type=='Suchbegriff' && cnt_produkte=='')
			{}
			else
			{

			
			suggest += '			<li><a href="#" onclick="javascript:setSearch(\'' + str[i] + '\', ' + i + ');"  ';
			suggest += 'id="vorschlag' + i +'">' + display;
             if (type=='Hersteller' )  suggest += ' <span>' + type + '</span>';  
             if (type=='Suchbegriff' && cnt_produkte!='') suggest += cnt_produkte + ' Produkte'; 
            
            suggest += "</a></li>\n";
			 }
			 }
			 

		}
		suggest += "\t\t</ul>\n";
		ss.innerHTML += suggest;
		

		
		}
	if(document.getElementById('search_suggest').innerHTML != ''){
		document.getElementById('search_suggest').style.display='block';
	}else{
		document.getElementById('search_suggest').style.display='none';
		}
	}
}


//Click function
function setSearch(value, selectedrow) {
	document.getElementById('txtSearchID').value = value;
	document.getElementById('selectedsuggest').value = value;
	// Versteckte Formularfelder mit passenden Werten zur aktuellen Markierung versehen, damit diese einfach per enter-Taste Ã¼bergeben werden kÃ¶nnen.
	document.getElementById("hiddensearchflags").value=document.getElementById("vorschlagflags" + selectedrow).value;
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('frmSearch').submit();
}

    

function sAus()
{
        var obj = document.getElementById('search_suggest');
        if ( obj )
        {
                obj.style.display='none';
        }
}





function sleep(ms){
var zeit=(new Date()).getTime();
var stoppZeit=zeit+ms;
while((new Date()).getTime()<stoppZeit){};
} 


