//speichert eine Instanz von XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

//erzeugt eine Instanz von XMLHttpRequest
function createXmlHttpRequestObject()
{
  //speichert die Referenz auf das XmlHttpRequestObject
  var xmlHttp;
  try{
     //versucht, ein XmlHttpRequest-Objekt zu erzeugen
     xmlHttp = new XMLHttpRequest();
     }
     catch(e){
             // für IE6 oder Älter
             var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                             "MSXML2.XMLHTTP.5.0",
                                             "MSXML2.XMLHTTP.4.0",
                                             "MSXML2.XMLHTTP.3.0",
                                             "MSXML2.XMLHTTP",
                                             "Microsoft.XMLHTTP");
             // probiert Prog-IDs durch, bis eine funktioniert
             for(var i=0; i< XmlHttpVersions.length && !xmlHttp; i++){
                try{
                   // versucht ein XMLHttpRequest-Objekt zu erzeugen
                   xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
                   }
                   catch(e){}
                }// Ende for
             }// Ende catch(e)
   // gibt das erzeugte Objekt oder eine Fehlermeldung zurück
   if(!xmlHttp)
    alert("Error creating XMLHttpRequest object.");
    else
        return xmlHttp;
}

function searchWord(search)
{
  //nur fortfahren, wenn xmlHttp nicht leer ist.
  if(xmlHttp){
    // Versuch einer Serververbindung
    try{        
       //erzeugt den Parameterstring
       var params = "searchword=" + search;
       xmlHttp.open("GET", "ajax_search.php?" + params, true);
       xmlHttp.onreadystatechange = handleRequestStateChangeSearch;
       xmlHttp.send(null);
       }
       //zeigt einen Fehler an, falls er auftritt
       catch(e){
               setTimeout("searchWord(), 1000");
               //alert("Can`t connect to server: \n" + e.toString());
               }
    }//ende if
}//ende function addbasket

//Funktion zur Behandlung der HTTP-Antwort
function handleRequestStateChangeSearch()
{
  //beschafft eine Referenzauf das <div>-Element auf der Seite
  myDiv = document.getElementById("search");
  // zeigt den Status des Requests an
  if (xmlHttp.readyState == 4){
    
    //nur weitermachen, wenn HTTP-Status "OK"
    if(xmlHttp.status == 200){
      try{
         handleServerResponseSearch();
         }
         catch(e){
                 //zeigt Fehlermeldungen an               
                 //alert("Error reading the response: " + e.toString());
                 }
      }
      else if (xmlhttp.status==404) alert("URL doesn't exist!")
      else{
          // zeigt Statusmeldung an
          alert("There was a problem retrieving the data: \n" + xmlHttp.statusText);
          }
    }
}

function handleServerResponseSearch()
{
  //ruft die Server-Antwort als XML-DOM Objekt ab
  var response = xmlHttp.responseText;
  var result   = document.getElementById("searchSuggest");
  result.innerHTML = response;
  if(response.length != 0){
    result.style.display = "block";
    }//END if(result.length != 0)
    else{
        result.style.display = "none";
        }//END else(result.length != 0)
}


function detectBrowser()
{
var browser   = navigator.appName;
var b_version = navigator.appVersion;
var version   = parseFloat(b_version);
if(browser == "Netscape"){
  return "FF";
  }//END if(browser == "Netscape")
  else if(browser == "Microsoft Internet Explorer"){
         return "IE";
         }//END else if(browser == "Microsoft Internet Explorer")
     else{
         return "NA";
         }//END else
}


function hide(e)
{
  var div    = document.getElementById('searchSuggest');
  var target = e ? e.target : event.srcElement;
  if(target != div){
    div.style.display='none';   
    document.getElementById("search").value=""; 
    }//END if(target != div)
    else{
        null
        }//END if(target != div)
}//END function hide(e)


function isChar(keyCode)
{
	if(keyCode >= 65 && keyCode <= 90){
		return true;
	  }//END if(keyCode >= 65 && keyCode <= 90)
  	 else{
        	return false;
         }//END else(keyCode >= 65 && keyCode <= 90)
}//END function isChar(keyCode)


function autoFocus(e)
{
if(detectBrowser() == "IE"){
  var event = window.event.keyCode;
  }//END if(detectBrowser() == "IE")
  else{
      var event = e.keyCode;
      }//END else(detectBrowser() == "IE")

if(document.getElementById("usrlogin")){
  var foc = document.getElementById("usrlogin"); 
  if(document.getElementById("usrlogin").value.length != 0){
    var foc = document.getElementById("passw");
    }//END if(document.getElementById("usrlogin").value.length != 0)
  if(event == 13){
  	if(document.getElementById("register")){	
      document.forms[2].submit();
  	  }//END if(document.getElementById("register"))
  	  else{
  	      document.forms[1].submit();
  	      }//END else(document.getElementById("register"))
    }//END if(event == 13) 
  }//END if(document.getElementById("usrlogin"))    
  else{
      var foc = document.getElementById("search");
      }
if(isChar(event) == true && document.activeElement.nodeName == "BODY"){
  foc.focus();
  foc.select();
  }//END if(isChar(e.keyCode) == true)
}//END function autoFocus(e)

function setFocus()
{
var foc = document.getElementById("search");
if(document.getElementById("usrlogin")){
  var foc = document.getElementById("usrlogin");  
  if(document.getElementById("usrlogin").value.length != 0){
    var foc = document.getElementById("passw");
    }//END if(document.getElementById("usrlogin").value.length != 0)
  }//END if(document.getElementById("usrlogin")) 
foc.focus();    
}

window.onload       = setFocus;
document.onclick    = hide;
document.onkeydown  = autoFocus;
document.onkeypress = autoFocus;


