Changeset - e2e69bb1cf3d
pinaxcon/templates/symposion/schedule/base.html
Show inline comments
 
new file 100755
 
{% extends "site_base.html" %}
 
{% load staticfiles %}
 
{% block extra_style %}
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
 
<link rel="stylesheet" href="{% static 'css/site-0a247b924d.css' %}">
 
{% endblock %}
 
{% block body_base %}
 
    <div style="height: 100px;" />
 
    <main role="main">
 
    {% include "_messages.html" %}
 
    {% block body %}
 
      {% block content %}
 
      {% endblock %}
 
    {% endblock %}
 
{% endblock %}
 
{% block scripts %}
 
    <script src="{% static 'lca2017/js/app.js' %}"></script>
 
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
 
        {% include "_scripts.html" %}
 
    <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
 
    {% block extra_script %}{% endblock %}
 
{% endblock %}
 

	
 
{% block extra_body_base %}
 
{% block analytics %}
 
	{% include "analytics.html" %}
 
{% endblock %}
 
    {% block extra_body %}{% endblock %}
 
{% endblock %}
 
  </body>
 
</html>
pinaxcon/templates/symposion/schedule/presentation_detail.html
Show inline comments
...
 
@@ -25,11 +25,7 @@
 
        <dd style="margin-bottom: 0;">{{ presentation.proposal.get_audience_level_display }}</dd>
 
    </dl>
 

	
 
    <h3>Description</h3>
 

	
 
    <div class="description">{{ presentation.description }}</div>
 

	
 
    <h3>Abstract</h3>
 

	
 
    <div class="abstract">{{ presentation.abstract|safe }}</div>
 
    <div class="abstract">{{ presentation.abstract_html|safe }}</div>
 
{% endblock %}
pinaxcon/templates/symposion/schedule/schedule_conference.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "site_base_wagtail.html" %}
 

	
 
{% load i18n %}
 
{% load pinax_boxes_tags %}
...
 
@@ -11,15 +11,18 @@
 
{% block right %}
 
{% endblock %}
 

	
 
{% block body_outer %}
 
{% block body %}
 
<div class="l-content-page">
 
<div class="l-content-page--richtext">
 
<div class="rich-text">
 

	
 
    <div class="page-head">
 
        <h1>Conference Schedule</h1>
 
        {% block breadcrumbs %}{% endblock %}
 
    </div>
 
    {% box "schedule_top" %}
 

	
 
    {% for section in sections %}
 
        {% cache 600 "schedule-table" section.schedule.section %}
 
       {% cache 600 "schedule-table" section.schedule.section %}
 
            {% for timetable in section.days %}
 
                <h3>{{ section.schedule.section.name }} — {{ timetable.day.date }}</h3>
 
                {% include "symposion/schedule/_grid.html" %}
...
 
@@ -27,5 +30,5 @@
 
        {% endcache %}
 
    {% endfor %}
 

	
 
    {% box "schedule_bottom" %}
 
</div></div></div>
 
{% endblock %}
pinaxcon/templates/symposion/schedule/schedule_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 
{% load pinax_boxes_tags %}
...
 
@@ -12,7 +12,11 @@
 
{% block right %}
 
{% endblock %}
 

	
 
{% block body_outer %}
 
{% block content %}
 
<div class="l-content-page">
 
<div class="l-content-page--richtext">
 
<div class="rich-text">
 

	
 
    <div class="page-head">
 
        <h1>{{ schedule.section }} Schedule</h1>
 
        {% block breadcrumbs %}{% sitetree_breadcrumbs from "main" %}{% endblock %}
...
 
@@ -27,4 +31,5 @@
 
    {% endcache %}
 

	
 
    {% box "schedule_bottom" %}
 
</div></div></div>
 
{% endblock %}
pinaxcon/templates/symposion/schedule/schedule_edit.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 

	
...
 
@@ -13,7 +13,11 @@
 
    <link rel="stylesheet" href="{{ STATIC_URL }}chosen/chosen.css" />
 
{% endblock %}
 

	
 
{% block body_outer %}
 
{% block content %}
 
<div class="l-content-page">
 
<div class="l-content-page--richtext">
 
<div class="rich-text">
 

	
 
    <h1>Schedule Edit</h1>
 

	
 
    {% for timetable in days %}
...
 
@@ -26,6 +30,7 @@
 
        <input type="submit" id="delete" name="delete" value="Delete Schedule" />
 
    </form>
 
    <div class="modal fade hide in" id="slotEditModal"></div>
 
</div></div></div>
 
{% endblock %}
 

	
 
{% block extra_script %}
pinaxcon/templates/symposion/schedule/schedule_list.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "site_base_wagtail.html" %}
 

	
 
{% load i18n %}
 
{% load cache %}
...
 
@@ -28,6 +28,10 @@
 
{% block breadcrumbs %}{% sitetree_breadcrumbs from "main" %}{% endblock %}
 

	
 
{% block body %}
 
<div class="l-content-page">
 
<div class="l-content-page--richtext">
 
<div class="rich-text">
 

	
 
    <h2>Accepted {{ schedule.section.name }}</h2>
 
    {% cache 600 "schedule-list" schedule.section.name %}
 
        {% for presentation in presentations %}
...
 
@@ -48,4 +52,5 @@
 
            </div>
 
        {% endfor %}
 
    {% endcache %}
 
</div></div></div>
 
{% endblock %}
static/dist/chosen/chosen.css
Show inline comments
 
new file 100644
 
/*!
 
Chosen, a Select Box Enhancer for jQuery and Prototype
 
by Patrick Filler for Harvest, http://getharvest.com
 

	
 
Version 1.6.2
 
Full source at https://github.com/harvesthq/chosen
 
Copyright (c) 2011-2016 Harvest http://getharvest.com
 

	
 
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
 
This file is generated by `grunt build`, do not edit it by hand.
 
*/
 

	
 
/* @group Base */
 
.chosen-container {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle;
 
  font-size: 13px;
 
  -webkit-user-select: none;
 
  -moz-user-select: none;
 
  user-select: none;
 
}
 
.chosen-container * {
 
  -webkit-box-sizing: border-box;
 
  -moz-box-sizing: border-box;
 
  box-sizing: border-box;
 
}
 
.chosen-container .chosen-drop {
 
  position: absolute;
 
  top: 100%;
 
  left: -9999px;
 
  z-index: 1010;
 
  width: 100%;
 
  border: 1px solid #aaa;
 
  border-top: 0;
 
  background: #fff;
 
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
 
}
 
.chosen-container.chosen-with-drop .chosen-drop {
 
  left: 0;
 
}
 
.chosen-container a {
 
  cursor: pointer;
 
}
 
.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
 
  margin-right: 4px;
 
  overflow: hidden;
 
  white-space: nowrap;
 
  text-overflow: ellipsis;
 
  font-weight: normal;
 
  color: #999999;
 
}
 
.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
 
  content: ":";
 
  padding-left: 2px;
 
  vertical-align: top;
 
}
 

	
 
/* @end */
 
/* @group Single Chosen */
 
.chosen-container-single .chosen-single {
 
  position: relative;
 
  display: block;
 
  overflow: hidden;
 
  padding: 0 0 0 8px;
 
  height: 25px;
 
  border: 1px solid #aaa;
 
  border-radius: 5px;
 
  background-color: #fff;
 
  background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
 
  background: -webkit-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
 
  background: -moz-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
 
  background: -o-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
 
  background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
 
  background-clip: padding-box;
 
  box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
 
  color: #444;
 
  text-decoration: none;
 
  white-space: nowrap;
 
  line-height: 24px;
 
}
 
.chosen-container-single .chosen-default {
 
  color: #999;
 
}
 
.chosen-container-single .chosen-single span {
 
  display: block;
 
  overflow: hidden;
 
  margin-right: 26px;
 
  text-overflow: ellipsis;
 
  white-space: nowrap;
 
}
 
.chosen-container-single .chosen-single-with-deselect span {
 
  margin-right: 38px;
 
}
 
.chosen-container-single .chosen-single abbr {
 
  position: absolute;
 
  top: 6px;
 
  right: 26px;
 
  display: block;
 
  width: 12px;
 
  height: 12px;
 
  background: url('chosen-sprite.png') -42px 1px no-repeat;
 
  font-size: 1px;
 
}
 
.chosen-container-single .chosen-single abbr:hover {
 
  background-position: -42px -10px;
 
}
 
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
 
  background-position: -42px -10px;
 
}
 
.chosen-container-single .chosen-single div {
 
  position: absolute;
 
  top: 0;
 
  right: 0;
 
  display: block;
 
  width: 18px;
 
  height: 100%;
 
}
 
.chosen-container-single .chosen-single div b {
 
  display: block;
 
  width: 100%;
 
  height: 100%;
 
  background: url('chosen-sprite.png') no-repeat 0px 2px;
 
}
 
.chosen-container-single .chosen-search {
 
  position: relative;
 
  z-index: 1010;
 
  margin: 0;
 
  padding: 3px 4px;
 
  white-space: nowrap;
 
}
 
.chosen-container-single .chosen-search input[type="text"] {
 
  margin: 1px 0;
 
  padding: 4px 20px 4px 5px;
 
  width: 100%;
 
  height: auto;
 
  outline: 0;
 
  border: 1px solid #aaa;
 
  background: white url('chosen-sprite.png') no-repeat 100% -20px;
 
  background: url('chosen-sprite.png') no-repeat 100% -20px;
 
  font-size: 1em;
 
  font-family: sans-serif;
 
  line-height: normal;
 
  border-radius: 0;
 
}
 
.chosen-container-single .chosen-drop {
 
  margin-top: -1px;
 
  border-radius: 0 0 4px 4px;
 
  background-clip: padding-box;
 
}
 
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
 
  position: absolute;
 
  left: -9999px;
 
}
 

	
 
/* @end */
 
/* @group Results */
 
.chosen-container .chosen-results {
 
  color: #444;
 
  position: relative;
 
  overflow-x: hidden;
 
  overflow-y: auto;
 
  margin: 0 4px 4px 0;
 
  padding: 0 0 0 4px;
 
  max-height: 240px;
 
  -webkit-overflow-scrolling: touch;
 
}
 
.chosen-container .chosen-results li {
 
  display: none;
 
  margin: 0;
 
  padding: 5px 6px;
 
  list-style: none;
 
  line-height: 15px;
 
  word-wrap: break-word;
 
  -webkit-touch-callout: none;
 
}
 
.chosen-container .chosen-results li.active-result {
 
  display: list-item;
 
  cursor: pointer;
 
}
 
.chosen-container .chosen-results li.disabled-result {
 
  display: list-item;
 
  color: #ccc;
 
  cursor: default;
 
}
 
.chosen-container .chosen-results li.highlighted {
 
  background-color: #3875d7;
 
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
 
  background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
 
  background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
 
  background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
 
  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
 
  color: #fff;
 
}
 
.chosen-container .chosen-results li.no-results {
 
  color: #777;
 
  display: list-item;
 
  background: #f4f4f4;
 
}
 
.chosen-container .chosen-results li.group-result {
 
  display: list-item;
 
  font-weight: bold;
 
  cursor: default;
 
}
 
.chosen-container .chosen-results li.group-option {
 
  padding-left: 15px;
 
}
 
.chosen-container .chosen-results li em {
 
  font-style: normal;
 
  text-decoration: underline;
 
}
 

	
 
/* @end */
 
/* @group Multi Chosen */
 
.chosen-container-multi .chosen-choices {
 
  position: relative;
 
  overflow: hidden;
 
  margin: 0;
 
  padding: 0 5px;
 
  width: 100%;
 
  height: auto;
 
  border: 1px solid #aaa;
 
  background-color: #fff;
 
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
 
  background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
 
  background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
 
  background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
 
  background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
 
  cursor: text;
 
}
 
.chosen-container-multi .chosen-choices li {
 
  float: left;
 
  list-style: none;
 
}
 
.chosen-container-multi .chosen-choices li.search-field {
 
  margin: 0;
 
  padding: 0;
 
  white-space: nowrap;
 
}
 
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
 
  margin: 1px 0;
 
  padding: 0;
 
  height: 25px;
 
  outline: 0;
 
  border: 0 !important;
 
  background: transparent !important;
 
  box-shadow: none;
 
  color: #999;
 
  font-size: 100%;
 
  font-family: sans-serif;
 
  line-height: normal;
 
  border-radius: 0;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice {
 
  position: relative;
 
  margin: 3px 5px 3px 0;
 
  padding: 3px 20px 3px 5px;
 
  border: 1px solid #aaa;
 
  max-width: 100%;
 
  border-radius: 3px;
 
  background-color: #eeeeee;
 
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
 
  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-size: 100% 19px;
 
  background-repeat: repeat-x;
 
  background-clip: padding-box;
 
  box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
 
  color: #333;
 
  line-height: 13px;
 
  cursor: default;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice span {
 
  word-wrap: break-word;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
 
  position: absolute;
 
  top: 4px;
 
  right: 3px;
 
  display: block;
 
  width: 12px;
 
  height: 12px;
 
  background: url('chosen-sprite.png') -42px 1px no-repeat;
 
  font-size: 1px;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
 
  background-position: -42px -10px;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice-disabled {
 
  padding-right: 5px;
 
  border: 1px solid #ccc;
 
  background-color: #e4e4e4;
 
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
 
  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
 
  color: #666;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice-focus {
 
  background: #d4d4d4;
 
}
 
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
 
  background-position: -42px -10px;
 
}
 
.chosen-container-multi .chosen-results {
 
  margin: 0;
 
  padding: 0;
 
}
 
.chosen-container-multi .chosen-drop .result-selected {
 
  display: list-item;
 
  color: #ccc;
 
  cursor: default;
 
}
 

	
 
/* @end */
 
/* @group Active  */
 
.chosen-container-active .chosen-single {
 
  border: 1px solid #5897fb;
 
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
}
 
.chosen-container-active.chosen-with-drop .chosen-single {
 
  border: 1px solid #aaa;
 
  -moz-border-radius-bottomright: 0;
 
  border-bottom-right-radius: 0;
 
  -moz-border-radius-bottomleft: 0;
 
  border-bottom-left-radius: 0;
 
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
 
  background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
 
  background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
 
  background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
 
  background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
 
  box-shadow: 0 1px 0 #fff inset;
 
}
 
.chosen-container-active.chosen-with-drop .chosen-single div {
 
  border-left: none;
 
  background: transparent;
 
}
 
.chosen-container-active.chosen-with-drop .chosen-single div b {
 
  background-position: -18px 2px;
 
}
 
.chosen-container-active .chosen-choices {
 
  border: 1px solid #5897fb;
 
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
}
 
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
 
  color: #222 !important;
 
}
 

	
 
/* @end */
 
/* @group Disabled Support */
 
.chosen-disabled {
 
  opacity: 0.5 !important;
 
  cursor: default;
 
}
 
.chosen-disabled .chosen-single {
 
  cursor: default;
 
}
 
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
 
  cursor: default;
 
}
 

	
 
/* @end */
 
/* @group Right to Left */
 
.chosen-rtl {
 
  text-align: right;
 
}
 
.chosen-rtl .chosen-single {
 
  overflow: visible;
 
  padding: 0 8px 0 0;
 
}
 
.chosen-rtl .chosen-single span {
 
  margin-right: 0;
 
  margin-left: 26px;
 
  direction: rtl;
 
}
 
.chosen-rtl .chosen-single-with-deselect span {
 
  margin-left: 38px;
 
}
 
.chosen-rtl .chosen-single div {
 
  right: auto;
 
  left: 3px;
 
}
 
.chosen-rtl .chosen-single abbr {
 
  right: auto;
 
  left: 26px;
 
}
 
.chosen-rtl .chosen-choices li {
 
  float: right;
 
}
 
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
 
  direction: rtl;
 
}
 
.chosen-rtl .chosen-choices li.search-choice {
 
  margin: 3px 5px 3px 0;
 
  padding: 3px 5px 3px 19px;
 
}
 
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
 
  right: auto;
 
  left: 4px;
 
}
 
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
 
.chosen-rtl .chosen-drop {
 
  left: 9999px;
 
}
 
.chosen-rtl.chosen-container-single .chosen-results {
 
  margin: 0 0 4px 4px;
 
  padding: 0 4px 0 0;
 
}
 
.chosen-rtl .chosen-results li.group-option {
 
  padding-right: 15px;
 
  padding-left: 0;
 
}
 
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
 
  border-right: none;
 
}
 
.chosen-rtl .chosen-search input[type="text"] {
 
  padding: 4px 5px 4px 20px;
 
  background: white url('chosen-sprite.png') no-repeat -30px -20px;
 
  background: url('chosen-sprite.png') no-repeat -30px -20px;
 
  direction: rtl;
 
}
 
.chosen-rtl.chosen-container-single .chosen-single div b {
 
  background-position: 6px 2px;
 
}
 
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
 
  background-position: -12px 2px;
 
}
 

	
 
/* @end */
 
/* @group Retina compatibility */
 
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
 
  .chosen-rtl .chosen-search input[type="text"],
 
  .chosen-container-single .chosen-single abbr,
 
  .chosen-container-single .chosen-single div b,
 
  .chosen-container-single .chosen-search input[type="text"],
 
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
 
  .chosen-container .chosen-results-scroll-down span,
 
  .chosen-container .chosen-results-scroll-up span {
 
    background-image: url('chosen-sprite@2x.png') !important;
 
    background-size: 52px 37px !important;
 
    background-repeat: no-repeat !important;
 
  }
 
}
 
/* @end */
static/dist/chosen/chosen.jquery.js
Show inline comments
 
new file 100644
 
/*!
 
Chosen, a Select Box Enhancer for jQuery and Prototype
 
by Patrick Filler for Harvest, http://getharvest.com
 

	
 
Version 1.6.2
 
Full source at https://github.com/harvesthq/chosen
 
Copyright (c) 2011-2016 Harvest http://getharvest.com
 

	
 
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
 
This file is generated by `grunt build`, do not edit it by hand.
 
*/
 

	
 
(function() {
 
  var $, AbstractChosen, Chosen, SelectParser, _ref,
 
    __hasProp = {}.hasOwnProperty,
 
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
 

	
 
  SelectParser = (function() {
 
    function SelectParser() {
 
      this.options_index = 0;
 
      this.parsed = [];
 
    }
 

	
 
    SelectParser.prototype.add_node = function(child) {
 
      if (child.nodeName.toUpperCase() === "OPTGROUP") {
 
        return this.add_group(child);
 
      } else {
 
        return this.add_option(child);
 
      }
 
    };
 

	
 
    SelectParser.prototype.add_group = function(group) {
 
      var group_position, option, _i, _len, _ref, _results;
 
      group_position = this.parsed.length;
 
      this.parsed.push({
 
        array_index: group_position,
 
        group: true,
 
        label: this.escapeExpression(group.label),
 
        title: group.title ? group.title : void 0,
 
        children: 0,
 
        disabled: group.disabled,
 
        classes: group.className
 
      });
 
      _ref = group.childNodes;
 
      _results = [];
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        _results.push(this.add_option(option, group_position, group.disabled));
 
      }
 
      return _results;
 
    };
 

	
 
    SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
 
      if (option.nodeName.toUpperCase() === "OPTION") {
 
        if (option.text !== "") {
 
          if (group_position != null) {
 
            this.parsed[group_position].children += 1;
 
          }
 
          this.parsed.push({
 
            array_index: this.parsed.length,
 
            options_index: this.options_index,
 
            value: option.value,
 
            text: option.text,
 
            html: option.innerHTML,
 
            title: option.title ? option.title : void 0,
 
            selected: option.selected,
 
            disabled: group_disabled === true ? group_disabled : option.disabled,
 
            group_array_index: group_position,
 
            group_label: group_position != null ? this.parsed[group_position].label : null,
 
            classes: option.className,
 
            style: option.style.cssText
 
          });
 
        } else {
 
          this.parsed.push({
 
            array_index: this.parsed.length,
 
            options_index: this.options_index,
 
            empty: true
 
          });
 
        }
 
        return this.options_index += 1;
 
      }
 
    };
 

	
 
    SelectParser.prototype.escapeExpression = function(text) {
 
      var map, unsafe_chars;
 
      if ((text == null) || text === false) {
 
        return "";
 
      }
 
      if (!/[\&\<\>\"\'\`]/.test(text)) {
 
        return text;
 
      }
 
      map = {
 
        "<": "&lt;",
 
        ">": "&gt;",
 
        '"': "&quot;",
 
        "'": "&#x27;",
 
        "`": "&#x60;"
 
      };
 
      unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
 
      return text.replace(unsafe_chars, function(chr) {
 
        return map[chr] || "&amp;";
 
      });
 
    };
 

	
 
    return SelectParser;
 

	
 
  })();
 

	
 
  SelectParser.select_to_array = function(select) {
 
    var child, parser, _i, _len, _ref;
 
    parser = new SelectParser();
 
    _ref = select.childNodes;
 
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
      child = _ref[_i];
 
      parser.add_node(child);
 
    }
 
    return parser.parsed;
 
  };
 

	
 
  AbstractChosen = (function() {
 
    function AbstractChosen(form_field, options) {
 
      this.form_field = form_field;
 
      this.options = options != null ? options : {};
 
      if (!AbstractChosen.browser_is_supported()) {
 
        return;
 
      }
 
      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();
 
    }
 

	
 
    AbstractChosen.prototype.set_default_values = function() {
 
      var _this = this;
 
      this.click_test_action = function(evt) {
 
        return _this.test_active_click(evt);
 
      };
 
      this.activate_action = function(evt) {
 
        return _this.activate_field(evt);
 
      };
 
      this.active_field = false;
 
      this.mouse_on_container = false;
 
      this.results_showing = false;
 
      this.result_highlighted = null;
 
      this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
 
      this.disable_search_threshold = this.options.disable_search_threshold || 0;
 
      this.disable_search = this.options.disable_search || false;
 
      this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
 
      this.group_search = this.options.group_search != null ? this.options.group_search : true;
 
      this.search_contains = this.options.search_contains || false;
 
      this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
 
      this.max_selected_options = this.options.max_selected_options || Infinity;
 
      this.inherit_select_classes = this.options.inherit_select_classes || false;
 
      this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
 
      this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
 
      this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
 
      this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
 
      return this.case_sensitive_search = this.options.case_sensitive_search || false;
 
    };
 

	
 
    AbstractChosen.prototype.set_default_text = function() {
 
      if (this.form_field.getAttribute("data-placeholder")) {
 
        this.default_text = this.form_field.getAttribute("data-placeholder");
 
      } else if (this.is_multiple) {
 
        this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
 
      } else {
 
        this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
 
      }
 
      return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
 
    };
 

	
 
    AbstractChosen.prototype.choice_label = function(item) {
 
      if (this.include_group_label_in_selected && (item.group_label != null)) {
 
        return "<b class='group-name'>" + item.group_label + "</b>" + item.html;
 
      } else {
 
        return item.html;
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.mouse_enter = function() {
 
      return this.mouse_on_container = true;
 
    };
 

	
 
    AbstractChosen.prototype.mouse_leave = function() {
 
      return this.mouse_on_container = false;
 
    };
 

	
 
    AbstractChosen.prototype.input_focus = function(evt) {
 
      var _this = this;
 
      if (this.is_multiple) {
 
        if (!this.active_field) {
 
          return setTimeout((function() {
 
            return _this.container_mousedown();
 
          }), 50);
 
        }
 
      } else {
 
        if (!this.active_field) {
 
          return this.activate_field();
 
        }
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.input_blur = function(evt) {
 
      var _this = this;
 
      if (!this.mouse_on_container) {
 
        this.active_field = false;
 
        return setTimeout((function() {
 
          return _this.blur_test();
 
        }), 100);
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.results_option_build = function(options) {
 
      var content, data, data_content, shown_results, _i, _len, _ref;
 
      content = '';
 
      shown_results = 0;
 
      _ref = this.results_data;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        data = _ref[_i];
 
        data_content = '';
 
        if (data.group) {
 
          data_content = this.result_add_group(data);
 
        } else {
 
          data_content = this.result_add_option(data);
 
        }
 
        if (data_content !== '') {
 
          shown_results++;
 
          content += data_content;
 
        }
 
        if (options != null ? options.first : void 0) {
 
          if (data.selected && this.is_multiple) {
 
            this.choice_build(data);
 
          } else if (data.selected && !this.is_multiple) {
 
            this.single_set_selected_text(this.choice_label(data));
 
          }
 
        }
 
        if (shown_results >= this.max_shown_results) {
 
          break;
 
        }
 
      }
 
      return content;
 
    };
 

	
 
    AbstractChosen.prototype.result_add_option = function(option) {
 
      var classes, option_el;
 
      if (!option.search_match) {
 
        return '';
 
      }
 
      if (!this.include_option_in_results(option)) {
 
        return '';
 
      }
 
      classes = [];
 
      if (!option.disabled && !(option.selected && this.is_multiple)) {
 
        classes.push("active-result");
 
      }
 
      if (option.disabled && !(option.selected && this.is_multiple)) {
 
        classes.push("disabled-result");
 
      }
 
      if (option.selected) {
 
        classes.push("result-selected");
 
      }
 
      if (option.group_array_index != null) {
 
        classes.push("group-option");
 
      }
 
      if (option.classes !== "") {
 
        classes.push(option.classes);
 
      }
 
      option_el = document.createElement("li");
 
      option_el.className = classes.join(" ");
 
      option_el.style.cssText = option.style;
 
      option_el.setAttribute("data-option-array-index", option.array_index);
 
      option_el.innerHTML = option.search_text;
 
      if (option.title) {
 
        option_el.title = option.title;
 
      }
 
      return this.outerHTML(option_el);
 
    };
 

	
 
    AbstractChosen.prototype.result_add_group = function(group) {
 
      var classes, group_el;
 
      if (!(group.search_match || group.group_match)) {
 
        return '';
 
      }
 
      if (!(group.active_options > 0)) {
 
        return '';
 
      }
 
      classes = [];
 
      classes.push("group-result");
 
      if (group.classes) {
 
        classes.push(group.classes);
 
      }
 
      group_el = document.createElement("li");
 
      group_el.className = classes.join(" ");
 
      group_el.innerHTML = group.search_text;
 
      if (group.title) {
 
        group_el.title = group.title;
 
      }
 
      return this.outerHTML(group_el);
 
    };
 

	
 
    AbstractChosen.prototype.results_update_field = function() {
 
      this.set_default_text();
 
      if (!this.is_multiple) {
 
        this.results_reset_cleanup();
 
      }
 
      this.result_clear_highlight();
 
      this.results_build();
 
      if (this.results_showing) {
 
        return this.winnow_results();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.reset_single_select_options = function() {
 
      var result, _i, _len, _ref, _results;
 
      _ref = this.results_data;
 
      _results = [];
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        result = _ref[_i];
 
        if (result.selected) {
 
          _results.push(result.selected = false);
 
        } else {
 
          _results.push(void 0);
 
        }
 
      }
 
      return _results;
 
    };
 

	
 
    AbstractChosen.prototype.results_toggle = function() {
 
      if (this.results_showing) {
 
        return this.results_hide();
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.results_search = function(evt) {
 
      if (this.results_showing) {
 
        return this.winnow_results();
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.winnow_results = function() {
 
      var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
 
      this.no_results_clear();
 
      results = 0;
 
      searchText = this.get_search_text();
 
      escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
 
      zregex = new RegExp(escapedSearchText, 'i');
 
      regex = this.get_search_regex(escapedSearchText);
 
      _ref = this.results_data;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        option.search_match = false;
 
        results_group = null;
 
        if (this.include_option_in_results(option)) {
 
          if (option.group) {
 
            option.group_match = false;
 
            option.active_options = 0;
 
          }
 
          if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
 
            results_group = this.results_data[option.group_array_index];
 
            if (results_group.active_options === 0 && results_group.search_match) {
 
              results += 1;
 
            }
 
            results_group.active_options += 1;
 
          }
 
          option.search_text = option.group ? option.label : option.html;
 
          if (!(option.group && !this.group_search)) {
 
            option.search_match = this.search_string_match(option.search_text, regex);
 
            if (option.search_match && !option.group) {
 
              results += 1;
 
            }
 
            if (option.search_match) {
 
              if (searchText.length) {
 
                startpos = option.search_text.search(zregex);
 
                text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
 
                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
 
              }
 
              if (results_group != null) {
 
                results_group.group_match = true;
 
              }
 
            } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
 
              option.search_match = true;
 
            }
 
          }
 
        }
 
      }
 
      this.result_clear_highlight();
 
      if (results < 1 && searchText.length) {
 
        this.update_results_content("");
 
        return this.no_results(searchText);
 
      } else {
 
        this.update_results_content(this.results_option_build());
 
        return this.winnow_results_set_highlight();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
 
      var regex_anchor, regex_flag;
 
      regex_anchor = this.search_contains ? "" : "^";
 
      regex_flag = this.case_sensitive_search ? "" : "i";
 
      return new RegExp(regex_anchor + escaped_search_string, regex_flag);
 
    };
 

	
 
    AbstractChosen.prototype.search_string_match = function(search_string, regex) {
 
      var part, parts, _i, _len;
 
      if (regex.test(search_string)) {
 
        return true;
 
      } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
 
        parts = search_string.replace(/\[|\]/g, "").split(" ");
 
        if (parts.length) {
 
          for (_i = 0, _len = parts.length; _i < _len; _i++) {
 
            part = parts[_i];
 
            if (regex.test(part)) {
 
              return true;
 
            }
 
          }
 
        }
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.choices_count = function() {
 
      var option, _i, _len, _ref;
 
      if (this.selected_option_count != null) {
 
        return this.selected_option_count;
 
      }
 
      this.selected_option_count = 0;
 
      _ref = this.form_field.options;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        if (option.selected) {
 
          this.selected_option_count += 1;
 
        }
 
      }
 
      return this.selected_option_count;
 
    };
 

	
 
    AbstractChosen.prototype.choices_click = function(evt) {
 
      evt.preventDefault();
 
      if (!(this.results_showing || this.is_disabled)) {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.keyup_checker = function(evt) {
 
      var stroke, _ref;
 
      stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
 
      this.search_field_scale();
 
      switch (stroke) {
 
        case 8:
 
          if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
 
            return this.keydown_backstroke();
 
          } else if (!this.pending_backstroke) {
 
            this.result_clear_highlight();
 
            return this.results_search();
 
          }
 
          break;
 
        case 13:
 
          evt.preventDefault();
 
          if (this.results_showing) {
 
            return this.result_select(evt);
 
          }
 
          break;
 
        case 27:
 
          if (this.results_showing) {
 
            this.results_hide();
 
          }
 
          return true;
 
        case 9:
 
        case 38:
 
        case 40:
 
        case 16:
 
        case 91:
 
        case 17:
 
        case 18:
 
          break;
 
        default:
 
          return this.results_search();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.clipboard_event_checker = function(evt) {
 
      var _this = this;
 
      return setTimeout((function() {
 
        return _this.results_search();
 
      }), 50);
 
    };
 

	
 
    AbstractChosen.prototype.container_width = function() {
 
      if (this.options.width != null) {
 
        return this.options.width;
 
      } else {
 
        return "" + this.form_field.offsetWidth + "px";
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.include_option_in_results = function(option) {
 
      if (this.is_multiple && (!this.display_selected_options && option.selected)) {
 
        return false;
 
      }
 
      if (!this.display_disabled_options && option.disabled) {
 
        return false;
 
      }
 
      if (option.empty) {
 
        return false;
 
      }
 
      return true;
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchstart = function(evt) {
 
      this.touch_started = true;
 
      return this.search_results_mouseover(evt);
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchmove = function(evt) {
 
      this.touch_started = false;
 
      return this.search_results_mouseout(evt);
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchend = function(evt) {
 
      if (this.touch_started) {
 
        return this.search_results_mouseup(evt);
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.outerHTML = function(element) {
 
      var tmp;
 
      if (element.outerHTML) {
 
        return element.outerHTML;
 
      }
 
      tmp = document.createElement("div");
 
      tmp.appendChild(element);
 
      return tmp.innerHTML;
 
    };
 

	
 
    AbstractChosen.browser_is_supported = function() {
 
      if ("Microsoft Internet Explorer" === window.navigator.appName) {
 
        return document.documentMode >= 8;
 
      }
 
      if (/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)) {
 
        return false;
 
      }
 
      return true;
 
    };
 

	
 
    AbstractChosen.default_multiple_text = "Select Some Options";
 

	
 
    AbstractChosen.default_single_text = "Select an Option";
 

	
 
    AbstractChosen.default_no_result_text = "No results match";
 

	
 
    return AbstractChosen;
 

	
 
  })();
 

	
 
  $ = jQuery;
 

	
 
  $.fn.extend({
 
    chosen: function(options) {
 
      if (!AbstractChosen.browser_is_supported()) {
 
        return this;
 
      }
 
      return this.each(function(input_field) {
 
        var $this, chosen;
 
        $this = $(this);
 
        chosen = $this.data('chosen');
 
        if (options === 'destroy') {
 
          if (chosen instanceof Chosen) {
 
            chosen.destroy();
 
          }
 
          return;
 
        }
 
        if (!(chosen instanceof Chosen)) {
 
          $this.data('chosen', new Chosen(this, options));
 
        }
 
      });
 
    }
 
  });
 

	
 
  Chosen = (function(_super) {
 
    __extends(Chosen, _super);
 

	
 
    function Chosen() {
 
      _ref = Chosen.__super__.constructor.apply(this, arguments);
 
      return _ref;
 
    }
 

	
 
    Chosen.prototype.setup = function() {
 
      this.form_field_jq = $(this.form_field);
 
      this.current_selectedIndex = this.form_field.selectedIndex;
 
      return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
 
    };
 

	
 
    Chosen.prototype.set_up_html = function() {
 
      var container_classes, container_props;
 
      container_classes = ["chosen-container"];
 
      container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
 
      if (this.inherit_select_classes && this.form_field.className) {
 
        container_classes.push(this.form_field.className);
 
      }
 
      if (this.is_rtl) {
 
        container_classes.push("chosen-rtl");
 
      }
 
      container_props = {
 
        'class': container_classes.join(' '),
 
        'style': "width: " + (this.container_width()) + ";",
 
        'title': this.form_field.title
 
      };
 
      if (this.form_field.id.length) {
 
        container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
 
      }
 
      this.container = $("<div />", container_props);
 
      if (this.is_multiple) {
 
        this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
 
      } else {
 
        this.container.html('<a class="chosen-single chosen-default"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
 
      }
 
      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();
 
      if (this.is_multiple) {
 
        this.search_choices = this.container.find('ul.chosen-choices').first();
 
        this.search_container = this.container.find('li.search-field').first();
 
      } else {
 
        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();
 
      return this.set_label_behavior();
 
    };
 

	
 
    Chosen.prototype.on_ready = function() {
 
      return this.form_field_jq.trigger("chosen:ready", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.register_observers = function() {
 
      var _this = this;
 
      this.container.bind('touchstart.chosen', function(evt) {
 
        _this.container_mousedown(evt);
 
        return evt.preventDefault();
 
      });
 
      this.container.bind('touchend.chosen', function(evt) {
 
        _this.container_mouseup(evt);
 
        return evt.preventDefault();
 
      });
 
      this.container.bind('mousedown.chosen', function(evt) {
 
        _this.container_mousedown(evt);
 
      });
 
      this.container.bind('mouseup.chosen', function(evt) {
 
        _this.container_mouseup(evt);
 
      });
 
      this.container.bind('mouseenter.chosen', function(evt) {
 
        _this.mouse_enter(evt);
 
      });
 
      this.container.bind('mouseleave.chosen', function(evt) {
 
        _this.mouse_leave(evt);
 
      });
 
      this.search_results.bind('mouseup.chosen', function(evt) {
 
        _this.search_results_mouseup(evt);
 
      });
 
      this.search_results.bind('mouseover.chosen', function(evt) {
 
        _this.search_results_mouseover(evt);
 
      });
 
      this.search_results.bind('mouseout.chosen', function(evt) {
 
        _this.search_results_mouseout(evt);
 
      });
 
      this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
 
        _this.search_results_mousewheel(evt);
 
      });
 
      this.search_results.bind('touchstart.chosen', function(evt) {
 
        _this.search_results_touchstart(evt);
 
      });
 
      this.search_results.bind('touchmove.chosen', function(evt) {
 
        _this.search_results_touchmove(evt);
 
      });
 
      this.search_results.bind('touchend.chosen', function(evt) {
 
        _this.search_results_touchend(evt);
 
      });
 
      this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
 
        _this.results_update_field(evt);
 
      });
 
      this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
 
        _this.activate_field(evt);
 
      });
 
      this.form_field_jq.bind("chosen:open.chosen", function(evt) {
 
        _this.container_mousedown(evt);
 
      });
 
      this.form_field_jq.bind("chosen:close.chosen", function(evt) {
 
        _this.input_blur(evt);
 
      });
 
      this.search_field.bind('blur.chosen', function(evt) {
 
        _this.input_blur(evt);
 
      });
 
      this.search_field.bind('keyup.chosen', function(evt) {
 
        _this.keyup_checker(evt);
 
      });
 
      this.search_field.bind('keydown.chosen', function(evt) {
 
        _this.keydown_checker(evt);
 
      });
 
      this.search_field.bind('focus.chosen', function(evt) {
 
        _this.input_focus(evt);
 
      });
 
      this.search_field.bind('cut.chosen', function(evt) {
 
        _this.clipboard_event_checker(evt);
 
      });
 
      this.search_field.bind('paste.chosen', function(evt) {
 
        _this.clipboard_event_checker(evt);
 
      });
 
      if (this.is_multiple) {
 
        return this.search_choices.bind('click.chosen', function(evt) {
 
          _this.choices_click(evt);
 
        });
 
      } else {
 
        return this.container.bind('click.chosen', function(evt) {
 
          evt.preventDefault();
 
        });
 
      }
 
    };
 

	
 
    Chosen.prototype.destroy = function() {
 
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
 
      if (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');
 
      return this.form_field_jq.show();
 
    };
 

	
 
    Chosen.prototype.search_field_disabled = function() {
 
      this.is_disabled = this.form_field_jq[0].disabled;
 
      if (this.is_disabled) {
 
        this.container.addClass('chosen-disabled');
 
        this.search_field[0].disabled = true;
 
        if (!this.is_multiple) {
 
          this.selected_item.unbind("focus.chosen", this.activate_action);
 
        }
 
        return this.close_field();
 
      } else {
 
        this.container.removeClass('chosen-disabled');
 
        this.search_field[0].disabled = false;
 
        if (!this.is_multiple) {
 
          return this.selected_item.bind("focus.chosen", this.activate_action);
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.container_mousedown = function(evt) {
 
      if (!this.is_disabled) {
 
        if (evt && evt.type === "mousedown" && !this.results_showing) {
 
          evt.preventDefault();
 
        }
 
        if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
 
          if (!this.active_field) {
 
            if (this.is_multiple) {
 
              this.search_field.val("");
 
            }
 
            $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
 
            this.results_show();
 
          } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
 
            evt.preventDefault();
 
            this.results_toggle();
 
          }
 
          return this.activate_field();
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.container_mouseup = function(evt) {
 
      if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
 
        return this.results_reset(evt);
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mousewheel = function(evt) {
 
      var delta;
 
      if (evt.originalEvent) {
 
        delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
 
      }
 
      if (delta != null) {
 
        evt.preventDefault();
 
        if (evt.type === 'DOMMouseScroll') {
 
          delta = delta * 40;
 
        }
 
        return this.search_results.scrollTop(delta + this.search_results.scrollTop());
 
      }
 
    };
 

	
 
    Chosen.prototype.blur_test = function(evt) {
 
      if (!this.active_field && this.container.hasClass("chosen-container-active")) {
 
        return this.close_field();
 
      }
 
    };
 

	
 
    Chosen.prototype.close_field = function() {
 
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
 
      this.active_field = false;
 
      this.results_hide();
 
      this.container.removeClass("chosen-container-active");
 
      this.clear_backstroke();
 
      this.show_search_field_default();
 
      return this.search_field_scale();
 
    };
 

	
 
    Chosen.prototype.activate_field = function() {
 
      this.container.addClass("chosen-container-active");
 
      this.active_field = true;
 
      this.search_field.val(this.search_field.val());
 
      return this.search_field.focus();
 
    };
 

	
 
    Chosen.prototype.test_active_click = function(evt) {
 
      var active_container;
 
      active_container = $(evt.target).closest('.chosen-container');
 
      if (active_container.length && this.container[0] === active_container[0]) {
 
        return this.active_field = true;
 
      } else {
 
        return this.close_field();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_build = function() {
 
      this.parsing = true;
 
      this.selected_option_count = null;
 
      this.results_data = SelectParser.select_to_array(this.form_field);
 
      if (this.is_multiple) {
 
        this.search_choices.find("li.search-choice").remove();
 
      } else if (!this.is_multiple) {
 
        this.single_set_selected_text();
 
        if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
 
          this.search_field[0].readOnly = true;
 
          this.container.addClass("chosen-container-single-nosearch");
 
        } else {
 
          this.search_field[0].readOnly = false;
 
          this.container.removeClass("chosen-container-single-nosearch");
 
        }
 
      }
 
      this.update_results_content(this.results_option_build({
 
        first: true
 
      }));
 
      this.search_field_disabled();
 
      this.show_search_field_default();
 
      this.search_field_scale();
 
      return this.parsing = false;
 
    };
 

	
 
    Chosen.prototype.result_do_highlight = function(el) {
 
      var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
 
      if (el.length) {
 
        this.result_clear_highlight();
 
        this.result_highlight = el;
 
        this.result_highlight.addClass("highlighted");
 
        maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
 
        visible_top = this.search_results.scrollTop();
 
        visible_bottom = maxHeight + visible_top;
 
        high_top = this.result_highlight.position().top + this.search_results.scrollTop();
 
        high_bottom = high_top + this.result_highlight.outerHeight();
 
        if (high_bottom >= visible_bottom) {
 
          return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
 
        } else if (high_top < visible_top) {
 
          return this.search_results.scrollTop(high_top);
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.result_clear_highlight = function() {
 
      if (this.result_highlight) {
 
        this.result_highlight.removeClass("highlighted");
 
      }
 
      return this.result_highlight = null;
 
    };
 

	
 
    Chosen.prototype.results_show = function() {
 
      if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
 
        this.form_field_jq.trigger("chosen:maxselected", {
 
          chosen: this
 
        });
 
        return false;
 
      }
 
      this.container.addClass("chosen-with-drop");
 
      this.results_showing = true;
 
      this.search_field.focus();
 
      this.search_field.val(this.search_field.val());
 
      this.winnow_results();
 
      return this.form_field_jq.trigger("chosen:showing_dropdown", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.update_results_content = function(content) {
 
      return this.search_results.html(content);
 
    };
 

	
 
    Chosen.prototype.results_hide = function() {
 
      if (this.results_showing) {
 
        this.result_clear_highlight();
 
        this.container.removeClass("chosen-with-drop");
 
        this.form_field_jq.trigger("chosen:hiding_dropdown", {
 
          chosen: this
 
        });
 
      }
 
      return this.results_showing = false;
 
    };
 

	
 
    Chosen.prototype.set_tab_index = function(el) {
 
      var ti;
 
      if (this.form_field.tabIndex) {
 
        ti = this.form_field.tabIndex;
 
        this.form_field.tabIndex = -1;
 
        return this.search_field[0].tabIndex = ti;
 
      }
 
    };
 

	
 
    Chosen.prototype.set_label_behavior = function() {
 
      var _this = this;
 
      this.form_field_label = this.form_field_jq.parents("label");
 
      if (!this.form_field_label.length && this.form_field.id.length) {
 
        this.form_field_label = $("label[for='" + this.form_field.id + "']");
 
      }
 
      if (this.form_field_label.length > 0) {
 
        return this.form_field_label.bind('click.chosen', function(evt) {
 
          if (_this.is_multiple) {
 
            return _this.container_mousedown(evt);
 
          } else {
 
            return _this.activate_field();
 
          }
 
        });
 
      }
 
    };
 

	
 
    Chosen.prototype.show_search_field_default = function() {
 
      if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
 
        this.search_field.val(this.default_text);
 
        return this.search_field.addClass("default");
 
      } else {
 
        this.search_field.val("");
 
        return this.search_field.removeClass("default");
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseup = function(evt) {
 
      var target;
 
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
 
      if (target.length) {
 
        this.result_highlight = target;
 
        this.result_select(evt);
 
        return this.search_field.focus();
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseover = function(evt) {
 
      var target;
 
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
 
      if (target) {
 
        return this.result_do_highlight(target);
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseout = function(evt) {
 
      if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
 
        return this.result_clear_highlight();
 
      }
 
    };
 

	
 
    Chosen.prototype.choice_build = function(item) {
 
      var choice, close_link,
 
        _this = this;
 
      choice = $('<li />', {
 
        "class": "search-choice"
 
      }).html("<span>" + (this.choice_label(item)) + "</span>");
 
      if (item.disabled) {
 
        choice.addClass('search-choice-disabled');
 
      } else {
 
        close_link = $('<a />', {
 
          "class": 'search-choice-close',
 
          'data-option-array-index': item.array_index
 
        });
 
        close_link.bind('click.chosen', function(evt) {
 
          return _this.choice_destroy_link_click(evt);
 
        });
 
        choice.append(close_link);
 
      }
 
      return this.search_container.before(choice);
 
    };
 

	
 
    Chosen.prototype.choice_destroy_link_click = function(evt) {
 
      evt.preventDefault();
 
      evt.stopPropagation();
 
      if (!this.is_disabled) {
 
        return this.choice_destroy($(evt.target));
 
      }
 
    };
 

	
 
    Chosen.prototype.choice_destroy = function(link) {
 
      if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
 
        this.show_search_field_default();
 
        if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
 
          this.results_hide();
 
        }
 
        link.parents('li').first().remove();
 
        return this.search_field_scale();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_reset = function() {
 
      this.reset_single_select_options();
 
      this.form_field.options[0].selected = true;
 
      this.single_set_selected_text();
 
      this.show_search_field_default();
 
      this.results_reset_cleanup();
 
      this.form_field_jq.trigger("change");
 
      if (this.active_field) {
 
        return this.results_hide();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_reset_cleanup = function() {
 
      this.current_selectedIndex = this.form_field.selectedIndex;
 
      return this.selected_item.find("abbr").remove();
 
    };
 

	
 
    Chosen.prototype.result_select = function(evt) {
 
      var high, item;
 
      if (this.result_highlight) {
 
        high = this.result_highlight;
 
        this.result_clear_highlight();
 
        if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
 
          this.form_field_jq.trigger("chosen:maxselected", {
 
            chosen: this
 
          });
 
          return false;
 
        }
 
        if (this.is_multiple) {
 
          high.removeClass("active-result");
 
        } else {
 
          this.reset_single_select_options();
 
        }
 
        high.addClass("result-selected");
 
        item = this.results_data[high[0].getAttribute("data-option-array-index")];
 
        item.selected = true;
 
        this.form_field.options[item.options_index].selected = true;
 
        this.selected_option_count = null;
 
        if (this.is_multiple) {
 
          this.choice_build(item);
 
        } else {
 
          this.single_set_selected_text(this.choice_label(item));
 
        }
 
        if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
 
          this.results_hide();
 
        }
 
        this.show_search_field_default();
 
        if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
 
          this.form_field_jq.trigger("change", {
 
            'selected': this.form_field.options[item.options_index].value
 
          });
 
        }
 
        this.current_selectedIndex = this.form_field.selectedIndex;
 
        evt.preventDefault();
 
        return this.search_field_scale();
 
      }
 
    };
 

	
 
    Chosen.prototype.single_set_selected_text = function(text) {
 
      if (text == null) {
 
        text = this.default_text;
 
      }
 
      if (text === this.default_text) {
 
        this.selected_item.addClass("chosen-default");
 
      } else {
 
        this.single_deselect_control_build();
 
        this.selected_item.removeClass("chosen-default");
 
      }
 
      return this.selected_item.find("span").html(text);
 
    };
 

	
 
    Chosen.prototype.result_deselect = function(pos) {
 
      var result_data;
 
      result_data = this.results_data[pos];
 
      if (!this.form_field.options[result_data.options_index].disabled) {
 
        result_data.selected = false;
 
        this.form_field.options[result_data.options_index].selected = false;
 
        this.selected_option_count = null;
 
        this.result_clear_highlight();
 
        if (this.results_showing) {
 
          this.winnow_results();
 
        }
 
        this.form_field_jq.trigger("change", {
 
          deselected: this.form_field.options[result_data.options_index].value
 
        });
 
        this.search_field_scale();
 
        return true;
 
      } else {
 
        return false;
 
      }
 
    };
 

	
 
    Chosen.prototype.single_deselect_control_build = function() {
 
      if (!this.allow_single_deselect) {
 
        return;
 
      }
 
      if (!this.selected_item.find("abbr").length) {
 
        this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
 
      }
 
      return this.selected_item.addClass("chosen-single-with-deselect");
 
    };
 

	
 
    Chosen.prototype.get_search_text = function() {
 
      return $('<div/>').text($.trim(this.search_field.val())).html();
 
    };
 

	
 
    Chosen.prototype.winnow_results_set_highlight = function() {
 
      var do_high, selected_results;
 
      selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
 
      do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
 
      if (do_high != null) {
 
        return this.result_do_highlight(do_high);
 
      }
 
    };
 

	
 
    Chosen.prototype.no_results = function(terms) {
 
      var no_results_html;
 
      no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
 
      no_results_html.find("span").first().html(terms);
 
      this.search_results.append(no_results_html);
 
      return this.form_field_jq.trigger("chosen:no_results", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.no_results_clear = function() {
 
      return this.search_results.find(".no-results").remove();
 
    };
 

	
 
    Chosen.prototype.keydown_arrow = function() {
 
      var next_sib;
 
      if (this.results_showing && this.result_highlight) {
 
        next_sib = this.result_highlight.nextAll("li.active-result").first();
 
        if (next_sib) {
 
          return this.result_do_highlight(next_sib);
 
        }
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    Chosen.prototype.keyup_arrow = function() {
 
      var prev_sibs;
 
      if (!this.results_showing && !this.is_multiple) {
 
        return this.results_show();
 
      } else if (this.result_highlight) {
 
        prev_sibs = this.result_highlight.prevAll("li.active-result");
 
        if (prev_sibs.length) {
 
          return this.result_do_highlight(prev_sibs.first());
 
        } else {
 
          if (this.choices_count() > 0) {
 
            this.results_hide();
 
          }
 
          return this.result_clear_highlight();
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.keydown_backstroke = function() {
 
      var next_available_destroy;
 
      if (this.pending_backstroke) {
 
        this.choice_destroy(this.pending_backstroke.find("a").first());
 
        return this.clear_backstroke();
 
      } else {
 
        next_available_destroy = this.search_container.siblings("li.search-choice").last();
 
        if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
 
          this.pending_backstroke = next_available_destroy;
 
          if (this.single_backstroke_delete) {
 
            return this.keydown_backstroke();
 
          } else {
 
            return this.pending_backstroke.addClass("search-choice-focus");
 
          }
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.clear_backstroke = function() {
 
      if (this.pending_backstroke) {
 
        this.pending_backstroke.removeClass("search-choice-focus");
 
      }
 
      return this.pending_backstroke = null;
 
    };
 

	
 
    Chosen.prototype.keydown_checker = function(evt) {
 
      var stroke, _ref1;
 
      stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
 
      this.search_field_scale();
 
      if (stroke !== 8 && this.pending_backstroke) {
 
        this.clear_backstroke();
 
      }
 
      switch (stroke) {
 
        case 8:
 
          this.backstroke_length = this.search_field.val().length;
 
          break;
 
        case 9:
 
          if (this.results_showing && !this.is_multiple) {
 
            this.result_select(evt);
 
          }
 
          this.mouse_on_container = false;
 
          break;
 
        case 13:
 
          if (this.results_showing) {
 
            evt.preventDefault();
 
          }
 
          break;
 
        case 32:
 
          if (this.disable_search) {
 
            evt.preventDefault();
 
          }
 
          break;
 
        case 38:
 
          evt.preventDefault();
 
          this.keyup_arrow();
 
          break;
 
        case 40:
 
          evt.preventDefault();
 
          this.keydown_arrow();
 
          break;
 
      }
 
    };
 

	
 
    Chosen.prototype.search_field_scale = function() {
 
      var div, f_width, h, style, style_block, styles, w, _i, _len;
 
      if (this.is_multiple) {
 
        h = 0;
 
        w = 0;
 
        style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
 
        styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
 
        for (_i = 0, _len = styles.length; _i < _len; _i++) {
 
          style = styles[_i];
 
          style_block += style + ":" + this.search_field.css(style) + ";";
 
        }
 
        div = $('<div />', {
 
          'style': style_block
 
        });
 
        div.text(this.search_field.val());
 
        $('body').append(div);
 
        w = div.width() + 25;
 
        div.remove();
 
        f_width = this.container.outerWidth();
 
        if (w > f_width - 10) {
 
          w = f_width - 10;
 
        }
 
        return this.search_field.css({
 
          'width': w + 'px'
 
        });
 
      }
 
    };
 

	
 
    return Chosen;
 

	
 
  })(AbstractChosen);
 

	
 
}).call(this);
static/dist/chosen/chosen.jquery.min.js
Show inline comments
 
new file 100644
 
/* Chosen v1.6.2 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
 
(function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),title:a.title?a.title:void 0,children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,title:a.title?a.title:void 0,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,group_label:null!=b?this.parsed[b].label:null,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.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 AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,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:!1,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:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,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:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0,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},AbstractChosen.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||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(a){return this.include_group_label_in_selected&&null!=a.group_label?"<b class='group-name'>"+a.group_label+"</b>"+a.html:a.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(a){var b=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(a){var b=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return b.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f,g,h;for(b="",e=0,h=this.results_data,f=0,g=h.length;g>f&&(c=h[f],d="",d=c.group?this.result_add_group(c):this.result_add_option(c),""!==d&&(e++,b+=d),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(c))),!(e>=this.max_shown_results));f++);return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match&&this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return(a.search_match||a.group_match)&&a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),b.search_text=b.group?b.label:b.html,(!b.group||this.group_search)&&(b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b,c;return b=this.search_contains?"":"^",c=this.case_sensitive_search?"":"i",new RegExp(b+a,c)},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.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)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(c){var d,e;return d=a(this),e=d.data("chosen"),"destroy"===b?void(e instanceof Chosen&&e.destroy()):void(e instanceof Chosen||d.data("chosen",new Chosen(this,b)))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),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()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.bind("touchend.chosen",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),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()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("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()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(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},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.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.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.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},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.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"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(b)+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return 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.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=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?b.removeClass("active-result"):this.reset_single_select_options(),b.addClass("result-selected"),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===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(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(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")):void 0},Chosen.prototype.get_search_text=function(){return a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}).call(this);
...
 
\ No newline at end of file
static/dist/chosen/chosen.min.css
Show inline comments
 
new file 100644
 
/* Chosen v1.6.2 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
 

	
 
.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(chosen-sprite.png) no-repeat 100% -20px;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(chosen-sprite.png) no-repeat -30px -20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
...
 
\ No newline at end of file
static/dist/chosen/chosen.proto.js
Show inline comments
 
new file 100644
 
/*!
 
Chosen, a Select Box Enhancer for jQuery and Prototype
 
by Patrick Filler for Harvest, http://getharvest.com
 

	
 
Version 1.6.2
 
Full source at https://github.com/harvesthq/chosen
 
Copyright (c) 2011-2016 Harvest http://getharvest.com
 

	
 
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
 
This file is generated by `grunt build`, do not edit it by hand.
 
*/
 

	
 
(function() {
 
  var AbstractChosen, SelectParser, _ref,
 
    __hasProp = {}.hasOwnProperty,
 
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
 

	
 
  SelectParser = (function() {
 
    function SelectParser() {
 
      this.options_index = 0;
 
      this.parsed = [];
 
    }
 

	
 
    SelectParser.prototype.add_node = function(child) {
 
      if (child.nodeName.toUpperCase() === "OPTGROUP") {
 
        return this.add_group(child);
 
      } else {
 
        return this.add_option(child);
 
      }
 
    };
 

	
 
    SelectParser.prototype.add_group = function(group) {
 
      var group_position, option, _i, _len, _ref, _results;
 
      group_position = this.parsed.length;
 
      this.parsed.push({
 
        array_index: group_position,
 
        group: true,
 
        label: this.escapeExpression(group.label),
 
        title: group.title ? group.title : void 0,
 
        children: 0,
 
        disabled: group.disabled,
 
        classes: group.className
 
      });
 
      _ref = group.childNodes;
 
      _results = [];
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        _results.push(this.add_option(option, group_position, group.disabled));
 
      }
 
      return _results;
 
    };
 

	
 
    SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
 
      if (option.nodeName.toUpperCase() === "OPTION") {
 
        if (option.text !== "") {
 
          if (group_position != null) {
 
            this.parsed[group_position].children += 1;
 
          }
 
          this.parsed.push({
 
            array_index: this.parsed.length,
 
            options_index: this.options_index,
 
            value: option.value,
 
            text: option.text,
 
            html: option.innerHTML,
 
            title: option.title ? option.title : void 0,
 
            selected: option.selected,
 
            disabled: group_disabled === true ? group_disabled : option.disabled,
 
            group_array_index: group_position,
 
            group_label: group_position != null ? this.parsed[group_position].label : null,
 
            classes: option.className,
 
            style: option.style.cssText
 
          });
 
        } else {
 
          this.parsed.push({
 
            array_index: this.parsed.length,
 
            options_index: this.options_index,
 
            empty: true
 
          });
 
        }
 
        return this.options_index += 1;
 
      }
 
    };
 

	
 
    SelectParser.prototype.escapeExpression = function(text) {
 
      var map, unsafe_chars;
 
      if ((text == null) || text === false) {
 
        return "";
 
      }
 
      if (!/[\&\<\>\"\'\`]/.test(text)) {
 
        return text;
 
      }
 
      map = {
 
        "<": "&lt;",
 
        ">": "&gt;",
 
        '"': "&quot;",
 
        "'": "&#x27;",
 
        "`": "&#x60;"
 
      };
 
      unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
 
      return text.replace(unsafe_chars, function(chr) {
 
        return map[chr] || "&amp;";
 
      });
 
    };
 

	
 
    return SelectParser;
 

	
 
  })();
 

	
 
  SelectParser.select_to_array = function(select) {
 
    var child, parser, _i, _len, _ref;
 
    parser = new SelectParser();
 
    _ref = select.childNodes;
 
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
      child = _ref[_i];
 
      parser.add_node(child);
 
    }
 
    return parser.parsed;
 
  };
 

	
 
  AbstractChosen = (function() {
 
    function AbstractChosen(form_field, options) {
 
      this.form_field = form_field;
 
      this.options = options != null ? options : {};
 
      if (!AbstractChosen.browser_is_supported()) {
 
        return;
 
      }
 
      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();
 
    }
 

	
 
    AbstractChosen.prototype.set_default_values = function() {
 
      var _this = this;
 
      this.click_test_action = function(evt) {
 
        return _this.test_active_click(evt);
 
      };
 
      this.activate_action = function(evt) {
 
        return _this.activate_field(evt);
 
      };
 
      this.active_field = false;
 
      this.mouse_on_container = false;
 
      this.results_showing = false;
 
      this.result_highlighted = null;
 
      this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
 
      this.disable_search_threshold = this.options.disable_search_threshold || 0;
 
      this.disable_search = this.options.disable_search || false;
 
      this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
 
      this.group_search = this.options.group_search != null ? this.options.group_search : true;
 
      this.search_contains = this.options.search_contains || false;
 
      this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
 
      this.max_selected_options = this.options.max_selected_options || Infinity;
 
      this.inherit_select_classes = this.options.inherit_select_classes || false;
 
      this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
 
      this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
 
      this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
 
      this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
 
      return this.case_sensitive_search = this.options.case_sensitive_search || false;
 
    };
 

	
 
    AbstractChosen.prototype.set_default_text = function() {
 
      if (this.form_field.getAttribute("data-placeholder")) {
 
        this.default_text = this.form_field.getAttribute("data-placeholder");
 
      } else if (this.is_multiple) {
 
        this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
 
      } else {
 
        this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
 
      }
 
      return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
 
    };
 

	
 
    AbstractChosen.prototype.choice_label = function(item) {
 
      if (this.include_group_label_in_selected && (item.group_label != null)) {
 
        return "<b class='group-name'>" + item.group_label + "</b>" + item.html;
 
      } else {
 
        return item.html;
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.mouse_enter = function() {
 
      return this.mouse_on_container = true;
 
    };
 

	
 
    AbstractChosen.prototype.mouse_leave = function() {
 
      return this.mouse_on_container = false;
 
    };
 

	
 
    AbstractChosen.prototype.input_focus = function(evt) {
 
      var _this = this;
 
      if (this.is_multiple) {
 
        if (!this.active_field) {
 
          return setTimeout((function() {
 
            return _this.container_mousedown();
 
          }), 50);
 
        }
 
      } else {
 
        if (!this.active_field) {
 
          return this.activate_field();
 
        }
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.input_blur = function(evt) {
 
      var _this = this;
 
      if (!this.mouse_on_container) {
 
        this.active_field = false;
 
        return setTimeout((function() {
 
          return _this.blur_test();
 
        }), 100);
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.results_option_build = function(options) {
 
      var content, data, data_content, shown_results, _i, _len, _ref;
 
      content = '';
 
      shown_results = 0;
 
      _ref = this.results_data;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        data = _ref[_i];
 
        data_content = '';
 
        if (data.group) {
 
          data_content = this.result_add_group(data);
 
        } else {
 
          data_content = this.result_add_option(data);
 
        }
 
        if (data_content !== '') {
 
          shown_results++;
 
          content += data_content;
 
        }
 
        if (options != null ? options.first : void 0) {
 
          if (data.selected && this.is_multiple) {
 
            this.choice_build(data);
 
          } else if (data.selected && !this.is_multiple) {
 
            this.single_set_selected_text(this.choice_label(data));
 
          }
 
        }
 
        if (shown_results >= this.max_shown_results) {
 
          break;
 
        }
 
      }
 
      return content;
 
    };
 

	
 
    AbstractChosen.prototype.result_add_option = function(option) {
 
      var classes, option_el;
 
      if (!option.search_match) {
 
        return '';
 
      }
 
      if (!this.include_option_in_results(option)) {
 
        return '';
 
      }
 
      classes = [];
 
      if (!option.disabled && !(option.selected && this.is_multiple)) {
 
        classes.push("active-result");
 
      }
 
      if (option.disabled && !(option.selected && this.is_multiple)) {
 
        classes.push("disabled-result");
 
      }
 
      if (option.selected) {
 
        classes.push("result-selected");
 
      }
 
      if (option.group_array_index != null) {
 
        classes.push("group-option");
 
      }
 
      if (option.classes !== "") {
 
        classes.push(option.classes);
 
      }
 
      option_el = document.createElement("li");
 
      option_el.className = classes.join(" ");
 
      option_el.style.cssText = option.style;
 
      option_el.setAttribute("data-option-array-index", option.array_index);
 
      option_el.innerHTML = option.search_text;
 
      if (option.title) {
 
        option_el.title = option.title;
 
      }
 
      return this.outerHTML(option_el);
 
    };
 

	
 
    AbstractChosen.prototype.result_add_group = function(group) {
 
      var classes, group_el;
 
      if (!(group.search_match || group.group_match)) {
 
        return '';
 
      }
 
      if (!(group.active_options > 0)) {
 
        return '';
 
      }
 
      classes = [];
 
      classes.push("group-result");
 
      if (group.classes) {
 
        classes.push(group.classes);
 
      }
 
      group_el = document.createElement("li");
 
      group_el.className = classes.join(" ");
 
      group_el.innerHTML = group.search_text;
 
      if (group.title) {
 
        group_el.title = group.title;
 
      }
 
      return this.outerHTML(group_el);
 
    };
 

	
 
    AbstractChosen.prototype.results_update_field = function() {
 
      this.set_default_text();
 
      if (!this.is_multiple) {
 
        this.results_reset_cleanup();
 
      }
 
      this.result_clear_highlight();
 
      this.results_build();
 
      if (this.results_showing) {
 
        return this.winnow_results();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.reset_single_select_options = function() {
 
      var result, _i, _len, _ref, _results;
 
      _ref = this.results_data;
 
      _results = [];
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        result = _ref[_i];
 
        if (result.selected) {
 
          _results.push(result.selected = false);
 
        } else {
 
          _results.push(void 0);
 
        }
 
      }
 
      return _results;
 
    };
 

	
 
    AbstractChosen.prototype.results_toggle = function() {
 
      if (this.results_showing) {
 
        return this.results_hide();
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.results_search = function(evt) {
 
      if (this.results_showing) {
 
        return this.winnow_results();
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.winnow_results = function() {
 
      var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
 
      this.no_results_clear();
 
      results = 0;
 
      searchText = this.get_search_text();
 
      escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
 
      zregex = new RegExp(escapedSearchText, 'i');
 
      regex = this.get_search_regex(escapedSearchText);
 
      _ref = this.results_data;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        option.search_match = false;
 
        results_group = null;
 
        if (this.include_option_in_results(option)) {
 
          if (option.group) {
 
            option.group_match = false;
 
            option.active_options = 0;
 
          }
 
          if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
 
            results_group = this.results_data[option.group_array_index];
 
            if (results_group.active_options === 0 && results_group.search_match) {
 
              results += 1;
 
            }
 
            results_group.active_options += 1;
 
          }
 
          option.search_text = option.group ? option.label : option.html;
 
          if (!(option.group && !this.group_search)) {
 
            option.search_match = this.search_string_match(option.search_text, regex);
 
            if (option.search_match && !option.group) {
 
              results += 1;
 
            }
 
            if (option.search_match) {
 
              if (searchText.length) {
 
                startpos = option.search_text.search(zregex);
 
                text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
 
                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
 
              }
 
              if (results_group != null) {
 
                results_group.group_match = true;
 
              }
 
            } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
 
              option.search_match = true;
 
            }
 
          }
 
        }
 
      }
 
      this.result_clear_highlight();
 
      if (results < 1 && searchText.length) {
 
        this.update_results_content("");
 
        return this.no_results(searchText);
 
      } else {
 
        this.update_results_content(this.results_option_build());
 
        return this.winnow_results_set_highlight();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
 
      var regex_anchor, regex_flag;
 
      regex_anchor = this.search_contains ? "" : "^";
 
      regex_flag = this.case_sensitive_search ? "" : "i";
 
      return new RegExp(regex_anchor + escaped_search_string, regex_flag);
 
    };
 

	
 
    AbstractChosen.prototype.search_string_match = function(search_string, regex) {
 
      var part, parts, _i, _len;
 
      if (regex.test(search_string)) {
 
        return true;
 
      } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
 
        parts = search_string.replace(/\[|\]/g, "").split(" ");
 
        if (parts.length) {
 
          for (_i = 0, _len = parts.length; _i < _len; _i++) {
 
            part = parts[_i];
 
            if (regex.test(part)) {
 
              return true;
 
            }
 
          }
 
        }
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.choices_count = function() {
 
      var option, _i, _len, _ref;
 
      if (this.selected_option_count != null) {
 
        return this.selected_option_count;
 
      }
 
      this.selected_option_count = 0;
 
      _ref = this.form_field.options;
 
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
        option = _ref[_i];
 
        if (option.selected) {
 
          this.selected_option_count += 1;
 
        }
 
      }
 
      return this.selected_option_count;
 
    };
 

	
 
    AbstractChosen.prototype.choices_click = function(evt) {
 
      evt.preventDefault();
 
      if (!(this.results_showing || this.is_disabled)) {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.keyup_checker = function(evt) {
 
      var stroke, _ref;
 
      stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
 
      this.search_field_scale();
 
      switch (stroke) {
 
        case 8:
 
          if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
 
            return this.keydown_backstroke();
 
          } else if (!this.pending_backstroke) {
 
            this.result_clear_highlight();
 
            return this.results_search();
 
          }
 
          break;
 
        case 13:
 
          evt.preventDefault();
 
          if (this.results_showing) {
 
            return this.result_select(evt);
 
          }
 
          break;
 
        case 27:
 
          if (this.results_showing) {
 
            this.results_hide();
 
          }
 
          return true;
 
        case 9:
 
        case 38:
 
        case 40:
 
        case 16:
 
        case 91:
 
        case 17:
 
        case 18:
 
          break;
 
        default:
 
          return this.results_search();
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.clipboard_event_checker = function(evt) {
 
      var _this = this;
 
      return setTimeout((function() {
 
        return _this.results_search();
 
      }), 50);
 
    };
 

	
 
    AbstractChosen.prototype.container_width = function() {
 
      if (this.options.width != null) {
 
        return this.options.width;
 
      } else {
 
        return "" + this.form_field.offsetWidth + "px";
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.include_option_in_results = function(option) {
 
      if (this.is_multiple && (!this.display_selected_options && option.selected)) {
 
        return false;
 
      }
 
      if (!this.display_disabled_options && option.disabled) {
 
        return false;
 
      }
 
      if (option.empty) {
 
        return false;
 
      }
 
      return true;
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchstart = function(evt) {
 
      this.touch_started = true;
 
      return this.search_results_mouseover(evt);
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchmove = function(evt) {
 
      this.touch_started = false;
 
      return this.search_results_mouseout(evt);
 
    };
 

	
 
    AbstractChosen.prototype.search_results_touchend = function(evt) {
 
      if (this.touch_started) {
 
        return this.search_results_mouseup(evt);
 
      }
 
    };
 

	
 
    AbstractChosen.prototype.outerHTML = function(element) {
 
      var tmp;
 
      if (element.outerHTML) {
 
        return element.outerHTML;
 
      }
 
      tmp = document.createElement("div");
 
      tmp.appendChild(element);
 
      return tmp.innerHTML;
 
    };
 

	
 
    AbstractChosen.browser_is_supported = function() {
 
      if ("Microsoft Internet Explorer" === window.navigator.appName) {
 
        return document.documentMode >= 8;
 
      }
 
      if (/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)) {
 
        return false;
 
      }
 
      return true;
 
    };
 

	
 
    AbstractChosen.default_multiple_text = "Select Some Options";
 

	
 
    AbstractChosen.default_single_text = "Select an Option";
 

	
 
    AbstractChosen.default_no_result_text = "No results match";
 

	
 
    return AbstractChosen;
 

	
 
  })();
 

	
 
  this.Chosen = (function(_super) {
 
    __extends(Chosen, _super);
 

	
 
    function Chosen() {
 
      _ref = Chosen.__super__.constructor.apply(this, arguments);
 
      return _ref;
 
    }
 

	
 
    Chosen.prototype.setup = function() {
 
      this.current_selectedIndex = this.form_field.selectedIndex;
 
      return this.is_rtl = this.form_field.hasClassName("chosen-rtl");
 
    };
 

	
 
    Chosen.prototype.set_default_values = function() {
 
      Chosen.__super__.set_default_values.call(this);
 
      this.single_temp = new Template('<a class="chosen-single chosen-default"><span>#{default}</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
 
      this.multi_temp = new Template('<ul class="chosen-choices"><li class="search-field"><input type="text" value="#{default}" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
 
      return this.no_results_temp = new Template('<li class="no-results">' + this.results_none_found + ' "<span>#{terms}</span>"</li>');
 
    };
 

	
 
    Chosen.prototype.set_up_html = function() {
 
      var container_classes, container_props;
 
      container_classes = ["chosen-container"];
 
      container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
 
      if (this.inherit_select_classes && this.form_field.className) {
 
        container_classes.push(this.form_field.className);
 
      }
 
      if (this.is_rtl) {
 
        container_classes.push("chosen-rtl");
 
      }
 
      container_props = {
 
        'class': container_classes.join(' '),
 
        'style': "width: " + (this.container_width()) + ";",
 
        'title': this.form_field.title
 
      };
 
      if (this.form_field.id.length) {
 
        container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
 
      }
 
      this.container = this.is_multiple ? new Element('div', container_props).update(this.multi_temp.evaluate({
 
        "default": this.default_text
 
      })) : new Element('div', container_props).update(this.single_temp.evaluate({
 
        "default": this.default_text
 
      }));
 
      this.form_field.hide().insert({
 
        after: this.container
 
      });
 
      this.dropdown = this.container.down('div.chosen-drop');
 
      this.search_field = this.container.down('input');
 
      this.search_results = this.container.down('ul.chosen-results');
 
      this.search_field_scale();
 
      this.search_no_results = this.container.down('li.no-results');
 
      if (this.is_multiple) {
 
        this.search_choices = this.container.down('ul.chosen-choices');
 
        this.search_container = this.container.down('li.search-field');
 
      } else {
 
        this.search_container = this.container.down('div.chosen-search');
 
        this.selected_item = this.container.down('.chosen-single');
 
      }
 
      this.results_build();
 
      this.set_tab_index();
 
      return this.set_label_behavior();
 
    };
 

	
 
    Chosen.prototype.on_ready = function() {
 
      return this.form_field.fire("chosen:ready", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.register_observers = function() {
 
      var _this = this;
 
      this.container.observe("touchstart", function(evt) {
 
        _this.container_mousedown(evt);
 
        return evt.preventDefault();
 
      });
 
      this.container.observe("touchend", function(evt) {
 
        _this.container_mouseup(evt);
 
        return evt.preventDefault();
 
      });
 
      this.container.observe("mousedown", function(evt) {
 
        return _this.container_mousedown(evt);
 
      });
 
      this.container.observe("mouseup", function(evt) {
 
        return _this.container_mouseup(evt);
 
      });
 
      this.container.observe("mouseenter", function(evt) {
 
        return _this.mouse_enter(evt);
 
      });
 
      this.container.observe("mouseleave", function(evt) {
 
        return _this.mouse_leave(evt);
 
      });
 
      this.search_results.observe("mouseup", function(evt) {
 
        return _this.search_results_mouseup(evt);
 
      });
 
      this.search_results.observe("mouseover", function(evt) {
 
        return _this.search_results_mouseover(evt);
 
      });
 
      this.search_results.observe("mouseout", function(evt) {
 
        return _this.search_results_mouseout(evt);
 
      });
 
      this.search_results.observe("mousewheel", function(evt) {
 
        return _this.search_results_mousewheel(evt);
 
      });
 
      this.search_results.observe("DOMMouseScroll", function(evt) {
 
        return _this.search_results_mousewheel(evt);
 
      });
 
      this.search_results.observe("touchstart", function(evt) {
 
        return _this.search_results_touchstart(evt);
 
      });
 
      this.search_results.observe("touchmove", function(evt) {
 
        return _this.search_results_touchmove(evt);
 
      });
 
      this.search_results.observe("touchend", function(evt) {
 
        return _this.search_results_touchend(evt);
 
      });
 
      this.form_field.observe("chosen:updated", function(evt) {
 
        return _this.results_update_field(evt);
 
      });
 
      this.form_field.observe("chosen:activate", function(evt) {
 
        return _this.activate_field(evt);
 
      });
 
      this.form_field.observe("chosen:open", function(evt) {
 
        return _this.container_mousedown(evt);
 
      });
 
      this.form_field.observe("chosen:close", function(evt) {
 
        return _this.input_blur(evt);
 
      });
 
      this.search_field.observe("blur", function(evt) {
 
        return _this.input_blur(evt);
 
      });
 
      this.search_field.observe("keyup", function(evt) {
 
        return _this.keyup_checker(evt);
 
      });
 
      this.search_field.observe("keydown", function(evt) {
 
        return _this.keydown_checker(evt);
 
      });
 
      this.search_field.observe("focus", function(evt) {
 
        return _this.input_focus(evt);
 
      });
 
      this.search_field.observe("cut", function(evt) {
 
        return _this.clipboard_event_checker(evt);
 
      });
 
      this.search_field.observe("paste", function(evt) {
 
        return _this.clipboard_event_checker(evt);
 
      });
 
      if (this.is_multiple) {
 
        return this.search_choices.observe("click", function(evt) {
 
          return _this.choices_click(evt);
 
        });
 
      } else {
 
        return this.container.observe("click", function(evt) {
 
          return evt.preventDefault();
 
        });
 
      }
 
    };
 

	
 
    Chosen.prototype.destroy = function() {
 
      this.container.ownerDocument.stopObserving("click", this.click_test_action);
 
      this.form_field.stopObserving();
 
      this.container.stopObserving();
 
      this.search_results.stopObserving();
 
      this.search_field.stopObserving();
 
      if (this.form_field_label != null) {
 
        this.form_field_label.stopObserving();
 
      }
 
      if (this.is_multiple) {
 
        this.search_choices.stopObserving();
 
        this.container.select(".search-choice-close").each(function(choice) {
 
          return choice.stopObserving();
 
        });
 
      } else {
 
        this.selected_item.stopObserving();
 
      }
 
      if (this.search_field.tabIndex) {
 
        this.form_field.tabIndex = this.search_field.tabIndex;
 
      }
 
      this.container.remove();
 
      return this.form_field.show();
 
    };
 

	
 
    Chosen.prototype.search_field_disabled = function() {
 
      this.is_disabled = this.form_field.disabled;
 
      if (this.is_disabled) {
 
        this.container.addClassName('chosen-disabled');
 
        this.search_field.disabled = true;
 
        if (!this.is_multiple) {
 
          this.selected_item.stopObserving("focus", this.activate_action);
 
        }
 
        return this.close_field();
 
      } else {
 
        this.container.removeClassName('chosen-disabled');
 
        this.search_field.disabled = false;
 
        if (!this.is_multiple) {
 
          return this.selected_item.observe("focus", this.activate_action);
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.container_mousedown = function(evt) {
 
      if (!this.is_disabled) {
 
        if (evt && evt.type === "mousedown" && !this.results_showing) {
 
          evt.stop();
 
        }
 
        if (!((evt != null) && evt.target.hasClassName("search-choice-close"))) {
 
          if (!this.active_field) {
 
            if (this.is_multiple) {
 
              this.search_field.clear();
 
            }
 
            this.container.ownerDocument.observe("click", this.click_test_action);
 
            this.results_show();
 
          } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chosen-single"))) {
 
            this.results_toggle();
 
          }
 
          return this.activate_field();
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.container_mouseup = function(evt) {
 
      if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
 
        return this.results_reset(evt);
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mousewheel = function(evt) {
 
      var delta;
 
      delta = evt.deltaY || -evt.wheelDelta || evt.detail;
 
      if (delta != null) {
 
        evt.preventDefault();
 
        if (evt.type === 'DOMMouseScroll') {
 
          delta = delta * 40;
 
        }
 
        return this.search_results.scrollTop = delta + this.search_results.scrollTop;
 
      }
 
    };
 

	
 
    Chosen.prototype.blur_test = function(evt) {
 
      if (!this.active_field && this.container.hasClassName("chosen-container-active")) {
 
        return this.close_field();
 
      }
 
    };
 

	
 
    Chosen.prototype.close_field = function() {
 
      this.container.ownerDocument.stopObserving("click", this.click_test_action);
 
      this.active_field = false;
 
      this.results_hide();
 
      this.container.removeClassName("chosen-container-active");
 
      this.clear_backstroke();
 
      this.show_search_field_default();
 
      return this.search_field_scale();
 
    };
 

	
 
    Chosen.prototype.activate_field = function() {
 
      this.container.addClassName("chosen-container-active");
 
      this.active_field = true;
 
      this.search_field.value = this.search_field.value;
 
      return this.search_field.focus();
 
    };
 

	
 
    Chosen.prototype.test_active_click = function(evt) {
 
      if (evt.target.up('.chosen-container') === this.container) {
 
        return this.active_field = true;
 
      } else {
 
        return this.close_field();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_build = function() {
 
      this.parsing = true;
 
      this.selected_option_count = null;
 
      this.results_data = SelectParser.select_to_array(this.form_field);
 
      if (this.is_multiple) {
 
        this.search_choices.select("li.search-choice").invoke("remove");
 
      } else if (!this.is_multiple) {
 
        this.single_set_selected_text();
 
        if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
 
          this.search_field.readOnly = true;
 
          this.container.addClassName("chosen-container-single-nosearch");
 
        } else {
 
          this.search_field.readOnly = false;
 
          this.container.removeClassName("chosen-container-single-nosearch");
 
        }
 
      }
 
      this.update_results_content(this.results_option_build({
 
        first: true
 
      }));
 
      this.search_field_disabled();
 
      this.show_search_field_default();
 
      this.search_field_scale();
 
      return this.parsing = false;
 
    };
 

	
 
    Chosen.prototype.result_do_highlight = function(el) {
 
      var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
 
      this.result_clear_highlight();
 
      this.result_highlight = el;
 
      this.result_highlight.addClassName("highlighted");
 
      maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10);
 
      visible_top = this.search_results.scrollTop;
 
      visible_bottom = maxHeight + visible_top;
 
      high_top = this.result_highlight.positionedOffset().top;
 
      high_bottom = high_top + this.result_highlight.getHeight();
 
      if (high_bottom >= visible_bottom) {
 
        return this.search_results.scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0;
 
      } else if (high_top < visible_top) {
 
        return this.search_results.scrollTop = high_top;
 
      }
 
    };
 

	
 
    Chosen.prototype.result_clear_highlight = function() {
 
      if (this.result_highlight) {
 
        this.result_highlight.removeClassName('highlighted');
 
      }
 
      return this.result_highlight = null;
 
    };
 

	
 
    Chosen.prototype.results_show = function() {
 
      if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
 
        this.form_field.fire("chosen:maxselected", {
 
          chosen: this
 
        });
 
        return false;
 
      }
 
      this.container.addClassName("chosen-with-drop");
 
      this.results_showing = true;
 
      this.search_field.focus();
 
      this.search_field.value = this.search_field.value;
 
      this.winnow_results();
 
      return this.form_field.fire("chosen:showing_dropdown", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.update_results_content = function(content) {
 
      return this.search_results.update(content);
 
    };
 

	
 
    Chosen.prototype.results_hide = function() {
 
      if (this.results_showing) {
 
        this.result_clear_highlight();
 
        this.container.removeClassName("chosen-with-drop");
 
        this.form_field.fire("chosen:hiding_dropdown", {
 
          chosen: this
 
        });
 
      }
 
      return this.results_showing = false;
 
    };
 

	
 
    Chosen.prototype.set_tab_index = function(el) {
 
      var ti;
 
      if (this.form_field.tabIndex) {
 
        ti = this.form_field.tabIndex;
 
        this.form_field.tabIndex = -1;
 
        return this.search_field.tabIndex = ti;
 
      }
 
    };
 

	
 
    Chosen.prototype.set_label_behavior = function() {
 
      var _this = this;
 
      this.form_field_label = this.form_field.up("label");
 
      if (this.form_field_label == null) {
 
        this.form_field_label = $$("label[for='" + this.form_field.id + "']").first();
 
      }
 
      if (this.form_field_label != null) {
 
        return this.form_field_label.observe("click", function(evt) {
 
          if (_this.is_multiple) {
 
            return _this.container_mousedown(evt);
 
          } else {
 
            return _this.activate_field();
 
          }
 
        });
 
      }
 
    };
 

	
 
    Chosen.prototype.show_search_field_default = function() {
 
      if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
 
        this.search_field.value = this.default_text;
 
        return this.search_field.addClassName("default");
 
      } else {
 
        this.search_field.value = "";
 
        return this.search_field.removeClassName("default");
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseup = function(evt) {
 
      var target;
 
      target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result");
 
      if (target) {
 
        this.result_highlight = target;
 
        this.result_select(evt);
 
        return this.search_field.focus();
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseover = function(evt) {
 
      var target;
 
      target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result");
 
      if (target) {
 
        return this.result_do_highlight(target);
 
      }
 
    };
 

	
 
    Chosen.prototype.search_results_mouseout = function(evt) {
 
      if (evt.target.hasClassName('active-result') || evt.target.up('.active-result')) {
 
        return this.result_clear_highlight();
 
      }
 
    };
 

	
 
    Chosen.prototype.choice_build = function(item) {
 
      var choice, close_link,
 
        _this = this;
 
      choice = new Element('li', {
 
        "class": "search-choice"
 
      }).update("<span>" + (this.choice_label(item)) + "</span>");
 
      if (item.disabled) {
 
        choice.addClassName('search-choice-disabled');
 
      } else {
 
        close_link = new Element('a', {
 
          href: '#',
 
          "class": 'search-choice-close',
 
          rel: item.array_index
 
        });
 
        close_link.observe("click", function(evt) {
 
          return _this.choice_destroy_link_click(evt);
 
        });
 
        choice.insert(close_link);
 
      }
 
      return this.search_container.insert({
 
        before: choice
 
      });
 
    };
 

	
 
    Chosen.prototype.choice_destroy_link_click = function(evt) {
 
      evt.preventDefault();
 
      evt.stopPropagation();
 
      if (!this.is_disabled) {
 
        return this.choice_destroy(evt.target);
 
      }
 
    };
 

	
 
    Chosen.prototype.choice_destroy = function(link) {
 
      if (this.result_deselect(link.readAttribute("rel"))) {
 
        this.show_search_field_default();
 
        if (this.is_multiple && this.choices_count() > 0 && this.search_field.value.length < 1) {
 
          this.results_hide();
 
        }
 
        link.up('li').remove();
 
        return this.search_field_scale();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_reset = function() {
 
      this.reset_single_select_options();
 
      this.form_field.options[0].selected = true;
 
      this.single_set_selected_text();
 
      this.show_search_field_default();
 
      this.results_reset_cleanup();
 
      if (typeof Event.simulate === 'function') {
 
        this.form_field.simulate("change");
 
      }
 
      if (this.active_field) {
 
        return this.results_hide();
 
      }
 
    };
 

	
 
    Chosen.prototype.results_reset_cleanup = function() {
 
      var deselect_trigger;
 
      this.current_selectedIndex = this.form_field.selectedIndex;
 
      deselect_trigger = this.selected_item.down("abbr");
 
      if (deselect_trigger) {
 
        return deselect_trigger.remove();
 
      }
 
    };
 

	
 
    Chosen.prototype.result_select = function(evt) {
 
      var high, item;
 
      if (this.result_highlight) {
 
        high = this.result_highlight;
 
        this.result_clear_highlight();
 
        if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
 
          this.form_field.fire("chosen:maxselected", {
 
            chosen: this
 
          });
 
          return false;
 
        }
 
        if (this.is_multiple) {
 
          high.removeClassName("active-result");
 
        } else {
 
          this.reset_single_select_options();
 
        }
 
        high.addClassName("result-selected");
 
        item = this.results_data[high.getAttribute("data-option-array-index")];
 
        item.selected = true;
 
        this.form_field.options[item.options_index].selected = true;
 
        this.selected_option_count = null;
 
        if (this.is_multiple) {
 
          this.choice_build(item);
 
        } else {
 
          this.single_set_selected_text(this.choice_label(item));
 
        }
 
        if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
 
          this.results_hide();
 
        }
 
        this.show_search_field_default();
 
        if (typeof Event.simulate === 'function' && (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex)) {
 
          this.form_field.simulate("change");
 
        }
 
        this.current_selectedIndex = this.form_field.selectedIndex;
 
        evt.preventDefault();
 
        return this.search_field_scale();
 
      }
 
    };
 

	
 
    Chosen.prototype.single_set_selected_text = function(text) {
 
      if (text == null) {
 
        text = this.default_text;
 
      }
 
      if (text === this.default_text) {
 
        this.selected_item.addClassName("chosen-default");
 
      } else {
 
        this.single_deselect_control_build();
 
        this.selected_item.removeClassName("chosen-default");
 
      }
 
      return this.selected_item.down("span").update(text);
 
    };
 

	
 
    Chosen.prototype.result_deselect = function(pos) {
 
      var result_data;
 
      result_data = this.results_data[pos];
 
      if (!this.form_field.options[result_data.options_index].disabled) {
 
        result_data.selected = false;
 
        this.form_field.options[result_data.options_index].selected = false;
 
        this.selected_option_count = null;
 
        this.result_clear_highlight();
 
        if (this.results_showing) {
 
          this.winnow_results();
 
        }
 
        if (typeof Event.simulate === 'function') {
 
          this.form_field.simulate("change");
 
        }
 
        this.search_field_scale();
 
        return true;
 
      } else {
 
        return false;
 
      }
 
    };
 

	
 
    Chosen.prototype.single_deselect_control_build = function() {
 
      if (!this.allow_single_deselect) {
 
        return;
 
      }
 
      if (!this.selected_item.down("abbr")) {
 
        this.selected_item.down("span").insert({
 
          after: "<abbr class=\"search-choice-close\"></abbr>"
 
        });
 
      }
 
      return this.selected_item.addClassName("chosen-single-with-deselect");
 
    };
 

	
 
    Chosen.prototype.get_search_text = function() {
 
      return this.search_field.value.strip().escapeHTML();
 
    };
 

	
 
    Chosen.prototype.winnow_results_set_highlight = function() {
 
      var do_high;
 
      if (!this.is_multiple) {
 
        do_high = this.search_results.down(".result-selected.active-result");
 
      }
 
      if (do_high == null) {
 
        do_high = this.search_results.down(".active-result");
 
      }
 
      if (do_high != null) {
 
        return this.result_do_highlight(do_high);
 
      }
 
    };
 

	
 
    Chosen.prototype.no_results = function(terms) {
 
      this.search_results.insert(this.no_results_temp.evaluate({
 
        terms: terms
 
      }));
 
      return this.form_field.fire("chosen:no_results", {
 
        chosen: this
 
      });
 
    };
 

	
 
    Chosen.prototype.no_results_clear = function() {
 
      var nr, _results;
 
      nr = null;
 
      _results = [];
 
      while (nr = this.search_results.down(".no-results")) {
 
        _results.push(nr.remove());
 
      }
 
      return _results;
 
    };
 

	
 
    Chosen.prototype.keydown_arrow = function() {
 
      var next_sib;
 
      if (this.results_showing && this.result_highlight) {
 
        next_sib = this.result_highlight.next('.active-result');
 
        if (next_sib) {
 
          return this.result_do_highlight(next_sib);
 
        }
 
      } else {
 
        return this.results_show();
 
      }
 
    };
 

	
 
    Chosen.prototype.keyup_arrow = function() {
 
      var actives, prevs, sibs;
 
      if (!this.results_showing && !this.is_multiple) {
 
        return this.results_show();
 
      } else if (this.result_highlight) {
 
        sibs = this.result_highlight.previousSiblings();
 
        actives = this.search_results.select("li.active-result");
 
        prevs = sibs.intersect(actives);
 
        if (prevs.length) {
 
          return this.result_do_highlight(prevs.first());
 
        } else {
 
          if (this.choices_count() > 0) {
 
            this.results_hide();
 
          }
 
          return this.result_clear_highlight();
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.keydown_backstroke = function() {
 
      var next_available_destroy;
 
      if (this.pending_backstroke) {
 
        this.choice_destroy(this.pending_backstroke.down("a"));
 
        return this.clear_backstroke();
 
      } else {
 
        next_available_destroy = this.search_container.siblings().last();
 
        if (next_available_destroy && next_available_destroy.hasClassName("search-choice") && !next_available_destroy.hasClassName("search-choice-disabled")) {
 
          this.pending_backstroke = next_available_destroy;
 
          if (this.pending_backstroke) {
 
            this.pending_backstroke.addClassName("search-choice-focus");
 
          }
 
          if (this.single_backstroke_delete) {
 
            return this.keydown_backstroke();
 
          } else {
 
            return this.pending_backstroke.addClassName("search-choice-focus");
 
          }
 
        }
 
      }
 
    };
 

	
 
    Chosen.prototype.clear_backstroke = function() {
 
      if (this.pending_backstroke) {
 
        this.pending_backstroke.removeClassName("search-choice-focus");
 
      }
 
      return this.pending_backstroke = null;
 
    };
 

	
 
    Chosen.prototype.keydown_checker = function(evt) {
 
      var stroke, _ref1;
 
      stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
 
      this.search_field_scale();
 
      if (stroke !== 8 && this.pending_backstroke) {
 
        this.clear_backstroke();
 
      }
 
      switch (stroke) {
 
        case 8:
 
          this.backstroke_length = this.search_field.value.length;
 
          break;
 
        case 9:
 
          if (this.results_showing && !this.is_multiple) {
 
            this.result_select(evt);
 
          }
 
          this.mouse_on_container = false;
 
          break;
 
        case 13:
 
          if (this.results_showing) {
 
            evt.preventDefault();
 
          }
 
          break;
 
        case 32:
 
          if (this.disable_search) {
 
            evt.preventDefault();
 
          }
 
          break;
 
        case 38:
 
          evt.preventDefault();
 
          this.keyup_arrow();
 
          break;
 
        case 40:
 
          evt.preventDefault();
 
          this.keydown_arrow();
 
          break;
 
      }
 
    };
 

	
 
    Chosen.prototype.search_field_scale = function() {
 
      var div, f_width, h, style, style_block, styles, w, _i, _len;
 
      if (this.is_multiple) {
 
        h = 0;
 
        w = 0;
 
        style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
 
        styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
 
        for (_i = 0, _len = styles.length; _i < _len; _i++) {
 
          style = styles[_i];
 
          style_block += style + ":" + this.search_field.getStyle(style) + ";";
 
        }
 
        div = new Element('div', {
 
          'style': style_block
 
        }).update(this.search_field.value.escapeHTML());
 
        document.body.appendChild(div);
 
        w = Element.measure(div, 'width') + 25;
 
        div.remove();
 
        f_width = this.container.getWidth();
 
        if (w > f_width - 10) {
 
          w = f_width - 10;
 
        }
 
        return this.search_field.setStyle({
 
          'width': w + 'px'
 
        });
 
      }
 
    };
 

	
 
    return Chosen;
 

	
 
  })(AbstractChosen);
 

	
 
}).call(this);
static/dist/chosen/chosen.proto.min.js
Show inline comments
 
new file 100644
 
/* Chosen v1.6.2 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
 
(function(){var AbstractChosen,SelectParser,a,b={}.hasOwnProperty,c=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),title:a.title?a.title:void 0,children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,title:a.title?a.title:void 0,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,group_label:null!=b?this.parsed[b].label:null,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.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 AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,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:!1,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:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,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:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0,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},AbstractChosen.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||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(a){return this.include_group_label_in_selected&&null!=a.group_label?"<b class='group-name'>"+a.group_label+"</b>"+a.html:a.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(a){var b=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(a){var b=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return b.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f,g,h;for(b="",e=0,h=this.results_data,f=0,g=h.length;g>f&&(c=h[f],d="",d=c.group?this.result_add_group(c):this.result_add_option(c),""!==d&&(e++,b+=d),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(c))),!(e>=this.max_shown_results));f++);return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match&&this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return(a.search_match||a.group_match)&&a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),b.search_text=b.group?b.label:b.html,(!b.group||this.group_search)&&(b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b,c;return b=this.search_contains?"":"^",c=this.case_sensitive_search?"":"i",new RegExp(b+a,c)},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.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)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),this.Chosen=function(b){function Chosen(){return a=Chosen.__super__.constructor.apply(this,arguments)}return c(Chosen,b),Chosen.prototype.setup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field.hasClassName("chosen-rtl")},Chosen.prototype.set_default_values=function(){return Chosen.__super__.set_default_values.call(this),this.single_temp=new Template('<a class="chosen-single chosen-default"><span>#{default}</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.multi_temp=new Template('<ul class="chosen-choices"><li class="search-field"><input type="text" value="#{default}" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'),this.no_results_temp=new Template('<li class="no-results">'+this.results_none_found+' "<span>#{terms}</span>"</li>')},Chosen.prototype.set_up_html=function(){var a,b;return a=["chosen-container"],a.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&a.push(this.form_field.className),this.is_rtl&&a.push("chosen-rtl"),b={"class":a.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(b.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=this.is_multiple?new Element("div",b).update(this.multi_temp.evaluate({"default":this.default_text})):new Element("div",b).update(this.single_temp.evaluate({"default":this.default_text})),this.form_field.hide().insert({after:this.container}),this.dropdown=this.container.down("div.chosen-drop"),this.search_field=this.container.down("input"),this.search_results=this.container.down("ul.chosen-results"),this.search_field_scale(),this.search_no_results=this.container.down("li.no-results"),this.is_multiple?(this.search_choices=this.container.down("ul.chosen-choices"),this.search_container=this.container.down("li.search-field")):(this.search_container=this.container.down("div.chosen-search"),this.selected_item=this.container.down(".chosen-single")),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field.fire("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.observe("touchstart",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.observe("touchend",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.observe("mousedown",function(b){return a.container_mousedown(b)}),this.container.observe("mouseup",function(b){return a.container_mouseup(b)}),this.container.observe("mouseenter",function(b){return a.mouse_enter(b)}),this.container.observe("mouseleave",function(b){return a.mouse_leave(b)}),this.search_results.observe("mouseup",function(b){return a.search_results_mouseup(b)}),this.search_results.observe("mouseover",function(b){return a.search_results_mouseover(b)}),this.search_results.observe("mouseout",function(b){return a.search_results_mouseout(b)}),this.search_results.observe("mousewheel",function(b){return a.search_results_mousewheel(b)}),this.search_results.observe("DOMMouseScroll",function(b){return a.search_results_mousewheel(b)}),this.search_results.observe("touchstart",function(b){return a.search_results_touchstart(b)}),this.search_results.observe("touchmove",function(b){return a.search_results_touchmove(b)}),this.search_results.observe("touchend",function(b){return a.search_results_touchend(b)}),this.form_field.observe("chosen:updated",function(b){return a.results_update_field(b)}),this.form_field.observe("chosen:activate",function(b){return a.activate_field(b)}),this.form_field.observe("chosen:open",function(b){return a.container_mousedown(b)}),this.form_field.observe("chosen:close",function(b){return a.input_blur(b)}),this.search_field.observe("blur",function(b){return a.input_blur(b)}),this.search_field.observe("keyup",function(b){return a.keyup_checker(b)}),this.search_field.observe("keydown",function(b){return a.keydown_checker(b)}),this.search_field.observe("focus",function(b){return a.input_focus(b)}),this.search_field.observe("cut",function(b){return a.clipboard_event_checker(b)}),this.search_field.observe("paste",function(b){return a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.observe("click",function(b){return a.choices_click(b)}):this.container.observe("click",function(a){return a.preventDefault()})},Chosen.prototype.destroy=function(){return this.container.ownerDocument.stopObserving("click",this.click_test_action),this.form_field.stopObserving(),this.container.stopObserving(),this.search_results.stopObserving(),this.search_field.stopObserving(),null!=this.form_field_label&&this.form_field_label.stopObserving(),this.is_multiple?(this.search_choices.stopObserving(),this.container.select(".search-choice-close").each(function(a){return a.stopObserving()})):this.selected_item.stopObserving(),this.search_field.tabIndex&&(this.form_field.tabIndex=this.search_field.tabIndex),this.container.remove(),this.form_field.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled,this.is_disabled?(this.container.addClassName("chosen-disabled"),this.search_field.disabled=!0,this.is_multiple||this.selected_item.stopObserving("focus",this.activate_action),this.close_field()):(this.container.removeClassName("chosen-disabled"),this.search_field.disabled=!1,this.is_multiple?void 0:this.selected_item.observe("focus",this.activate_action))},Chosen.prototype.container_mousedown=function(a){return this.is_disabled||(a&&"mousedown"===a.type&&!this.results_showing&&a.stop(),null!=a&&a.target.hasClassName("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!a||a.target!==this.selected_item&&!a.target.up("a.chosen-single")||this.results_toggle():(this.is_multiple&&this.search_field.clear(),this.container.ownerDocument.observe("click",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return b=a.deltaY||-a.wheelDelta||a.detail,null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop=b+this.search_results.scrollTop):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClassName("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return this.container.ownerDocument.stopObserving("click",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClassName("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClassName("chosen-container-active"),this.active_field=!0,this.search_field.value=this.search_field.value,this.search_field.focus()},Chosen.prototype.test_active_click=function(a){return a.target.up(".chosen-container")===this.container?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.select("li.search-choice").invoke("remove"):this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field.readOnly=!0,this.container.addClassName("chosen-container-single-nosearch")):(this.search_field.readOnly=!1,this.container.removeClassName("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},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;return this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClassName("highlighted"),d=parseInt(this.search_results.getStyle("maxHeight"),10),f=this.search_results.scrollTop,e=d+f,c=this.result_highlight.positionedOffset().top,b=c+this.result_highlight.getHeight(),b>=e?this.search_results.scrollTop=b-d>0?b-d:0:f>c?this.search_results.scrollTop=c:void 0},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClassName("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field.fire("chosen:maxselected",{chosen:this}),!1):(this.container.addClassName("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.value=this.search_field.value,this.winnow_results(),this.form_field.fire("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.update(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClassName("chosen-with-drop"),this.form_field.fire("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field.tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var a=this;return this.form_field_label=this.form_field.up("label"),null==this.form_field_label&&(this.form_field_label=$$("label[for='"+this.form_field.id+"']").first()),null!=this.form_field_label?this.form_field_label.observe("click",function(b){return a.is_multiple?a.container_mousedown(b):a.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.value=this.default_text,this.search_field.addClassName("default")):(this.search_field.value="",this.search_field.removeClassName("default"))},Chosen.prototype.search_results_mouseup=function(a){var b;return b=a.target.hasClassName("active-result")?a.target:a.target.up(".active-result"),b?(this.result_highlight=b,this.result_select(a),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(a){var b;return b=a.target.hasClassName("active-result")?a.target:a.target.up(".active-result"),b?this.result_do_highlight(b):void 0},Chosen.prototype.search_results_mouseout=function(a){return a.target.hasClassName("active-result")||a.target.up(".active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(a){var b,c,d=this;return b=new Element("li",{"class":"search-choice"}).update("<span>"+this.choice_label(a)+"</span>"),a.disabled?b.addClassName("search-choice-disabled"):(c=new Element("a",{href:"#","class":"search-choice-close",rel:a.array_index}),c.observe("click",function(a){return d.choice_destroy_link_click(a)}),b.insert(c)),this.search_container.insert({before:b})},Chosen.prototype.choice_destroy_link_click=function(a){return a.preventDefault(),a.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a.target)},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a.readAttribute("rel"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.value.length<1&&this.results_hide(),a.up("li").remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return 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(),"function"==typeof Event.simulate&&this.form_field.simulate("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){var a;return this.current_selectedIndex=this.form_field.selectedIndex,a=this.selected_item.down("abbr"),a?a.remove():void 0},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field.fire("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClassName("active-result"):this.reset_single_select_options(),b.addClassName("result-selected"),c=this.results_data[b.getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),"function"!=typeof Event.simulate||!this.is_multiple&&this.form_field.selectedIndex===this.current_selectedIndex||this.form_field.simulate("change"),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClassName("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClassName("chosen-default")),this.selected_item.down("span").update(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),"function"==typeof Event.simulate&&this.form_field.simulate("change"),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.down("abbr")||this.selected_item.down("span").insert({after:'<abbr class="search-choice-close"></abbr>'}),this.selected_item.addClassName("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.value.strip().escapeHTML()},Chosen.prototype.winnow_results_set_highlight=function(){var a;return this.is_multiple||(a=this.search_results.down(".result-selected.active-result")),null==a&&(a=this.search_results.down(".active-result")),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(a){return this.search_results.insert(this.no_results_temp.evaluate({terms:a})),this.form_field.fire("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){var a,b;for(a=null,b=[];a=this.search_results.down(".no-results");)b.push(a.remove());return b},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.next(".active-result"))?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a,b,c;return this.results_showing||this.is_multiple?this.result_highlight?(c=this.result_highlight.previousSiblings(),a=this.search_results.select("li.active-result"),b=c.intersect(a),b.length?this.result_do_highlight(b.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.down("a")),this.clear_backstroke()):(a=this.search_container.siblings().last(),a&&a.hasClassName("search-choice")&&!a.hasClassName("search-choice-disabled")?(this.pending_backstroke=a,this.pending_backstroke&&this.pending_backstroke.addClassName("search-choice-focus"),this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClassName("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClassName("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.value.length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var a,b,c,d,e,f,g,h,i;if(this.is_multiple){for(c=0,g=0,e="position:absolute; left: -1000px; top: -1000px; display:none;",f=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],h=0,i=f.length;i>h;h++)d=f[h],e+=d+":"+this.search_field.getStyle(d)+";";return a=new Element("div",{style:e}).update(this.search_field.value.escapeHTML()),document.body.appendChild(a),g=Element.measure(a,"width")+25,a.remove(),b=this.container.getWidth(),g>b-10&&(g=b-10),this.search_field.setStyle({width:g+"px"})}},Chosen}(AbstractChosen)}).call(this);
...
 
\ No newline at end of file
0 comments (0 inline, 0 general)