﻿$(document).ready(function() {
    AttachDismissButtons();
    AttachSearchBox();

    if ($("#feedback-link")) {
        $("#feedback-link").attr("href", "#");
        $("#feedback-link").click(function() { UserVoice.Popin.show(); });
    }

});

function AttachDismissButtons() {
    // Check if we need to add a dismiss button
    if ($(".service-messages .error, .service-messages .confirmation")) {
        $(".service-messages .error, .service-messages .confirmation").prepend('<input type="button" value="Dismiss" id="dimiss-service-messages" class="button small dismiss" />');
        $(".service-messages .error #dimiss-service-messages").click(
            function() {
                HideServiceMessage("error");
            });
        $(".service-messages .confirmation #dimiss-service-messages").click(
            function() {
                HideServiceMessage("confirmation");
            });
    }
}

function AttachSearchBox() {
    var search = $('.nav-search');
    var searchForm = $('form', search);
    var searchBtn = $('#search-submit', search);
    var searchInput = $("input", searchBtn);
    var searchType = $('#t', search);
    var searchDrpDn = $(".dropdown", search);

    searchDrpDn.css({
        top: searchBtn.height()
    }).blur(function() {
        console.log('hi');
    });

    $(document).click(function(ev) {
        if (searchDrpDn.is(':visible')) {
            searchDrpDn.hide();
        }
    });

    var caret = $('<span class="caret"/>').click(function(ev) {
        if (searchDrpDn.is(':visible'))
            searchDrpDn.hide();
        else {
            ev.stopPropagation();
            searchDrpDn.show();
        }
    }).hover(function() {
        $(this).addClass('hover');
    }, function() {
        $(this).removeClass('hover');
    });

    $('a', searchDrpDn).click(function(ev) {
        searchType.val($(this).attr('href').substring($(this).attr('href').lastIndexOf('=') + 1));
        searchForm.submit();
        ev.preventDefault();
    });

    searchInput.css("padding-right", ($.browser.msie) ? 41 : 35);
    searchInput.after(caret);
}

function HideServiceMessage(type) {
    $(".service-messages ." + type).slideUp(200, null);
}

function ShowServiceMessage(type) {
    $(".service-messages ." + type).slideDown(200, null);
}

function ShowServiceMessages(viewModel) {
    var htmlConfirmation = '<div class="confirmation"><ul>';
    var htmlError = '<div class="error"><ul>';
    var containsConfirmations = false;
    var containsErrors = false;

    $.each(viewModel.ServiceMessages, function(index, serviceMessage) {
        if (serviceMessage.Key == "Confirmation") {
            containsConfirmations = true;
            htmlConfirmation += "<li>" + serviceMessage.Message + "</li>";
        }
        else if (serviceMessage.Key == "Error") {
            containsErrors = true;
            htmlError += "<li>" + serviceMessage.Message + "</li>";
        }
    });

    htmlConfirmation += "</ul></div>";
    htmlError += "</ul></div>";

    if (containsConfirmations) {
        HideServiceMessage("confirmation");
        $(".service-messages").html(htmlConfirmation);
        ShowServiceMessage("confirmation");
    }
    if (containsErrors) {
        HideServiceMessage("error");
        $(".service-messages").html(htmlError);
        ShowServiceMessage("error");
    }

    AttachDismissButtons();
}