		function vai_search(f, force) {
			if($("#search_prompt").length && !force) return false;
			
			if (f.q.value != "") return true;
			else {
				alert("Specificare almeno un termine per la ricerca!");
				return false;
			}
		}
		
		$(function() {
			var searchValue = "";
			
			$("#search a").click(function(event) {
				if(vai_search(document.frmSearch, true)) document.frmSearch.submit();
			});

			$("#txt-search").keyup(function(event, force) {
				var value = event.target.value;
				
				if((value != searchValue && event.keyCode != "13") || force) {
					searchValue = value;
					
					if(value && value.length >= 3) {
						$.ajax({
							url: "http://www.zeppelin.it/ajax.php",
							data: {
								action: "get_suggests",
								text: value
							},
							success: function(response) {
								response = eval("(" + response + ")");
								$("#search_prompt").remove();
								if (response.length) {
									$(document.body).append("<ul id='search_prompt'></ul>");
									var prompt = $("#search_prompt");
									prompt.css({
										top: "190px",
										left: $("#txt-search").offset().left - 5
									});
									
									prompt.children().remove();
									for (var i = 0; i < response.length; i++) prompt.append("<li>" + response[i] + "</li>");
									
									$("#search_prompt > li").hover(function() {
										$("#search_prompt > li").removeClass("hover");
										$(this).addClass("hover");
										
										$("#txt-search").unbind("blur");
									}, function() {
										$("#search_prompt > li").removeClass("hover");
										$(this).removeClass("hover");
										
										$("#txt-search").blur(function() {
											console.log("blur");
											$("#search_prompt").remove();
										});
									}).click(function(event) {
										$("#txt-search").val($(this).text());
										$("#search_prompt").remove();
										$("#txt-search").focus();	
										
										event.stopPropagation();
										event.preventDefault();
									});
								}
							}
						});
					} else $("#search_prompt").remove();
				}
			});
			
			$("#txt-search").keydown(function(event) {
				var children = $("#search_prompt").children();
				var hover = children.filter(".hover");
				var next = hover.next();
				var prev = hover.prev();
				
				if(children.length) {
					if(hover.length) {
						if(event.keyCode == "40" && next.length) {
							hover.removeClass("hover");
							next.addClass("hover");
						} else if(event.keyCode == "38" && prev.length) {
							hover.removeClass("hover");
							prev.addClass("hover");
						}
						
						if(event.keyCode == "13" || event.keyCode == "39") {
							$("#txt-search").val($("#search_prompt .hover").text());
						}
						
						if(event.keyCode == "13") {
							event.stopPropagation();
							event.preventDefault();
							$("#search_prompt").remove();
						}
						
						if(event.keyCode == "37") {
							children.removeClass("hover");
							
							event.stopPropagation();
							event.preventDefault();
						}
					} else if(event.keyCode == "40") { 
						$(children[0]).addClass("hover");
					}

					if(event.keyCode == "40" || event.keyCode == "38" || event.keyCode == "27") {
						event.stopPropagation();
						event.preventDefault();
					}
					
					if(event.keyCode == "27") {
						$("#search_prompt").remove();
					}
				} else if(event.keyCode == "40") {
					$("#txt-search").trigger("keyup", true);
				}
			});
		});
