var activesearch = false; $("#search-query").blur(function(){if(!activesearch){endsearch();}}); $("#search-query").focus(function(){searchquery()}); $("#search-query").click(function(){searchquery()}); $("#search-query").keyup(function(key) { if(key.keyCode!='38' && key.keyCode!='40'){ searchquery();}}); $("#dynsearch").mouseover(function(){activesearch=true;}); $("#dynsearch").mouseleave(function(){activesearch=false;endsearch(); }); function searchquery(){ if($("#search-query").val()==''){ endsearch(); } else { $.post( "/search.php", { query: $("#search-query").val(), type: "ajax" }) .done(function( data ) { if(data==""){ endsearch(); } else { w = Number($("#search-query").css("width").replace('px',''))-33; $("#dynsearch").html(data); $("#dynsearch").css("width",w+"px"); $("#dynsearch").addClass("active"); } }); } } function endsearch(){ $("#dynsearch").removeClass("active"); $("#dynsearch").html(""); } $("#search-query").keydown( function(e) { if (e.keyCode == 13){ i = $("#dynsearch li.sel"); if($(i).length){ href = i.find("a").attr("href"); document.location = href; return false; } } if (e.keyCode == 40) { sel = $("#dynsearch li.sel"); if($(sel).length){ i = $("#dynsearch li.sel").next(); if($(i).length){ $("#dynsearch li").removeClass("sel"); i.addClass("sel"); } else { i = $("#dynsearch li").first(); $("#dynsearch li").removeClass("sel"); i.addClass("sel"); } } else { activesearch = true; i = $("#dynsearch li").first(); i.addClass("sel"); i.focus(); } } if (e.keyCode == 38) { sel = $("#dynsearch li.sel"); if($(sel).length){ i = $("#dynsearch li.sel").prev(); if($(i).length){ $("#dynsearch li").removeClass("sel"); i.addClass("sel"); } else { i = $("#dynsearch li").last(); $("#dynsearch li").removeClass("sel"); i.addClass("sel"); } } else { activesearch = true; i = $("#dynsearch li").last(); i.addClass("sel"); i.focus(); } } if (e.keyCode == 38 || e.keyCode == 40){ i = $("#dynsearch li.sel"); if($(i).length){ $("#search-query").val(i.find("a").attr("relname")); } } } );