// 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).val().length >=2) {
		var timestamp = new Date();
		$(obj).addClass("ajax-loader");
		$.ajax({
			type: 'GET',
			url: $('#typahead-url').val(),
			data: 'suchbegriff=' + encodeURIComponent($(obj).val()) + '&timestamp=' + encodeURIComponent(timestamp*1),
			success: function(xml,textStatus) {
				ajax_link = -1;
				$(obj).removeClass("ajax-loader");
				if ($('success', xml).text() == 'true') {
					// Suche erfolgreich
					$('#ajax_results').html($('message', xml).text());
				} else if ($('success', xml).text() == 'false') {
					// Suche nicht erfolgreich
					$('#ajax_results').html($('message', xml).text());
				}
				
				if ($('#ajax_results').css("display") == "none") {
					$('#ajax_results').slideDown();
				}
				
				$('#ajax_results').unbind("hover");
				$('#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
	var suchenstring = "";

	$('.searchfield').attr("autocomplete","off");

	$('.searchfield').focus(function(){hide_results_focus=false});
	$('.searchfield').blur(function(){
		hide_results_focus = true;
		timeouts["ajax_result"] = setTimeout(closeAjaxQuickSearch,300);
	});
	$('.searchfield').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);
		}
	});
	$('.searchfield').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;
		}
	});

	$(".searchfield").attr("value",suchenstring);
	$(".searchfield").focus(function(){
		if ($(this).attr("value") == suchenstring) {
			$(this).attr("value","");
		}
	});
	$(".searchfield").blur(function(){
		if ($(this).attr("value") == "") {
			$(this).attr("value",suchenstring);
		}
	});

// AJAX Schnellsuche ENDE
});
