﻿var currentUrl = "";
var currentSelection = 0;
$(document).keydown(function (e) {
    switch (e.keyCode) {
        // User pressed "up" arrow   
        case 38:
            navigate('up');
            break;
        // User pressed "down" arrow   
        case 40:
            navigate('down');
            break;
        // User pressed "enter"   
        case 13:
            e.preventDefault
            if (currentUrl != '') {
                window.location = currentUrl;
            }
            break;
    }
});


// Add data to let the hover know which index they have


// Simulate the "hover" effect with the mouse
var mouse_is_inside = false;
$("#sResults").hover(function () {
    mouse_is_inside = true;
}, function () {
    mouse_is_inside = false;
});
$("#sResults a").hover(function () {
    $(".itemhover").removeClass('itemhover');
    $(".lihover").removeClass('lihover');
    $(this).addClass('itemhover').parent().addClass('lihover');
    currentUrl = '';
}, function () {
    $(".itemhover").removeClass('itemhover');
    $(".lihover").removeClass('lihover');
});

var li = "<li>";
var eLi = "</li>";
$("#site-search input").click(function () {
    $(this).css('fontStyle', 'normal').val('');
});
$("body").click(function () {
    if (!mouse_is_inside) {
        $("#sResults").hide();
    }
});
$("#site-search input").keydown(function (event) {
    var term = stripslashes(stripslashes($(this).val()));
    if (window.event) {
        var keynum = event.keyCode;
    } else if (event.which) {
        var keynum = event.which;
    }
    if (term.IsNullOrEmpty) {
        $('#sResults').css('display', 'none');
        return;
    }
    $('#searchLink').attr('href', "/search/" + term);
    if (keynum > 40 || keynum < 9) {
        $('#sResults ul').html("");
        if (term.length > 1) {
            $('#sResults').show();
            $('#sContainer').show();
        } else {
            $('#sResults').hide();
            $('#sContainer').hide();
        }
        patt = new RegExp(term, "gi");

        for (n = 0; n < si.length; n++) {
            if (si[n][0].match(patt) || si[n][2].match(patt)) {
                var appendThis = "<li><a href='" + si[n][1] + "'>" + si[n][0] + "</a></li>";
                $('#sResults ul').append(appendThis);
            }
        }
        var appendThis = "<li><a href='/Search/" + term + "'>View All Results &rarr;&nbsp;</a></li>";
        $('#sResults ul').append(appendThis);
    }
    for (var i = 0; i < $("#sResults ul li a").size(); i++) {
        $("#sResults ul li a").eq(i).data("number", i);
    }
    var goToURL = "/search/" + term;
    if (keynum == 13) {
        event.preventDefault();
        window.location.assign(goToUrl);
    }

});
function navigate(direction) {
    // Check if any of the menu items is selected
    if ($("#sResults ul li .itemhover").size() == 0) {
        currentSelection = -1;
    }

    if (direction == 'up' && currentSelection != -1) {
        if (currentSelection != 0) {
            currentSelection--;
        }
    } else if (direction == 'down') {
        if (currentSelection != $("#sResults ul li").size() - 1) {
            currentSelection++;
        }
    }
    setSelected(currentSelection);
}

function setSelected(menuitem) {
    $(".itemhover").parent().removeClass("lihover");
    $("#sResults ul li a").removeClass("itemhover");
    $("#sResults ul li a").eq(menuitem).addClass("itemhover");
    $(".itemhover").parent().addClass("lihover");
    currentUrl = $("#sResults ul li a").eq(menuitem).attr("href");
}
function stripslashes(str) {
    return (str + '').replace(/\\(.?)/g, function (s, n1) {
        switch (n1) {
            case '\\':
                return '';
            case '\\\\':
                return '';
            case '0':
                return '\u0000';
            case '':
                return '';
            default:
                return n1;
        }
    });
}

String.IsNullOrEmpty = function (value) {
    var isNullOrEmpty = true;
    if (value) {
        if (typeof (value) == 'string') {
            if (value.length > 0)
                isNullOrEmpty = false;
        }
    }
    return isNullOrEmpty;
}
