// AJAX Suche -> wird von Document.ready() Funktion aufgerufen
var timeouts = new Object();
var ajax_link = -1;
var hide_results_focus = false;	// Wenn Focus auf dem Eingabefeld liegt, Ergebnis anzeigen
var hide_results_hover = true;	// Wenn Focus auf der Ergebnisliste liegt, Ergebnis anzeigen
function ajaxQuickSearch (obj) {
	if (obj.value.length >=2) {
		var timestamp = new Date();
		$.ajax({
			type: 'GET',
			url: '/searchahead',
			data: 's=' + encodeURIComponent(obj.value) + '&timestamp=' + encodeURIComponent(timestamp*1),
			success: function(xml,textStatus) {
				ajax_link = -1;
				if ($('#ajax_results').length == 0) {
					clearTimeout(timeouts["ajax_result"]);
					$('body').append('<div id="ajax_results"></div>');
					$('#ajax_results').css({left: $(obj).offset().left + 'px', top: ($(obj).offset().top + $(obj).height() + 2) + 'px', 'z-index': 10000, display: 'none'});
				}
				if ($('success', xml).text() == 'true') {
					// Suche erfolgreich
					$('#ajax_results').html($('results', xml).text());
				} else if ($('success', xml).text() == 'false') {
					$('#ajax_results').html($('message', xml).text());
				}
				if ($('#ajax_results').css("display") == "none") {
					$('#ajax_results').slideDown();
				}
				$('#ajax_results').hover(function(){
					hide_results_hover = false;
				},function(){
					hide_results_hover = true;
					timeouts["ajax_result"] = setTimeout(closeAjaxQuickSearch,300);
				});
			},
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				
			}
		});
	}
}
function closeAjaxQuickSearch () {
	if ($('#ajax_results') && hide_results_focus == true && hide_results_hover == true) {
		$('#ajax_results').slideUp();
	}
}

$(document).ready(function(){
// AJAX Schnellsuche START

	$('#schnellsuche input[name=s]').attr("autocomplete","off");

	$('#schnellsuche input[name=s]').focus(function(){hide_results_focus=false});
	$('#schnellsuche input[name=s]').blur(function(){
		hide_results_focus = true;
		timeouts["ajax_result"] = setTimeout(closeAjaxQuickSearch,300);
	});
	$('#schnellsuche input[name=s]').keyup(function(e){
		var key = e.charCode || e.keyCode || 0;
		var that = this;
		if (key != 37 && key != 38 && key != 39 && key != 40 && key != 13) {
			clearTimeout(timeouts["ajax_search"]);
			timeouts["ajax_search"] = setTimeout(function(){ajaxQuickSearch(that)},200);
		}
	});
	$('#schnellsuche input[name=s]').keydown(function(e){
		var key = e.charCode || e.keyCode || 0;
		var that = this;
		if (key == 40 && $("#ajax_results").length != 0) {
			if (ajax_link == -1) {
				ajax_link = 0;
			} else {
				$('#ajax_results > a:eq('+ajax_link+')').removeClass("ajaxfocus");
				if (ajax_link == $('#ajax_results > a').length-1) {
					ajax_link = 0;					
				} else {
					ajax_link = ajax_link+1;					
				}
			}
			$('#ajax_results > a:eq('+ajax_link+')').addClass("ajaxfocus");
		} else if (key == 38) {
			if (ajax_link == -1) {
				ajax_link = 0;
			} else {
				$('#ajax_results > a:eq('+ajax_link+')').removeClass("ajaxfocus");
				if (ajax_link == 0) {
					ajax_link = $('#ajax_results > a').length-1;
				} else {
					ajax_link = ajax_link-1;
				}
			}
			$('#ajax_results > a:eq('+ajax_link+')').addClass("ajaxfocus");
		} else if (key == 13 && ajax_link != -1) {
			window.location.href = $('#ajax_results > a:eq('+ajax_link+')').attr("href");
			return false;
		}
	});

	$("#schnellsuche input[name=s]").attr("value",suchenstring);
	$("#schnellsuche input[name=s]").focus(function(){
		if ($(this).attr("value") == suchenstring) {
			$(this).attr("value","");
		}
	});
	$("#schnellsuche input[name=s]").blur(function(){
		if ($(this).attr("value") == "") {
			$(this).attr("value",suchenstring);
		}
	});

// AJAX Schnellsuche ENDE
});