// Intelligente Shop-Suche
// Bestandteil des RM-Shop 2.0
// (c) 2006 by red|mind(r)
// Alle Rechte vorbehalten
// http://www.redmind.de
// AJAX
var xmlHttp = false;
var REQUEST_GET        = 0;
var REQEST_POST        = 2;
var REQUEST_HEAD    = 1;
var REQUEST_XML        = 3;
var input1="";
var rm_suchBox;
var sessionid;
function getXMLRequester( )
{
    var xmlHttp = false;
    try
    {
        // IE
        if( window.ActiveXObject )
        {
            for( var i = 5; i; i-- )
            {
                try
                {
                    if( i == 2 )
                    {
                        xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );    
                    }
                    else
                    {
                        xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
                    }
                    break;
                }
                catch( excNotLoadable )
                {                        
                    xmlHttp = false;
                }
            }
        }
        // Mozilla, Opera, Safari
        else if( window.XMLHttpRequest )
        {
            xmlHttp = new XMLHttpRequest();
        }
    }
    catch( excNotLoadable )
    {
        xmlHttp = false;
    }
    return xmlHttp ;
}
function sendRequest( strSource, strData, intType, intID )
{
    if( !strData )
        strData = '';
    if( isNaN( intType ) )
        intType = 0; // GET
    if( xmlHttp && xmlHttp.readyState )
    {
        xmlHttp.abort( );
        xmlHttp = false;
    }
    if( !xmlHttp )
    {
        xmlHttp = getXMLRequester( );
        if( !xmlHttp )
            return;
    }
    if( intType != 1 && ( strData && strData.substr( 0, 1 ) == '&' || strData.substr( 0, 1 ) == '?' ) )
        strData = strData.substring( 1, strData.length );
    var dataReturn = strData ? strData : strSource;
    switch( intType )
    {
        case 1:    // xml
            strData = "xml=" + strData;
        case 2: // POST
            xmlHttp.open( "POST", strSource, true );
            xmlHttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
            xmlHttp.setRequestHeader( 'Content-length', strData.length );
            break;
        case 3: // HEAD
            xmlHttp.open( "HEAD", strSource, true );
            strData = null;
            break;
        default: // GET
            var strDataFile = strSource + (strData ? '?' + strData : '' );
            xmlHttp.open( "GET", strDataFile, true );
            strData = null;
    }
    xmlHttp.onreadystatechange = new Function( "", "processResponse(" + intID + ")" ); ;
    xmlHttp.send( strData );    // param = POST data
    return dataReturn;
}
    
function processResponse( intID )
{
    switch( xmlHttp.readyState )
    {
        // uninitialized
        case 0:
        // loading
        case 1:
        // loaded
        case 2:
        // interactive
        case 3:
            break;
        // complete
        case 4:    
            if( xmlHttp.status == 200 )    // success
            {
                processData( xmlHttp, intID );
            }
            else
            {
                if( window.handleAJAXError )
                    handleAJAXError( xmlHttp, intID );
                else
                    aaa=1;
            }
    }
}
// Suche
var aktuelleReihe = 1;
var hiddenwerte = new Array();
function Suche(wert){
 if (KeyCodeCheck(wert)==true) alert(document.suchbox.keyword3.value);
}
function processData( xmlHttp, intID )
{
 rm_suchBox=document.getElementById('suchlayer');
 //alte eintraege loeschen
     while (rm_suchBox.hasChildNodes()) {
        rm_suchBox.removeChild(rm_suchBox.firstChild);
    }
 
 if (xmlHttp.responseText.length>0){
    eval(xmlHttp.responseText);
   for (i = 0; i < a.length; i++) {
  	 iDiv = document.createElement("div");
      iDiv.id = "row" + i;
      iDiv.className = "row";
      iDiv.style.height="16";
      iDiv.style.cursor = "pointer";
      iDiv.innerHTML = "<div style=\"float:left;width:250px\">&nbsp;" + a[i] + "&nbsp;</div><div style=\"float:left\">&nbsp;" + c[i] + "&nbsp;</div>";
			iDiv.onmousedown = new Function("Test123", "javascript:window.location=\'/product.php?prodID=" + b[i] + "\';");
			iDiv.onmouseover = new Function("Test123", "highlight_an(" + i + ");");
			iDiv.onmouseout = new Function("Test123", "highlight_aus();");
      rm_suchBox.appendChild(iDiv);
			hiddenwerte[i]=b[i];
   }
  aktuelleReihe=-1;
  	 iDiv = document.createElement("div");
      iDiv.id = "anzahl" ;
      iDiv.className = "search_status";
      iDiv.innerHTML = "&nbsp;" ;
      rm_suchBox.appendChild(iDiv);
    	document.getElementById('suchlayer').style.visibility="visible";
  }
}
function KeyCodeCheck(KK){
  if (KK < 41 && KK > 36 || KK==13){
	  return false;
	}else{
	  return true;
	}
}
function Suche(event){
if (!event) event=window.event;
 var such = input1.value;
 if (such.length > 1) {
   if (KeyCodeCheck(event.keyCode)){
     sendRequest('../rmsearch/request.php','?rand=' + Math.round(Math.random()*1000) + '&request=' + such)
	 }
 }else{
	document.getElementById('suchlayer').style.visibility="hidden";
 }
}
function Suche2(event){
if (!event) event=window.event;
 var such = input1.value;
 if (such.length > 0) {
   if (!KeyCodeCheck(event.keyCode)){
		 es = document.getElementsByTagName('div');
     if (event.keyCode==13) {
       for (i = 0; i < rm_suchBox.childNodes.length-1; i++) {
         if (rm_suchBox.childNodes[i].className=="rowSel"){
				   window.location="/product.php?prodID=" + hiddenwerte[aktuelleReihe];
					 return false;
				 }
			 }
		 }
     // keydown
     if (event.keyCode==40){
			 var neu=0;
       for (i = 0; i < rm_suchBox.childNodes.length-1; i++) {
         if (rm_suchBox.childNodes[i].className=="rowSel"){
				   rm_suchBox.childNodes[i].className="row"
					 var neu=i+1;
				 }
			 }
    	   if (neu < rm_suchBox.childNodes.length -1){
    		   rm_suchBox.childNodes[neu].className="rowSel";
					 aktuelleReihe=neu;
    	   }else{
    		   rm_suchBox.childNodes[i-1].className="rowSel";
					 aktuelleReihe=i-1;
    	   }
		 }	
    // keyup
     if (event.keyCode==38){
		   var neu=-1;
       for (i = 0; i < rm_suchBox.childNodes.length; i++) {
         if (rm_suchBox.childNodes[i].className=="rowSel"){
				   rm_suchBox.childNodes[i].className="row"
					 var neu=i-1;
				 }
       }
    	 if (neu >= 0){
    		 rm_suchBox.childNodes[neu].className="rowSel"
				 aktuelleReihe=neu;
    	 }else{
				 aktuelleReihe=-1;
    	 }
		 }	
	 }
 }else{
   hidesearch();
 }
}
function highlight_an(reihe){
  for (i = 0; i < rm_suchBox.childNodes.length-1; i++) {
      rm_suchBox.childNodes[i].className="row"
  }
    rm_suchBox.childNodes[reihe].className="rowSel"
}
function highlight_aus(){
  for (i = 0; i < rm_suchBox.childNodes.length-1; i++) {
      rm_suchBox.childNodes[i].className="row"
  }
}
function hidesearch(){
  document.getElementById('suchlayer').style.visibility="hidden";
}
function setup_search(feld1){
 	  input1=feld1;
    input1.autocomplete = 'off';
    input1.onkeyup = Suche;
    input1.onfoucs = Suche;
    input1.onkeydown = Suche2;
		input1.onblur=hidesearch;
}