$(document).ready(function () {

    var initsearchtypes = function () {
        var menuObjectData = [];

        $('#ddOther').next().children().each(function () {
            var listItem = {
                label: $(this).html(),
                id: $(this).html(),
                onclick: function (item) {
                    $("#ddOther-select span:first").html($("span", item).html());
                    $("#ddOther").val(item.attr("rel"));
                    menuItemOnclick(item);
                }
            };
            menuObjectData.push(listItem);
        });

        $('#ddOther').next().css("display", "none");


        $('#ddOther').next().children().each(function () {
            if ($.trim($(this).html()) == 'Cust Id / Name')
                $(this).addClass('selected');
        })

        if ($('#ddOther').next().children(".selected").length == 0) {
            $('#ddOther').next().children(":first").addClass("selected");
        }

        // $("#ddOther").val($('#ddOther').next().children("li:first").html());
        $("#ddOther").val($('#ddOther').next().children("li.selected").html());

        var toolbarObject = {
            classname: 'mtb-first',
            id: 'ddOther-select',
            label: $('#ddOther').next().children(".selected").html(),
            type: 'select',
            alignwith: $("#my-search-filter"),
            menu: {
                classname: 'search-filter-select',
                blankImg: 'images/jquery/icons/blank.gif',
                iconchecked: 'images/jquery/icons/ui-check-box-mix.png',
                iconunchecked: 'images/jquery/icons/ui-check-box-uncheck.png',
                evenclass: 'ip',
                oddcless: 'p',
                position: 'right',
                data: menuObjectData
            }
        };

        var btn = new MiniToolbarButton(toolbarObject);
        $("#ddOther").before(btn);
    }

    initsearchtypes();

    /** 
    * THE RESULT DROPDOWN
    * *
    * */
    var currentResultButton = null;
    /** HACK TO HIDE PIECE OF DROPDOWN BORDER,**/
    var selectHack = $("<div id='selecthack'>&nbsp;</div>");
    $('body').append(selectHack);

    $('#search-query').keydown(function (event) {
        if (event.keyCode == 13) {
            $("#search-submit").click();
            return false;
        }
    });

    var menuItemOnclick = function (elem) {
        if (String($("#ddOther").val()).replace(/\s+/g, "") == 'Showprevioussearch') {
            if ($("#previousSearchCriteria").val().length > 0 && $("#previousValue").val().length > 0) {
                $('#ddOther').next().children("li.selected").removeClass('selected');
                $('#ddOther').next().children().each(function () {
                    if ($.trim($(this).html()) == $("#previousSearchCriteria").val())
                        $(this).addClass('selected');
                })
                $("#ddOther").val($('#ddOther').next().children("li.selected").html());
                $("#search-query").val($("#previousValue").val());
                $("#my-search-filter span").text($("#previousSearchCriteria").val());
                //$("#search-submit").click(false);
                search_submit_click(false);
            }
        }
        else {
            $('#ddOther').next().children("li.selected").removeClass('selected');
            $('#ddOther').next().children().each(function () {
                if ($.trim($(this).html()) == $.trim($('#ddOther').val()))
                    $(this).addClass('selected');
            })
        }
    };
    var search_submit_click = function (autoselect) {
        if ($("#search-query").val().length > 0) {
            $("#my-search .my-results-field .ajax-load").css("display", "block");
            if (currentResultButton) {
                currentResultButton.destroy();
                currentResultButton.remove();
            }
            $('div.result-link').remove();

            $("#previousSearchCriteria").val($.trim($("#ddOther").val()));
            $("#previousValue").val($("#search-query").val());

            $.ajax({
                url: applicationPath + "Search/FindCustomers",
                type: "POST",
                dataType: "json",
                data: { criteria: $('#ddOther').next().children("li.selected").attr('id'), value: $("#search-query").val() },
                success: function (results) {
                    $("#my-search .my-results-field .ajax-load").css("display", "none");

                    var searchResultData = [];

                    //auto select if only one result 
                    if (results != null && results.length == 1 && autoselect) {
                        $('div.result-link').remove();
                        $("#my-search .my-results-field .ajax-load").after('<div class="result-link">switching...</div>');
                        $.doPost(applicationPath + 'Search/SelectFoundCustomer'
                                    , { customerId: results[0].id, name: results[0].name });
                    }
                    else
                        if (results != null && results.length > 0) {
                            for (i = 0; i < results.length; i++) {
                                var cLabel = "<div class='s-title'>" + results[i].name + "</div><div class='s-desc'>" + results[i].city + "</div>";
                                var cId = results[i].id;
                                var listItem = {
                                    label: cLabel,
                                    id: cId,
                                    icon: results[i].icon,
                                    onclick: function (item) {
                                        var customerID = item.attr("rel");
                                        var customerName = $('.s-title', item).text();
                                        $.doPost(applicationPath + 'Search/SelectFoundCustomer'
                                    , { customerId: customerID, name: customerName });
                                    }
                                };
                                searchResultData.push(listItem);
                            }


                            var resultbutton = {
                                classname: 'result-link',
                                id: 'result-link',
                                label: results.length + " results",
                                type: 'select',
                                menu: {
                                    hasiconclass: "hasicon",
                                    showIcon: true,
                                    classname: 'search-results-select',
                                    blankImg: 'images/jquery/icons/blank.gif',
                                    iconchecked: 'images/jquery/icons/ui-check-box-mix.png',
                                    iconunchecked: 'images/jquery/icons/ui-check-box-uncheck.png',
                                    evenclass: 'ip',
                                    oddcless: 'p',
                                    position: 'right',
                                    data: searchResultData,
                                    onshow: function (menu) {
                                        menu.animate({ left: '-=1' }, 0)
                                    }
                                }
                            };
                            currentResultButton = new MiniToolbarButton(resultbutton);

                            $("#my-search .my-results-field .ajax-load").after(currentResultButton);

                            var topv = currentResultButton.position().top + currentResultButton.outerHeight();
                            var leftv = currentResultButton.position().left;

                            selectHack.css({
                                width: currentResultButton.innerWidth(),
                                top: topv - 2,
                                left: leftv + 1
                            })
                            selectHack.show();
                        } else {
                            $("#my-search .my-results-field .ajax-load").after('<div class="result-link">no results</div>');
                        }
                },
                error:
                    function (data) {
                        document.location.href = document.location.href;
                    }
            });

        }
        else {
            $('div.result-link').remove();
            $("#my-search .my-results-field .ajax-load").after('<div class="result-link">no results</div>');
        }
    };
    $("#search-submit").click(function () {
        search_submit_click(true)
    });
});

