/**
 * @author alexanderfried
 */
var markedelement = -1;
function marknext_search(Ereignis){
	if (!Ereignis) Ereignis = window.event;
	if (Ereignis.keyCode == 27) //ESC
	{
		hide_search();
		markedelement=-1;
	}
	else {
	
	
		if (Ereignis.keyCode == 38 || Ereignis.keyCode == 40) {
			if (markedelement != -1) 
				unmark_search(markedelement);
			
			if (!Ereignis) 
				Ereignis = window.event;
			if (Ereignis.keyCode == 38) {
				if (markedelement > 0) 
					markedelement--;
				else 
					markedelement = 0;
				
			}
			
			if (Ereignis.keyCode == 40) {
			
			
				if (markedelement != document.getElementById("results").childNodes.length - 1) 
					markedelement++;
				else 
					markedelement = 0;
				
			}
			
			document.getElementById("eingabe").value = document.getElementById(markedelement).getElementsByTagName("a")[0].innerHTML;
			mark_search(markedelement);
		}
		else 
			markedelement = -1;
	}
    
}

document.onkeypress = marknext_search;
document.onclick = hide_search;

function show_search(){
    document.getElementById('results').style.display = "block";
}

function hide_search(){
    document.getElementById('results').style.display = "none";
}

function mark_search(id){
    document.getElementById(id).style.backgroundColor = "orange";
	markedelement = id;
    
}

function unmark_search(id){
    document.getElementById(id).style.backgroundColor = "white";
}

function update_search(keycode){

    if (keycode != 40 && keycode != 38 && keycode != 27) {
        var eingabe = document.getElementById('eingabe');
        //erstellen des requests
        var req = null;
        
        try {
            req = new XMLHttpRequest();
        } 
        catch (ms) {
            try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (nonms) {
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (failed) {
                    req = null;
                }
            }
        }
        
        
        if (req == null) 
            alert("Error creating request object!");
        var results = document.getElementById('results');
        //anfrage erstellen (GET, url ist localhost,
        //request ist asynchron    
        if (eingabe.value == "") 
            results.style.display = "none";
        else 
            results.style.display = "block";
        var url = 'search_suggestions.php?filter=' + eingabe.value;
        
        
        req.open("GET", url, true);
        
        //Beim abschliessen des request wird diese Funktion ausgeführt
        req.onreadystatechange = function(){
            switch (req.readyState) {
                case 4:
                    if (req.status != 200) {
                        //alert("Fehler:" + req.status);
                    }
                    else {
                        
						if(req.responseText!=""){
							document.getElementById('results').innerHTML = req.responseText;
						}
						else
							document.getElementById('results').style.display = "none";
							
							
                        left = document.getElementById("eingabe").offsetLeft;
                        top = document.getElementById("eingabe").offsetTop + document.getElementById('eingabe').offsetHeight;
                        
                        //document.getElementById('results').style.left = left + "px";
                        
                        //document.getElementById('results').style.top = top + "px";
                        
                        
                    //schreibe die antwort in den div container mit der id content 
                    
                    }
                    break;
                    
                default:
                    return false;
                    break;
            }
        };
        
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send(null);
    }
    
    
}

