$j = jQuery.noConflict();

$j(document).ready(function ($) {
    $(this).keypress(function (event) {
       if (event.which == 27) { // Esc;
            var s = $('#suggestions');
            s.hide('blind');
            s.empty();
            $('#query').focus();
       }
       else if (event.which == 13) { // Enter;
           var s = $('#suggestions');
           var selected = s.find('.selected');

           if (selected.length) {
               event.stopPropagation();
               window.location = selected.find('a').attr('href');
               return false;
           }
       }
    });

   $('#query').keyup(function (event) {
       switch (event.which) {
           case 27:
               var s = $('#suggestions');
               s.hide('blind');
               s.empty();
               $('#query').focus();
               break;
           case 40: // down;
               var s = $('#suggestions');
               var current = s.find('.selected');
               current.removeClass('selected');
               if (!current.length || !current.next().length) {
                   s.find('div:first').addClass('selected');
               }
               else {
                   current.next().addClass('selected');
               }
               break;
               
           case 38: // up;
               var s = $('#suggestions');
               var current = s.find('.selected');
               current.removeClass('selected');
               if (!current.length || !current.prev().length) {
                   s.find('div:last').addClass('selected');
               }
               else {
                   current.prev().addClass('selected');
               }
               break;

           default:
              var e = $(this);
               setTimeout(function () {
                   var url = '../suggest.php';
                   $.post(url, {query: e.val()}, function (json) {
                       var suggest = $('#suggestions');
                       suggest.empty();
                       var any = false;
                        $.each(json, function (url,name) {
                            any = true;
                           suggest.append('<div><a href="'+url+'">'+name+'</a></div>');
                        });
                        
                       if (any) {
                           suggest.show('blind');
                       }
                       else {
                          suggest.hide('blind');
                       }
                       

                   });
               }, 25);
       }
   });
});
