/* Chosen v1.8.7 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */

(function() {
    var t, e, s, i, n = function(t, e) {
        return function() {
            return t.apply(e, arguments)
        }
    },
    r = function(t, e) {
        function s() {
            this.constructor = t
        }
        for (var i in  e) o.call(e, i) && (t[i] = e[i]);
        return s.prototype = e.prototype,
        t.prototype = new s,
        t.__super__ = e.prototype,
        t
    },
    o = {}.hasOwnProperty;
    (i = function() {
        function t() {
            this.options_index = 0,
            this.parsed = []
        }
        return t.prototype.add_node = function(t) {
            return "OPTGROUP" === t.nodeName.toUpperCase() ? this.add_group(t) : this.add_option(t)
        },
        t.prototype.add_group = function(t) {
            var e, s, i, n, r, o;
            for (e = this.parsed.length, this.parsed.push({
                array_index: e,
                group: !0,
                label: t.label,
                title: t.title ? t.title : void 0,
                children: 0,
                disabled: t.disabled,
                classes: t.className
            }), o = [], s = 0, i = (r = t.childNodes).length; s < i; s++) n = r[s],
            o.push(this.add_option(n, e, t.disabled));
            return o
        },
        t.prototype.add_option = function(t, e, s) {
            if ("OPTION" === t.nodeName.toUpperCase()) return "" !== t.text ? (null != e && (this.parsed[e].children += 1), this.parsed.push({
                array_index: this.parsed.length,
                options_index: this.options_index,
                value: t.value,
                text: t.text,
                html: t.innerHTML,
                title: t.title ? t.title : void 0,
                selected: t.selected,
                disabled: !0 === s ? s : t.disabled,
                group_array_index: e,
                group_label: null != e ? this.parsed[e].label : null,
                classes: t.className,
                style: t.style.cssText
            })) : this.parsed.push({
                array_index: this.parsed.length,
                options_index: this.options_index,
                empty: !0
            }),
            this.options_index += 1
        },
        t
    } ()).select_to_array = function(t) {
        var e, s, n, r, o;
        for (r = new i, s = 0, n = (o = t.childNodes).length; s < n; s++) e = o[s],
        r.add_node(e);
        return r.parsed
    },
    e = function() {
        function t(e, s) {
            this.form_field = e,
            this.options = null != s ? s : {},
            this.label_click_handler = n(this.label_click_handler, this),
            t.browser_is_supported() && (this.is_multiple = this.form_field.multiple, this.set_default_text(), this.set_default_values(), this.setup(), this.set_up_html(), this.register_observers(), this.on_ready())
        }
        return t.prototype.set_default_values = function() {
            return this.click_test_action = function(t) {
                return function(e) {
                    return t.test_active_click(e)
                }
            } (this),
            this.activate_action = function(t) {
                return function(e) {
                    return t.activate_field(e)
                }
            } (this),
            this.active_field = !1,
            this.mouse_on_container = !1,
            this.results_showing = !1,
            this.result_highlighted = null,
            this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className),
            this.allow_single_deselect = null != this.options.allow_single_deselect && null != this.form_field.options[0] && "" === this.form_field.options[0].text && this.options.allow_single_deselect,
            this.disable_search_threshold = this.options.disable_search_threshold || 0,
            this.disable_search = this.options.disable_search || !1,
            this.enable_split_word_search = null == this.options.enable_split_word_search || this.options.enable_split_word_search,
            this.group_search = null == this.options.group_search || this.options.group_search,
            this.search_contains = this.options.search_contains || !1,
            this.single_backstroke_delete = null == this.options.single_backstroke_delete || this.options.single_backstroke_delete,
            this.max_selected_options = this.options.max_selected_options || Infinity,
            this.inherit_select_classes = this.options.inherit_select_classes || !1,
            this.display_selected_options = null == this.options.display_selected_options || this.options.display_selected_options,
            this.display_disabled_options = null == this.options.display_disabled_options || this.options.display_disabled_options,
            this.include_group_label_in_selected = this.options.include_group_label_in_selected || !1,
            this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY,
            this.case_sensitive_search = this.options.case_sensitive_search || !1,
            this.hide_results_on_select = null == this.options.hide_results_on_select || this.options.hide_results_on_select
        },
        t.prototype.set_default_text = function() {
            return this.form_field.getAttribute("data-placeholder") ? this.default_text = this.form_field.getAttribute("data-placeholder") : this.is_multiple ? this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || t.default_multiple_text : this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || t.default_single_text,
            this.default_text = this.escape_html(this.default_text),
            this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || t.default_no_result_text
        },
        t.prototype.choice_label = function(t) {
            return this.include_group_label_in_selected && null != t.group_label ? "<b class='group-name'>" + this.escape_html(t.group_label) + "</b>" + t.html : t.html
        },
        t.prototype.mouse_enter = function() {
            return this.mouse_on_container = !0
        },
        t.prototype.mouse_leave = function() {
            return this.mouse_on_container = !1
        },
        t.prototype.input_focus = function(t) {
            if (this.is_multiple) {
                if (!this.active_field) return setTimeout(function(t) {
                    return function() {
                        return t.container_mousedown()
                    }
                } (this), 50)
            } else
            if (!this.active_field) return this.activate_field()
        },
        t.prototype.input_blur = function(t) {
            if (!this.mouse_on_container) return this.active_field = !1,
            setTimeout(function(t) {
                return function() {
                    return t.blur_test()
                }
            } (this), 100)
        },
        t.prototype.label_click_handler = function(t) {
            return this.is_multiple ? this.container_mousedown(t) : this.activate_field()
        },
        t.prototype.results_option_build = function(t) {
            var e, s, i, n, r, o, h;
            for (e = "", h = 0, n = 0, r = (o = this.results_data).length; n < r && (s = o[n], i = "", "" !== (i = s.group ? this.result_add_group(s) : this.result_add_option(s)) && (h++, e += i), (null != t ? t.first : void 0) && (s.selected && this.is_multiple ? this.choice_build(s) : s.selected && !this.is_multiple && this.single_set_selected_text(this.choice_label(s))), !(h >= this.max_shown_results)); n++);
            return e
        },
        t.prototype.result_add_option = function(t) {
            var e, s;
            return t.search_match && this.include_option_in_results(t) ? (e = [], t.disabled || t.selected && this.is_multiple || e.push("active-result"), !t.disabled || t.selected && this.is_multiple || e.push("disabled-result"), t.selected && e.push("result-selected"), null != t.group_array_index && e.push("group-option"), "" !== t.classes && e.push(t.classes), s = document.createElement("li"), s.className = e.join(" "), t.style && (s.style.cssText = t.style), s.setAttribute("data-option-array-index", t.array_index), s.innerHTML = t.highlighted_html || t.html, t.title && (s.title = t.title), this.outerHTML(s)) : ""
        },
        t.prototype.result_add_group = function(t) {
            var e, s;
            return (t.search_match || t.group_match) && t.active_options > 0 ? (
            (e = []).push("group-result"), t.classes && e.push(t.classes), s = document.createElement("li"), s.className = e.join(" "), s.innerHTML = t.highlighted_html || this.escape_html(t.label), t.title && (s.title = t.title), this.outerHTML(s)) : ""
        },
        t.prototype.results_update_field = function() {
            if (this.set_default_text(), this.is_multiple || this.results_reset_cleanup(), this.result_clear_highlight(), this.results_build(), this.results_showing) return this.winnow_results()
        },
        t.prototype.reset_single_select_options = function() {
            var t, e, s, i, n;
            for (n = [], t = 0, e = (s = this.results_data).length; t < e; t++)
            (i = s[t]).selected ? n.push(i.selected = !1) : n.push(void 0);
            return n
        },
        t.prototype.results_toggle = function() {
            return this.results_showing ? this.results_hide() : this.results_show()
        },
        t.prototype.results_search = function(t) {
            return this.results_showing ? this.winnow_results() : this.results_show()
        },
        t.prototype.winnow_results = function(t) {
            var e, s, i, n, r, o, h, l, c, _, a, u, d, p, f;
            for (this.no_results_clear(), _ = 0, e = (h = this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), c = this.get_search_regex(e), i = 0, n = (l = this.results_data).length; i < n; i++)
            (r = l[i]).search_match = !1,
            a = null,
            u = null,
            r.highlighted_html = "",
            this.include_option_in_results(r) && (r.group && (r.group_match = !1, r.active_options = 0), null != r.group_array_index && this.results_data[r.group_array_index] && (0 === (a = this.results_data[r.group_array_index]).active_options && a.search_match && (_ += 1), a.active_options += 1), f = r.group ? r.label : r.text, r.group && !this.group_search || (u = this.search_string_match(f, c), r.search_match = null != u, r.search_match && !r.group && (_ += 1), r.search_match ? (h.length && (d = u.index, o = f.slice(0, d), s = f.slice(d, d + h.length), p = f.slice(d + h.length), r.highlighted_html = this.escape_html(o) + "<em>" + this.escape_html(s) + "</em>" + this.escape_html(p)), null != a && (a.group_match = !0)) : null != r.group_array_index && this.results_data[r.group_array_index].search_match && (r.search_match = !0)));
            return this.result_clear_highlight(),
            _ < 1 && h.length ? (this.update_results_content(""), this.no_results(h)) : (this.update_results_content(this.results_option_build()), (null != t ? t.skip_highlight : void 0) ? void 0 : this.winnow_results_set_highlight())
        },
        t.prototype.get_search_regex = function(t) {
            var e, s;
            return s = this.search_contains ? t : "(^|\\s|\\b)" + t + "[^\\s]*",
            this.enable_split_word_search || this.search_contains || (s = "^" + s),
            e = this.case_sensitive_search ? "" : "i",
            new RegExp(s, e)
        },
        t.prototype.search_string_match = function(t, e) {
            var s;
            return s = e.exec(t),
            !this.search_contains && (null != s ? s[1] : void 0) && (s.index += 1),
            s
        },
        t.prototype.choices_count = function() {
            var t, e, s;
            if (null != this.selected_option_count) return this.selected_option_count;
            for (this.selected_option_count = 0, t = 0, e = (s = this.form_field.options).length; t < e; t++) s[t].selected && (this.selected_option_count += 1);
            return this.selected_option_count
        },
        t.prototype.choices_click = function(t) {
            if (t.preventDefault(), this.activate_field(), !this.results_showing && !this.is_disabled) return this.results_show()
        },
        t.prototype.keydown_checker = function(t) {
            var e, s;
            switch (s = null != (e = t.which) ? e : t.keyCode, this.search_field_scale(), 8 !== s && this.pending_backstroke && this.clear_backstroke(), s) {
            case 8:
                this.backstroke_length = this.get_search_field_value().length;
                break;
            case 9:
                this.results_showing && !this.is_multiple && this.result_select(t),
                this.mouse_on_container = !1;
                break;
            case 13:
                case 27:
                this.results_showing && t.preventDefault();
                break;
            case 32:
                this.disable_search && t.preventDefault();
                break;
            case 38:
                t.preventDefault(),
                this.keyup_arrow();
                break;
            case 40:
                t.preventDefault(),
                this.keydown_arrow()
            }
        },
        t.prototype.keyup_checker = function(t) {
            var e, s;
            switch (s = null != (e = t.which) ? e : t.keyCode, this.search_field_scale(), s) {
            case 8:
                this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0 ? this.keydown_backstroke() : this.pending_backstroke || (this.result_clear_highlight(), this.results_search());
                break;
            case 13:
                t.preventDefault(),
                this.results_showing && this.result_select(t);
                break;
            case 27:
                this.results_showing && this.results_hide();
                break;
            case 9:
                case 16:
                case 17:
                case 18:
                case 38:
                case 40:
                case 91:
                break;
            default:
                this.results_search()
            }
        },
        t.prototype.clipboard_event_checker = function(t) {
            if (!this.is_disabled) return setTimeout(function(t) {
                return function() {
                    return t.results_search()
                }
            } (this), 50)
        },
        t.prototype.container_width = function() {
            return null != this.options.width ? this.options.width : this.form_field.offsetWidth + "px"
        },
        t.prototype.include_option_in_results = function(t) {
            return ! (this.is_multiple && !this.display_selected_options && t.selected) && (!(!this.display_disabled_options && t.disabled) && !t.empty)
        },
        t.prototype.search_results_touchstart = function(t) {
            return this.touch_started = !0,
            this.search_results_mouseover(t)
        },
        t.prototype.search_results_touchmove = function(t) {
            return this.touch_started = !1,
            this.search_results_mouseout(t)
        },
        t.prototype.search_results_touchend = function(t) {
            if (this.touch_started) return this.search_results_mouseup(t)
        },
        t.prototype.outerHTML = function(t) {
            var e;
            return t.outerHTML ? t.outerHTML : (
            (e = document.createElement("div")).appendChild(t), e.innerHTML)
        },
        t.prototype.get_single_html = function() {
            return '<a class="chosen-single chosen-default">\n  <span>' + this.default_text + '</span>\n  <div><b></b></div>\n</a>\n<div class="chosen-drop">\n  <div class="chosen-search">\n    <input class="chosen-search-input" type="text" autocomplete="off" />\n  </div>\n  <ul class="chosen-results"></ul>\n</div>'
        },
        t.prototype.get_multi_html = function() {
            return '<ul class="chosen-choices">\n  <li class="search-field">\n    <input class="chosen-search-input" type="text" autocomplete="off" value="' + this.default_text + '" />\n  </li>\n</ul>\n<div class="chosen-drop">\n  <ul class="chosen-results"></ul>\n</div>'
        },
        t.prototype.get_no_results_html = function(t) {
            return '<li class="no-results">\n  ' + this.results_none_found + " <span>" + this.escape_html(t) + "</span>\n</li>"
        },
        t.browser_is_supported = function() {
            return "Microsoft Internet Explorer" === window.navigator.appName ? document.documentMode >= 8 : !(/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent))
        },
        t.default_multiple_text = "Select Some Options",
        t.default_single_text = "Select an Option",
        t.default_no_result_text = "No results match",
        t
    } (),
    (t = jQuery).fn.extend({
        chosen: function(i) {
            return e.browser_is_supported() ? this.each(function(e) {
                var n, r;
                r = (n = t(this)).data("chosen"),
                "destroy" !== i ? r instanceof s || n.data("chosen", new s(this, i)) : r instanceof s && r.destroy()
            }) : this
        }
    }),
    s = function(s) {
        function n() {
            return n.__super__.constructor.apply(this, arguments)
        }
        return r(n, e),
        n.prototype.setup = function() {
            return this.form_field_jq = t(this.form_field),
            this.current_selectedIndex = this.form_field.selectedIndex
        },
        n.prototype.set_up_html = function() {
            var e, s;
            return (e = ["chosen-container"]).push("chosen-container-" + (this.is_multiple ? "multi" : "single")),
            this.inherit_select_classes && this.form_field.className && e.push(this.form_field.className),
            this.is_rtl && e.push("chosen-rtl"),
            s = {
                "class": e.join(" "),
                title: this.form_field.title
            },
            this.form_field.id.length && (s.id = this.form_field.id.replace(/[^\w]/g, "_") + "_chosen"),
            this.container = t("<div />", s),
            this.container.width(this.container_width()),
            this.is_multiple ? this.container.html(this.get_multi_html()) : this.container.html(this.get_single_html()),
            this.form_field_jq.hide().after(this.container),
            this.dropdown = this.container.find("div.chosen-drop").first(),
            this.search_field = this.container.find("input").first(),
            this.search_results = this.container.find("ul.chosen-results").first(),
            this.search_field_scale(),
            this.search_no_results = this.container.find("li.no-results").first(),
            this.is_multiple ? (this.search_choices = this.container.find("ul.chosen-choices").first(), this.search_container = this.container.find("li.search-field").first()) : (this.search_container = this.container.find("div.chosen-search").first(), this.selected_item = this.container.find(".chosen-single").first()),
            this.results_build(),
            this.set_tab_index(),
            this.set_label_behavior()
        },
        n.prototype.on_ready = function() {
            return this.form_field_jq.trigger("chosen:ready", {
                chosen: this
            })
        },
        n.prototype.register_observers = function() {
            return this.container.on("touchstart.chosen", function(t) {
                return function(e) {
                    t.container_mousedown(e)
                }
            } (this)),
            this.container.on("touchend.chosen", function(t) {
                return function(e) {
                    t.container_mouseup(e)
                }
            } (this)),
            this.container.on("mousedown.chosen", function(t) {
                return function(e) {
                    t.container_mousedown(e)
                }
            } (this)),
            this.container.on("mouseup.chosen", function(t) {
                return function(e) {
                    t.container_mouseup(e)
                }
            } (this)),
            this.container.on("mouseenter.chosen", function(t) {
                return function(e) {
                    t.mouse_enter(e)
                }
            } (this)),
            this.container.on("mouseleave.chosen", function(t) {
                return function(e) {
                    t.mouse_leave(e)
                }
            } (this)),
            this.search_results.on("mouseup.chosen", function(t) {
                return function(e) {
                    t.search_results_mouseup(e)
                }
            } (this)),
            this.search_results.on("mouseover.chosen", function(t) {
                return function(e) {
                    t.search_results_mouseover(e)
                }
            } (this)),
            this.search_results.on("mouseout.chosen", function(t) {
                return function(e) {
                    t.search_results_mouseout(e)
                }
            } (this)),
            this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen", function(t) {
                return function(e) {
                    t.search_results_mousewheel(e)
                }
            } (this)),
            this.search_results.on("touchstart.chosen", function(t) {
                return function(e) {
                    t.search_results_touchstart(e)
                }
            } (this)),
            this.search_results.on("touchmove.chosen", function(t) {
                return function(e) {
                    t.search_results_touchmove(e)
                }
            } (this)),
            this.search_results.on("touchend.chosen", function(t) {
                return function(e) {
                    t.search_results_touchend(e)
                }
            } (this)),
            this.form_field_jq.on("chosen:updated.chosen", function(t) {
                return function(e) {
                    t.results_update_field(e)
                }
            } (this)),
            this.form_field_jq.on("chosen:activate.chosen", function(t) {
                return function(e) {
                    t.activate_field(e)
                }
            } (this)),
            this.form_field_jq.on("chosen:open.chosen", function(t) {
                return function(e) {
                    t.container_mousedown(e)
                }
            } (this)),
            this.form_field_jq.on("chosen:close.chosen", function(t) {
                return function(e) {
                    t.close_field(e)
                }
            } (this)),
            this.search_field.on("blur.chosen", function(t) {
                return function(e) {
                    t.input_blur(e)
                }
            } (this)),
            this.search_field.on("keyup.chosen", function(t) {
                return function(e) {
                    t.keyup_checker(e)
                }
            } (this)),
            this.search_field.on("keydown.chosen", function(t) {
                return function(e) {
                    t.keydown_checker(e)
                }
            } (this)),
            this.search_field.on("focus.chosen", function(t) {
                return function(e) {
                    t.input_focus(e)
                }
            } (this)),
            this.search_field.on("cut.chosen", function(t) {
                return function(e) {
                    t.clipboard_event_checker(e)
                }
            } (this)),
            this.search_field.on("paste.chosen", function(t) {
                return function(e) {
                    t.clipboard_event_checker(e)
                }
            } (this)),
            this.is_multiple ? this.search_choices.on("click.chosen", function(t) {
                return function(e) {
                    t.choices_click(e)
                }
            } (this)) : this.container.on("click.chosen", function(t) {
                t.preventDefault()
            })
        },
        n.prototype.destroy = function() {
            return t(this.container[0].ownerDocument).off("click.chosen", this.click_test_action),
            this.form_field_label.length > 0 && this.form_field_label.off("click.chosen"),
            this.search_field[0].tabIndex && (this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex),
            this.container.remove(),
            this.form_field_jq.removeData("chosen"),
            this.form_field_jq.show()
        },
        n.prototype.search_field_disabled = function() {
            return this.is_disabled = this.form_field.disabled || this.form_field_jq.parents("fieldset").is(":disabled"),
            this.container.toggleClass("chosen-disabled", this.is_disabled),
            this.search_field[0].disabled = this.is_disabled,
            this.is_multiple || this.selected_item.off("focus.chosen", this.activate_field),
            this.is_disabled ? this.close_field() : this.is_multiple ? void 0 : this.selected_item.on("focus.chosen", this.activate_field)
        },
        n.prototype.container_mousedown = function(e) {
            var s;
            if (!this.is_disabled) return !e || "mousedown" !== (s = e.type) && "touchstart" !== s || this.results_showing || e.preventDefault(),
            null != e && t(e.target).hasClass("search-choice-close") ? void 0 : (this.active_field ? this.is_multiple || !e || t(e.target)
            [0] !== this.selected_item[0] && !t(e.target).parents("a.chosen-single").length || (e.preventDefault(), this.results_toggle()) : (this.is_multiple && this.search_field.val(""), t(this.container[0].ownerDocument).on("click.chosen", this.click_test_action), this.results_show()), this.activate_field())
        },
        n.prototype.container_mouseup = function(t) {
            if ("ABBR" === t.target.nodeName && !this.is_disabled) return this.results_reset(t)
        },
        n.prototype.search_results_mousewheel = function(t) {
            var e;
            if (t.originalEvent && (e = t.originalEvent.deltaY || -t.originalEvent.wheelDelta || t.originalEvent.detail), null != e) return t.preventDefault(),
            "DOMMouseScroll" === t.type && (e *= 40),
            this.search_results.scrollTop(e + this.search_results.scrollTop())
        },
        n.prototype.blur_test = function(t) {
            if (!this.active_field && this.container.hasClass("chosen-container-active")) return this.close_field()
        },
        n.prototype.close_field = function() {
            return t(this.container[0].ownerDocument).off("click.chosen", this.click_test_action),
            this.active_field = !1,
            this.results_hide(),
            this.container.removeClass("chosen-container-active"),
            this.clear_backstroke(),
            this.show_search_field_default(),
            this.search_field_scale(),
            this.search_field.blur()
        },
        n.prototype.activate_field = function() {
            if (!this.is_disabled) return this.container.addClass("chosen-container-active"),
            this.active_field = !0,
            this.search_field.val(this.search_field.val()),
            this.search_field.focus()
        },
        n.prototype.test_active_click = function(e) {
            var s;
            return (s = t(e.target).closest(".chosen-container")).length && this.container[0] === s[0] ? this.active_field = !0 : this.close_field()
        },
        n.prototype.results_build = function() {
            return this.parsing = !0,
            this.selected_option_count = null,
            this.results_data = i.select_to_array(this.form_field),
            this.is_multiple ? this.search_choices.find("li.search-choice").remove() : (this.single_set_selected_text(), this.disable_search || this.form_field.options.length <= this.disable_search_threshold ? (this.search_field[0].readOnly = !0, this.container.addClass("chosen-container-single-nosearch")) : (this.search_field[0].readOnly = !1, this.container.removeClass("chosen-container-single-nosearch"))),
            this.update_results_content(this.results_option_build({
                first: !0
            })),
            this.search_field_disabled(),
            this.show_search_field_default(),
            this.search_field_scale(),
            this.parsing = !1
        },
        n.prototype.result_do_highlight = function(t) {
            var e, s, i, n, r;
            if (t.length) {
                if (this.result_clear_highlight(), this.result_highlight = t, this.result_highlight.addClass("highlighted"), i = parseInt(this.search_results.css("maxHeight"), 10), r = this.search_results.scrollTop(), n = i + r, s = this.result_highlight.position().top + this.search_results.scrollTop(), (e = s + this.result_highlight.outerHeight()) >= n) return this.search_results.scrollTop(e - i > 0 ? e - i : 0);
                if (s < r) return this.search_results.scrollTop(s)
            }
        },
        n.prototype.result_clear_highlight = function() {
            return this.result_highlight && this.result_highlight.removeClass("highlighted"),
            this.result_highlight = null
        },
        n.prototype.results_show = function() {
            return this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", {
                chosen: this
            }), !1) : (this.container.addClass("chosen-with-drop"), this.results_showing = !0, this.search_field.focus(), this.search_field.val(this.get_search_field_value()), this.winnow_results(), this.form_field_jq.trigger("chosen:showing_dropdown", {
                chosen: this
            }))
        },
        n.prototype.update_results_content = function(t) {
            return this.search_results.html(t)
        },
        n.prototype.results_hide = function() {
            return this.results_showing && (this.result_clear_highlight(), this.container.removeClass("chosen-with-drop"), this.form_field_jq.trigger("chosen:hiding_dropdown", {
                chosen: this
            })),
            this.results_showing = !1
        },
        n.prototype.set_tab_index = function(t) {
            var e;
            if (this.form_field.tabIndex) return e = this.form_field.tabIndex,
            this.form_field.tabIndex = -1,
            this.search_field[0].tabIndex = e
        },
        n.prototype.set_label_behavior = function() {
            if (this.form_field_label = this.form_field_jq.parents("label"), !this.form_field_label.length && this.form_field.id.length && (this.form_field_label = t("label[for='" + this.form_field.id + "']")), this.form_field_label.length > 0) return this.form_field_label.on("click.chosen", this.label_click_handler)
        },
        n.prototype.show_search_field_default = function() {
            return this.is_multiple && this.choices_count() < 1 && !this.active_field ? (this.search_field.val(this.default_text), this.search_field.addClass("default")) : (this.search_field.val(""), this.search_field.removeClass("default"))
        },
        n.prototype.search_results_mouseup = function(e) {
            var s;
            if (
            (s = t(e.target).hasClass("active-result") ? t(e.target) : t(e.target).parents(".active-result").first()).length) return this.result_highlight = s,
            this.result_select(e),
            this.search_field.focus()
        },
        n.prototype.search_results_mouseover = function(e) {
            var s;
            if (s = t(e.target).hasClass("active-result") ? t(e.target) : t(e.target).parents(".active-result").first()) return this.result_do_highlight(s)
        },
        n.prototype.search_results_mouseout = function(e) {
            if (t(e.target).hasClass("active-result") || t(e.target).parents(".active-result").first()) return this.result_clear_highlight()
        },
        n.prototype.choice_build = function(e) {
            var s, i;
            return s = t("<li />", {
                "class": "search-choice"
            }).html("<span>" + this.choice_label(e) + "</span>"),
            e.disabled ? s.addClass("search-choice-disabled") : (
            (i = t("<a />", {
                "class": "search-choice-close",
                "data-option-array-index": e.array_index
            })).on("click.chosen", function(t) {
                return function(e) {
                    return t.choice_destroy_link_click(e)
                }
            } (this)), s.append(i)),
            this.search_container.before(s)
        },
        n.prototype.choice_destroy_link_click = function(e) {
            if (e.preventDefault(), e.stopPropagation(), !this.is_disabled) return this.choice_destroy(t(e.target))
        },
        n.prototype.choice_destroy = function(t) {
            if (this.result_deselect(t[0].getAttribute("data-option-array-index"))) return this.active_field ? this.search_field.focus() : this.show_search_field_default(),
            this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1 && this.results_hide(),
            t.parents("li").first().remove(),
            this.search_field_scale()
        },
        n.prototype.results_reset = function() {
            if (this.reset_single_select_options(), this.form_field.options[0].selected = !0, this.single_set_selected_text(), this.show_search_field_default(), this.results_reset_cleanup(), this.trigger_form_field_change(), this.active_field) return this.results_hide()
        },
        n.prototype.results_reset_cleanup = function() {
            return this.current_selectedIndex = this.form_field.selectedIndex,
            this.selected_item.find("abbr").remove()
        },
        n.prototype.result_select = function(t) {
            var e, s;
            if (this.result_highlight) return e = this.result_highlight,
            this.result_clear_highlight(),
            this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", {
                chosen: this
            }), !1) : (this.is_multiple ? e.removeClass("active-result") : this.reset_single_select_options(), e.addClass("result-selected"), s = this.results_data[e[0].getAttribute("data-option-array-index")], s.selected = !0, this.form_field.options[s.options_index].selected = !0, this.selected_option_count = null, this.is_multiple ? this.choice_build(s) : this.single_set_selected_text(this.choice_label(s)), this.is_multiple && (!this.hide_results_on_select || t.metaKey || t.ctrlKey) ? t.metaKey || t.ctrlKey ? this.winnow_results({
                skip_highlight: !0
            }) : (this.search_field.val(""), this.winnow_results()) : (this.results_hide(), this.show_search_field_default()), (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) && this.trigger_form_field_change({
                selected: this.form_field.options[s.options_index].value
            }), this.current_selectedIndex = this.form_field.selectedIndex, t.preventDefault(), this.search_field_scale())
        },
        n.prototype.single_set_selected_text = function(t) {
            return null == t && (t = this.default_text),
            t === this.default_text ? this.selected_item.addClass("chosen-default") : (this.single_deselect_control_build(), this.selected_item.removeClass("chosen-default")),
            this.selected_item.find("span").html(t)
        },
        n.prototype.result_deselect = function(t) {
            var e;
            return e = this.results_data[t],
            !this.form_field.options[e.options_index].disabled && (e.selected = !1, this.form_field.options[e.options_index].selected = !1, this.selected_option_count = null, this.result_clear_highlight(), this.results_showing && this.winnow_results(), this.trigger_form_field_change({
                deselected: this.form_field.options[e.options_index].value
            }), this.search_field_scale(), !0)
        },
        n.prototype.single_deselect_control_build = function() {
            if (this.allow_single_deselect) return this.selected_item.find("abbr").length || this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),
            this.selected_item.addClass("chosen-single-with-deselect")
        },
        n.prototype.get_search_field_value = function() {
            return this.search_field.val()
        },
        n.prototype.get_search_text = function() {
            return t.trim(this.get_search_field_value())
        },
        n.prototype.escape_html = function(e) {
            return t("<div/>").text(e).html()
        },
        n.prototype.winnow_results_set_highlight = function() {
            var t, e;
            if (e = this.is_multiple ? [] : this.search_results.find(".result-selected.active-result"), null != (t = e.length ? e.first() : this.search_results.find(".active-result").first())) return this.result_do_highlight(t)
        },
        n.prototype.no_results = function(t) {
            var e;
            return e = this.get_no_results_html(t),
            this.search_results.append(e),
            this.form_field_jq.trigger("chosen:no_results", {
                chosen: this
            })
        },
        n.prototype.no_results_clear = function() {
            return this.search_results.find(".no-results").remove()
        },
        n.prototype.keydown_arrow = function() {
            var t;
            return this.results_showing && this.result_highlight ? (t = this.result_highlight.nextAll("li.active-result").first()) ? this.result_do_highlight(t) : void 0 : this.results_show()
        },
        n.prototype.keyup_arrow = function() {
            var t;
            return this.results_showing || this.is_multiple ? this.result_highlight ? (t = this.result_highlight.prevAll("li.active-result")).length ? this.result_do_highlight(t.first()) : (this.choices_count() > 0 && this.results_hide(), this.result_clear_highlight()) : void 0 : this.results_show()
        },
        n.prototype.keydown_backstroke = function() {
            var t;
            return this.pending_backstroke ? (this.choice_destroy(this.pending_backstroke.find("a").first()), this.clear_backstroke()) : (t = this.search_container.siblings("li.search-choice").last()).length && !t.hasClass("search-choice-disabled") ? (this.pending_backstroke = t, this.single_backstroke_delete ? this.keydown_backstroke() : this.pending_backstroke.addClass("search-choice-focus")) : void 0
        },
        n.prototype.clear_backstroke = function() {
            return this.pending_backstroke && this.pending_backstroke.removeClass("search-choice-focus"),
            this.pending_backstroke = null
        },
        n.prototype.search_field_scale = function() {
            var e, s, i, n, r, o, h;
            if (this.is_multiple) {
                for (r = {
                    position: "absolute",
                    left: "-1000px",
                    top: "-1000px",
                    display: "none",
                    whiteSpace: "pre"
                },
                s = 0, i = (o = ["fontSize", "fontStyle", "fontWeight", "fontFamily", "lineHeight", "textTransform", "letterSpacing"]).length; s < i; s++) r[n = o[s]] = this.search_field.css(n);
                return (e = t("<div />").css(r)).text(this.get_search_field_value()),
                t("body").append(e),
                h = e.width() + 25,
                e.remove(),
                this.container.is(":visible") && (h = Math.min(this.container.outerWidth() - 10, h)),
                this.search_field.width(h)
            }
        },
        n.prototype.trigger_form_field_change = function(t) {
            return this.form_field_jq.trigger("input", t),
            this.form_field_jq.trigger("change", t)
        },
        n
    } ()
}).call(this);