﻿var Search = function (options) {
    base = this,
    settings = {
        options: null,
        tmpl: '<div class="option"><input type="radio" name="{0}" id="{0}_{1}" data-type="{1}"  {3} /><label for="{0}_{1}">{2}</label></div>',
        container: '#search-options',
        closeBtn: '#search-options-close',
        input: null,
        searchBtn: null,
        location: null
    }

    base.fixSearch = function () {
        ///<sammary>Fix Search Options in IE 7</sammary>

        if ($.browser.msie && parseFloat($.browser.version, 10) < 8) {
            var topSearchOffset = $("#mainSearch").offset();

            $("#search-options").appendTo("body")
                                .css({
                                    top: topSearchOffset.top + 26,
                                    left: topSearchOffset.left
                                });

        }
    };

    base.buildList = function () {
        if (settings.options == null)
            return;

        var html = "";
        var i = 0;
        for (var option in settings.options) {
            if (settings.options.hasOwnProperty && settings.options.hasOwnProperty(option)) {
                html += settings.tmpl.format("searchOption", settings.options[option], option, ((i == 0) ? 'checked="checked"' : ''));
                i++;
            }
        }
        $(html).appendTo(settings.container);

    };

    doSearch = function () {
        var item = $(settings.container).find("input[name='searchOption']:checked");
        var query = encodeURIComponent($(settings.input).val());
        if (item.length > 0 && query.length > 0) {
            window.location = settings.location + "/?q=" + query + "&type=" + item.attr("data-type");
        }

        log($(settings.container).find("input[name='searchOption']:checked").length);
    };

    (function () {
        settings = $.extend(settings, options);
        base.buildList();
        base.fixSearch();

        $(settings.input).bind("keypress", function (e) {
            var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
            if (key == 13) {
                doSearch();
                return false;
            }
        });

        $(settings.searchBtn).click(function () {
            doSearch();
            return false;
        });

        $(settings.container).hide();

        $(settings.input).focus(function () {
            $(settings.container).slideDown();
        });

        $(settings.closeBtn).click(function () {
            $(settings.container).slideUp();
            return false;
        });

    })();
}
