﻿$(document).ready(function () {

    //hide initially
    hideSuggest();

    function buildSuggest() {

        var $qval = $("#q").val();

        if ($qval.length < 3) {
            hideSuggest();
            return;
        }

        $.get("/suggest-feed.aspx", { q: $qval }, function (rsp) {

            if ($.trim(rsp) != '') { //IE friendly syntax
                $("#suggest").html(rsp);
                $('#suggest').show();
                var $ol = $('#q').offset().left + $('#q').outerWidth() - $('#suggest').outerWidth();
                var $ot = $('#q').offset().top + $('#q').outerHeight();
                $('#suggest').offset({ top: $ot, left: $ol });
            }
            else {
                hideSuggest();
            }
        });
    }

    function hideSuggest() {
        setTimeout(function () {
            $('#suggest').hide();
        }, 200);
    }

    $("#q").live("focusin", function (e) {
        buildSuggest();
    });

    $("#q").live("focusout", function (e) {
        hideSuggest();
    });

    $("#q").live("keyup", function (e) {

        var $hlight = $('div.hlight');
        var $div = $('#suggest div');
        var code = (e.keyCode ? e.keyCode : e.which);

        if (code == 27) {
            //escape
            hideSuggest();
        }
        else if (code == 40) {
            //down
            e.preventDefault();

            $hlight.removeClass('hlight').next().addClass('hlight');
            if ($hlight.next().length == 0) {
                $div.eq(0).addClass('hlight');
            }
        }
        else if (code === 38) {
            //up
            e.preventDefault();

            $hlight.removeClass('hlight').prev().addClass('hlight');
            if ($hlight.prev().length == 0) {
                $div.eq(-1).addClass('hlight');
            }
        }
        else if (code === 13) {
            //enter
            hideSuggest();
            if ($hlight.length !== 0) {
                e.preventDefault();
                window.location = $("div.hlight a:first-child").attr('href');
            }
        }

        else {
            buildSuggest();
        }
    });

});

